Introduction
Welcome to RouteMAX!
We optimize city pickup and delivery operations by reducing driver miles while consistently meeting all service commitments for LTL fleets with 5 to 5,000+ trucks across your network.
Authentication
HTTP Request
POST https://{tenant}.routemax.com/token
The response body will be in the following form:
{
"access_token": "accesstoken",
"token_type": "Bearer"
}
You will have to pass the token_type followed by the access_token in the header of every call in order to access the APIs.
(ex: Bearer accesstoken)
RouteMAX uses client credential grant for authentication.
The client will send a POST request with the following body parameters with form content type (x-www-form-urlencoded):
Request Body
Key | Value |
---|---|
grant_type | client_credentials |
client_id | {client_id}.RouteMAX.{tenant} |
client_secret | {client_secret} |
Inbound Planning
RouteMAX Hosted APIs
Input Shipments
The request body is expected in the following form:
{
"terminal": "TPA",
"planDate": "2018-10-16",
"proId": "98765",
"originTerminal": "JAX",
"destTerminal": "TPA",
"currentTerminal": "JAX",
"shipmentDueDate": "2018-10-16",
"shipmentStatus": "Dock",
"isDelivery": true,
"pieces": 1,
"hu": 1,
"weight": 30,
"cube": 60,
"isHazmat": true,
"isApt": true,
"aptDueDate": "2018-10-16",
"billType": "E",
"isTrailerDrop": true,
"prepTime": 10,
"earlyCTA": "08:55",
"lateCTA": "08:55",
"ibETA": "2018-10-16 05:00",
"customerId": "136480",
"customerName": "US FOODSERVICE",
"address": "7004 E HANNA AVE",
"city": "Tampa",
"state": "FL",
"zip": "33610",
"latitude": 28.004917,
"longitude": -82.37527,
"openHours": "10:00",
"closeHours": "17:00",
"route": "21",
"geoArea": "LCNH",
"waveNumber": 1,
"returnCode" :"",
"receivingOpenHours1": "10:00",
"receivingCloseHours1": "11:00",
"receivingOpenHours2": "12:00",
"receivingCloseHours2": "14:00",
"shipperName": "ABC Freight",
"shipperCode": "1016443",
"shipperAddress": "7600, NW 5th Place",
"shipperCity": "Gainesville",
"shipperState": "FL",
"shipperZip": "32607",
"comments": "Use door no. 27",
"priority": "GS5",
"isLiftGate": true,
"isPup": false,
"isResidential": false,
"isLimitedAccess": false,
"iLine": "FED",
"pse": 2.0
}
Push the shipment details into RouteMAX (information about each pro).
HTTP Request
POST https://{tenant}.routemax.com/api/io/InputShipments
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
terminal | Name of the terminal | Yes | String |
planDate | Date being routed | Yes | Date |
proId | Pro ID for the shipment | Yes | String |
originTerminal | Origin terminal for the shipment | Yes | String |
destTerminal | Destination terminal for the shipment | Yes | String |
currentTerminal | Current terminal of the shipment | Yes | String |
shipmentDueDate | Due date for the shipment | Yes | Date |
shipmentStatus | Shipment status | No | String |
isDelivery | Indicates if given shipment is a Delivery or Pickup | Yes | Boolean |
pieces | Bill of lading pieces (e.g., 1 pallet containing 25 boxes might be billed as 25 pieces) | Yes | Integer |
hu | Handling units (e.g., SW pallet containing 25 boxes is 1 HU) | Yes | Integer |
weight | Weight of the shipment | Yes | Integer |
cube | Cubic Feet | No | Integer |
isHazmat | Hazardous Material | No | Boolean |
isApt | Appointment | Yes | Boolean |
aptDueDate | Date for which appointment has been set, if applicable | No | Date |
billType | Early Bill or Late Bill based on Shipment Due date | No | String |
isTrailerDrop | Trailer Drop | No | Boolean |
prepTime | Minutes needed to crossdock shipment after arrival (e.g., if 60, then if ETA into terminal is 07:00, P&D route cannot leave before 08:00). | No | Integer |
earlyCTA | Early committed time of arrival | Yes | Time |
lateCTA | Late committed time of arrival | Yes | Time |
ibETA | Estimated or actual arrival time of shipment to destination terminal | Yes | DateTime |
customerId | Customer Code | Yes | String |
customerName | Customer Name | Yes | String |
address | Customer Address | Yes | String |
city | Customer City | Yes | String |
state | Customer State | Yes | String |
zip | Customer Zip | Yes | String |
latitude | Customer Latitude | Yes | Decimal |
longitude | Customer Longitude | Yes | Decimal |
openHours | Customer Receiving Open time | Yes | Time |
closeHours | Customer Receiving Close time | Yes | Time |
route | Carrier can give default route as starting point | Yes | String |
geoArea | The delivery route zone or geo-area the shipment typically belongs to | Yes | String |
waveNumber | Carrier can provide wave number to limit P&D departure time (e.g., shipment with linehaul ETA of 09:30 will not be put on P&D route leaving at 08:00) | No | Integer |
returnCode | Shipment return code (If null then the shipment is new, else it should contain any of the Return codes) | No | String |
receivingOpenHours1 | Default beginning of receiving hours for consignee (if not given, can be assumed as 08:00) | Yes | Time |
receivingCloseHours1 | Default end of receiving hours for consignee (if not given, can be assumed as 17:00) | Yes | Time |
receivingOpenHours2 | Receiving hours for consignee if there is a lunch break (if not given, can be assumed as blank) | No | Time |
receivingCloseHours2 | Default end of receiving hours for consignee if there is a lunch break (if not given, can be assumed as blank) | No | Time |
shipperName | Name of the shipper | No | String |
shipperCode | Shipper code | No | String |
shipperAddress | Address of the shipper | No | String |
shipperCity | City in which the shipper is located in | No | String |
shipperState | State in which the shipper is located in | No | String |
shipperZip | Zipcode of the shipper | No | String |
comments | User added comments for the shipments | No | String |
priority | Guaranteed Delivery Code | No | String |
isLiftGate | Does shipment require Lift Gate? | Yes | Boolean |
isPup | Does the shipment require pup trailer? | Yes | Boolean |
isResidential | Is shipment residential? | Yes | Boolean |
isLimitedAccess | Does the driver require any special paperwork/documentation to gain access to the customer facility? | Yes | Boolean |
iLine | Interline/ Agent (or) Partner Freight Code/ Name | No | String |
pse | Pallet Space Equivalent / Calculated Skid Equivalency | Yes | Integer |
If posted successfully, the response will be a guid which can be used for tracking of the request.
Client Hosted APIs
Freight Bill Details (Optional)
The response body will be in the following form:
[{
"proId": "1023256562",
"itemLength": 4,
"itemWidth": 5,
"itemHeight": 6,
"isFreezable": true,
"packageCode": "Box",
"description": "",
"pieces": 1,
"weight": 275,
"isFood": false,
"isPoison": false
}]
To get additional details of shipments like Re-weigh, IsFreezable, Priority etc.
Note: This API is optional if we get PSE/SKE value in InputShipments
HTTP Request
GET https://{tenant}/api/freightBillDetails
Query Parameters
Parameter | Description |
---|---|
Terminal | Terminal Code |
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
proId | Pro ID for the shipment | Yes | String |
itemLength | Length in inches of the item | Yes | Integer |
itemWidth | Width in inches of the item | No | Integer |
itemHeight | Height in inches the item | No | Integer |
isFreezable | Is the freight freezable? | No | Boolean |
packageCode | Package Code | No | String |
description | Freight Description | No | String |
pieces | Pieces | Yes | Integer |
weight | Weight | Yes | Integer |
isFood | Food | Yes | Boolean |
isPoison | Poison | Yes | Boolean |
Special Instructions Details (Optional)
The response body will be in the following form:
[{
"customerId": "9000001",
"specialInstruction": "PUP REQUIRED"
}]
To get special instructions for a given CustomerID.
HTTP Request
GET https://{tenant}/api/getSpecialInstructions
Query Parameters
Parameter | Description |
---|---|
Terminal | Terminal Code |
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
customerId | Customer Code | Yes | String |
specialInstruction | Special Instructions | No | String |
Wave Planning Data (Optional)
The response body will be in the following form:
[{
"waveNumber": 1,
"waveCutoffTime1": "10:00",
"waveCutoffTime2": "",
"waveCutoffTime3": "",
"waveCutoffTime4": "",
"waveCutoffTime5": ""
}]
To get wave data for a given Terminal and Plan date.
HTTP Request
GET https://{tenant}/api/getWavePlanningData
Query Parameters
Parameter | Description |
---|---|
Terminal | Terminal Code |
Date | Plan Date |
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
waveNumber | Number of waves | Yes | Integer |
waveCutoffTime1 | Cutoff Time for Wave 1 | Yes | HH:MM |
waveCutoffTime2 | Cutoff Time for Wave 2 | No | HH:MM |
waveCutoffTime3 | Cutoff Time for Wave 3 | No | HH:MM |
waveCutoffTime4 | Cutoff Time for Wave 4 | No | HH:MM |
waveCutoffTime5 | Cutoff Time for Wave 5 | No | HH:MM |
Anchor Point
The response body will be in the following form:
[{
"anchorPointName":"West",
"anchorPointLatitude":28.004917,
"anchorPointLongitude":-82.37527,
"anchorPointZip":"32065",
"emptyTime": "12:00"
}]
To get Anchor Point details.
Note: Anchor points can be generated from historical data also. Please refer Historical Data Analysis
HTTP Request
GET https://{tenant}/api/getAnchorPointData
Query String
Parameter | Description |
---|---|
Terminal | Terminal Code |
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
anchorPointName | Anchor Point Name | Yes | String |
anchorPointLatitude | Anchor point Latitude | Yes | Decimal |
anchorPointLongitude | Anchor point Longitude | Yes | Decimal |
anchorPointZip | Anchor point Zip | Yes | String |
emptyTime | Time at which route should become empty at anchor point to begin pickups | Yes | Time |
Driver Preferences (Optional)
The response body will be in the following form:
[{
"driverId": "42345",
"driverName": "John D",
"driverStartTime": "11:00",
"preferredZone": "SAN",
"driverCutOffTime": "11:45"
}]
To get driver area preferences and route start times.
HTTP Request
GET https://{tenant}/api/getDriverPreferencesData
Query String
Parameter | Description |
---|---|
Terminal | Terminal Code |
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
driverId | ID/Code of Driver | Yes | String |
driverName | Name of Driver | No | String |
driverStartTime | Earliest route start time for driver | Yes | Time |
preferredZone | Zone / Geo Area the driver typically operates in | No | String |
driverCutOffTime | The latest time a driver can start a route | No | Time |
Terminal Information
The response body will be in the following form:
[{
"terminalCode": "ABY",
"terminalName": "Albany, NY",
"region": "NWB",
"division": "4",
"address": "4315 Albany St",
"city": "COLONIE",
"state": "NY",
"zip": "12205",
"latitude": "42.72858",
"longitude": "-73.85264",
"timezoneOffset": "-1.00",
"terminalType": "Terminal"
}]
To get a list of all terminals (or) service centers and their metadata (addresses, lat/lon, etc.).
Note: This information can be shared in CSV file format also, but we recommend APIs to automate tasks like new service center onboarding and daylight saving changes. CSV file format: Terminal Information File Template
HTTP Request
GET https://{tenant}/api/terminalinfo
Query String
Parameter | Description |
---|---|
Terminal | Terminal Code |
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
terminalCode | Terminal Code | Yes | String |
terminalName | Name of terminal | Yes | String |
region | Region that the terminal belongs to (if applicable) | Yes | String |
division | Division that the terminal belongs to (if applicable) | Yes | Integer |
address | Street address of the terminal | Yes | String |
city | City of terminal | Yes | String |
state | State of terminal | Yes | String |
zip | Zip code of terminal | Yes | String |
latitude | Latitude of terminal | Yes | Decimal |
longitude | Longitude of terminal | Yes | Decimal |
timezoneOffset | Hours different from GMT during current routing day | Yes | Integer |
terminalType | Terminal Type | Yes | String |
Trailer Inventory
The response body will be in the following form:
[{
"equipmentNumber": "123456",
"class": "Van48LG",
"liftGate": true,
"length": 48,
"capacity": 26
}]
To get a list of all P&D trailers available for use at a terminal.
Note: This data can be shared in CSV file format also, we recommend API to get the trailer inventory dynamically. CSV file format:Trailer Inventory File Template
HTTP Request
GET https://{tenant}/api/trailerInventory
Query String
Parameter | Description |
---|---|
Terminal | Terminal Code |
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
equipmentNumber | Equipment Number | Yes | String |
class | Class | No | String |
liftGate | If the trailer is liftgate | Yes | Boolean |
length | Length | Yes | Integer |
capacity | Pallet space capacity of the trailer | Yes | Integer |
Output Routes Data
The request body is expected in the following form:
[{
"terminal":"TPA",
"planDate":"2019-07-22",
"routes":[
{
"route":"015",
"loadCloseTime":"02:00",
"routeStartTime":"09:00",
"equipmentType":"Pup LG",
"waveNumber":1,
"inboundCutOffTime":"08:00",
"routeMTYTime":"15:18",
"isTrapRoute":false,
"anchorPointLatitude":null,
"anchorPointLongitude":null,
"anchorPointZip":null,
"shipments":[
{
"proId":"52955189871",
"stopSeq":1,
"loadZone":"T",
"customerId":"1046800",
"planArrivalTime":"09:38",
"planDepatureTime":"11:10",
"latitude":27.9350662231445,
"longitude":-82.4505386352539
}
]
}
]
}]
Push the plan (routes and shipments assigned to route) generated by RouteMAX to client system.
HTTP Request
POST https://{tenant}/api/publishRoutes
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
terminal | Terminal Name | Yes | String |
planDate | Plan Date | Yes | Date |
routes | |||
route | Route Name | Yes | String |
loadCloseTime | Time at which city trailer loading will be complete and ready to leave | Yes | Time |
routeStartTime | Gate out time for driver | Yes | Time |
equipmentType | Trailer type assigned to given route | No | String |
waveNumber | Wave | Yes | Integer |
inboundCutOffTime | Wave cut off time | Yes | Time |
routeMTYTime | Route empty Time | Yes | Time |
isTrapRoute | Whether the route is trap or delivery route | Yes | Boolean |
anchorPointLatitude | Anchor point latitude | No | Decimal |
anchorPointLongitude | Anchor point longitude | No | Decimal |
anchorPointZip | Anchor point zip | No | String |
shipments | |||
proId | Pro ID | Yes | String |
stopSeq | Stop Sequence | Yes | Integer |
loadZone | Loading Zone | Yes | String |
customerId | Customer Code | Yes | String |
planArrivalTime | Estimated arrival time | Yes | Time |
planDepatureTime | Estimated departure time | Yes | Time |
latitude | Latitude of customer | Yes | Decimal |
longitude | Longitude of customer | Yes | Decimal |
Dispatch
RouteMAX Hosted APIs
Close Trailer
The request body is expected in the following form:
{
"manifestNumber": "123456",
"terminalCode": "ABC",
"trailerNumber": "568994",
"routeName": "35_1",
"dispatchDate": "2020-12-13",
"tractorNumber": "985755",
"eventDateTime": "2020-12-13 18:39:13"
}
Push the trailer and manifest data to RouteMAX whenever a trailer is closed
HTTP Request
POST https://{tenant}.routemax.com/api/dispatch/CloseTrailer
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
manifestNumber | Manifest Number | Yes | String |
terminalCode | Terminal Code | Yes | String |
trailerNumber | Trailer Number | Yes | String |
routeName | Name the route | Yes | String |
dispatchDate | Date on when this dispatch is happened | Yes | Date |
tractorNumber | Tractor Number | No | String |
eventDataTime | Time at when this event happened | Yes | Date Time |
If posted successfully, 200 response code will be returned.
Create Pickup
The request body is expected in the following form:
{
"pickupNumber": "1234567",
"terminalCode": "DAL",
"eventDateTime": "2021-02-01 06:49:17"
}
Trigger to send pickup to RouteMAX when it is created in different systems
HTTP Request
POST https://{tenant}.routemax.com/api/dispatch/pickup/create
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
pickupNumber | Pickup Number | Yes | String |
terminalCode | Terminal Code | Yes | String |
eventDataTime | Time at when this event happened | Yes | Date Time |
If posted successfully, 200 response code will be returned.
Update Pickup
The request body is expected in the following form:
{
"pickupNumber": "1234567",
"terminalCode": "DAL",
"eventDateTime": "2021-02-01 06:49:17"
}
Trigger to send pickup to RouteMAX when it is updated in different systems
HTTP Request
POST https://{tenant}.routemax.com/api/dispatch/pickup/update
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
pickupNumber | Pickup Number | Yes | String |
terminalCode | Terminal Code | Yes | String |
eventDataTime | Time at when this event happened | Yes | Date Time |
If posted successfully, 200 response code will be returned.
Create BOL
The request body is expected in the following form:
{
"proNumber": "77003860500",
"terminalCode": "ATL",
"eventDateTime": "2021-02-01 06:40:07"
}
HTTP Request
POST https://{tenant}.routemax.com/api/dispatch/pickup/addBol
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
proNumber | EDI Pro Number | Yes | String |
terminalCode | Terminal Code | Yes | String |
eventDataTime | Time at when this event happened | Yes | Date Time |
If posted successfully, 200 response code will be returned.
Dispatch Cancel
The request body is expected in the following form:
{
"terminalCode": "ATL",
"trailerNumber": "12334",
"manifestNumber": "123456",
"driverNumber": "1243",
"tractorNumber": "",
"eventDateTime": "2021-02-08 08:11:00.000"
}
API to send dispatch cancellation event to RouteMAX
HTTP Request
POST https://{tenant}.routemax.com/api/dispatch/dispatchCancel
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
terminalCode | Terminal Code | Yes | String |
manifestNumber | Manifest Number | Yes | String |
trailerNumber | Trailer Number | Yes | String |
driverNumber | Driver Number for which dispatch is being cancelled | No | String |
tractorNumber | Tractor Number | No | String |
eventDataTime | Time at when this event happened | Yes | Date Time |
If posted successfully, 200 response code will be returned.
Arrive Trailer
The request body is expected in the following form:
{
"terminalCode": "ATL",
"trailerNumber": "12234",
"manifestNumber": "1234567",
"driverNumber": "1234",
"tractorNumber": "",
"arrivalStatus": "ArrivedAtYardUnloading",
"eventDateTime": "2021-02-08 08:11:00.000"
}
API to send data to RouteMAX when dispatcher updates the trailer status on behalf of the driver
HTTP Request
POST https://{tenant}.routemax.com/api/dispatch/trailer/arriveTrailer
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
terminalCode | Terminal Code | Yes | String |
manifestNumber | Manifest Number | Yes | String |
trailerNumber | Trailer Number | Yes | String |
driverNumber | Driver Number for which trailer is being arrived | Yes | String |
tractorNumber | Tractor Number | No | String |
arrivalStatus | Arrival Status for the trailer | Yes | String |
eventDataTime | Time at when this event happened | Yes | Date Time |
If posted successfully, 200 response code will be returned.
Update Trailer
The request body is expected in the following form:
{
"terminalCode": "ATL",
"trailerNumber": "123456",
"destTerminal": "TPA",
"trailerStatus": "MTY",
"latitude": 78.123,
"longitude": -67.124,
"eventDateTime": "2021-02-08 08:11:00.000"
}
API to send trailer status to RouteMAX whenever it gets updated.
HTTP Request
POST https://{tenant}.routemax.com/api/dispatch/trailer/updateTrailer
Request Body
Parameter | Description | Required | DataType |
---|---|---|---|
terminalCode | Terminal Code | Yes | String |
trailerNumber | Trailer Number | Yes | String |
destTerminal | Destination terminal for the trailer | Yes | String |
trailerStatus | Trailer Status | Yes | String |
latitude | Latitude | No | Decimal |
longitude | Longitude | No | Decimal |
eventDataTime | Time at when this event happened | Yes | Date Time |
If posted successfully, 200 response code will be returned.
Client Hosted APIs
Manifest Details
The request body is expected in the following form:
[
{
"terminalCode": "ABC",
"trailerNumber": "78954138",
"manifestNumber": "7877774",
"routeName": "0026",
"shipmentType": "D",
"proNumber": "748596445689",
"manifestStatus": "EMPTY",
"loadingZone": "F",
"dockWorkerCode": "98778",
"dockWorkerName": "",
"codAmount": 0,
"freightAmount": 0,
"pickupDate": "2020-11-03",
"planDate": "",
"companyCheck": false,
"cash": false,
"isAPT": false,
"earlyCTA": null,
"lateCTA": null,
"closeDateTime": "2020-11-09 14:46:00",
"dispatchDateTime": "2020-11-09 14:48:00",
"returnCode": ""
}
]
To fetch the shipments details loaded into the trailer as part of the manifest
HTTP Request
GET https://{tenant}/api/manifest/<<ManifestNumber>>
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
terminalCode | Terminal Code | Yes | String |
trailerNumber | TrailerNumber to which this manifest is associated to | No | String |
manifestNumber | Manifest Number | Yes | String |
routeName | Name of the route | Yes | String |
shipmentType | Delivery(D) or Pickup(P) | Yes | String |
proNumber | Pro Number | Yes | String |
manifestStatus | Status of the manifest | No | String |
loadingZone | Zone in which shipment is loaded | Yes | String |
dockWorkerCode | Dock worker code | No | String |
dockWorkerName | Name of the dock worker who loaded the shipment into the trailer | No | String |
codAmount | Cash on Delivery Amount | No | Number |
freightAmount | Freight Amount | No | Number |
pickupDate | Date on when pickup was made | Yes | Date |
companyCheck | Whether company check is required for this shipment | No | Boolean |
cash | Whether cash is accepted for this shipment | Yes | Boolean |
isAPT | Is Appointment | Yes | Boolean |
earlyCTA | Early committed time of arrival | No | Time |
lateCTA | Late committed time of arrival | No | Time |
closeDateTime | Date & Time at which this shipment is loaded into the trailer | Yes | Time |
dispatchDateTime | Date and Time at which shipment is dispatched | No | Time |
returnCode | Return code of the shipment if it is returned | No | String |
Shipment Details
The response body will be in the following form:
[
{
"terminal": "TPA",
"planDate": "2018-10-16",
"proId": "98765",
"originTerminal": "JAX",
"destTerminal": "TPA",
"currentTerminal": "JAX",
"shipmentDueDate": "2018-10-16",
"shipmentStatus": "Dock",
"isDelivery": true,
"pieces": 1,
"hu": 1,
"weight": 30,
"cube": 60,
"isHazmat": true,
"isApt": true,
"aptDueDate": "2018-10-16",
"billType": "E",
"isTrailerDrop": true,
"prepTime": 10,
"earlyCTA": "08:55",
"lateCTA": "08:55",
"ibETA": "2018-10-16 05:00",
"customerId": "136480",
"customerName": "US FOODSERVICE",
"address": "7004 E HANNA AVE",
"city": "Tampa",
"state": "FL",
"zip": "33610",
"latitude": 28.004917,
"longitude": -82.37527,
"openHours": "10:00",
"closeHours": "17:00",
"route": "21",
"geoArea": "LCNH",
"waveNumber": 1,
"returnCode" :"",
"receivingOpenHours1": "10:00",
"receivingCloseHours1": "11:00",
"receivingOpenHours2": "12:00",
"receivingCloseHours2": "14:00",
"shipperName": "ABC Freight",
"shipperCode": "1016443",
"shipperAddress": "7600, NW 5th Place",
"shipperCity": "Gainesville",
"shipperState": "FL",
"shipperZip": "32607",
"comments": "Use door no. 27",
"priority": "GS5",
"isLiftGate": true,
"isPup": false,
"isResidential": false,
"isLimitedAccess": false
}
]
To fetch the shipment metadata for those shipments that were not part of Inbound Planning
HTTP Request
POST https://{tenant}/api/shipmentDetails
Request Body Parameters
Parameter | Description |
---|---|
terminalCode | Terminal Code |
proNumbers | List of Pro Numbers |
Response Body
Response Body should be same as InputShipments in Inbound Planning
Parameter | Description | Required | DataType |
---|---|---|---|
terminal | Name of the terminal | Yes | String |
planDate | Date being routed | Yes | Date |
proId | Pro ID for the shipment | Yes | String |
originTerminal | Origin terminal for the shipment | Yes | String |
destTerminal | Destination terminal for the shipment | Yes | String |
currentTerminal | Current terminal of the shipment | Yes | String |
shipmentDueDate | Due date for the shipment | Yes | Date |
shipmentStatus | Shipment status | No | String |
isDelivery | Indicates if given shipment is a Delivery or Pickup | Yes | Boolean |
pieces | Bill of lading pieces (e.g., 1 pallet containing 25 boxes might be billed as 25 pieces) | Yes | Integer |
hu | Handling units (e.g., SW pallet containing 25 boxes is 1 HU) | Yes | Integer |
weight | Weight of the shipment | Yes | Integer |
cube | Cubic Feet | No | Integer |
isHazmat | Hazardous Material | No | Boolean |
isApt | Appointment | Yes | Boolean |
aptDueDate | Date for which appointment has been set, if applicable | No | Date |
billType | Early Bill or Late Bill based on Shipment Due date | No | String |
isTrailerDrop | Trailer Drop | No | Boolean |
prepTime | Minutes needed to crossdock shipment after arrival (e.g., if 60, then if ETA into terminal is 07:00, P&D route cannot leave before 08:00). | No | Integer |
earlyCTA | Early committed time of arrival | Yes | Time |
lateCTA | Late committed time of arrival | Yes | Time |
ibETA | Estimated or actual arrival time of shipment to destination terminal | Yes | DateTime |
customerId | Customer Code | Yes | String |
customerName | Customer Name | Yes | String |
address | Customer Address | Yes | String |
city | Customer City | Yes | String |
state | Customer State | Yes | String |
zip | Customer Zip | Yes | String |
latitude | Customer Latitude | Yes | Decimal |
longitude | Customer Longitude | Yes | Decimal |
openHours | Customer Receiving Open time | Yes | Time |
closeHours | Customer Receiving Close time | Yes | Time |
route | Carrier can give default route as starting point | Yes | String |
geoArea | The delivery route zone or geo-area the shipment typically belongs to | Yes | String |
waveNumber | Carrier can provide wave number to limit P&D departure time (e.g., shipment with linehaul ETA of 09:30 will not be put on P&D route leaving at 08:00) | No | Integer |
returnCode | Shipment return code (If null then the shipment is new, else it should contain any of the Return codes) | No | String |
receivingOpenHours1 | Default beginning of receiving hours for consignee (if not given, can be assumed as 08:00) | Yes | Time |
receivingCloseHours1 | Default end of receiving hours for consignee (if not given, can be assumed as 17:00) | Yes | Time |
receivingOpenHours2 | Receiving hours for consignee if there is a lunch break (if not given, can be assumed as blank) | No | Time |
receivingCloseHours2 | Default end of receiving hours for consignee if there is a lunch break (if not given, can be assumed as blank) | No | Time |
shipperName | Name of the shipper | No | String |
shipperCode | Shipper code | No | String |
shipperAddress | Address of the shipper | No | String |
shipperCity | City in which the shipper is located in | No | String |
shipperState | State in which the shipper is located in | No | String |
shipperZip | Zipcode of the shipper | No | String |
comments | User added comments for the shipments | No | String |
priority | Any special Expedite requirements | No | String |
isLiftGate | Does shipment require Lift Gate? | Yes | Boolean |
isPup | Does the shipment require pup trailer? | Yes | Boolean |
isResidential | Is shipment residential? | Yes | Boolean |
isLimitedAccess | Does the driver require any special paperwork/documentation to gain access to the customer facility? | Yes | Boolean |
Pickup Details
The response body will be in the following form:
{
"pickupNumber": "1234557",
"pickupDate": "2020-01-05",
"weight": 36701,
"packageCode": "",
"pieces": 0,
"readyTime": "17:00",
"closeTime": "23:00",
"shipperCode": "5555353",
"shipperName": "ABC CORP",
"shipperAddress": "4688 COBB PKWY",
"shipperCity": "KENNESAW",
"shipperState": "GA",
"shipperZip": "12345",
"contactName": "Andy Johnson",
"contactPhone": "1234567890",
"latitude": 30.0565,
"longitude": -80.5545,
"referenceNumber": "",
"isPriority": false,
"pickupMadeDateTime": null,
"voidedDateTime": null,
"pickupMadeBy": null,
"pros": [
{
"proNumber": 0,
"referenceNumber": null,
"cube": null,
"handlingUnits": 0,
"isFreezable": false,
"isLiftgate": false,
"isResidential": false,
"isLimitedAccess": false,
"isInsidePickup": false,
"isExcessiveLength": false,
"isFood": false,
"isPoison": false,
"consigneeName": "",
"consigneeAddress": null,
"consigneeCity": "",
"consigneeState": "",
"consigneeZip": "",
"consigneeCode": "",
"consigneeCountry": null,
"weight": 36701,
"pieces": 0,
"packageCode": "",
"priority": "",
"hazmatInfo": [
{
"uNumber": "UN3337",
"packageType": "",
"pieces": 1,
"packageCode": "PT",
"bulk": "",
"class": "2.2",
"weight": 499,
"emergencyPhone": "0"
}
]
}
],
"comments": [
{
"comment": "STACKABLE; No prefeence"
},
{
"comment": "96894"
},
{
"comment": "Done by Internet"
}
]
}
To fetch the pickup metadata for the pickups
HTTP Request
GET https://{tenant}/api/pickup/details/<<pickupNumber>>
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
pickupNumber | pickup number for the pickup | Yes | String |
pickupDate | Date for the pickup | No | String |
weight | weight of the pickup (in Lbs) | No | Integer |
packageCode | Package Code | No | String |
pieces | pieces in the pickup | No | Integer |
readyTime | Time at which pickup will be ready | Yes | Time |
closeTime | Time before which pickup should be collected | Yes | Time |
shipperCode | Shipper Code | Yes | String |
shipperName | Shipper Name | Yes | String |
shipperAddress | Address of the shipper | Yes | String |
shipperCity | City in which the shipper is located in | Yes | String |
shipperState | State in which the shipper is located in | Yes | String |
shipperZip | Zipcode of the shipper | Yes | String |
contactName | Contact Name | No | String |
contactPhone | Contact Phone | No | String |
latitude | Latitude | Yes | Decimal |
longitude | Longitude | Yes | Decimal |
referenceNumber | Reference Number | No | String |
isPriority | Is Pickup a Priority Pickup | No | Boolean |
pickupMadeDateTime | When pickup was Completed | No | String |
voidedDateTime | When pickup was Voided | No | String |
pickupMadeBy | Driver who completed the pickup | No | String |
pros | |||
proNumber | Pro Number for the pickup shipment (Fill this if it is a preAssigned pro) | No | Integer |
referenceNumber | ReferenceNumber – pro level | No | String |
cube | Cubic Feet | No | Integer |
handlingUnits | Handling Unit | No | Integer |
isFreezable | Is the shipment freezable? | Yes | Boolean |
isLiftgate | Does shipment require Lift Gate? | Yes | Boolean |
isResidential | Is shipment residential? | Yes | Boolean |
isLimitedAccess | Does the driver require any special paperwork/documentation to gain access to the customer facility? | Yes | Boolean |
isInsidePickup | Does the driver need to do an inside pickup | Yes | Boolean |
isExcessiveLength | Is Shipment exceeding length | Yes | Boolean |
isFood | Is the shipment a food shipment | Yes | Boolean |
isPoison | Is the shipment a poison shipment | Yes | Boolean |
consigneeName | Consignee Name | No | String |
consigneeAddress | Consignee Address | No | String |
consigneeCity | City in which the Consignee is located in | No | String |
consigneeState | State in which the Consignee is located in | No | String |
consigneeZip | Zipcode of the Consignee | Yes | String |
consigneeCode | Consignee Code | No | String |
consigneeCountry | Country in which the Consignee is located in | No | String |
weight | weight of the shipment | No | Integer |
pieces | pieces in the shipment | No | Integer |
packageCode | package code of the shipment | No | String |
priority | Any special Expedite requirements | No | String |
hazmatInfo | |||
uNumber | Hazmat Package UNumber | No | String |
packageType | Hazmat Package Type | No | String |
pieces | Hazmat pieces | No | Integer |
packageCode | Hazmat package code | No | String |
bulk | Hazmat bulk | No | String |
class | Hazmat Class | No | String |
weight | Hazmat weight | No | Integer |
emergencyPhone | Emergency Phone | No | String |
comments | |||
comment | User added comments for the shipments | No | String |
BOL Details
The response body will be in the following form:
{
"ediProNumber": 77091480380,
"consigneeCode": "",
"consigneeName": "ABC CORP",
"consigneeAddress1": "10234 N.W. 30TH STREET",
"consigneeAddress2": "SUITE 11",
"consigneeCity": "DORAL",
"consigneeState": "DL",
"consigneeZip": "12234",
"consigneeCountry": "US",
"shipperNumber": "",
"shipperZip": "53610",
"originTerminal": "HOU",
"pieces": 1,
"weight": 300,
"packageCode": "SK",
"addDateTime": "2020-01-02 13:07:49",
"bolNumber": "",
"referenceNumber": "",
"handlingUnits": 1,
"isFood": false,
"isFreezable": false,
"isLiftgate": false,
"isResidential": false,
"isLimitedAccess": false,
"isInsidePickup": false,
"isExcessiveLength": false,
"isPoison": false,
"priority": null,
"hazmatInfo": [
{
"uNumber": "UN3337",
"packageType": "",
"pieces": 1,
"packageCode": "PT",
"bulk": "",
"class": "2.2",
"weight": 499,
"emergencyPhone": "0"
}
]
}
To fetch the BOL metadata for the pickup shipments
HTTP Request
GET https://{tenant}/api/bol/<<ediProNumber>>
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
ediProNumber | Edi Pro Number | Yes | Integer |
consigneeCode | Consignee Code | No | String |
consigneeName | Consignee Name | No | String |
consigneeAddress1 | Consignee Address Line 1 | No | String |
consigneeAddress2 | Consignee Address Line 2 | No | String |
consigneeCity | City in which the Consignee is located in | No | String |
consigneeState | State in which the Consignee is located in | No | String |
consigneeZip | Zipcode of the Consignee | Yes | String |
consigneeCountry | Country in which the Consignee is located in | No | String |
shipperNumber | Shipper Number | No | String |
shipperZip | Zipcode of the Shipper | Yes | String |
originTerminal | Origin terminal for the shipment | Yes | String |
pieces | Pieces in the shipment | No | Integer |
weight | Weight of the shipment | No | Integer |
packageCode | package code of the shipment | No | String |
addDateTime | Add Date Time of the shipment | No | String |
bolNumber | Bill Of Lading Number | No | String |
referenceNumber | Reference number | No | String |
handlingUnits | Handling Unit | No | Integer |
isFood | Is the shipment a food shipment | Yes | Boolean |
isFreezable | Is the shipment freezable? | Yes | Boolean |
isLiftgate | Does shipment require Lift Gate? | Yes | Boolean |
isResidential | Is shipment residential? | Yes | Boolean |
isLimitedAccess | Does the driver require any special paperwork/documentation to gain access to the customer facility? | Yes | Boolean |
isInsidePickup | Does the driver need to do an inside pickup | Yes | Boolean |
isExcessiveLength | Is Shipment exceeding length | Yes | Boolean |
isPoison | Is the shipment a poison shipment | Yes | Boolean |
priority | Any special Expedite requirements | No | String |
hazmatInfo | |||
uNumber | Hazmat Package UNumber | No | String |
packageType | Hazmat Package Type | No | String |
pieces | Hazmat pieces | No | Integer |
packageCode | Hazmat package code | No | String |
bulk | Hazmat bulk | No | String |
class | Hazmat Class | No | String |
weight | Hazmat weight | No | Integer |
emergencyPhone | Emergency Phone | No | String |
Output APIs
Shipment Delivered
The response body will be in the following form:
{
"deviceMACAddress": "vfg33y767xvdfbfs",
"driverNumber": 1234,
"ipAddress": "127.0.0.1",
"deviceModel": "POCO X2",
"deviceLatitude": "22.99813",
"deviceLongitude": "-76.50723",
"devicePhone": "",
"terminalID": "ABC",
"manifestNumber": "123456",
"proNumber": "11111111111",
"deliveryCode": "Delivered",
"limitedCode": "",
"accessorials": [],
"deliveryExceptionNumber": 0,
"excessiveLength": 0,
"isShrinkWrap": true,
"palletCount": 805,
"signature": "REBECCA RUDD",
"receiverPhone": 0,
"receiverEmail": "",
"deliveryDate": "2021-03-04",
"customerPhone": 1234567890,
"comments": "",
"codCash": 10.87,
"codCheck": "12345",
"freightCash": 10.34,
"freightCheck": "12345",
"dispatcherName": "",
"driverAllowedInsideDock": true,
"driverArrivalTime": "2021-03-04 02:00:57:573",
"driverDepartureTime": "2021-03-04 02:00:57:573",
"eventDateTimeTerminal": "2021-03-04 02:00:57:573",
"eventDateTime": "2021-03-04 02:00:57:573"
}
API to post the data back to client systems when a shipment is delivered through RouteMAX Driver App or Dispatch Web Application.
HTTP Request
POST https://{tenant}/api/shipmentDelivered
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
deviceMACAddress | MAC Address of the device | Yes | String |
driverNumber | Driver Number | Yes | Integer |
ipAddress | IP Address of the device | Yes | String |
deviceModel | Model Number of the device | Yes | String |
deviceLatitude | Current latitude of the device | Yes | String |
deviceLongitude | Current longitude of the device | Yes | String |
devicePhone | Device phone number | Yes | String |
terminalID | Terminal for which delivery is done | Yes | String |
manifestNumber | Manifest Number | Yes | String |
proNumber | Pro Number which is delivered | Yes | String |
deliveryCode | Delivery Code | Yes | String |
limitedCode | Limited Access Code | Yes | String |
accessorials | Accessorials used for delivering | Yes | String Array |
deliveryExceptionNumber | Delivery Exception Number | Yes | Integer |
excessiveLength | Excessive Length of the shipment | Yes | String |
isShrinkWrap | Is Shrink Wrap Intact | Yes | Boolean |
palletCount | Pallet Count | Yes | Integer |
signature | Receiver's Name | Yes | String |
receiverPhone | Receiver's Phone Number | Yes | Integer |
receiverEmail | Receiver's Email Address | Yes | String |
deliveryDate | Date of Delivery | Yes | String |
customerPhone | Customer Phone Number | Yes | Integer |
comments | Driver added comments for dispatcher | Yes | String |
codCash | COD Amount | Yes | Decimal |
codCheck | COD payment check number | Yes | String |
freightCash | Freight Amount | Yes | Decimal |
freightCheck | Freight payment check number | Yes | String |
dispatcherName | Dispatcher Name if event is being triggered from the web application | No | String |
driverAllowedInsideDock | Is Driver allowed to inside to complete the delivery? | Yes | Boolean |
driverArrivalTime | Arrival time of driver at customer location in terminal's local time zone | Yes | String |
driverDepartureTime | Departure time of driver from customer location in terminal's local time zone | Yes | String |
eventDateTimeTerminal | Event occured Date time in terminal's local time zone | Yes | String |
eventDateTime | Event occured Date Time in UTC | Yes | String |
Shipment Picked Up
The response body will be in the following form:
{
"deviceMACAddress": "vfg33y767xvdfbfs",
"driverNumber": 1234,
"ipAddress": "127.0.0.1",
"deviceModel": "POCO X2",
"deviceLatitude": "22.28368",
"deviceLongitude": "-76.40643",
"devicePhone": "",
"terminalID": "ABC",
"manifestNumber": "123456",
"proNumber": "11111111111",
"limitedCode": "",
"accessorials": [],
"excessiveLength": 0,
"trailer": "123456",
"pickupNumber": "123456",
"consignee": {
"code": "",
"name": "Pi9",
"address1": "",
"address2": "",
"city": "TLAXCALA",
"state": "MX",
"zip": "90021",
"country": "MX"
},
"shipper": {
"code": "11111",
"name": "QUALITY TOOL",
"address1": "TUXEDO",
"address2": "",
"city": "NORCROSS",
"state": "GA",
"zip": "30071"
},
"isFood": true,
"isSLC": false,
"isFreezable": true,
"isAmmunition": false,
"pieces": 9,
"comment": "",
"totalHandlingUnits": 9,
"totalWeight": 9,
"packageType": "PL",
"ediProNumber": "0",
"receivedCanadianDocumentation": false,
"driverAllowedInsideDock": true,
"isGuaranteed": true,
"hazardInfo": [
{
"unCode": "UN3214",
"packageType": "",
"handlingUnits": 2,
"packageCode": "TB",
"weight": 2,
"bulk": "N",
"emergencyPhone": "1234567890"
}
],
"package": [
{
"handlingUnits": 9,
"weight": 0,
"packageType": "PL"
}
],
"dispatcherName": "",
"driverArrivalTime": "2021-03-04 02:00:57:573",
"driverDepartureTime": "2021-03-04 02:00:57:573",
"eventDateTimeTerminal": "2021-03-04 02:00:57:573",
"eventDateTime": "2021-03-02 09:12:11:867"
}
API to post the data back to client systems when a shipment is picked up through RouteMAX Driver App or Dispatch Web Application.
HTTP Request
POST https://{tenant}/api/shipmentPickedUp
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
deviceMACAddress | MAC Address of the device | Yes | String |
driverNumber | Driver Number | Yes | Integer |
ipAddress | IP Address of the device | Yes | String |
deviceModel | Model Number of the device | Yes | String |
deviceLatitude | Current latitude of the device | Yes | String |
deviceLongitude | Current longitude of the device | Yes | String |
devicePhone | Device phone number | Yes | String |
terminalID | Terminal for which delivery is done | Yes | String |
manifestNumber | Manifest Number | Yes | String |
proNumber | Pro Number which is Picked up | Yes | String |
limitedCode | Limited Access Code | Yes | String |
accessorials | Accessorials used for delivering | Yes | String Array |
excessiveLength | Excessive Length of the shipment | Yes | String |
trailer | Trailer Number in which shipment is picked up | Yes | String |
pickupNumber | Pickup Number for which shipment is being Picked up | Yes | String |
consignee | |||
code | Consignee Code | Yes | String |
name | Consignee Name | Yes | String |
address1 | Address Line 1 | Yes | String |
address2 | Address Line 2 | Yes | String |
city | Consignee City | Yes | String |
state | Consignee State | Yes | String |
zip | Consignee Zip | Yes | String |
country | Consignee Country | Yes | String |
shipper | |||
code | Consignee Code | Yes | String |
name | Consignee Name | Yes | String |
address1 | Address Line 1 | Yes | String |
address2 | Address Line 2 | Yes | String |
city | Consignee City | Yes | String |
state | Consignee State | Yes | String |
zip | Consignee Zip | Yes | String |
isFood | Is the pickedup shipment food shiment? | Yes | Boolean |
isSLC | Is Shipper Load And Count? | Yes | Boolean |
isFreezable | Is the pickedup shipment freezable shiment? | Yes | Boolean |
isAmmunition | Is the pickedup shipment ammunition shiment? | Yes | Boolean |
pieces | Number of pieces picked up | Yes | Integer |
comment | Driver added comments for dispatcher | Yes | String |
totalHandlingUnits | Total Handling Units Picked Up | Yes | Integer |
totalWeight | Total Weight of Shipment being Picked Up | Yes | Integer |
packageType | Package Type | Yes | String |
ediProNumber | EDI ProNumber for the shipment | Yes | String |
receivedCanadianDocumentation | Did Driver receive Canadian Documentation? | Yes | Boolean |
driverAllowedInsideDock | Was the driver allowed inside to complete pickup? | Yes | Boolean |
isGuaranteed | Is the pickup a guarantee pickup? | Yes | Boolean |
hazmatInfo | |||
unCode | Hazmat Package UNumber | Yes | String |
packageType | Hazmat Package Type | Yes | String |
handlingUnits | Hazmat handling units | Yes | Integer |
packageCode | Hazmat package code | Yes | String |
bulk | Hazmat bulk | Yes | String |
weight | Hazmat weight | Yes | Integer |
emergencyPhone | Emergency Phone | Yes | String |
package | |||
handlingUnits | Number of handling units | Yes | Number |
weight | Weight of the package | Yes | Number |
packageType | Package Type | Yes | String |
dispatcherName | Dispatcher Name if event is being triggered from the web application | No | String |
driverArrivalTime | Arrival time of driver at shipper location in terminal's local time zone | Yes | String |
driverDepartureTime | Departure time of driver from shipper location in terminal's local time zone | Yes | String |
eventDateTimeTerminal | Event occured Date time in terminal's local time zone | Yes | String |
eventDateTime | Event occured Date Time In UTC | Yes | String |
No Freight Picked Up
The response body will be in the following form:
{
"deviceMACAddress": "vfg33y767xvdfbfs",
"driverNumber": 1234,
"ipAddress": "127.0.0.1",
"deviceModel": "motorola one fusion+",
"deviceLatitude": "22.28368",
"deviceLongitude": "-76.40643",
"devicePhone": "",
"terminalID": "ABC",
"pickupNumber": "1234567",
"contactName": "Charlie",
"dispatcherName": "",
"driverArrivalTime": "2021-06-25 02:36:15:767",
"driverDepartureTime": "2021-06-25 02:36:57:556",
"eventDateTimeTerminal": "2021-06-25 02:36:57:556",
"eventDateTime": "2021-06-25 07:36:57:556"
}
API to post the data back to client systems when no freight is picked up through RouteMAX Driver App or Dispatch Web Application.
HTTP Request
POST https://{tenant}/api/noFreightPickedUp
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
deviceMACAddress | MAC Address of the device | Yes | String |
driverNumber | Driver Number | Yes | Integer |
ipAddress | IP Address of the device | Yes | String |
deviceModel | Model Number of the device | Yes | String |
deviceLatitude | Current latitude of the device | Yes | String |
deviceLongitude | Current longitude of the device | Yes | String |
devicePhone | Device phone number | Yes | String |
terminalID | Terminal for which delivery is done | Yes | String |
pickupNumber | Pickup Number which is being completed | Yes | String |
contactName | Contact name | Yes | String |
dispatcherName | Dispatcher Name if event is being triggered from the web application | No | String |
driverArrivalTime | Arrival time of driver at shipper location in terminal's local time zone | Yes | String |
driverDepartureTime | Departure time of driver from shipper location in terminal's local time zone | Yes | String |
eventDateTimeTerminal | Event occured Date time in terminal's local time zone | Yes | String |
eventDateTime | Event occured Date Time In UTC | Yes | String |
Trailer Dropped
The response body will be in the following form:
{
"deviceMACAddress": "vfg33y767xvdfbfs",
"driverNumber": 12345,
"ipAddress": "127.0.0.1",
"deviceModel": "TC57",
"deviceLatitude": "76.09729",
"deviceLongitude": "-12.38836",
"devicePhone": "",
"terminalID": "ABC",
"trailerNumber": "123456",
"deliveryDate": "2020-12-04",
"dropType": "CD",
"driverArrivalTime": "2020-12-04 13:04:30:958",
"driverDepartureTime": "2020-12-04 13:04:30:958",
"signature": "",
"locationName": "A & A DISCOUNT VACUUM",
"gpsAddress": "9743 W HILLSBOROUGH AVE",
"gpsCity": "TAMPA",
"gpsState": "FL",
"gpsZip": "33615",
"eventDateTimeTerminal": "2021-06-25 02:36:57:556",
"eventDateTime": "2020-12-04 13:04:30:958"
}
API to post the data back to client systems when a trailer is dropped through RouteMAX Driver App.
HTTP Request
POST https://{tenant}/api/dropTrailer
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
deviceMACAddress | MAC Address of the device | Yes | String |
driverNumber | Driver Number | Yes | Integer |
ipAddress | IP Address of the device | Yes | String |
deviceModel | Model Number of the device | Yes | String |
deviceLatitude | Current latitude of the device | Yes | String |
deviceLongitude | Current longitude of the device | Yes | String |
devicePhone | Device phone number | Yes | String |
terminalID | Terminal for which trailer drop is done | Yes | String |
trailerNumber | Trailer number which is being dropped | Yes | String |
deliveryDate | Delivery Date | Yes | String |
dropType | Type of trailer drop | Yes | String |
CD - Customer Delivery | |||
ET - Empty Trailer | |||
TL - Temporary Location | |||
AI - Agent Interline | |||
driverArrivalTime | Arrival time of driver in terminal's local time zone | Yes | String |
driverDepartureTime | Departure time of driver in terminal's local time zone | Yes | String |
signature | Receiver name for trailer drop | Yes | String |
locationName | location where trailer is being dropped | Yes | String |
gpsAddress | GPS Address of the drop location | Yes | String |
gpsCity | GPS City of drop location | Yes | String |
gpsState | GPS State of drop location | Yes | String |
gpsZip | GPS Zip of drop location | Yes | String |
eventDateTimeTerminal | Event occured Date time in terminal's local time zone | Yes | String |
eventDateTime | Event occured Date Time In UTC | Yes | String |
Trailer Hooked
The response body will be in the following form:
{
"deviceMACAddress": "vfg33y767xvdfbfs",
"driverNumber": 123456,
"ipAddress": "127.0.0.1",
"deviceModel": "TC57",
"deviceLatitude": "76.09731",
"deviceLongitude": "-21.38835",
"devicePhone": "",
"terminalID": "ABC",
"trailerNumber": "12345",
"eventDateTimeTerminal": "2021-06-25 02:36:57:556",
"eventDateTime": "2020-11-16 15:29:09:479"
}
API to post the data back to client systems when a trailer is hooked through RouteMAX Driver App.
HTTP Request
POST https://{tenant}/api/hookTrailer
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
deviceMACAddress | MAC Address of the device | Yes | String |
driverNumber | Driver Number | Yes | Integer |
ipAddress | IP Address of the device | Yes | String |
deviceModel | Model Number of the device | Yes | String |
deviceLatitude | Current latitude of the device | Yes | String |
deviceLongitude | Current longitude of the device | Yes | String |
devicePhone | Device phone number | Yes | String |
terminalID | Terminal for which trailer hook is done | Yes | String |
trailerNumber | Trailer number which is being hooked | Yes | String |
eventDateTimeTerminal | Event occured Date time in terminal's local time zone | Yes | String |
eventDateTime | Event occured Date Time In UTC | Yes | String |
Bills Moved
The response body will be in the following form:
{
"deviceMACAddress": "vfg33y767xvdfbfs",
"driverNumber": 12345,
"ipAddress": "127.0.0.1",
"deviceModel": "EDA71_G",
"deviceLatitude": "56.96471",
"deviceLongitude": "-12.37683",
"devicePhone": "",
"terminalID": "ABC",
"proNumbers": ["12345678900"],
"fromTrailer": "123456",
"toTrailer": "234567",
"eventDateTimeTerminal": "2021-06-25 02:36:57:556",
"eventDateTime": "2021-01-04 06:57:09:793"
}
API to post the data back to client systems when a bill is moved to a different trailer through RouteMAX Driver App.
HTTP Request
POST https://{tenant}/api/moveBill
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
deviceMACAddress | MAC Address of the device | Yes | String |
driverNumber | Driver Number | Yes | Integer |
ipAddress | IP Address of the device | Yes | String |
deviceModel | Model Number of the device | Yes | String |
deviceLatitude | Current latitude of the device | Yes | String |
deviceLongitude | Current longitude of the device | Yes | String |
devicePhone | Device phone number | Yes | String |
terminalID | Terminal for which move bill is done | Yes | String |
proNumbers | ProNumbers which are being moved | Yes | String Array |
fromTrailer | Trailer number from which bill is being moved | Yes | String |
toTrailer | Trailer number to which bill is being moved | Yes | String |
eventDateTimeTerminal | Event occured Date time in terminal's local time zone | Yes | String |
eventDateTime | Event occured Date Time In UTC | Yes | String |
Bobtail
The response body will be in the following form:
{
"deviceMACAddress": "vfg33y767xvdfbfs",
"driverNumber": 12345,
"ipAddress": "127.0.0.1",
"deviceModel": "EDA71_G",
"deviceLatitude": "56.96471",
"deviceLongitude": "-12.37683",
"devicePhone": "",
"terminalID": "ABC",
"eventDateTimeTerminal": "2021-06-25 02:36:57:556",
"eventDateTime": "2021-01-04 06:57:09:793"
}
API to post the data back to client systems when bobtail is perfomed through RouteMAX Driver App.
HTTP Request
POST https://{tenant}/api/bobtail
Response Body
Parameter | Description | Required | DataType |
---|---|---|---|
deviceMACAddress | MAC Address of the device | Yes | String |
driverNumber | Driver Number | Yes | Integer |
ipAddress | IP Address of the device | Yes | String |
deviceModel | Model Number of the device | Yes | String |
deviceLatitude | Current latitude of the device | Yes | String |
deviceLongitude | Current longitude of the device | Yes | String |
devicePhone | Device phone number | Yes | String |
terminalID | Terminal for which move bill is done | Yes | String |
eventDateTimeTerminal | Event occured Date time in terminal's local time zone | Yes | String |
eventDateTime | Event occured Date Time In UTC | Yes | String |
Historical Data
RouteMAX will use historical data of actual implementation of routes in the street, to do the following analysis-
- Calibrate machine learning model with your historical data to predict dwell time at each customer location.
- Adjust travel times such that the ETAs at stops are predicted accurately.
We recommend having this data for 1 year.
This data can be given in an excel or csv file. Please open the link given below to download the template of the excel file.
Errors
The RouteMAX APIs uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request is invalid. |
401 | Unauthorized -- Your API key is wrong. |
403 | Forbidden -- The API requested is hidden for administrators only. |
404 | Not Found -- The specified API could not be found. |
405 | Method Not Allowed -- You tried to access with an invalid method. |
406 | Not Acceptable -- You requested a format that isn't json. |
409 | Version Conflict -- Conflict with the current state of the target resource. |
410 | Gone -- The requested API has been removed from our servers. |
429 | Too Many Requests -- You have sent too many requests in a given amount of time. |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |