Trading partner integration
Click Customer API
A REST interface for catalog, inventory, orders, shipments and invoices. It does the work of your EDI connection, without a VAN and without mapping.
Beta — preliminary outline
This document shows the planned structure of the API. It is not a released specification. Endpoint names, field names and formats can change.
1. Overview
The API replaces five EDI documents. Each one becomes a set of REST endpoints.
| EDI | Document | Endpoints |
|---|---|---|
| 832 | Price / sales catalog | GET /products |
| 846 | Inventory advice | GET /inventory |
| 850 | Purchase order | POST /orders |
| 856 | Advance ship notice | GET /orders/{order_id} |
| 810 | Invoice | GET /invoices |
2. Conventions
- Protocol: HTTPS only.
- Format: JSON for all requests and responses.
- Base URL: we supply it with your credentials. All paths in this document are relative to it.
- Dates: ISO 8601, in UTC. Example:
2026-08-03T14:22:00Z. - Rate limits: to be determined.
Pagination
List endpoints return pages. Use the page and limit parameters. The maximum is 50 results per page.
GET /products?page=1&limit=50 { "data": [ … ], "CurrentPage": 1, "ResultsPerPage": 50, "TotalResults": 137856, "TotalPages": 2758 }
3. Authentication
You receive credentials for your account. The planned method is an API key or OAuth 2.0 client credentials. Tell us which method you prefer.
Send the token in the Authorization header with each request. Tokens expire. Request a new token when the old one expires.
curl https://api.example.com/products \ -H "Authorization: Bearer <your_token>" \ -H "Accept: application/json"
4. Errors
All errors use standard REST status codes. Each error returns a JSON body with a code and a message.
HTTP/1.1 409 Conflict { "error": { "code": "duplicate_po_number", "message": "An order with PO number 4500217788 already exists.", "field": "po_number" } }
| Code | Meaning | Action |
|---|---|---|
| 400 | The request is malformed. | Correct the request body. |
| 401 | The token is missing or invalid. | Request a new token. |
| 403 | The resource is outside your account. | Contact your account manager. |
| 404 | The resource does not exist. | Check the identifier. |
| 409 | The resource already exists. | See error message. |
| 422 | The request is valid JSON but fails a business rule. | Read the error code. |
| 429 | You sent too many requests. | Wait, then retry. |
| 500 | An error occurred. | See error message. |
5. Products
Returns your approved products.
Returns one product.
{
"sku": "CP-FFM-M",
"name": "CPAP Full Face Mask, Medium",
"description": "Silicone cushion mask with headgear.",
"upc": "812345678901",
"price": "38.40",
"case_pack": 6,
"weight_lb": "0.71",
"dimensions_in": { "l": "8.5", "w": "6.0", "h": "4.0" },
"images": [ "https://cdn.example.com/cp-ffm-m-1.jpg" ],
"status": "active"
}6. Inventory
Returns inventory for all your approved products.
Returns inventory for one product.
{
"sku": "CP-FFM-M",
"available": 242,
"status": "in_stock",
"next_restock_date": "2026-08-19",
"updated_at": "2026-08-06T11:04:00Z"
}7. Orders
Places an order.
Returns your orders.
Returns one order, with its shipments and tracking numbers.
Returns every order related to one of your PO numbers.
Split orders
One PO can split into more than one internal order. This happens when items ship from different warehouses. The po_number query returns each internal order and its items. Each order carries its own status and its own shipments.
8. Order changes
Requests cancellation.
Requests expedited handling.
These endpoints create a request. They do not give an immediate guarantee. The response shows the request status.
9. Returns (RMA)
Starts a return authorization request.
Returns the status of one RMA request.
The POST endpoint creates a request only. It does not guarantee acceptance. We review each request.
Request
POST /orders/CI-884120-1/rma { "reason": "damaged_in_transit", "items": [ { "sku": "CP-FFM-M", "quantity": 2 } ], "reason_detail": "Two cartons crushed on arrival." }
Response
{
"rma_id": "RMA-40912",
"status": "received"
}10. Invoices
Returns your invoices.
Returns one invoice.
Returns every invoice related to one of your PO numbers.
11. Sandbox
We supply a sandbox environment with test credentials and test data. Test your integration in the sandbox before you go live. Sandbox orders do not ship and do not invoice.