Rate and Quote Automation - Receive Shipment Rate Response

Receive rates for a single shipment back from your Rate Management System (RMS).

NameDescription
RootChain.io schema for receiving rates applicable to a shipment from a Rate Management System.
RateAll charges applicable to a shipment described in a rate request.
PartyRepresents a named party on a job.
PartyIdentifierA code and context that can be used to uniquely identify a party.
RoutingLegA routing leg on a shipment from an origin to a destination.
RouteLocationA single stop on the shipment's overall route.
AddressA location representing a street address.
AirportA location representing an airport.
UnLocodeA location representing a UN location code.
BuyChargeA single rate amount associated with the overall rate that reflects the cost amount the requester will owe for the charge. These charges would affect the requester's AP journal.
SellChargeA single rate amount associated with the overall rate that reflects the amount the requester is expecting to charge their client on the shipment. These charges would affect the requester's AR journal.
ChargeRateThe details of the rate calculation applied when calculated the charge amount.
Value
Dimensions
ContainerContainer information used to calculate the shipping rates.
PackagePackaging information used to calculate the shipping rates.
Weight
Volume
CustomPropertiesAn object an input converter can utilize to pass any custom data back into a flow that can potentially be utilized by an output converter.
RoutingLeg_transit_timeThe approximate amount of time it will take to transport the goods from the origin to the destination. If the RMS only tracks a single time value, present that value in both the minimum and maximum duration properties.
BuyCharge_charge_totalThe calculated total amount represented by the charge code. In cases where a total cannot be determined, such as 'on request' / 'if applicable' type rates, the amount may be left undefined. In all other cases, the amount should be present.
SellCharge_charge_totalThe calculated total amount represented by the charge code. In cases where a total cannot be determined, such as 'on request' / 'if applicable' type rates, the amount may be left undefined. In all other cases, the amount should be present.
NameData TypeDescriptionRequired
ratesArray<Rate>All the rates applicable to the shipment data in a rate request.YES
NameData TypeDescriptionRequired
rms_rate_identifierStringThe 'primary key' uniquely identifying this particular rate in the RMS.
tms_system_identifierStringThe 'primary key' uniquely identifying the shipment in the source TMS system. This value should be used when importing data back into the TMS system to uniquely identify the shipment the rate data should be loaded into.
quote_numberStringThe quote number utilized to create the rate.
carrier_contract_numberStringThe carrier contract number that was utilized to build the rate.
transport_modeStringThe primary means of transport of the goods on their journey. Allowed values: sea, air, road, rail, sea_air, air_sea, inland_waterway, rail_sea, rail_air.
movement_typeStringThe type of shipment service defining the location types where the carrier will receive the goods and where the carrier will relinquish the goods. Allowed values: port_to_port, door_to_door, door_to_port, port_to_door.
containerization_typeStringThe container load type to rate. Allowed values: fcl, lcl, ftl, ltl.
carrierPartyThe expected carrier that will be the primary party responsible for transporting the goods.
controlling_partyPartyThe owning party of the rate. In a multi-tenant RMS, this party will indicate the company that the rate response is associated with.
customerPartyThe rate owner's customer the rates are being received for.
rate_start_dateStringThe starting date the rate is valid from.
rate_end_dateStringThe ending date the rate is valid until.
estimated_departure_dateStringThe estimated departure date of the shipment. This date is the primary date used to determine validity of the rates.
pickup_window_startStringThe earliest date the pickup haulage may occur. If an exact pickup date is known, populate that date into both the pickup window start and pickup window end dates.
pickup_window_endStringThe latest date the pickup haulage may occur. If an exact pickup date is known, populate that date into both the pickup window start and pickup window end dates.
delivery_window_startStringThe earliest date the delivery haulage may occur. If an exact delivery date is known, populate that date into both the delivery window start and pickup window end dates.
delivery_window_endStringThe latest date the delivery haulage may occur. If an exact delivery date is known, populate that date into both the delivery window start and delivery window end dates.
carrier_service_levelStringThe requested service level for this shipment. Different service levels generally affect the number of days / hours the shipment may take to be fulfilled. This is more often used in air freight and is typically a value like "Standard", "Express", "Premium", "Priority" or "Economy".
freight_payment_termsStringThe freight terms of payment indicating the party responsible for freight charges. Allowed values: collect, prepaid, third_party.
inco_termsStringThe terms of sale defining the responsibilities of the consignor/seller and consignee/buyer. Expired terms dat, daf, des, deq, ddu are included for backwards compatibility sake, though it is very highly recommended to no longer utilize them. Allowed values: exw, fca, fas, fob, cfr, cif, cpt, cip, dap, dpu, ddp, dat, daf, des, deq, ddu.
directionStringThe directionality of the shipment from the point of view of the controlling party in the TMS. Typically this information is only a factor in local pickup/delivery rates. foreign_to_foreign is also known as triangle, third-party or cross-trade shipments. Allowed values: import, export, domestic, foreign_to_foreign.
description_of_goodsStringA generalized description of the cargo.
gross_weightWeightThe gross weight of the cargo.
volumeVolumeThe total volume of the cargo.
chargeable_weightWeightThe calculated chargeable weight of the cargo.
environmental_pollutantBooleanTrue if the cargo is considered an environmental pollutant.
hazardousBooleanTrue if the cargo is considered hazardous or dangerous goods.
out_of_gauge_freightBooleanTrue if the cargo is considered out of gauge (OOG) and does not fit into standard shipping containers.
temperature_controlledBooleanTrue if the cargo must be transported using specific temperature settings.
stackableBooleanTrue if the goods packaging allows for it to be stacked.
securedBooleanTrue if the cargo will be stabilized and secured for transport.
carriage_valueValueThe total goods selling price or replacement cost.
customs_valueValueThe total goods value for customs declaration purposes.
company_codeStringThe TMS's native code for identifying which internal company is requesting the rates.
department_codeStringThe TMS's native code for identifying which internal department / division is requesting the rates.
branch_codeStringThe TMS's native code for identifying which internal branch is requesting the rates.
containersArray<Container>The container information rated for containerized shipments.
outer_packsArray<Package>The packaging information rated for non-containerized shipments.
routing_legsArray<RoutingLeg>A breakdown of the important waypoints on the shipment's journey. Typically, this will simply be a single origin and destination - but may include additional stops like precarriage points or main leg vias.
buy_chargesArray<BuyCharge>A list of all the buy charges associated with this overall rate.
sell_chargesArray<SellCharge>A list of all the sell rates associated with this overall rate.
custom_propertiesCustomProperties
NameData TypeDescriptionRequired
identifiersArray<PartyIdentifier>An array of all applicable identifiers that can be used to identify the party.
nameStringThe entity's name.
address_1StringThe address' street number and name.
address_2StringThe address' secondary address information.
cityStringThe address' city component.
country_subdivisionStringThe country specific subdivision code. This could represent a county, province, state, etc. In order to maximize interoperability, you should utilize the ISO 3166-2 country subdivision identifiers when providing this data.
countryStringThe address' 2 character ISO-3166-2 country Code.
postal_codeStringThe unique postal code identifier for the address.
NameData TypeDescriptionRequired
codeStringThe identifier codeYES
code_typeStringThe type of data that the identifier code represents. The tms_external_identifier represents a code value that will uniquely identify the party to the sending TMS system without value translations. The rms_external_identifier represents a code value that will uniquely identify the party to the receiving rate management system (RMS) without value translations. Allowed values: tms_external_identifier, rms_external_identifier, iata, scac, legal_entity_id, duns.YES
code_countryStringThe 2 character ISO-3166-2 country code that the id code was issued in / by.
NameData TypeDescriptionRequired
nameStringA short name / description of the leg as presented in the RMS.
leg_typeStringAllowed values: pre_carriage, main, on_carriage.
transport_modeStringThe primary means of transport of the goods on their journey. Allowed values: sea, air, road, rail, inland_waterway.
carrier_contract_numberStringThe contract number the RMS is using to rate this portion of the shipment / leg.
carrierPartyThe carrier responsible for the movement of goods on this leg. This would not necessarily be the creditor for the entire rate.
originRouteLocationThe originating point of the leg.
destinationRouteLocationThe terminating point of the leg.
transit_timeRoutingLeg_transit_timeThe approximate amount of time it will take to transport the goods from the origin to the destination. If the RMS only tracks a single time value, present that value in both the minimum and maximum duration properties.
routing_leg_identifierStringUniquely identifies this routing leg in this document. This value is used solely to link buy and sell charges to a particular routing leg - it should not carry any other meaning, will likely be a transient value and should not be used as a persistent identifier for this routing leg.
NameData TypeDescriptionRequired
NameData TypeDescriptionRequired
typeStringA location type identifier. Allowed values: address.YES
nameStringA name for the address. Typically the name of the business located at the address.
address_1StringThe address' street number and name.
address_2StringThe address' secondary address information.
cityStringThe address' city component.YES
country_subdivisionStringThe country specific subdivision code. This could represent a county, province, state, etc. In order to maximize interoperability, you should utilize the ISO 3166-2 country subdivision identifiers when providing this data.
countryStringThe address' 2 character ISO-3166-2 country Code.YES
postal_codeStringThe unique postal code identifier for the address.
unlocodeStringA UN/Locode identifier correlated with the address.
unlocode_descriptionStringA free text description of the UN/Locode.
NameData TypeDescriptionRequired
typeStringA location type identifier Allowed values: airport.YES
iata_codeStringThe IATA airport location identifier.YES
iata_code_descriptionStringA free text description of the IATA Code.
unlocodeStringThe UN/Locode identifier correlated with the IATA code.
NameData TypeDescriptionRequired
typeStringA location type identifier Allowed values: unlocode.YES
unlocodeStringThe UN/Locode identifier for the sea port.YES
unlocode_descriptionStringA free text description of the UN/Locode.
NameData TypeDescriptionRequired
charge_codeStringA code identifying the charge. This property should be the primary charge code identifying used for all integrations. If the RMS provides a single external charge identifier, this is the property that should be used to track this value. If the RMS has fields like external or foreign reference, that value should appear in this property.YES
rms_charge_identifierStringA code identifying the charge in the RMS. This code may be referred to by the RMS as an internal identifier.
descriptionStringA short description of the services rendered identified by the charge_code.
charge_totalBuyCharge_charge_totalThe calculated total amount represented by the charge code. In cases where a total cannot be determined, such as 'on request' / 'if applicable' type rates, the amount may be left undefined. In all other cases, the amount should be present.YES
group_codeStringA code that can be used to group charges together into logical units.
commentsStringAny additional comments associated with the charge. This can be used to relay additional information like applicable conditions, etc
payment_termsStringIdentifies whether the charges are owed on prepaid or collect terms. Allowed values: prepaid, collect, third_party.
creditorPartyThe party the charge will ultimately be owed to.
department_codeStringThe TMS's native code for identifying which internal department / division is requesting the rates.
branch_codeStringThe TMS's native code for identifying which internal branch is requesting the rates.
valid_start_dateStringThe earliest date the charge can be applied.
valid_end_dateStringThe latest date the charge can be applied.
routing_leg_identifierStringIf this leg is associated with a specific routing leg, this property should match to that legs identifier.
sell_charge_identifierStringIf this leg is associated with a specific sell charge, this property should match to that charge's identifier
charge_rateChargeRate
custom_propertiesCustomProperties
NameData TypeDescriptionRequired
charge_codeStringA code identifying the charge. This property should be the primary charge code identifying used for all integrations. If the RMS provides a single external charge identifier, this is the property that should be used to track this value. If the RMS has fields like external or foreign reference, that value should appear in this property.YES
rms_charge_identifierStringA code identifying the charge in the RMS. This code may be referred to by the RMS as an internal identifier.
descriptionStringA short description of the services rendered identified by the charge_code.
charge_totalSellCharge_charge_totalThe calculated total amount represented by the charge code. In cases where a total cannot be determined, such as 'on request' / 'if applicable' type rates, the amount may be left undefined. In all other cases, the amount should be present.YES
group_codeStringA code that can be used to group charges together into logical units.
commentsStringAny additional comments associated with the charge. This can be used to relay additional information like applicable conditions, etc
payment_termsStringIdentifies whether the charges are owed on prepaid or collect terms. Allowed values: prepaid, collect, third_party.
department_codeStringThe TMS's native code for identifying which internal department / division is requesting the rates.
branch_codeStringThe TMS's native code for identifying which internal branch is requesting the rates.
valid_start_dateStringThe earliest date the charge can be applied.
valid_end_dateStringThe latest date the charge can be applied.
routing_leg_identifierStringIf this leg is associated with a specific routing leg, this property should match to that legs identifier.
sell_charge_identifierStringUniquely identifies this particular sell charge in this document. This value is used solely to link buy and sell charges together - it should not carry any other meaning, will likely be a transient value and should not be used as a persistent identifier for this routing leg.
charge_rateChargeRate
custom_propertiesCustomProperties
NameData TypeDescriptionRequired
calculation_methodStringThe type of calculation that was utilized to determine the charge amount. flat = single constant amount, volume = amount is based on a volumetric calculation, weight = amount is based on a weight calculation, weight_or_measurement = amount is based on the greater of weight or volumetric amounts, per = rate is based on a per X cost (where x will be tracked in the unit_of_measure property - may be shipment, document, etc), percent = rate is based on a percentage of freight, on_request = rate cannot be calculated but may be supplied on request. Allowed values: flat, volume, weight, chargeable_weight, weight_or_measurement, per, percent, on_request.
min_maxStringIndicates whether the charge amount was the minimum or maximum amount. If neither are applicable, then this value should be left undefined. Allowed values: minimum, maximum.
optionalBooleanIf true, the charge is an optional amount that may or may not be applicable given the conditions of the shipment.
included_in_freightBooleanIf true, the charge amount is already accounted for in another charge line representing the total freight amount. Typically, if an RMS has charges listed that are included_in_freight, these lines should not be accounted for when calculating total charge amounts as another line already carrying this amount.
unit_of_measureStringAllowed values: kilogram, pound, cubic_meter, cubic_foot, document, shipment, container, teu, seal, package, pallet, bill_of_lading, mile, kilometer, day, hour.
unit_costDecimalThe rate per unit_of_measure. If the charge was "$100 per 1000 pounds" then this value would be 100.
total_quantityDecimalThe total number of individual units used in the calculation. If the charge was based on weight, then this value would represent the full total weight.
units_per_incrementDecimalThe number of units for each increment in the amount calculation. If the charge was "$100 per 1000 LBS" then this value would be 1000.
unit_of_measure_subtypeStringUsed to indicate additional typing information about the unit of measure. This may be used to indicate the container size / type when a container uom is used or the type of document when a document uom is used.
NameData TypeDescriptionRequired
amountDecimalThe value amount.YES
currencyStringThe ISO 4217 currency code indicating the currency of the value.YES
NameData TypeDescriptionRequired
unitStringAllowed values: inch, foot, centimeter, meter.YES
lengthDecimalYES
widthDecimalYES
heightDecimalYES
NameData TypeDescriptionRequired
type_codeStringThe ISO 6346 container type code or standard Unit Load Device (ULD) type code that is expected to be utilized on the shipment.YES
quantityIntegerThe number of containers of the requested type that should be rated.YES
gross_weightWeightThe gross weight of the cargo in the container.
volumeVolumeThe total volume of the cargo in the container.
outer_packsArray<Package>The packaging information for goods inside the container(s).
custom_propertiesCustomProperties
NameData TypeDescriptionRequired
dimensionsDimensionsThe dimensions of the packages.
gross_weightWeightThe gross weight of the cargo in the container.
volumeVolumeThe total volume of the cargo in the container.
nmfc_freight_classStringThe National Motor Freight commodity classification.
nmfc_codeStringThe NMFC specific commodity code.
number_of_packagesIntegerThe number of packages associated with this package type.
package_type_codeStringA packaging code describing the cargo. When possible, the 2 character UN/ECE Trade Facilitation Recommendation No. 21 package code should be utilized to enhance interoperability.
package_type_descriptionStringA free text description of the goods packaging.
custom_propertiesCustomProperties
NameData TypeDescriptionRequired
amountDecimalThe numeric weight amountYES
unitStringThe unit of measure associated with the amount property. tonne = Metric Tonne (1,000 kilograms), ton = Imperial Tonne (1,000 pounds) Allowed values: kilogram, tonne, pound, ton.YES
NameData TypeDescriptionRequired
amountDecimalThe numeric volume amountYES
unitStringThe unit of measure associated with the amount property. gallon - US liquid gallon (3.785411784 litres), imperial_gallon = UK gallon (4.54609 litres) Allowed values: cubic_meter, cubic_foot, liter, gallon, imperial_gallon.YES
NameData TypeDescriptionRequired
NameData TypeDescriptionRequired
minimum_durationDecimalThe minimal amount of time it will take to transport the goods.
maximum_durationDecimalThe maximum amount of time it will take to transport the goods.
unitStringThe time unit the minimum and maximum values are expressed in. Allowed values: day, hour.
NameData TypeDescriptionRequired
amountDecimalThe value amount.
currencyStringThe ISO 4217 currency code indicating the currency of the value.YES
NameData TypeDescriptionRequired
amountDecimalThe value amount.
currencyStringThe ISO 4217 currency code indicating the currency of the value.YES