Webservice to get a shipping quote. You can use either Rest or Soap calls shown below.
Name | Service URL | Additional details |
---|---|---|
Try Rating Call | https://api.forwardair.com/ltlservices/v2/fastQuoteService.html | Test Request API credentials for your account, then use this webpage to see what the request and response look like for your account |
Rest | ${baseUrl}/ltlservices/v2/rest/waybills/quote | Example test url: https://test-api.forwardair.com/ltlservices/v2/rest/waybills/quote |
Soap | ${baseUrl}/ltlservices/v2/FastQuoteService |
Example test url: https://test-api.forwardair.com/ltlservices/v2/FastQuoteService
WSDL for Quote Service: Quote WSDL |
Name | Type | Required | Description |
---|---|---|---|
user | Header param | Y | Your API username. Please note this is not the same as your web username. |
password | Header param | Y | Your API password. Please note this is not the same as your web password. |
customerId | Header param | Y | Your API customerId. |
Content-Type | Header param | Y | application/xml. Json payload is not supported. |
Body | Body | Y | Quote xml. Quote xml must meet the Quote Request Schema. |
Name | Type | Required | Description |
---|---|---|---|
user | String | Y | Your API username. Please note this is not the same as your web username. |
password | String | Y | Your API password. Please note this is not the same as your web password. |
customerId | String | Y | Your API customerId. |
quoteRequest | String | Y | Quote xml payload as a string. Quote xml must meet the Quote Request Schema. Please wrap the Quote xml inside <![CDATA[<Quote xml here>]]> or escape the xml payload. |
Response will contain the the quote and charge details.
Name | Type | Required | Description |
---|---|---|---|
QuoteResponse | String | Y | Quote Response xml data. Schema for this is Quote Response Schema. |
Quote payload root object is <FAQuoteRequest>
Name | Type | Required | Description |
---|---|---|---|
BillToCustomerNumber | String | Y | Your Forward billing account number. This will drive the negotiated rate tariff. Example: <BillToCustomerNumber>1234567</BillToCustomerNumber> |
ShipperCustomerNumber | String | Y | Your Forward shipper account number. If you do not have separate shipping account number, you can use same value as BillToCustomerNumber. Example: <ShipperCustomerNumber>1234567</ShipperCustomerNumber> |
Origin | Object | Y | Origin of shipment (see below for members). |
OriginAirportCode | String | N | Part of the Origin object. Use if you are shipping from FA airport code. Example: <OriginAirportCode>DFW</OriginAirportCode> |
OriginZipCode | String | N | Part of the Origin object. Use if you are shipping from zip code. Example: <OriginZipCode>75063</OriginZipCode> |
OriginCountryCode | String | N | Part of the Origin object. Use if you are shipping from zip code. US, MX, CA. Defaults to US. Example: <OriginCountryCode>US</OriginCountryCode> |
Pickup | Object | N | Part of the Origin object. Use if you are shipping from zip code (see below for members). |
AirportPickup | String | N | Part of the Pickup object. Use in conjunction with OriginAirportCode. Values are Y/N. Example: <AirportPickup>N</AirportPickup> |
PickupAccessorials | Array | N | Part of the Pickup object. Use if specials services are needed as part of pickup. |
PickupAccessorial | String | N | Part of the PickupAccessorials array. List of current accessorial codes can be found using the accessorials webservice. Example: <PickupAccessorial>PJP</PickupAccessorial> |
Destination | Object | Y | Destination of shipment (see below for members) |
DestinationAirportCode | String | N | Part of the Destination object. Use if you are shipping to FA airport code. Example: <DestinationAirportCode>ATL</DestinationAirportCode> |
DestinationZipCode | String | N | Part of the Destination object. Use if you are shipping to zip code. Example: <DestinationZipCode>30303</DestinationZipCode> |
DestinationCountryCode | String | N | Part of the Destination object. Use if you are shipping to zip code. US, MX, CA. Defaults to US. Example: <DestinationCountryCode>US</DestinationCountryCode> |
Delivery | Object | N | Part of the Destination object. Use if you are shipping to zip code (see below for members). |
AirportDelivery | String | N | Part of the Delivery object. Use in conjunction with DestinationAirportCode. Values are Y/N. Example: <AirportDelivery>N</AirportDelivery> |
DeliveryAccessorials | Array | N | Part of the Delivery object. Use if specials services are needed as part of delivery. |
DeliveryAccessorial | String | N | Part of the DeliveryAccessorials array. List of current accessorial codes can be found using the accessorials webservice. Example: <DeliveryAccessorial>PJD</DeliveryAccessorial> |
Dimensions | Array | N | Array of Dimension. |
Dimension | Object | Y | Part of Dimensions. Elements below. |
Pieces | Number | Y | Part of Dimension. Number of 'handling' pieces with this dimension not 'said to contain' pieces. For example if you have 1 pallet with 50 pieces, please send 1 piece here with the dimensions of the pallet. |
Length | Number | Y | Part of Dimension. Length in inches. |
Width | Number | Y | Part of Dimension. Width in inches. |
Height | Number | Y | Part of Dimension. Height in inches. |
FreightDetails | Array | Y | Array of FreightDetail. |
FreightDetail | Object | Y | Part of the FreightDetails array. |
FreightClass | String | N | Part of the FreightDetail object. Freight class. Valid values are: 50, 55, 60, 65, 70, 77.5, 85, 92.5, 100, 110, 125, 150, 175, 200, 250, 300, 400, 500. Required if your tariff is based on freight class. Example: <FreightClass>100</FreightClass> |
Weight | Number | Y | Part of the FreightDetail object. Weight of freight. Example: <Weight>250.0</Weight> |
WeightType | String | Y | Part of the FreightDetail object. L for Lbs and K for Kgs. Example: <WeightType>L</WeightType> |
Pieces | Number | Y | Part of the FreightDetail object. Handling pieces. Loose pieces or pallets. Do not send said to contain pieces in this field. Example: <Pieces>3</Pieces> |
Description | String | Y | Part of the FreightDetail object. Freight description. Example: <Description>GE APPLIANCES</Description> |
Hazmat | String | Y | Hazmat freight. Y/N. Example: <Hazmat>N</Hazmat> |
InbondShipment | String | Y | Inbond freight. Y/N. Example: <Inbond>N</Inbond> |
DeclaredValue | Number | Y | Insurance on the shipment in US dollars. Example: <DeclaredValue>500.00</DeclaredValue> |
ShippingDate | String | Y | Expected shipping date in YYYY-MM-DD format. Please note that shipping date will be used to lookup rates. Example: <ShippingDate>2020-01-05</ShippingDate> |
Successful quote call.
Name | Type | Required | Description |
---|---|---|---|
http status code | 200 | Y | Code 200 for successful request. |
QuoteResponse | Response body | Y | Quote Response xml data. Schema for this is Quote Response Schema. |
Name | Type | Required | Description |
---|---|---|---|
WeightAdjusted | String | Y | Part of the FreightDetail response element. Y/N. If weight was adjusted due to dimensional weight being higher and being used to calculate charges. Example: <WeightAdjusted>N</WeightAdjusted> |
QuoteTotal | Number | Y | Total for the quote in USD. Example: <QuoteTotal>300.22</QuoteTotal> |
TotalWeight | Number | Y | Total weight. Example: <TotalWeight>1500.0</TotalWeight> |
TransitDaysTotal | Number | Y | Total days of transit (includes weekend). Please note that the shipping day has to be valid business day and the freight must be picked up according to market schedule. Example: <TransitDaysTotal>5</TransitDaysTotal> |
ChargeLineItems | Array | Y | Array of ChargeLineItem. |
ChargeLineItem | Object | Y | Charge line. |
Code | String | Y | Part of ChargeLineItem. Charge line code. |
Description | String | Y | Part of ChargeLineItem. Description of charge line. |
Zone | String | Y | Part of ChargeLineItem. Zone of service. Will be returned on Code PUL, DEL and LTL only. |
ServiceLevel | Number | Y | Part of ChargeLineItem. ServiceLevel is transit days for the given service. Will be returned on Code PUL, DEL, LTL. 0 means same day service. |
Amount | Number | Y | Part of ChargeLineItem. Amount of charge line in USD. 0.00 mean no charge service. |
Unsuccessful quote call.
Name | Type | Required | Description |
---|---|---|---|
http status code | 400, 500 | Y | Code 400 for bad request, 500 for errors. |
FAError | String | Y | Error Response xml data. Schema for this is Error Response Schema. |
Zip to Zip rate request. This example shows a rest xml payload.
<?xml version="1.0" encoding="UTF-8"?> <FAQuoteRequest> <BillToCustomerNumber>1234567</BillToCustomerNumber> <ShipperCustomerNumber>1234567</ShipperCustomerNumber> <Origin> <OriginAirportCode/> <OriginZipCode>90746</OriginZipCode> <OriginCountryCode>US</OriginCountryCode> <Pickup> <AirportPickup>N</AirportPickup> </Pickup> </Origin> <Destination> <DestinationAirportCode/> <DestinationZipCode>48154</DestinationZipCode> <DestinationCountryCode>US</DestinationCountryCode> <Delivery> <AirportDelivery>N</AirportDelivery> </Delivery> </Destination> <FreightDetails> <FreightDetail> <Weight>1500</Weight> <WeightType>L</WeightType> <Pieces>1</Pieces> <FreightClass>60.0</FreightClass> </FreightDetail> </FreightDetails> <Dimensions> <Dimension> <Pieces>1</Pieces> <Length>40</Length> <Width>30</Width> <Height>20</Height> </Dimension> </Dimensions> <Hazmat>N</Hazmat> <InBondShipment>N</InBondShipment> <DeclaredValue>0.00</DeclaredValue> <ShippingDate>2020-11-02</ShippingDate> </FAQuoteRequest>
Zip to Zip rates. Rates shown here are for sample only and do not represent any active contract.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <FAQuoteResponse> <BillToCustomerNumber>1234567</BillToCustomerNumber> <ShipperCustomerNumber>1234567</ShipperCustomerNumber> <OriginAirportCode></OriginAirportCode> <OriginZipCode>90746</OriginZipCode> <OriginCountryCode>US</OriginCountryCode> <DestinationAirportCode></DestinationAirportCode> <DestinationZipCode>48154</DestinationZipCode> <DestinationCountryCode>US</DestinationCountryCode> <Dimensions> <Dimension> <Pieces>1</Pieces> <Length>40</Length> <Width>30</Width> <Height>20</Height> </Dimension> </Dimensions> <FreightDetails> <FreightDetail> <FreightClass>60</FreightClass> <Pieces>1</Pieces> <Weight>1500.0</Weight> <WeightType>L</WeightType> <WeightAdjusted>N</WeightAdjusted> </FreightDetail> </FreightDetails> <Hazmat>N</Hazmat> <InBondShipment>N</InBondShipment> <DeclaredValue>0.00</DeclaredValue> <QuoteDate>2020-11-15</QuoteDate> <QuoteTotal>400.39</QuoteTotal> <TotalWeight>1500.0</TotalWeight> <TransitDaysTotal>3</TransitDaysTotal> <ChargeLineItems> <ChargeLineItem> <Code>PUL</Code> <Description>PICKUP</Description> <Zone>LGBLB</Zone> <ServiceLevel>0</ServiceLevel> <Amount>0.00</Amount> </ChargeLineItem> <ChargeLineItem> <Code>DEL</Code> <Description>DELIVERY</Description> <Zone>A</Zone> <ServiceLevel>0</ServiceLevel> <Amount>0.00</Amount> </ChargeLineItem> <ChargeLineItem> <Code>LTL</Code> <Description>LINEHAUL</Description> <Zone></Zone> <ServiceLevel>3</ServiceLevel> <Amount>0.00</Amount> </ChargeLineItem> <ChargeLineItem> <Code>FSC</Code> <Description>FSC</Description> <Zone></Zone> <ServiceLevel>0</ServiceLevel> <Amount>57.50</Amount> </ChargeLineItem> <ChargeLineItem> <Code>PUS</Code> <Description>PICKUP SURCHARGE</Description> <Zone></Zone> <ServiceLevel>0</ServiceLevel> <Amount>7.50</Amount> </ChargeLineItem> <ChargeLineItem> <Code>060</Code> <Description>CLASS 60</Description> <Zone></Zone> <ServiceLevel>0</ServiceLevel> <Amount>319.42</Amount> </ChargeLineItem> <ChargeLineItem> <Code>LHS</Code> <Description>STATION SURCHARGE</Description> <Zone></Zone> <ServiceLevel>0</ServiceLevel> <Amount>15.97</Amount> </ChargeLineItem> </ChargeLineItems> </FAQuoteResponse>
Airport to Airport rate request. This example shows a soap request.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/> <soap:Body> <ns2:getQuote xmlns:ns2="http://webservices.shipmentbooking.forwardair.com/"> <user>XXXXXXXX</user> <password>XXXXXXXXX</password> <customerId>XXXXXXXXXX</customerId> <quoteRequest><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <FAQuoteRequest> <BillToCustomerNumber>1234567</BillToCustomerNumber> <ShipperCustomerNumber>1234567</ShipperCustomerNumber> <Origin> <OriginAirportCode>DFW</OriginAirportCode> <Pickup> <AirportPickup>Y</AirportPickup> <PickupAccessorials></PickupAccessorials> </Pickup> </Origin> <Destination> <DestinationAirportCode>ATL</DestinationAirportCode> <DestinationZipCode></DestinationZipCode> <Delivery> <AirportDelivery>Y</AirportDelivery> <DeliveryAccessorials></DeliveryAccessorials> </Delivery> </Destination> <FreightDetails> <FreightDetail> <FreightClass>70</FreightClass> <Weight>500</Weight> <WeightType>L</WeightType> <Pieces>2</Pieces> <Description>Equipment</Description> </FreightDetail> </FreightDetails> <Hazmat>N</Hazmat> <InBondShipment>N</InBondShipment> <DeclaredValue>0</DeclaredValue> <ShippingDate>2020-11-17</ShippingDate> </FAQuoteRequest>]]></quoteRequest> </ns2:getQuote> </soap:Body> </soap:Envelope>
Zip to Zip rates. Rates shown here are for sample only and do not represent any active contract.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <FAQuoteResponse> <BillToCustomerNumber>1234567</BillToCustomerNumber> <ShipperCustomerNumber>1234567</ShipperCustomerNumber> <OriginAirportCode></OriginAirportCode> <OriginZipCode>90746</OriginZipCode> <OriginCountryCode>US</OriginCountryCode> <DestinationAirportCode></DestinationAirportCode> <DestinationZipCode>48154</DestinationZipCode> <DestinationCountryCode>US</DestinationCountryCode> <Dimensions> <Dimension> <Pieces>1</Pieces> <Length>40</Length> <Width>30</Width> <Height>20</Height> </Dimension> </Dimensions> <FreightDetails> <FreightDetail> <FreightClass>60</FreightClass> <Pieces>1</Pieces> <Weight>1500.0</Weight> <WeightType>L</WeightType> <WeightAdjusted>N</WeightAdjusted> </FreightDetail> </FreightDetails> <Hazmat>N</Hazmat> <InBondShipment>N</InBondShipment> <DeclaredValue>0.00</DeclaredValue> <QuoteDate>2020-11-15</QuoteDate> <QuoteTotal>400.39</QuoteTotal> <TotalWeight>1500.0</TotalWeight> <TransitDaysTotal>3</TransitDaysTotal> <ChargeLineItems> <ChargeLineItem> <Code>PUL</Code> <Description>PICKUP</Description> <Zone>LGBLB</Zone> <ServiceLevel>0</ServiceLevel> <Amount>0.00</Amount> </ChargeLineItem> <ChargeLineItem> <Code>DEL</Code> <Description>DELIVERY</Description> <Zone>A</Zone> <ServiceLevel>0</ServiceLevel> <Amount>0.00</Amount> </ChargeLineItem> <ChargeLineItem> <Code>LTL</Code> <Description>LINEHAUL</Description> <Zone></Zone> <ServiceLevel>3</ServiceLevel> <Amount>0.00</Amount> </ChargeLineItem> <ChargeLineItem> <Code>FSC</Code> <Description>FSC</Description> <Zone></Zone> <ServiceLevel>0</ServiceLevel> <Amount>57.50</Amount> </ChargeLineItem> <ChargeLineItem> <Code>PUS</Code> <Description>PICKUP SURCHARGE</Description> <Zone></Zone> <ServiceLevel>0</ServiceLevel> <Amount>7.50</Amount> </ChargeLineItem> <ChargeLineItem> <Code>060</Code> <Description>CLASS 60</Description> <Zone></Zone> <ServiceLevel>0</ServiceLevel> <Amount>319.42</Amount> </ChargeLineItem> <ChargeLineItem> <Code>LHS</Code> <Description>STATION SURCHARGE</Description> <Zone></Zone> <ServiceLevel>0</ServiceLevel> <Amount>15.97</Amount> </ChargeLineItem> </ChargeLineItems> </FAQuoteResponse>