Pricing API

Retrieve current pricing on one or more ABC Supply product items in real time to easily create estimates and place orders.

Please ensure that your use of this API endpoint complies with the API Terms of Use. Using the ABC Supply API to offer price comparisons with competitive third-party services is in violation of the API Terms of Use.

The Price Items endpoint returns pricing information for products offered to a given account and branch location. The price is provided as a number with a localized currency symbol, and ISO 4217 currency code for currency conversion purposes. The request must include branch number, account number, request purpose, and item number. Multiple items may be priced at one time.

This endpoint does not reflect real-time availability of the products. Please use the Product Availability endpoints to determine real-time availability of products.

PRicing API

Price Items

POST /prices

Get real-time customer-specific pricing

Authorization

For Individuals and Businesses, use OAuth 2.0 server or user token with the pricing.read scope.

For Third-Party Aggregators, use OAuth 2.0 user token with the pricing.read scope.

Request

Name

Type

Description

requestId

string

The request ID to track the price request. This may be a order draft number, estimate number or any other number key to your application. Can only be returned if supplied in the request body.

shipToNumber

string

The ship-to account number for the pricing request.

branchNumber

string

The ABC Supply branch number identifying the branch location sourcing the item.

purpose

enum

The purpose of the price request (e.g., “estimating”, “quoting”, “ordering”).

lines

array

The array containing the information about the line items being priced.

lines[].id

string

The unique ID of the line item. This may be an order line item or any other number key to your application. Can only be returned if supplied in the request body.

lines[].itemNumber

string

The unique ABC Supply item number for the product being priced.

lines[].quantity

integer

The quantity of items to be priced. Some items may be priced lower above certain quantities.

lines[].uom

string

The unit of measurement for the line item.

lines[].length

object

The object containing the information about the length of the line item. At this time, none of ABC’s products is priced by dimensions. ABC Supply is planning to support variations of items in the future and provide prices based on a given attribute such as length, width, or other variations.

lines[].length.value

float

The length of the line item. Can only be returned if provided in the request body.

lines[].length.uom

enum

The unit of measurement of the item (e.g., “ft: feet, “in”: inches).

Example Request

Simple request to price one item number for an account at a given location

POST /api/pricing/v2/prices HTTP/1.1
Host: partner.abcsupply.com
Authorization: Bearer <TOKEN>
{
    "shipToNumberPOST /api/pricing/v2/prices HTTP/1.1
Host: partner.abcsupply.com
Authorization: Bearer <TOKEN>
{
  "requestId": "Quote: 312345",
  "shipToNumber": "393939",
  "branchNumber": "294",
  "purpose": "ordering",
  "lines": [
    {
      "id": "10",
      "itemNumber": "AAE23AL",
      "quantity": 1,
      "uom": "PC",
      "length": {
        "value": 17,
        "uom": "in"
      }
    }
  ]
}": "393939",
    "branchNumber": "294",
    "purpose": "ordering",
    "lines": [
        {
            "itemNumber": "AAE23AL",
            "quantity": 1,
            "uom": "PC"
        }
    ]
}
Expand

Response

Example Response

Simple price response for an item number for an account at a given location

{
    "requestId": "Quote: 312345",
    "shipToNumber": "393939",
    "branchNumber": "294",
    "purpose": "ordering",
    "lines": [
        {
            "id": "1",
            "itemNumber": "ABE34WH",
            "quantity": 1,
            "uom": "PC",
            "unitPrice": 13.30,
            "currency": {
                "code": "USD",
                "symbol": "$"
            },
            "length": {
                "value": 8,
                "uom": "ft"
            },
            "status": {
                "code": "OK",
                "message": "Priced Successfully"
            }
        }
    ]
}
Expand

Name

Type

Description

requestId

string

The Request ID to track the price request. Can only be returned if supplied in the request body.

shipToNumber

string

The ship-to account number for the pricing request.

branchNumber

string

The ABC Supply branch number for the branch location sourcing the item

purpose

enum

The purpose of the price request (e.g., “estimating”, “quoting”, “ordering”).

lines

array

The array containing the information about the line items being priced.

lines[].id

string

The unique ID of the line item. This may be an order line item or any other number key to your application. Can only be returned if supplied in the request body.

lines[].itemNumber

string

The unique ABC item number identifying the product being priced.

lines[].quantity

integer

Integer specifying the quantity of items to be priced. Same items may be priced lower above certain quantities.

lines[].uom

string

The unit of measurement for the line item. Defaults to product’s ordering unit of measure if not provided in the request body. Use the product API to determine the meaning of each unit of measurement code (e.g., “PC”: Pieces, “CT”: Cartons).

lines[].unitPrice

float

Price per unit.

lines[].currency

object

The object containing the information about the currency for the item price.

lines[].currency.code

string

ISO 4217 currency code of the price amount.

lines[].currency.symbol

float

The currency symbol for the price amount (e.g., “$”).

lines[].length

object

The object containing the information about the length of the line item.

At this time, none of ABC’s products is priced by dimensions. ABC Supply is planning to support variations of items in the future and provide prices based on a given attribute such as length, width or other variations. Can only be returned if supplied in the request body.

lines[].length.value

float

The length of the line item provided in the request body.

lines[].length.uom

enum

The unit of measure of the request (e.g., “ft”: feet, “in”: inches).

lines[].status

object

The object containing the information about the status of the price request.

lines[].status.code

string

Code indicating the status of the price request (e.g., “OK”).

lines[].status.message

string

Message indicating the outcome of request (e.g., “Priced successfully”, “Error: not found”). NOTE: HTTP status code 200 will be returned regardless of errors within line items.

lines[].status

object

The object containing the information about the status of the price request.

lines[].status.code

string

Code indicating the status of the price request (e.g., “OK”).

lines[].status.message

string

Message indicating the outcome of request (e.g., “Priced successfully”, “Error: not found”). NOTE: HTTP status code 200 will be returned regardless of errors within line items.

HTTP Status Codes

Name

Type

Description

503

string

Price service not available.

500

string

Server error.

Additional Examples

Example Response

Response to price one order for an account at a given location

{
    "requestId": "Quote: 312345",
    "shipToNumber": "393939",
    "branchNumber": "294",
    "purpose": "estimating",
    "lines": [
        {
            "id": "10",
            "itemNumber": "ADS2310WH",
            "quantity": 1,
            "uom": "PC",
            "unitPrice": 18.70,
            "currency": {
                "code": "USD",
                "symbol": "$"
            },
            "status": {
                "code": "OK",
                "message": "Priced successfully"
            }
        },
        {
            "id": "20",
            "itemNumber": "31SMFH3618",
            "quantity": 1,
            "uom": "PC",
            "unitPrice": 210.75,
            "currency": {
                "code": "USD",
                "symbol": "$"
            },
            "length": {
                "value": 6,
                "uom:": "ft"
            },
            "status": {
                "code": "OK",
                "message": "Priced successfully"
            }
        }
    ]
}
Expand

Example Request

Request with invalid item

POST /api/pricing/v2/prices HTTP/1.1
Host: partners.abcsupply.com
Authorization: Bearer <TOKEN>
{
	"requestId": "Quote: 312345",
	"shipToNumber": "393939",
	"branchNumber": "090",
	"purpose": "estimate",
	"items": [{
			"id": "10",
			"itemNumber": "AAE23AL",
			"quantity": 1,
			"uom": "PC"
		},
		{
			"id": "20",
			"itemNumber": "U58X?",
			"quantity": 1,
			"uom": "PC",
			"length": {
				"value": 8,
				"uom:": "ft"
			}
		}
	]
}
Expand

Example Response

Response with invalid item

{
    "requestId": "Quote: 312345",
    "shipToNumber": "393939",
    "branchNumber": "090",
    "purpose": "estimating",
    "lines": [
        {
            "id": "10",
            "itemNumber": "AAE23AL",
            "quantity": 1,
            "uom": "PC",
            "unitPrice": 2.90,
            "currency": {
                "code": "USD",
                "symbol": "$"
            },
            "message": "Priced sucessfully"
        },
        {
            "id": "20",
            "itemNumber": "U58X?",
            "quantity": 1,
            "uom": "PC",
            "unitPrice": null,
            "currency": {
                "code": "USD",
                "symbol": "$"
            },
            "length": {
                "value": 9,
                "uom:": "ft"
            },
            "status": {
                "code": "Error",
                "message": "Cannot price item U58X?, item not found.  Call for pricing."
            }
        }
    ]
}
Expand

Example Request

Request with invalid ship-to number

POST /api/pricing/v2/prices HTTP/1.1
Host: partners.abcsupply.com
Authorization: Bearer <TOKEN>
{
    "shipToNumber": "123456",
    "branchNumber": "090",
    "purpose": "ordering",
    "lines": [
        {
            "itemNumber": "300"
        }
    ]
}
Expand

Example Response

Response for invalid ship-to number

{
    "message": "Cannot price request - 123456 is an invalid ship-to number. Provide a valid ship-to account"
}
Expand

Example Request

Request with invalid branch number

POST /api/pricing/v2/prices HTTP/1.1
Host: partners.abcsupply.com
Authorization: Bearer <TOKEN>
{
	"requestId": "Quote: 312345",
	"shipToNumber": "393000",
	"branchNumber": "099",
	"purpose": "estimate",
	"items": [{
			"id": "10",
			"itemNumber": "300",
			"quantity": 1,
			"uom": "PC"
		},
		{
			"id": "20",
			"itemNumber": "U58X",
			"quantity": 1,
			"uom": "PC",
			"length": {
				"value": 8,
				"uom:": "ft"
			}
		}
	]
}
Expand

Example Response

Response for invalid branch number

{
    "message": "Cannot price request - 099 is an invalid branch number. Provide a valid branch number"
}
Expand