0% found this document useful (0 votes)
3 views

Bill of Lading API Development Guide

Uploaded by

vamsivasu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Bill of Lading API Development Guide

Uploaded by

vamsivasu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 26

© Old Dominion Freight Line, Inc. eBOL: Version 3.1 (Compliant with NMFTA v2.0.

1) Last Update: 11/20/23


Contents
Getting Started .................................................................................................................................. 1

Overview .......................................................................................................................................... 1
Testing .............................................................................................................................................. 1

Authentication ................................................................................................................................... 2

Request ............................................................................................................................................ 2
Response .......................................................................................................................................... 2

Request ............................................................................................................................................. 3

Authorization ................................................................................................................................... 3
Base Path.......................................................................................................................................... 3
Fields ................................................................................................................................................ 3
Required.............................................................................................................................. 3
Conditionally Required ....................................................................................................... 5
Optional .............................................................................................................................. 8
Values ............................................................................................................................................. 13

Sample ............................................................................................................................................ 19

bol-request..................................................................................................................................... 19
Request ............................................................................................................................. 19
Response ........................................................................................................................... 23

Response ......................................................................................................................................... 24

Fields .............................................................................................................................................. 24
Response Codes ............................................................................................................................. 24

© Old Dominion Freight Line, Inc. eBOL: Version 3.1 (Compliant with NMFTA v2.0.1) Last Update: 11/20/23
Getting Started

Overview
The eBoL Standard API is a REST service which allows for the submission of electronic Bills of Lading. This
format aligns with the NMFTA’s digital council eBOL. This format feeds data to not only OD but any carrier set
up to use the standardized eBOL. This will connect to our billing system and allow the data to be used to
generate shipping label and/or bill of lading documents. Users can receive a PRO number or provide one that
they already possess. The API also allows the user to modify the eBOL data after it has been submitted.
You can find more information on all the API services we provide on our Shipping API Integrations page at
ODFL.com.

Testing
We provide a QA environment for use while Onboarding to new services or when testing is required.
When you’re ready to begin, visit Shipping API Integrations and click Email an Expert for assistance.

© Old Dominion Freight Line, Inc. 1


Authentication
To use this service, you will need an ODFL.com account with a username and password. This grants you
access to data for your specific accounts. Visit our website at ODFL.com and click Sign Up to register.
Have questions about your OD account? We’re here to help, Monday-Friday, 7 a.m. – 8 p.m. ET:
 Telephone: 1-800-235-5569
 Email: [email protected]

Request
Obtain a session token by making a GET request to:

Environment URL

QA https://apiq.odfl.com/auth/v1.0/token

Production https://api.odfl.com/auth/v1.0/token

 Authorization Type: Basic Auth


 Username: Provide your ODFL.com Username
 Password: Provide your ODFL.com Password

Response
Code Message Notes
A session token and expiration are returned. Session tokens expire one
200 OK
hour after issue.
The OD Username or Password you’ve provided is incorrect or your
400 Invalid Credentials
account is disabled. Contact [email protected] for assistance.
Verify that the URL and Authorization Type is correct. If the problem
503 Service Unavailable
persists, please notify us at: [email protected].

© Old Dominion Freight Line, Inc. 2


Request
Authorization
Provide the session token obtained during Authentication as Authorization:

 Type: Bearer Token

Base Path
Perform a POST to:

Environment URL

QA https://apiq.odfl.com/BOL/v3.1/eBOL/bol-external-per-standards

Production https://api.odfl.com/BOL/v3.1/eBOL/bol-external-per-standards

Fields
Required
Name Type Description

The requested pickup date


ISO- -"2025-01-15" or "2025-01-15T10:30:00.000"
bol.requestedPickupDate -YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sss
8601 -Value in PickupDate does not generate a pickup request.
-Use our Pickup API to request pickup.

bol.function String The intent for the submitted request. (See Values)

The value should always be ‘False’ when calling to


bol.isTest Boolean the production environment.
-Use OD’s QA environment instead of ‘True’.

bol.requestorRole String Identifies the party making the request. (See Values)

Which minor version of the Digital LTL Council Bill


version String of Lading spec being used.
- v2.0.1

commodities.lineItemLayout String The layout of the commodities shipped. (See Values)

commodities.handlingUnits.count Integer Number of the handling units being described.

© Old Dominion Freight Line, Inc. 3


Name Type Description

Types of the handling units being described. (See


commodities.handlingUnits.type String
Values)

commodities.handlingUnits.weight Integer Total weight for the specified handling units.

commodities.handlingUnits.lineItems.d
String Description of the freight.
escription

commodities.handlingUnits.lineItems.w
Integer Total weight for the specified line Item.
eight

commodities.handlingUnits.lineItems.pi Number of individual pieces for the line item being


Integer
eces described.

commodities.handlingUnits.lineItems.p Packaging type for the individual pieces of the line


String
ackagingType item being described. (See Values)

commodities.handlingUnits.lineItems.cl
String The shipment item class. (See Values)
assification

Indicates whether the shipment is hazardous


commodities.handlingUnits.lineItems.h
Boolean materials.
azardous
-True or false

payment.terms String The freight payment terms (See Values)

origin.name String Company name associated with the origin location

origin.address1 String Line1 of the origin location address

origin.city String City of the origin location address

Two letter state/province code for the origin


origin.stateProvince String
location address.

The address zip/postal code of the origin location.


-“12345” (5 digits - USA/MEX)
origin.postalCode String
-“A1A1A1” (6 characters - CAN)
-“A1A1A” (5 characters - CAN)

Three letter country code for the origin location.


origin.country String
(See Values)

The origin telephone number


origin.contact.phone String
-“9995551212” 10 digits (Area code + phone)

Company name associated with the destination


destination.name String
location.

destination.address1 String Line1 of the destination location address.

destination.city String City of the destination location address.

Two letter state/province code for the destination


destination.stateProvince String
location.

© Old Dominion Freight Line, Inc. 4


Name Type Description

destination.postalCode String The address zip code of the destination location.

Three letter country code for the destination locati


destination.country String
on. (See Values)

The destination telephone number


destination.contact.phone String
-“9995551212” 10 digits (Area code + phone)

billTo.name String Company name associated with the billTo location

billTo.address1 String Primary Address line for the billTo location.

billTo.city String City Name for the billTo location.

Two letter state/province code for the billTo


billTo.stateProvince String
location.

billTo.postalCode String The address zip code of the billTo location.

Three letter country code for the billTo location.


billTo.country String
(See Values)

The billTo telephone number.


billTo.contact.phone String
-“9995551212” 10 digits (Area code + phone)

Conditionally Required
Name
Type Description

Specifies the printer format type for the labels.


images.ShippingLabels.format String
-Required when images.includeShippingLabels is true.

Specifies the quantity of pages desired.


images. Shipping Labels. quantity Integer
-Required when images.includeShippingLabels is true.

Specifies the starting position for shipping labels.


images. Shipping Labels. Position Integer -Required when images.shippingLabel is Avery.
-Valid Values: 1-6

Provide one or more email addresses to receive


images.email.addresses Array the bol and/or shipping labels PDF.
-Required when email.includeBoL and/or
images.email.includeLabels is true

© Old Dominion Freight Line, Inc. 5


Name of the contact person in case of hazardous
accessorials.hazardousDetails.emerge materials-related issue.
String
ncyContact.name -Required if accessorial codes list contains HAZ and/or if any
commodity line item's hazardous flag

Phone number of the contact person in case of


accessorials.hazardousDetails.emerge hazardous materials-related issue.
String -Required if accessorial codes list contains HAZ and/or if any
ncyContact.phonenumber
commodity line item's hazardous flag
-“9995551212” 10 digits (Area code + phone)

Amount to be received for the COD.


-Required when accessorial code COD is present in the
accessorials.cod.amount String
accessorial.codes list.
-OD does not support COD.

Optional attribute to indicate currency of COD. (See


Values)
-Required when accessorial code COD is present in the
accessorials.cod.currency String
accessorial.codes list.
-Defaults to USD
-OD does not support COD.

Payment terms associated with the COD. (See Values)


-Required when accessorial code COD is present in the
accessorials.cod.terms String accessorial.codes list.
-OD does not support COD.

Indicates if a customer check or cash is


acceptable.
accessorials.cod.customerCheckAcce -Required when accessorial code COD is present in the
Boolean
ptable accessorial.codes list.
-True or false
-OD does not support COD.

Name of the remit to company.


-Required when accessorial code COD is present in the
accessorials.cod.remitTo.name String
accessorial.codes list.
-OD does not support COD.

Primary Address line of the remit to company.


-Required when accessorial code COD is present in the
accessorials.cod.remitTo.address1 String
accessorial.codes list.
-OD does not support COD.

Secondary Address of the remit to company.


-Required when accessorial code COD is present in the
accessorials.cod.remitTo.address2 String
accessorial.codes list.
-OD does not support COD.

City Name of the remit to company.


-Required when accessorial code COD is present in the
accessorials.cod.remitTo.city String
accessorial.codes list.
-OD does not support COD.

© Old Dominion Freight Line, Inc. 6


Two letter state/province code of the remit to
accessorials.cod.remitTo.stateProvinc company.
String -Required when accessorial code COD is present in the
e
accessorial.codes list.
-OD does not support COD.

The address zip code of the of the remit to


company.
accessorials.cod.remitTo.postalCode String -Required when accessorial code COD is present in the
accessorial.codes list.
-OD does not support COD.

Three letter country code of the remit to company.


(See Values)
accessorials.cod.remitTo.country String -Required when accessorial code COD is present in the
accessorial.codes list.
-OD does not support COD.

Number of pieces in a shipment to be sorted and


accessorials.sortAnd Segregate segregated.
Integer
Details.pieces -Required when accessorial code SRT is present in the
accessorial.codes list.

Value of the cargo


accessorials.fullValueCoverageDetails -Required when accessorial code FVC is present in the
String
.monetaryValue accessorial.codes list.
-“500.50” (2 decimal places only)

Optional attribute to indicate currency of monetary


accessorials.fullValueCoverageDetails value. (See Values)
String -Required when accessorial code FVC is present in the
.currency
accessorial.codes list.
-Defaults to USD

Number of pieces in a shipment.


accessorials.markDetails.pieces Integer -Required when accessorial code MARK is present in the
accessorial.codes list.

To indicate the limited access type at the origin


when accessorial code LTDAP is present. (See
accessorials.limitedAccessType.origin String Values)
-Required when accessorial code LTDAP is present in the
accessorial.codes list.

To indicate the limited access type at the


accessorials.limitedAccessType.destin destination when accessorial code LTDAD is
String present. (See Values)
ation
-Required when accessorial code LTDAD is present in the
accessorial.codes list.

To indicate type of delivery “Time Critical Service”


accessorials.timeCriticalDetails.type String (See Values)
-Required when accessorials.code list include TCS.

© Old Dominion Freight Line, Inc. 7


The start date (with or without time) of the
accessorials.timeCriticalDetails.date.st ISO- requested delivery window.
-Required when accessorials.code list include TCS.
art 8601
-"2025-01-15" or "2025-01-15T10:30:00.000"
-YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sss

The end date (with or without time) of the


accessorials.timeCriticalDetails.date.e ISO- requested delivery window.
-Required when accessorials.code list include TCS.
nd 8601
-"2025-01-15" or "2025-01-15T10:30:00.000"
-YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sss

The start date (with or without time) of the


accessorials.appointmentDetails.picku ISO- requested shipment pickup window.
-Required when accessorials.code list include APTP.
p.start 8601
-"2025-01-15" or "2025-01-15T10:30:00.000"
-YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sss

The end date (with or without time) of the


accessorials.appointmentDetails.picku ISO- requested shipment pickup window.
-Required when accessorials.code list include APTP.
p.end 8601
-"2025-01-15" or "2025-01-15T10:30:00.000"
-YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sss

The start date (with or without time) of the


accessorials.appointmentDetails.deliv ISO- requested shipment pickup window.
-Required when accessorials.code list include APTD.
ery.start 8601
-"2025-01-15" or "2025-01-15T10:30:00.000"
-YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sss

The end date (with or without time) of the


accessorials.appointmentDetails.deliv ISO- requested shipment pickup window.
-Required when accessorials.code list include APTD.
ery.end 8601
-"2025-01-15" or "2025-01-15T10:30:00.000"
-YYYY-MM-DD or YYYY-MM-DDTHH:mm:ss.sss

The Customs Broker telephone number.


customsBroker.contact.phone String -Required when adding customsBroker
-“9995551212” 10 digits (Area code + phone)

Optional
Name
Type Description

Special delivery instructions that need to be


specialInstructions String followed for the shipment's delivery.
-Instructions included here will be printed on the Bill of Lading.

Indicates whether the image of the populated BOL


images.includeBol Boolean should be returned in the response.
-True or false
-Default is false

© Old Dominion Freight Line, Inc. 8


Indicates whether the image(s) of the shipping
images.includeShippingLabels Boolean labels should be returned in the response.
-True or false
-Default is false

Indicates to send the BOL PDF to be sent to one


images.email.includeBol Boolean or more email addresses.
-True or false

Indicates to send the shipping labels PDF to be


images.email.includeLabels Boolean sent to one or more email addresses.
-True or false

Phone number of contact for updates about


notifications.phoneNumber String shipment movements.
-OD currently does not support this feature.

Email address of contact for updates about


notifications.email String shipment movements.
-OD currently does not support this feature.

Shipper's pre-assigned PRO number for the


referenceNumbers.pro String requested carrier.
-If pro is not provided, one will be auto assigned by the carrier.

Quote (estimate) number provided by the carrier


referenceNumbers.quoteId String
after submitting a rate quote request

referenceNumbers.shipmentId String Shipment Id (SID) number for the shipment.

referenceNumbers.masterBol String Master Bill of Lading number for the shipment.

An array to contain bill of lading numbers.


referenceNumbers.bol Array
-Values in the array should be strings.

An array to contain purchase order numbers and


referenceNumbers.po Array
information related to those numbers.

referenceNumbers.po.number String The Purchase Order number.

referenceNumbers.po.pieces Integer Total pieces associated with the Purchase Order.

referenceNumbers.po.weight Integer Total weight associated with the Purchase Order.

Indicates whether the pieces associated with the


purchase order numbers are on a pallet/slip/skid or
referenceNumbers.po.palletized Boolean
not.
-True or false

referenceNumbers.po.additional
String Additional information from shipper per line item
ShipperInfo

Indicates the name of the reference number


referenceNumber.AdditionalReference
String provided.
.name
-Does not appear on OD BOL document.

© Old Dominion Freight Line, Inc. 9


Additional reference number that correlates with
referenceNumber.AdditionalReference the additional reference name.
String
.value -Does not appear on OD BOL document.
-If needed, please add to specialinstructions

Weight of the skids/pallets/slips used in the


commodities.handlingUnits.tareWeight Integer
shipment

Identifies if the freight can be stacked on one


commodities.handlingUnits.stackable Boolean another.
-True or false
-Default is false

The unit of measurement for weight. (See Values)


commodities.handlingUnits.weightUnit String
-Defaults to Pounds (Imperial) if not passed.

commodities.handlingUnits.length String The length of the handling units being described.

commodities.handlingUnits.width String The width of the handling units being described.

commodities.handlingUnits.height Integer The height of the handling units being described.

commodities.handlingUnits.dimension The unit of measurement for dimensions. (See


String Values)
sUnit -Defaults to Inches (Imperial) if not passed.

commodities.handlingUnits.lineItems. The unit of measurement for weight. (See Values)


String
weightUnit -Defaults to Pounds (Imperial) if not passed.

commodities.handlingUnits.lineItems.n
String The handling unit NMFC code of the freight.
mfc

commodities.handlingUnits.lineItems.n
String The handling unit NMFC sub value of the freight.
mfcSub

commodities.handlingUnits.lineItems.h
String Detailed description of the hazardous item.
azardousDescription

commodities.handlingUnits.lineItems.h Total weight of hazardous material covered by one


Integer
azardousDetails.weight description.

commodities.handlingUnits.lineItems.h
String Hazardous material class.
azardousDetails.class

Indicates Proper Identification Number (UN or NA)


commodities.handlingUnits.lineItems.h
String corresponding to the Proper Shipping Name.
azardousDetails.unnaNumber
-UN or NA followed by 4 digits

commodities.handlingUnits.lineItems.h
String Proper shipping name of the hazardous material.
azardousDetails.propername

commodities.handlingUnits.lineItems.h Technical name for the hazardous material.


String
azardousDetails.technicalName -Not all hazardous items will have a technical name.

commodities.handlingUnits.lineItems.h Hazmat Packing Group number.


String
azardousDetails.packagingGroup -Not all hazmat items have a packing group.

© Old Dominion Freight Line, Inc. 10


commodities.handlingUnits.lineItems.h
String The contract number of the hazardous materials.
azardousDetails.contractNumber

Total weight of the entire shipment, including


shipmentTotals.grossWeight Integer
handling units (tare weight).

Total weight of the entire shipment, not including


shipmentTotals.netWeight Integer
handling units (tare weight).

The unit of measurement for weight. (See Values)


shipmentTotals.weightUnit String
-Defaults to Pounds (Imperial) if not passed.

shipmentTotals.handlingUnits Integer Handling unit count for the entire shipment.

shipmentTotals.linearLength Integer Linear length for the entire shipment

The unit of measurement for dimensions. (See


shipmentTotals.dimensionsUnit String Values)
-Defaults to Inches (Imperial) if not passed.

Cubic volume of the entire shipment.


shipmentTotals.cube Integer
-Total length X total width X total height

The unit of measurement for cubic dimensions.


shipmentTotals.cubeDimensionsUnit String (See Values)
-Defaults to Feet (Imperial) if not passed.

shipmentTotals.declaredValue Integer Total monetary value of the shipment in USD

Indicates monetary value of the shipment. (See


shipmentTotals.currency String Values)
-Defaults to USD.

accessorials.codes Array Array for list of services requested (See Values)

origin.account String Company's account number/id for the origin.

Company's locationId for the origin.


origin.locationID String
-OD does not support this feature.

origin.address2 String Secondary Address line for the origin location.

origin.contact.phoneExt String The origin telephone extension.

origin.contact.name String Name of the origin location's contact person.

Email address of the origin location's contact


origin.contact.email String
person.

destination.account String Company's account number/id for the destination.

Company's locationID for the destination.


destination.locationID String
-OD does not support this feature

destination.address2 String Secondary Address line for the destination location

destination.contact.phoneExt String The destination telephone extension.

© Old Dominion Freight Line, Inc. 11


destination.contact.name String Name of the destination location's contact person.

Email address of the destination location's contact


destination.contact.email String
person.

billTo.account String Company's account number/id for the billTo.

Company's locationID for the billTo.


billTo.locationID String
-OD does not support this feature

billTo.address2 String Secondary Address line for the billTo location.

billTo.contact.phoneExt String The billTo telephone extension.

billTo.contact.name String Name of the billTo location's contact person.

Email address of the billTo location's contact


billTo.contact.email String
person.

Used to identify a customs broker that is involved


customsBroker.type String
in a cross-border freight move. (See Values)

Company name associated with the customs


customsBroker.name String
Broker location.

Primary Address line for the customs Broker


customsBroker.address1 String
location

Secondary Address line for the customs Broker


customsBroker.address2 String
location.

customsBroker.city String City Name for the customs Broker location

Two letter state/province code for the customs


customsBroker.stateProvince String
Broker location.

The address zip/postal code of the Customs


customsBroker.postalCode String
Broker location.

Three letter country code for the customs Broker


customsBroker.country String
location. (See Values)

customsBroker.contact.phoneExt String The Customs Broker telephone extension.

customsBroker.contact.name String Broker location's contact person.

customsBroker.contact.email String Email address of the customs

© Old Dominion Freight Line, Inc. 12


Values
Field Name Valid Values

Create
function
Modify

Shipper

requestorRole Consignee

Third Party
Indicates if the Handling Unit/Line Item
relationship is known. If this value is
used, each Line Item associated to a
Nested
Handling Unit is conditionally required
to be passed within that Handling
commodities.lineItemLayout Unit's object.
Indicates if the Handling Unit/Line Item
relationship is not known. If this value
Stacked
is used, Line Items may passed within
any Handling Unit object.
CAN Canada

Country MEX Mexico

USA United States


Deliver On Date
-OD currently does not support this option –
Release coming soon
accessorials.timeCriticalDetails.type Deliver On or After Date

Deliver By Date

Delivery Window

commodities.handlingUnits. 50
lineItems.classification
55

60

65

70

77.5

85

92.5

© Old Dominion Freight Line, Inc. 13


100

Continued- 110
commodities.handlingUnits.
lineItems.classification 125

150

175

200

250

300

400

500

Collect

Prepaid
payment.Terms
Third Party
-OD does not support “Third Party”

commodities.handlingUnits.type, BAG Bag


commodities.handlingUnits.lineItems BAL Bale
.packagingType
BBL Barrel

BSK Basket

BIN Bin

BOX Box

BXT Bucket

BCH Bunch

BDL Bundle

CAB Cabinet

CAG Cage

CAN Can

CBY Carboy

CAR Carrier

CTN Carton

CAS Case

© Old Dominion Freight Line, Inc. 14


Continued- CSK Cask
commodities.handlingUnits.type,
CHS Chest
commodities.handlingUnits.lineItems
.packagingType COL Coil

CNT Container

COR Cores

CRT Crate

CYL Cylinder

DRM Drum

DBK Dry Bulk

ENV Envelope

FIR Firkin

GLD Gaylord

HPR Hamper

HRB On Hanger or Rack in Boxes

INT Intermediate Bulk container

JAR Jar

JCN Jerrycan

KEG Keg

KIT Kit

LIF Lifts

LBK Liquid Bulk

LSE Loose

MXD Mixed

OTH Other

PKG Package

PCK Packed

PAL Pail

PAT Pallet

PCS Piece
Continued-
PLN Pipe Line

© Old Dominion Freight Line, Inc. 15


commodities.handlingUnits.type, RCK Rack
commodities.handlingUnits.lineItems
REL Reel
.packagingType
ROL Roll

SKD Skid

SLP Slip Sheet

SPL Spool

TNK Tank

TBN Tote

TRY Tray

TRU Truckload

TRK Trunk

TUB Tub

TBE Tube

UNT Unit

VPK Van Pack

WRP Wrapped

Pounds
weightUnit
Kilograms

Inches
dimensionsUnit
Centimeters

Feet
shipmentTotals.cubeDimensionsUnit
Meters

Airport
limitedAccessType
Church

Club

Construction

Fair

Farm
Continued-
Hotel
limitedAccessType
Other

© Old Dominion Freight Line, Inc. 16


Park

Port

School

Secure

Storage

Tradeshow

APTD Appointment required at delivery


accessorial.Codes
APTP Appointment required at pickup

Collect on delivery.
COD
-OD does not support COD.

EXPD Expedited Service

FVC Full Value Coverage

Guaranteed Service -by Morning


GTD_AM
-OD does not support GTD_AM

GTD_NOON Guaranteed Service -by Noon

GTD_PM Guaranteed Service- by End of Day

HAZ Hazardous material

IDL Inside Delivery

INBD In bond shipment

IPU Inside pickup

LFTD Lift gate required at delivery

LFTP Lift gate required at pickup

LTDAD Limited access delivery

LTDAP Limited access pickup

MARK Marked or tagged

MNC Must notify consignee

OVR Over dimension/excessive length

PPD Perishables (food)


Continued-
PSC Protective from cold
accessorial.Codes
PSH Protective from heat

PSN Poisonous material

© Old Dominion Freight Line, Inc. 17


REP Residential pickup

RES Residential delivery

SRT Sort and segregate

SS Single Shipment

TCS Time Critical Service

USD United States

accessorials.cod.currency, Canada
accessorials.fullValueCoverageDetails.currency, CAD -OD currently does not support this
shipmentTotals.currency, option – Release coming soon
shipmentTotals.currency, Mexico
MXN -OD currently does not support this
option
Customs broker handling the
Import destination -side of the cross-
customsBroker.type border freight move

Customs broker handling the origin


Export
side of the cross-border freight move

© Old Dominion Freight Line, Inc. 18


Sample

bol-request
Request
{
"bol": {
"function": "Create",
"requestedPickupDate": "2025-01-15T10:30:00.000",
"isTest": true,
"requestorRole": "Third Party",
"specialInstructions": "Gate code 123 to enter."
},
"version": "2.0.1",
"commodities": {
"lineItemLayout": "nested",
"handlingUnits": [
{
"count": 1,
"type": "SKD",
"weight": 400,
"tareWeight": 400,
"weightUnit": "Pounds",
"length": 48,
"width": 48,
"height": 48,
"dimensionsUnit": "inches",
"stackable": false,
"lineItems": [
{
"weight": 400,
"classification": "85",
"description": "HAZMAT",
"hazardous": true,
"pieces": 1,
"packagingType": "DRM",
"nmfc": "",
"nmfcSub": "",
"hazardousDescription": "test",
"hazardousDetails": {
"weight": 10,
"class": "65",
"unnaNumber": "test",
"propername": "test",
"technicalName": "test",
"packingGroup": "test",
"contractNumber": "test"
}
}
© Old Dominion Freight Line, Inc. 19
]
},
{
"count": 1,
"type": "SKD",
"weight": 500,
"lineItems": [
{
"weight": 50,
"classification": "92.5",
"description": "test desc",
"hazardous": false,
"pieces": 10,
"packagingType": "BOX"
}
]
}
]
},
"payment": {
"terms": "Prepaid"
},
"origin": {
"name": "Shipper Inc",
"address1": "123 Shipper Street",
"city": "DOWNEY",
"stateProvince": "CA",
"postalCode": "90241",
"country": "USA",
"contact": {
"phone": "1234569874"
}
},
"destination": {
"name": "Consignee Co",
"address1": "321 Consignee Court",
"city": "Acheson",
"stateProvince": "AB",
"postalCode": "T7X5A6",
"country": "CAN",
"contact": {
"phone": "1234569874"
}
},
"billTo": {
"name": "Shipper Inc Prepaid",
"address1": "123 Shipper Street",
"city": "Downey",
"stateProvince": "CA",
"postalCode": "90241",
"country": "USA",
"contact": {
"phone": "1234569874",
"phoneExt": "6",

© Old Dominion Freight Line, Inc. 20


"name": "Con Tact",
"email": "[email protected]"
},
"account": null,
"address2": "Building 2"
},
"images": {
"includeBol": true,
"includeShippingLabels": true,
"shippingLabels": {
"format": "Avery",
"quantity": 4,
"position": 1
},
"email": {
"includeBol": true,
"includeLabels": true,
"addresses": [
"[email protected]"
]
}
},
"notifications": [
{
"phoneNumber": "1234569874",
"email": "[email protected]"
}
],
"referenceNumbers": {
"quoteId": "12345678",
"SHIP": "1234",
"masterBol": "",
"bol": [
"test",
"test"
],
"po": [
{
"number": "PO123456",
"pieces": 1,
"weight": 400,
"palletized": true,
"additionalShipperInfo": "test"
},
{
"number": "PO123456",
"pieces": 10,
"weight": 500,
"palletized": true,
"additionalShipperInfo": "test"
}
],
"additionalReferences": []
},

© Old Dominion Freight Line, Inc. 21


"shipmentTotals": {
"grossWeight": 900,
"netWeight": 900,
"weightUnit": "pounds",
"handlingUnits": 2,
"linearLength": 48,
"dimensionsUnit": "inches",
"cube": 50,
"cubeDimensionsUnit": "feet",
"declaredValue": 1500.20,
"currency": "usd"
},
"accessorials": {
"codes": ["HAZ"],
"hazardousDetails": {
"emergencyContact": {
"name": "Name",
"phone": 1111111111
}
},
"limitedAccessType": {
"origin": null,
"destination": null
},
"delivery": {
"start": "2025-01-17T10:30:00.000",
"end": "2025-01-17T15:30:00.000"
}
}
},
"customsBroker": {
"type": "Import",
"name": "Broker LLC",
"address1": "987 Broker Road",
"city": "Atlanta",
"stateProvince": "GA",
"postalCode": "30304",
"country": "USA",
"contact": {
"phone": "1234569874",
"phoneExt": "2",
"name": "Bro Ker",
"email": "[email protected]"
},
"address2": "c/o broker"
}
}

© Old Dominion Freight Line, Inc. 22


Response
// JSON Successful Response Data
{
"version": "2.0.1",
"transactionDate": "Tue Jul 18 11:38:26 EDT 2023",
"referenceNumbers": {
"pro": 77777777777,
"shipmentConfirmationNumber": null
},

// JSON Response Data with Validation Errors


{
"version": null,
"transactionDate": null,
"referenceNumbers": null,
"images": null,
"messageStatus": {
"status": "BAD_REQUEST",
"resolution": "Reference number for the request is 1689700063830",
"messages": [
"Delivery end date must be after the delivery begin date."
],
"codes": [
400
]
}
}

// JSON Response Data with HTML error code


{
"timestamp": "2023-07-18T17:06:13.710+00:00",
"status": 400,
"error": "Bad Request",
"path": "/bol-external-per-standards"
}

// JSON Response Data with Base Path error code


{
"timestamp": "2023-09-11T21:10:00.503+00:00",
"status": 404,
"error": "Not Found",
"path": "/bol-external-per"
}

© Old Dominion Freight Line, Inc. 23


Response

Fields
Data
Field Definition
Type
success Successful HTTP requests. flag
version Version of the Digital LTL Council BOL. string
transactionDate The date and time for the response received. string
pro The PRO number submitted with or generated by the request. string
resolution Number given to reference when requesting assistance for review. string

messages Message given with specific error codes. See Response Codes string

codes Error code given for failed request. See Response Codes string
bol A base 64 encoded pdf of the bill of lading. string
shippingLabels A base 64 encoded pdf of the shipping label. string

Response Codes
Code Message Details

200 Ok Successful HTTP requests.

Unexpected error running rate request, please


400 If the problem persists, contact [email protected].
try again later. “status”: “BAD_REQUEST”

401 Unauthorized The authentication token is missing or expired.


404 Not Found Base Path is incorrect.
500 Internal Server Error If the problem persists, contact [email protected].

© Old Dominion Freight Line, Inc. 24

You might also like