Skip to main content

Load Sync API: In-house TMS

Any time there is a change to the load object inside of your TMS, send the entire load object to this end-point. This is a high throughput end-point and can handle thousands of requests per second. It is highly available, fault tolerant, and scalable.

This end-point will always return a 200 status code. Since Chaine will be listening to load events from your TMS based on your load object, there is no reason to return any other error. If there is an error, Chaine will simply not process the load object and will retry the request at a later time without any impact to the API.

Finally, this end-point is idempotent. If you send the same load object multiple times, Chaine will only process it once. This is to ensure that if there is a network error, or if you send the same load object multiple times, Chaine will not create duplicate loads.

Header Parameters
    Authorization string required

    API Key that a Chaine Admin or Owner creates in their workspace under developer settings

    Example: 1AbC2DeFgH34IJKlm5N6O7p8QR9s0tU1VWcYZABcDeFg2HIJ
    Content-Type string required

    The content type of the request. Currently we accept application/json or application/xml. If these don't work for you, please reach out to your technical contact at Chaine.

    Example: application/json
Request Body

This is just a sample of the fields you can send on the load object. Our integrations are highly configurable and you can send essentially any other fields you want. If you don't have a lot of flexibility on your end, we provide a user-interface for you to create a custom mapper where you can map any object you send to us to Chaine's internal load object.

    actionType ActionType nullable

    Possible values: [Create, Update, Delete, Upsert]

    This can be used to indicate whether this event/request is a create, update or delete.

    assignedBookingReps object[] nullable

    An array of booking reps assigned to the load. If it is just one, send an array with one. If a carrier rep is assigned to an available load for booking purposes, add them here. The customer sales rep can also be added here.

  • Array [
  • email string

    The email of the user

    id string

    Your internal unique user ID

    role string

    The role of the user. i.e. CarrierSalesRep, CustomerSalesRep, etc...

  • ]
  • assignedTrackingReps object[] nullable

    Any user that is responsible for tracking the load. This is used for load load tracking and collaboration. Alternatively, you can provide this in other custom fields and we would map this to our standard load object.

  • Array [
  • email string

    The email of the user

    id string

    Your internal unique user ID

    role string

    The role of the user. i.e. CarrierSalesRep, CustomerSalesRep, etc...

  • ]
  • carrier object nullable
    dotNumber string
    doNotUse boolean
    doNotUseReason string
    companyName string
    id string

    Your internal unique carrier ID

    mcNumber string
    scacCode string

    The SCAC code of the carrier

    carrierSalesRep object nullable

    The carrier sales rep assigned to the load. This is used for carrier collaboration and shown in the driver mobile app.

    id string

    Your internal unique user ID

    email string
    chaineCustomerShipmentID string

    Your internal unique load ID that is used in your backend system.

    chaineCustomerWorkspaceID string

    If this load is part of a unique office, team or POD, this will be used by Chaine to separate out the loads to the appropriate teams.

    chaineCustomerTMSGroupID string nullable

    The external ID that is used in the external system to group loads for TMS clients; typically done in organizations that have multiple TMS instances that is commonly seen in Managed Transportation. This is saved in case we need to refer to a TMS Instance when sending events back to the external system. Some customers have separate TMS "instance" for managed transportation clients. In those cases, they have a separate TMS Group. In Chaine, they may decide to have a separate Chaine workspace ID for each TMS client, but it may be different TMS instances in their end. Thus, we need a way to separate this.

    chaineCustomerWorkspaceDisplayName string nullable

    The name of the office specified by chaineCustomerWorkspaceID. This will be used in Chaine for display purposes.

    commodity string nullable

    The commodity of the load. This is used for load matching.

    commodityLineItems object[] nullable
  • Array [
  • associatedStopID string
    description number
    handlingUnitType number
    numberOfHandlingUnits string
    orderNumber string
    totalHeight Dimensions
    totalLength Dimensions
    totalWeight object

    The weight details of the load

    value number

    The value of the weight

    unit WeightUnit

    Possible values: [lb, kg]

    The unit of measure for the weight

    totalWidth Dimensions
  • ]
  • containers object[] nullable
  • Array [
  • containerNumber string

    The sealine issued container number

    id string nullable

    The external ID of the container in the external system

  • ]
  • createdBy object nullable

    The user that created the load.

    id string

    Your internal unique user ID

    email string
    createdOn string nullable

    The date the load was created.

    customer object nullable
    name string

    The company name of the customer

    id string

    Your internal unique customer ID

    contact object

    A contact at the customer. This can be used to automatically share tracking with and also for customer to customerSalesRep collaboration

    id string

    Your internal unique user ID

    email string
    customerSalesRep object nullable

    The customer sales rep assigned to the load. This is used for both freight matching so they can see the offers on loads and also for customer collaboration.

    id string

    Your internal unique user ID

    email string
    destination object nullable
    addressLabel string
    boundingBox string[]

    A bounding box of the address. This is used for load collaboration and Geo-fence

    city

    The city of the address

    coordinates object

    The coordinates of the address.

    latitude number
    longitude number
    country string

    The country of the address

    countryCode string

    The country code of the address

    county string

    The county of the address

    postalCode string

    The postal code of the address

    postalCodeSuffix string

    The postal code suffix of the address

    state string

    The state of the address

    stateCode string

    The state code of the address

    street string

    The street of the address

    streetNumber string

    The street number of the address

    suiteNumber string

    The suite number of the address

    destinationAppointment object nullable
    start object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    end object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    isFirstComeFirstServe boolean

    Indicates whether the appointment is first come first serve. This is used for load matching and carrier collaboration.

    dispatchers object[] nullable

    An array of dispatchers assigned to the load. If it is just one, send an array with one.

  • Array [
  • email string
    phone string
  • ]
  • distance object nullable

    The distance details of the load with a value and unit of measure

    value number

    The value of the distance

    unit string

    The unit of measure for the distance

    drivers object[] nullable

    An array of drivers assigned to the load. If it is just one, send an array with one.

  • Array [
  • phone string

    The cell phone number of the driver used for mobile app tracking or load assignment via the Chaine mobile app

  • ]
  • doNotPost boolean nullable

    Indicates whether the load should be posted to the load board. This is used for load matching.

    equipment object[] nullable

    The equipment types that are required for the load. This is used for load matching.

  • Array [
  • additionalRequirements string[] nullable

    Any additional requirement tags such as "Tarps", "Pallet jack", etc. Previously we used equipmentTags for this, but this is a more structured way to provide additional requirements

    equipmentLength Dimensions nullable

    The length of the equipment required for the load, specified in units (e.g., feet).

    equipmentTags DetailedEquipmentType[]

    Possible values: [A frame, Box truck - liftgate, Box truck - pallet jack, Box truck - tailgate, Car carrier - enclosed, Car carrier - open, Conestoga - small, Container - heavy, Container - high cube, Container - intermodal, Container - out of gauge, Container - standard, Dolly, Dry van - liftgate, Dry van - plated, Dry van - tailgate, Dry van - tanker endorsement, Dry van - vented, Dual lane, Dump trailer, Explosives, Flatbed - maxi, Flatbed - stretch, Hopper, Hotshot, Hotshot - CDL, Landoll, Livestock, Perimeter frame, RGN - aluminum slideouts, RGN - beam, RGN - stretch, Reefer - tailgate, Sliding axle, Step deck - load leveler, Step deck - low profile, Step deck - stretch, Step deck - stretch - steerable, Straight truck, Super B, Tanker - aluminum, Tanker - intermodal, Tanker - steel, Toter truck]

    Additional tags for the equipment that can be used to provide more requirements for the equipment.

    equipmentTypes TruckType[] nullable

    Possible values: [Box truck, Conestoga, Deck, Double drop, Dry bulk, Flatbed, Lowboy, Other, Power only, RGN, Reefer, Sprinter van, Step deck, Tanker, Van]

    The equipment types that are required for the load. This is used for load matching. This is where the primary equipment should be specified.

    isHazmat boolean nullable
    isOversized boolean nullable
    isPartial boolean nullable
    teamRequired boolean nullable
    temperatureControlled boolean nullable
    temperatureRange object nullable
    runType string

    The way the reefer unit should be run. i.e. Continuous, Start-stop, etc...

    min number

    The minimum temperature the reefer unit can be at.

    max number

    The maximum temperature the reefer unit can be at.

    unit string

    The unit of measure for the temperature. i.e. Fahrenheit, Celsius, etc...

    truckTypes TruckType[] nullable deprecated

    Possible values: [Box truck, Conestoga, Deck, Double drop, Dry bulk, Flatbed, Lowboy, Other, Power only, RGN, Reefer, Sprinter van, Step deck, Tanker, Van]

    Same as equipmentTypes. This is deprecated and will be removed in the future.

  • ]
  • financials object nullable

    The financials of the load. This is used for load matching, and to better understand the historical rate information for available loads.

    accessorialCost number

    Any non-linehaul accessorial costs associated with the shipment. Non-linehaul costs are costs that are not directly related to the movement of the freight. For example, detention, layover, etc. These do not include fuel surcharge costs, tracking acceptance, or guaranteed delivery costs.

    carrierFreightCost number

    The total cost of the carrier not including the fuel surcharge and other accessorial costs.

    carrierFuelCost number

    The rate that the carrier was paid for the fuel surcharge.

    carrierInvoiceTotal number

    The total amount the carrier invoiced the mutual customer

    carrierLineHaulTotal number

    The total cost of the carrier not including the fuel surcharge and other line-haul related accessorial costs like 'tracking acceptance' or 'guaranteed delivery'. carrierFreightCost + carrierFuelCost + any linehaul related costs that may be added on the rate confirmation such as guaranteed delivery, chaine tracking acceptance, etc.

    carrierPaymentTotal number

    The total amount the carrier was paid for this shipment.

    customerChargeTotal number

    The rate that the customer was charged for this shipment.

    customerInvoiceTotal number

    The total amount that was invoiced to the shipper/customer. This is usually the customerQuoteTotal plus any fees.

    customerQuoteTotal number

    The total amount that was quoted to the customer.

    hazmatIndicator boolean nullable

    Indicates whether the load is hazmat. This is used load matching.

    hotLoadIndicator boolean nullable

    Indicates whether this is an urgent or important. This is used for load matching.

    loadPostDescription string nullable

    Additional information about the load that is used for load matching. This is used for the load board and is carrier facing.

    mode ShipmentMode

    Possible values: [FTL, LTL, Intermodal]

    The mode of the load

    origin object nullable

    The origin of the load. It is recommended to provide all the stops in the stops array.

    addressLabel string
    boundingBox string[]

    A bounding box of the address. This is used for load collaboration and Geo-fence

    city

    The city of the address

    coordinates object

    The coordinates of the address.

    latitude number
    longitude number
    country string

    The country of the address

    countryCode string

    The country code of the address

    county string

    The county of the address

    postalCode string

    The postal code of the address

    postalCodeSuffix string

    The postal code suffix of the address

    state string

    The state of the address

    stateCode string

    The state code of the address

    street string

    The street of the address

    streetNumber string

    The street number of the address

    suiteNumber string

    The suite number of the address

    originAppointment object nullable
    start object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    end object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    isFirstComeFirstServe boolean

    Indicates whether the appointment is first come first serve. This is used for load matching and carrier collaboration.

    proofOfDeliveryReceived boolean nullable

    Whether the POD has been received. This is used by the copilot for automated POD retrieval workflows.

    referenceNumbers object nullable

    The various reference numbers on the load. This is used for carrier collaboration.

    billOfLading string

    The bill of lading number. This is used for load collaboration in the Chaine mobile app.

    billingReferenceNumber string

    The billing reference number. This can be used to help identify the load in the Chaine for your customers when sharing tracking.

    orderNumber string

    The order number. This can be used to help identify the load in the Chaine for your customers when sharing tracking.

    pickupNumber string

    The pick-up numberr. This is used for load collaboration in the Chaine mobile app.

    purchaseOrderNumber string

    The purchase order number. This can be used to help identify the load in the Chaine for your customers when sharing tracking.

    progressiveRotatingOrderNumber string

    The PRO number. This can be used to help identify the load in the Chaine for your customers when sharing tracking.

    sealine object nullable

    Only relevant for container tracking. The sealine object is used to provide the container number and other relevant information for container tracking.

    billOfLadingNumber string nullable

    The master bill of lading number. This is the preferred method for tracking containers.

    bookingNumber string nullable
    trackingAction string

    Possible values: [startTracking, stopTracking]

    shipmentNumber string

    The user facing non-unique load number

    shipmentStatus ShipmentStatus

    Possible values: [Canceled, Carrier assigned, Delivered, In transit, Needs carrier]

    The load status of the load i.e. In transit, Delivered, etc.

    specialInstructions string nullable

    The special instructions for the load that is relayed to the carrier. This is used for the chaine mobile app for drivers and also for carrier collaboration features.

    stops object[] nullable

    The array of all of the stops. Always provide the latest stops. If an appointment gets updated, just send the entire object with the updated stops.

  • Array [
  • appointment object
    start object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    end object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    isFirstComeFirstServe boolean

    Indicates whether the appointment is first come first serve. This is used for load matching and carrier collaboration.

    arrivalDateTime object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    chaineCustomerStopID string

    Your internal unique stop ID

    departureDateTime object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    eta object
    date string

    A date in the format of MM-DD-YYYY or YYYY-MM-DD. We can configure to map your format during integration to a Chaine format.

    time string

    A time in any format. We can configure to map your format during integration to a Chaine format.

    timezone string

    The timezone of the appointment. This is optional.

    instructions string

    Any stop specific special instructions that can be relayed to the carrier. This is used for carrier collaboration and shown in the driver mobile app.

    pickupDeliveryNumber string

    If the stop has a specific pickup/delivery number that the carrier needs to reference to the warehouse. This is used for carrier collaboration and shown in the driver mobile app.

    referenceNumber string

    Often times there are reference numbers on a stop that may refer to a specific pickup number. If you have an additional reference number field, you can send it.

    sequence number

    The sequence of the stop. Required in the stops array.

    type StopTypeEnum

    Possible values: [Pick, Drop, Both]

    Indicates whether the stop is a pick or drop

    warehouse object
    chaineCustomerWarehouseID string nullable

    Your internal unique warehouse ID

    address object
    addressLabel string
    boundingBox string[]

    A bounding box of the address. This is used for load collaboration and Geo-fence

    city

    The city of the address

    coordinates object

    The coordinates of the address.

    latitude number
    longitude number
    country string

    The country of the address

    countryCode string

    The country code of the address

    county string

    The county of the address

    postalCode string

    The postal code of the address

    postalCodeSuffix string

    The postal code suffix of the address

    state string

    The state of the address

    stateCode string

    The state code of the address

    street string

    The street of the address

    streetNumber string

    The street number of the address

    suiteNumber string

    The suite number of the address

    name string nullable

    The warehouse location name. This is used for carrier collaboration and shown in the driver mobile app.

    warehouseHours string nullable

    The warehouse hours. This is used for carrier collaboration and shown in the driver mobile app.

    contact object nullable

    The warehouse contact. This is used for carrier collaboration and can optionally be shown in the driver mobile app.

    name string

    The name of the warehouse contact

    phone string

    The phone number of the warehouse contact

    email string

    The email of the warehouse contact

  • ]
  • tiveDeviceID string nullable

    If there is a Tive device ID associated with the load, this is the ID of the Tive device that is used for tracking the load.

    tmsRates object nullable

    Internal rates that may be specified by users using the TMS

    source BookingRatesSource

    The source of the rates i.e. DAT, Greenscreens, TMS

    maxRate object

    The maximum rate that the chaine customer is willing to pay for the load. This is used for load matching.

    value number

    The value of the currency

    currency string

    The currency code i.e. USD, CAD, etc...

    minRate object

    The minimum rate that the chaine customer is willing to pay for the load. This is used for load matching.

    value number

    The value of the currency

    currency string

    The currency code i.e. USD, CAD, etc...

    startRate object

    The starting rate that is determined by the Chaine customer (or source) for the load. This is used for load matching.

    value number

    The value of the currency

    currency string

    The currency code i.e. USD, CAD, etc...

    targetRate object

    The target rate that is determined by the Chaine customer (or source) for the load. This is used for load matching.

    value number

    The value of the currency

    currency string

    The currency code i.e. USD, CAD, etc...

    tmsURL string nullable

    If your TMS is web based and has a unique URL for the load, this is the URL to the load which Chaine uses inside of the app to provide a better user experience for mutual users.

    trailerNumber string nullable

    Usually the trailer number field indicates the trailer the carrier has assigned to the load. This is used for ELD tracking if the carrier is using ELD tracking.

    truckNumber string nullable

    Usually the truck number field indicates the truck the carrier has assigned to the load. This is used for ELD tracking if the carrier is using ELD tracking.

    updatedBy object nullable

    The user that last updated the load

    id string

    Your internal unique user ID

    email string
    weight object nullable

    The weight details of the load

    value number

    The value of the weight

    unit WeightUnit

    Possible values: [lb, kg]

    The unit of measure for the weight

Responses

A successful operation.


Schema
    any
Loading...