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

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.

currency

string

The ISO 4217 currency code of the price amount (e.g., “USD”).

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"
                }
            }
        ]
    }
]
Expand

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"
        }
    ]
}
Expand

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.