Skip to main content

XGS APIs (1.0)

API specification documentation for XGS APIs.

Authentication

Retrive Token

Reterive a token to access XGS APIs

Authorizations:
bearer
Request Body schema: application/json
required
id
required
string <string>

User ID for XGS APIs account

pw
required
string <string>

Password for XGS APIs account

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "pw": "string"
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "token_type": "Bearer",
  • "expires_in": 0
}

WMS

Create Shipment

Request Body schema: application/json
required
bolNumber
required
string

BOL(Bill of Lading Number) for the Shipment

poNumber
required
string

PO(Purchase Order Number) for the Shipment

isWillCall
required
boolean

Will Call flag, set as true if shipment is required to be be a will call else set false

required
object

Ship From information, for shipments one of the XGS Locations storing the ordered Inventory is required

required
object

Ship To information, address and contact for the delivery location

required
Array of objects (Item)

Line Items for the Shipment

notes
required
string

Notes-Warehouse Instruction

Responses

Request samples

Content type
application/json
{
  • "bolNumber": "string",
  • "poNumber": "string",
  • "isWillCall": true,
  • "shipFrom": {
    },
  • "shipTo": {
    },
  • "items": [
    ],
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "result": true,
  • "probillNumber": 0,
  • "error": "string"
}

Create Receipt

Request Body schema: application/json
required
bolNumber
required
string

BOL(Bill of Lading Number) for the Shipment

poNumber
required
string

PO(Purchase Order Number) for the Shipment

isWillCall
required
boolean

Will Call flag, set as true if shipment is required to be be a will call else set false

required
object

Ship From information, for receipt this is the origin location for the Freight

required
object

Ship To information, XGS Location where the Inventory has to be stored

required
Array of objects (Item)

Line Items for the Shipment

notes
required
string

Notes-Warehouse Instruction

Responses

Request samples

Content type
application/json
{
  • "bolNumber": "string",
  • "poNumber": "string",
  • "isWillCall": true,
  • "shipFrom": {
    },
  • "shipTo": {
    },
  • "items": [
    ],
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "result": true,
  • "probillNumber": 0,
  • "error": "string"
}

Inventory Inquiry

query Parameters
clientCode
required
number

XGS Client Code for the Location where Inventory is being stored

Responses

Response samples

Content type
application/json
{
  • "result": true,
  • "inventory": [
    ],
  • "error": "string"
}

Consolidation

Submit Distribution Plan

Request Body schema: application/json
required
planId
required
string

Unique ID for the Plan

required
Array of objects (IncomingFreght)

Details for the Incoming Freight

required
Array of objects (Deliveries)

Details for the Deliveries

Responses

Request samples

Content type
application/json
{
  • "planId": "string",
  • "incomingFreight": [
    ],
  • "deliveries": [
    ]
}

Response samples

Content type
application/json
{
  • "result": true,
  • "results": { },
  • "error": "string"
}

Pickups

Create Pickup

Authorizations:
bearer
Request Body schema: application/json
required
bol
required
string

Bill of Lading Number

purchaseOrder
string

Purchase Order Number

orderDescription
string

Order Description

totalWeight
number

Total weight of the Pickup

generalNotes
string

Instructions and Notes for the Pickup

required
object

Details on the Window available for the Pickup

required
object

Address and Contact details for the Pickup Location

required
object

Address and Contact details for the Delivery Location

required
Array of objects (PickupItem)

Line Items Details

Responses

Request samples

Content type
application/json
{
  • "bol": "string",
  • "purchaseOrder": "string",
  • "orderDescription": "string",
  • "totalWeight": 0,
  • "generalNotes": "string",
  • "pickupWindow": {
    },
  • "pickupFrom": {
    },
  • "shipTo": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "result": true,
  • "pickupNumber": "string"
}

Tracking

List all live shipments

Get list of all live shipments with current status and details. API uses pagination, to get all shipments keep incrementing the value of pageNumber(check param for more details)

Authorizations:
bearer
query Parameters
limit
required
number

Limit for the probills in response

pageNumber
required
number

Page number for the respone, to get all live probills status keep incrementing by 1 untill a response with empty results array is recevied

Responses

Response samples

Content type
application/json
{
  • "result": true,
  • "results": [
    ]
}

Track Probill details

Get the current status and details of a Shipment by probill number.

Authorizations:
bearer
query Parameters
probillNumber
required
number

Probill number to be tracked

Responses

Response samples

Content type
application/json
{
  • "result": true,
  • "results": [
    ]
}

Track BOL details

Get the current status and details of a Shipment by BOL number.

Authorizations:
bearer
query Parameters
bol
required
string

BOL number to be tracked

Responses

Response samples

Content type
application/json
{
  • "result": true,
  • "results": [
    ]
}

LTL

Create BOL and Pickup

Create a BOL and Pickup request

Authorizations:
bearer
Request Body schema: application/json
required
bol
required
string <string> <= 20 characters

Bill of Lading Number

purchaseOrder
string <string> <= 12 characters

Purchase Order Number

payType
required
string
Enum: "Prepaid" "Collect" "Third Party"

Pay type for BOL

isWillCall
boolean <boolean>

Flag for will call

orderDescription
string <string> <= 100 characters

Order Description

totalWeight
number <float> <= 9999999

Total weight of the Pickup

generalNotes
string <string> <= 150 characters

Instructions and Notes for the Pickup

required
object

Details on the Window available for the Pickup

required
object

Shipper information

required
object

Address and Contact details for the Pickup Location

required
object

Address and Contact details for the Delivery Location

required
Array of objects (BolAndPickupItem)

Line Items Details

Responses

Request samples

Content type
application/json
{
  • "bol": "string",
  • "purchaseOrder": "string",
  • "payType": "Prepaid",
  • "isWillCall": true,
  • "orderDescription": "string",
  • "totalWeight": 9999999,
  • "generalNotes": "string",
  • "pickupWindow": {
    },
  • "shipper": {
    },
  • "pickupFrom": {
    },
  • "shipTo": {
    },
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "result": true,
  • "probillNumber": 0,
  • "pickupNumber": "string"
}

Pickup Documents

This API provides documents realted to Pickups, this includes XGS BOL and Shipping Labels.

Authorizations:
bearer
query Parameters
probillNumber
required
number <int> <= 99999999

XGS Probill number

documentType
required
string
Enum: "ALL" "BOL" "LABEL"

Type of document required in the response

Responses

Response samples

Content type
application/json
{
  • "result": true,
  • "document": "string",
  • "error": "string"
}

Bol Document

This API provides XGS BOL document for pickup

Authorizations:
bearer
query Parameters
probillNumber
required
number <int> <= 99999999

XGS Probill number

Responses

Response samples

Content type
application/json
{
  • "result": true,
  • "document": "string",
  • "error": "string"
}

Shipping Labels

This API provides XGS Shipping Labels for pickup

Authorizations:
bearer
query Parameters
probillNumber
required
number <int> <= 99999999

XGS Probill number

Responses

Response samples

Content type
application/json
{
  • "result": true,
  • "document": "string",
  • "error": "string"
}

Generate Rate Quote

This API generates a rate quote for Less-Than-Truckload (LTL) shipments based on origin and destination zip codes, tender date, special services, and shipment details. It supports multiple items with various freight class codes, units of measure, and weights.

Authorizations:
bearer
Request Body schema: application/json
required
originZipcode
required
string = 5 characters

Zipcode for the Origin location. First 5 digits of the US zipcode. In case the zipcode is of 4 digits prepend with 0

destinationZipcode
required
string = 5 characters

Zipcode for the Destination location. First 5 digits of the US zipcode. In case the zipcode is of 4 digits prepend with 0

tenderDate
required
string <date>

Tender date for the Rate quote, format ISO 8601 date(YYYY-MM-DD).

specialServices
Array of strings
Items Enum: "DRIVER_COLLECT_FEE" "INSIDE_DELIVERY" "LIFTGATE" "JOBSITE_DELIVERY" "NOTIFY_FEE" "RESIDENTIAL_DELIVERY" "SORT_AND_SEGREGATE" "TRADE_SHOW_DELIVERY" "WILL_CALL" "WHITE_GLOVE" "LIMITED_ACCESS"

List of Special Services. Note: INSIDE_DELIVERY and RESIDENTIAL_DELIVERY are mutually exclusive, they cannot be selected together

required
Array of objects (LtlRateQuoteRequestItem)

List of Items

Responses

Request samples

Content type
application/json
{
  • "originZipcode": "strin",
  • "destinationZipcode": "strin",
  • "tenderDate": "2019-08-24",
  • "specialServices": [
    ],
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "result": true,
  • "error": "string",
  • "quoteNumber": "string",
  • "quoteAmount": 9999999.99,
  • "quoteExpiryDate": "2019-08-24",
  • "fuelCharge": 9999.99,
  • "fuelMessage": "string",
  • "fuelSurchargePercentage": 100,
  • "totalAccessorialsCharge": 99999.99,
  • "totalFrieghtCharge": 99999.99,
  • "customer": {
    },
  • "origin": {
    },
  • "destination": {
    },
  • "items": [
    ]
}

Agents

List Live Freight

API provides a paginated list of all probills dispatched for the agent, organized by page size and page number. This API is useful for obtaining active shipments in real-time. Continue incrementing the pageNumber parameter until an empty response is received to cover all entries.

Authorizations:
bearer
query Parameters
pageSize
required
number <int> [ 1 .. 50 ]

Number of enteries in the Response

pageNumber
required
number <int> [ 1 .. 100 ]

Page number for the respone, to get all live probills keep incrementing by 1 untill a response with empty probills array is recevied

Responses

Response samples

Content type
application/json
{
  • "probills": [
    ]
}

Probill Details

Provides detailed information about a specific probill, including associated items, consignee details, and identifiers like Probill Number, Bill of Lading (BOL) Number, and Purchase Order Number

Authorizations:
bearer
query Parameters
probillNumber
required
number <int> [ 1 .. 99999999 ]

Probill Number for which the details are required

Responses

Response samples

Content type
application/json
{
  • "probill": {
    }
}

Manifest Probills

API provides a list of probills assigned to a specified manifest that has been dispatched for the agent

Authorizations:
bearer
query Parameters
manifestNumber
required
number <int> [ 1 .. 999999 ]

Manifest Number

Responses

Response samples

Content type
application/json
{
  • "probills": [
    ]
}

Arrive a Manifest

Marks a manifest as 'Arrived' at the agent's facility, signaling that the shipments within the manifest are now ready for unloading or further processing.

Authorizations:
bearer
Request Body schema: application/json
required
manifestNumber
required
number <int> [ 1 .. 999999 ]

Manifest Number

arrivedAt
required
string <date-time>

ISO 8601 date-time, in UTC timezone

Responses

Request samples

Content type
application/json
{
  • "manifestNumber": 1,
  • "arrivedAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "result": true
}

Delivery Receipt

Get Delivery Receipt for a Probill. The API provides a base64 encoded document for the requested probill delivery receipt.

Authorizations:
bearer
query Parameters
probillNumber
required
number <int> [ 1 .. 99999999 ]

Probill Number for which the details are required

Responses

Response samples

Content type
application/json
{
  • "document": "string"
}

Probill Status Update

Provide status of a dispatched probill. The API allows to post the status along with envent timestamp. This API provides a means for logistics agents to communicate precise shipment status updates (e.g., “PICKED_UP” or “OUT_FOR_DELIVERY”) in real time to all stakeholders. Accurate status updates ensure transparency and help agents keep customers informed of any logistical changes or expected delivery times

Authorizations:
bearer
Request Body schema: application/json
required
probillNumber
required
number <int> [ 1 .. 99999999 ]

Probill Number for which the details are required

status
required
string
Enum: "PICKED_UP" "OUT_FOR_DELIVERY"

Status for the Probill

eventTime
required
string <date-time>

ISO 8601 date-time, in UTC timezone

Responses

Request samples

Content type
application/json
{
  • "probillNumber": 1,
  • "status": "PICKED_UP",
  • "eventTime": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "result": true
}

POD By Image

Provide POD info for a probill, this updates the probill status to DELIVERED along with indexing the image. The POD image should contain signature from the customer.

Authorizations:
bearer
Request Body schema: application/json
required
probillNumber
required
number <int> [ 1 .. 99999999 ]

Probill Number for which the details are required

eventTime
required
string <date-time>

ISO 8601 date-time, in UTC timezone

podImage
required
string

Base64 encoded image for POD containing signature from the customer

signerName
required
string <string> [ 1 .. 50 ] characters

Name of the person who signed for the POD

Responses

Request samples

Content type
application/json
{
  • "probillNumber": 1,
  • "eventTime": "2019-08-24T14:15:22Z",
  • "podImage": "string",
  • "signerName": "string"
}

Response samples

Content type
application/json
{
  • "result": true
}

Appointment Details

Create shipment appointment for Probill

Authorizations:
bearer
Request Body schema: application/json
required
probillNumber
required
number <int> [ 1 .. 99999999 ]

Probill Number for which the details are required

appointmentDate
required
string <date>

Appointment date, format(YYYY-MM-DD)

earlyTime
required
string <string>

Early time for the appointment, format(HH:MM)

lateTime
required
string <string>

Late time for the appointment, format(HH:MM)

appointmentName
required
string <string> [ 1 .. 20 ] characters

Name for the appointment

reason
required
string
Enum: "Bol Held At Origin" "Cust Closed For Holiday" "Cust Delayed Appointment" "Cust Postponed Appt/Delvry" "Cust Requested Early Delivery" "Cust Requested Redelivery" "Customer Closed For Holiday" "Delayed From Previous Stop" "Destination Missed Delivery" "Destination S/C Damaged" "Destination S/C Missed Appt." "Destination S/C Shortage" "Destination Weather Delay" "Linehaul Delay" "Linehaul Equipment Delay" "Linehaul Shortage" "Linehaul Weather Delay" "Origin Delay - Misload" "Origin Delayed Departure" "Origin Delay-Out Of Route" "State Of Emergency"

Reason for the appointment

notes
string <string> <= 300 characters

Notes related to appointment

Responses

Request samples

Content type
application/json
{
  • "probillNumber": 1,
  • "appointmentDate": "2019-08-24",
  • "earlyTime": "string",
  • "lateTime": "string",
  • "appointmentName": "string",
  • "reason": "Bol Held At Origin",
  • "notes": "string"
}

Response samples

Content type
application/json
{
  • "result": true
}