Order API
Order materials and track orders and deliveries within your system. Retrieve order details and the status of upcoming deliveries to keep your team on track and your customers informed in real time.
The Place Order endpoint submits orders to a given ABC Supply branch. You can specify account numbers, dates, delivery appointments, pricing, product line items and comments and will return the confirmation number.
order API
Place Orders
POST /orders
Place orders to ABC Supply Branches
Sandbox
Production
Authorization
For Individuals and Businesses, use OAuth 2.0 server or user token with the order.write scope.
For Third-Party Aggregators, use OAuth 2.0 user token with the order.write scope.
Request
Name
Type
Description
requestId
string
A unique identifier provided by the client to track orders within the ABC Supply order processing system.
purchaseOrder
string
The purchase order related to the sales order. NOTE: this field is limited to 16 characters at this time.
branchNumber
string
The ABC Supply branch number.
deliveryService
enum
The type of Delivery service for the order (e.g., “COM”: Common Carrier, “CPU”: Customer Pickup, “EXP”: Express Pickup, “OTR”: Our Truck Roof, “OTG”: Our Truck Ground, “OTW”: Our Truck Window, “TPC”: Third-Party Carrier). NOTE: Delivery Services available are dependent on the branch and are subject to change at the discretion of the branch.
typeCode
enum
The type code for the order. (e.g., “SO”: Sales Order). NOTE: “SO” is the only supported type code at this time.
dates
object
The object that describes Delivery dates.
dates.deliveryRequestedFor
string
Optional. The date for which the Delivery is requested. NOTE: If not provided, the Delivery date will be noted as “To Be Determined” by the receiving branch.
deliveryAppointment
object
The object that describes the Delivery appointment.
deliveryAppointment.instructionsTypeCode
string
The delivery appointment type. “AT”: Anytime Delivery, “AM”: Morning Delivery, “PM”: Afternoon Delivery, “FS”: First Stop Delivery, “ST”: Specific Time, “TR”: Time Range.
deliveryAppointment.instructions
string
The delivery instructions. NOTE: this field is limited to 255 characters. The “orderComments” field may be used to provide additional delivery instructions.
deliveryAppointment.fromTime
string
The earliest point of scheduled Delivery in local military time (e.g., “13:00”). Required, but value only applies to Specific Time and Time Range.
deliveryAppointment.toTime
string
The latest point of scheduled Delivery in local military time (e.g., “13:00”). Required, but value only applies to Time Range.
shipTo
object
The object describing the ABC Ship-To account and Delivery information.
shipTo.name
string
A user-specified job name for reference.
shipTo.number
string
The unique ABC Ship-To account number identifying the ship-to location receiving the item.
shipTo.address
object
The object describing the Delivery address.
shipTo.address.line1
string
This is the first line of the Delivery address, usually including the street number and name.
shipTo.address.line2
string
This is the second line of the Delivery address, which may include additional information like building numbers.
shipTo.address.line3
string
This is the third line of the Delivery address, often used for more specific location information or additional directions.
shipTo.address.city
string
The Delivery city.
shipTo.address.state
string
The Delivery state.
shipTo.address.postal
string
The Delivery code.
shipTo.address.country
object
The Delivery country (e.g., “USA”).
shipTo.contacts
array
The list of contacts related to a Delivery.
shipTo.contacts[].name
string
The contact name.
shipTo.contacts[].functionCode
enum
The contact’s function code. “SM”: submitting contact, “DC”: delivery contact.
“SM” indicates the primary contact for order processing, while “DC” indicates the primary contact for delivery.
shipTo.contacts[].email
string
The contact email address.
shipTo.contacts[].phones
array
The list of phone numbers related to a contact.
shipTo.contacts[].phones[].number
string
The phone number.
shipTo.contacts[].phones[].type
string
The type of the phone (e.g., “MOBILE”).
shipTo.contacts[].phones[].ext
string
The phone extension if present.
orderComments
array
A list of comments that relate to the order.
orderComments[].description
string
The order comment text to display.
orderComments[].code
string
The code for the order comment (e.g., “H”: Header, “F”: Footer, “D”: Detailed).
lines
array
A list of lines that relate to an order’s items. NOTE: Please be aware there is a 99 item limit on line items for orders.
lines[].id
integer
A unique line item number.
lines[].itemNumber
string
The ABC Supply item number.
lines[].itemDescription
string
The description of the item. NOTE: Please use ABC Supply-provided item descriptions in the order endpoint request.
lines[].dimensions
object
The object describing a dimensional item’s length. Required for items with length variations available. See Additional Examples below for JSON format.
NOTE: The order will fail to process if the dimensions object is present on a non-dimensional item.
lines[].dimensions.length
object
The object that describes the length of the item.
lines[].dimensions.length.uom
string
The unit of measurement code of the item’s length.
lines[].dimensions.length.value
float
The value of the length dimension.
lines[].orderedQty
object
The object that describes the quantity of the item.
lines[].orderedQty.value
double
The number of items ordered.
lines[].orderedQty.uom
string
The ordered quantity’s unit of measure code.
lines[].unitPrice
object
The object that describes the item’s unit price.
lines[].unitPrice.value
float
The value of the item unit price.
lines[].unitPrice.uom
string
The unit of measure code for the item unit price.
lines[].unitPrice.instructions
string
The instructions that relate to an item’s unit price.
lines[].comments
object
The object describing comments relating to a line item.
lines[].comments.description
string
The line comment text to display.
Example Request
Simple request for placing one order with one item number for an account at a given location.
[
{
"requestId": "934f45yh98tf98hh4f",
"purchaseOrder": "123456890",
"branchNumber": "340",
"deliveryService": "OTG",
"typeCode": "SO",
"dates": {
"deliveryRequestedFor": "2027-12-31"
},
"deliveryAppointment": {
"instructionsTypeCode": "TR",
"instructions": "Please leave in driveway.",
"fromTime": "10:00",
"toTime": "11:00"
},
"currency": "USD",
"shipTo": {
"name": "Johnson Residence",
"number": "2010466-2",
"address": {
"line1": "123 Main St.",
"line2": "",
"line3": "",
"city": "Greenwood",
"state": "IN",
"postal": "46143",
"country": "USA"
},
"contacts": [
{ // ORDER SUBMITTER
"name": "John Doe",
"functionCode": "SM",
"email": "[email protected]",
"phones": [
{
"number": "",
"type": "",
"ext": ""
}
]
},
{ // DELIVERY CONTACT
"name": "Jane Doe",
"functionCode": "DC",
"email": "[email protected]",
"phones": [
{
"number": "3043651700",
"type": "MOBILE",
"ext": ""
}
]
}
]
},
"orderComments": [
{
"code": "H",
"description": "Please notify if any backordered items."
}
],
"lines": [
{
"id": "1",
"itemNumber": "02GATAHZCF",
"itemDescription": "GAF American Harvest SG+ Shingles Cedar Falls 3 Bundles Per Square",
// "dimensions": { // required for dimensional items ONLY
// "length": {
// "uom": "ft",
// "value": 1
// }
// },
"orderedQty": {
"value": 2,
"uom": "BD"
},
"unitPrice": {
"value": 44.85,
"uom": "BD",
"instructions": ""
},
"comments": { // optional
"description": "THIS IS A LINE COMMENT"
}
}
]
}
]Response
Example Response
Response for a successfully submitted order.
{
"request": {
"batchId": "B12255281",
"recievedTime": "2026-10-16T09:55:20.69",
"ordersReceived": 1,
"ordersFailed": 0,
"ordersSucceded": 1
},
"orders": [
{
"requestId": "934f45yh98tf98fhh4f",
"confirmationNumber": "C10-14883562",
"message": "Ordered successfully"
}
]
}Name
Type
Description
request
object
The object that describes the request.
request.batchId
string
ID for the order batch.
request.receivedTime
string
The date when order was received.
request.ordersReceived
integer
The number of orders received.
request.ordersFailed
integer
The number of orders that failed to process.
request.ordersSucceded
integer
The number of orders that were processed successfully.
orders
array
The list of orders.
orders[].requestId
string
The unique request tracking ID for the order.
orders[].confirmationNumber
string
The confirmation number for the order.
orders[].message
string
A message regarding the success or failure of order placement.
HTTP Status Codes
Code
Status
Description
202
Accepted
The request was successfully processed.
401
Unauthorized
Ship-To number or branch number are invalid for the user.
403
Forbidden
The required order.read scope is not present for the user.
400
Bad Request
Required fields are missing or improperly formatted. See the error message for details.
500
Internal Server Error
The server was unable to process the request.