Forward Expedited LTL Web Services

API Services Home

Forward Expedited LTL Booking Web Service

Webservice to book LTL shipment. You can use either Rest or Soap calls shown below.

Service URL

Name Service URL Additional details
Rest ${baseUrl}/ltlservices/v2/rest/waybills/book Example test url: https://test-api.forwardair.com/ltlservices/v2/rest/waybills/book
Soap ${baseUrl}/ltlservices/v2/ShipmentBookingService Example test url: https://test-api.forwardair.com/ltlservices/v2/ShipmentBookingService
WSDL for Quote Service: Booking WSDL

Rest Booking Service

Request Parameters. POST ${baseUrl}/ltlservices/v2/rest/waybills/book
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 Booking xml. Booking xml must meet the Booking Request Schema.

Soap Booking Service

Request Parameters
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.
bookingRequest String Y Booking xml payload as a string. Booking xml must meet the Booking Request Schema.
Please wrap the Quote xml inside <![CDATA[<Quote xml here>]]> or escape the xml payload.
Response

Response will contain the the booking result.

Name Type Required Description
BookShipmentResponse String Y Book Response xml data. Schema for this is Book Response Schema.

Booking Payload root object is <FABookingRequest>

Name Type Required Description
testmode String Y Attribute of FABookingRequest element. Y/N. Set to Y for test shipments and N when you go live. You will also need to update the url to live url when going live.
Example: <FABookingRequest testmode="Y">
OrderDetails Element Y Part of FABookingRequest element.
OrderAction String Y Part of OrderDetails element. Create, Update, Cancel.
AirbillNumber Number N Send empty value unless you have a pre-assigned block of PRO numbers. If this is empty, the API call will auto assign the PRO number value.
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>
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 FreightDetails.
FreightClass Number Y Part of FreightDetail. 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>
Description String Y Part of FreightDetail. Freight description.
Pieces Number Y Part of FreightDetail. Handling pieces.
Weight Number Y Part of FreightDetail. Freight weight.
WeightType String Y Part of FreightDetail. Freight weight type, L for lb or K for Kgs.
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>
ReferenceNumbers Array Y Array of ReferenceNumber elements.
ReferenceNumber String Y Part of ReferenceNumbers. Please use your unique shipment ID as the first reference number and list out all possible reference numbers that could help service this shipment. (BOL, PO, MAWB, HAWB, etc).
SpecialInstructions String Y Any special instructions for this shipment.
OriginAirportCode String N Origin airport code. Use this field if freight is getting dropped at Forward terminal.
DestinationAirportCode String N Destination airport code. Use this field if is getting picked up from Forward terminal.
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>
EmergencyContact Object N Emergency contact for this shipment.
Name String Y Part of EmergencyContact. Name for this contact.
Phone String Y Part of EmergencyContact. Phone for this contact.
Email String Y Part of EmergencyContact. Email for this contact.
Pickup Object N Use if you are shipping from shipper zip code or need pickup at OriginAirportCode (see below for members).
AirportPickup String Y Part of the Pickup object. Set to Y and use in conjunction with OriginAirportCode.
Example: <AirportPickup>N</AirportPickup>
PickupAccessorials Array Y 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>LTP</PickupAccessorial>
Delivery Object N Part of the Destination object. Use if you are shipping to consignee zip code or need drop at DestinationAirportCode (see below for members).
AirportDelivery String Y Part of the Delivery object. Use in conjunction with DestinationAirportCode. Values are Y/N.
Example: <AirportDelivery>N</AirportDelivery>
ScheduledDeliveryDate Object N Part of the Delivery object. Expected scheduled delivery date in YYYY-MM-DD format.
Example: <ScheduledDeliveryDate>2020-01-05</ScheduledDeliveryDate>
DeliveryAccessorials Array Y 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>LTD</DeliveryAccessorial>
Shipper Object Y Shipper of this shipment.
ShipperLocationName String Y Part of Shipper object. Name of location.
ShipperAddress1 String Y Part of Shipper object. Address1 of location.
ShipperAddress2 String N Part of Shipper object. Address2 of location.
ShipperCity String Y Part of Shipper object. City of location.
ShipperState String Y Part of Shipper object. State of location.
ShipperZipCode String Y Part of Shipper object. Zip of location.
ShipperCountry String Y Part of Shipper object. Country of location, US, CA, MX.
ShipperContactName String Y Part of Shipper object. Contact name.
ShipperContactPhone String Y Part of Shipper object. Contact phone.
ShipperContactEmail String Y Part of Shipper object. Contact email.
ShipperOpenTime String Y Part of Shipper object. Open time, example <ShipperOpenTime>09:00:00</ShipperOpenTime>
ShipperCloseTime String Y Part of Shipper object. Close time, example <ShipperCloseTime>17:00:00</ShipperCloseTime>
Consignee Object Y Consignee of this shipment.
ConsigneeLocationName String Y Part of Consignee object. Name of location.
ConsigneeAddress1 String Y Part of Consignee object. Address1 of location.
ConsigneeAddress2 String N Part of Consignee object. Address2 of location.
ConsigneeCity String Y Part of Consignee object. City of location.
ConsigneeState String Y Part of Consignee object. State of location.
ConsigneeZipCode String Y Part of Consignee object. Zip of location.
ConsigneeCountry String Y Part of Consignee object. Country of location, US, CA, MX.
ConsigneeContactName String Y Part of Consignee object. Contact name.
ConsigneeContactPhone String Y Part of Consignee object. Contact phone.
ConsigneeContactEmail String Y Part of Consignee object. Contact email.
ConsigneeOpenTime String Y Part of Consignee object. Open time, example <ConsigneeOpenTime>09:00:00</ConsigneeOpenTime>
ConsigneeCloseTime String Y Part of Consignee object. Close time, example <ConsigneeCloseTime>17:00:00</ConsigneeCloseTime>
Response

Successful booking call.

Name Type Required Description
http status code 200 Y Code 200 for successful request.
FABookingResponse Response body Y FABookingResponse Response xml data. Schema for this is Book Response Schema.

Booking Payload root object is <FABookingRequest>

Name Type Required Description
FABookingResponse Object Y Successful response object
AirbillNumber String Y Part of FABookingResponse. Airbill number for booking.
Remarks String Y Part of FABookingResponse. Remarks for booking.
Booking Response

Unsuccessful booking call.

Name Type Required Description
http status code 400, 500 Y Code 400 for bad request, 500 for errors.
FAError Object Y Error Response xml data. Schema for this is Error Response Schema.
ErrorMessage String Y Part of FAError. Error message.


Request Samples
Sample Name Description
Zip to Zip Zip to Zip shipment where Forward will provide pickup, linehaul and delivery service. This same sample can be used for local pickup and delivery service as well. This same type of shipment is shown below as well with response data.
Zip to Terminal Zip to Terminal shipment where Forward will provide pickup and linehaul service.
Terminal to Zip Terminal to Zip shipment where Forward will provide linehaul and delivery service.
Terminal to Terminal Terminal to Terminal shipment where Forward will provide linehaul service.
Terminal to Terminal With Guaranteed Service Terminal to Terminal shipment with GS requested where Forward will provide linehaul service. If the lane is a GS lane, this service will be added.
Zip to Zip(SDD) Zip to Zip ScheduleDeliveryDate shipment where Forward will provide pickup, linehaul and delivery service. This same sample can be used for local pickup and delivery service as well.

Zip to Zip shipment booking request. This example shows a rest xml payload. Response data for all scenarios follows the same layout.

Rest call using xml body payload. Header params listed above must be present, the section below shows what the body xml can look like.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FABookingRequest testmode="Y">
	<OrderDetails>
		<OrderAction>Create</OrderAction>
		<BillToCustomerNumber>1234567</BillToCustomerNumber>
		<ShipperCustomerNumber>1234567</ShipperCustomerNumber>
		<Dimensions>
			<Dimension>
				<Pieces>2</Pieces>
				<Length>40</Length>
				<Width>50</Width>
				<Height>60</Height>
			</Dimension>
			<Dimension>
				<Pieces>1</Pieces>
				<Length>40</Length>
				<Width>50</Width>
				<Height>60</Height>
			</Dimension>
		</Dimensions>
		<FreightDetails>
			<FreightDetail>
				<FreightClass>77.5</FreightClass>
				<Description>Description 1</Description>
				<Pieces>2</Pieces>
				<Weight>160</Weight>
				<WeightType>L</WeightType>
			</FreightDetail>
			<FreightDetail>
				<FreightClass>65</FreightClass>
				<Description>Description 2 </Description>
				<Pieces>1</Pieces>
				<Weight>208</Weight>
				<WeightType>L</WeightType>
			</FreightDetail>
		</FreightDetails>
		<Hazmat>N</Hazmat>
		<InBondShipment>N</InBondShipment>
		<DeclaredValue>0</DeclaredValue>
		<ReferenceNumbers>
			<ReferenceNumber>REF1</ReferenceNumber>
			<ReferenceNumber>REF2</ReferenceNumber>
		</ReferenceNumbers>
		<SpecialInstructions>TEST SHIPMENT DO NOT DISPATCH.</SpecialInstructions>
		<ShippingDate>2020-11-19</ShippingDate>
		<EmergencyContact>
			<Name>John Doe</Name>
			<Phone>2140000000</Phone>
			<Email>dispatcher@mycompany.com</Email>
		</EmergencyContact>
		<Pickup>
			<AirportPickup>N</AirportPickup>
			<PickupReadyTime>11:00:00</PickupReadyTime>
			<PickupAccessorials />
		</Pickup>
		<Delivery>
			<AirportDelivery>N</AirportDelivery>
			<DeliveryAccessorials />
		</Delivery>
	</OrderDetails>
	<Shipper>
		<ShipperLocationName>SHIPPER</ShipperLocationName>
		<ShipperAddress1>123 TEST ROAD</ShipperAddress1>
		<ShipperCity>Douglasville</ShipperCity>
		<ShipperState>CO</ShipperState>
		<ShipperZipCode>30134</ShipperZipCode>
		<ShipperCountry>US</ShipperCountry>
		<ShipperContactName>SHIPPER CONTACT</ShipperContactName>
		<ShipperContactPhone>2140000000</ShipperContactPhone>
		<ShipperContactEmail>shipper@mycompany.com</ShipperContactEmail>
		<ShipperOpenTime>08:00:00</ShipperOpenTime>
		<ShipperCloseTime>15:00:00</ShipperCloseTime>
	</Shipper>
	<Consignee>
		<ConsigneeLocationName>CONSIGNEE</ConsigneeLocationName>
		<ConsigneeAddress1>400 TEST ROAD</ConsigneeAddress1>
		<ConsigneeCity>Schaumburg</ConsigneeCity>
		<ConsigneeState>IL</ConsigneeState>
		<ConsigneeZipCode>60195</ConsigneeZipCode>
		<ConsigneeCountry>US</ConsigneeCountry>
		<ConsigneeContactName>CONSIGNEE CONTACT</ConsigneeContactName>
		<ConsigneeContactPhone>2140000000</ConsigneeContactPhone>
		<ConsigneeContactEmail>consignee@mycompany.com</ConsigneeContactEmail>
		<ConsigneeOpenTime>07:30:00</ConsigneeOpenTime>
		<ConsigneeCloseTime>15:00:00</ConsigneeCloseTime>
	</Consignee>
</FABookingRequest>
	

Response Samples

Successful return will have AirbillNumber.

XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FABookingResponse>
    <AirbillNumber>74614558</AirbillNumber>
    <ErrorMessage></ErrorMessage>
    <Remarks>Ship date 2023-07-01 before 1400 local time, Delivery 2023-07-04 by 1700 local time</Remarks>
</FABookingResponse>

Response Samples

Unsuccessful return will have ErrorMessage.

XML
<?xml version="1.0" encoding="utf-8"?>
<FAError>
    <ErrorMessage> Error: Location 99999 is not serviced</ErrorMessage>
</FAError>

Back to Top



Last updated 08/19/2024