Bill of Lading API Development Guide
Bill of Lading API Development Guide
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.
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
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].
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
bol.function String The intent for the submitted request. (See Values)
bol.requestorRole String Identifies the party making the request. (See Values)
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.cl
String The shipment item class. (See Values)
assification
Conditionally Required
Name
Type Description
Optional
Name
Type Description
referenceNumbers.po.additional
String Additional information from shipper per line item
ShipperInfo
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
String Hazardous material class.
azardousDetails.class
commodities.handlingUnits.lineItems.h
String Proper shipping name of the hazardous material.
azardousDetails.propername
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
Deliver By Date
Delivery Window
commodities.handlingUnits. 50
lineItems.classification
55
60
65
70
77.5
85
92.5
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”
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
CNT Container
COR Cores
CRT Crate
CYL Cylinder
DRM Drum
ENV Envelope
FIR Firkin
GLD Gaylord
HPR Hamper
JAR Jar
JCN Jerrycan
KEG Keg
KIT Kit
LIF Lifts
LSE Loose
MXD Mixed
OTH Other
PKG Package
PCK Packed
PAL Pail
PAT Pallet
PCS Piece
Continued-
PLN Pipe Line
SKD Skid
SPL Spool
TNK Tank
TBN Tote
TRY Tray
TRU Truckload
TRK Trunk
TUB Tub
TBE Tube
UNT Unit
WRP Wrapped
Pounds
weightUnit
Kilograms
Inches
dimensionsUnit
Centimeters
Feet
shipmentTotals.cubeDimensionsUnit
Meters
Airport
limitedAccessType
Church
Club
Construction
Fair
Farm
Continued-
Hotel
limitedAccessType
Other
Port
School
Secure
Storage
Tradeshow
Collect on delivery.
COD
-OD does not support COD.
SS Single Shipment
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
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",
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