Sellers Commerce

Open API

Integration reference for the Sellers Commerce B2B platform — endpoints, payloads, status codes and Postman collections.

Introduction

The Sellers Commerce Open API is a RESTful interface with lightweight JSON requests and responses. It gives your systems read and write access to orders, products, employees and returns, and it is the supported way to integrate an ERP, a WMS or a BI tool with the platform.

Three things are true of every call and are not repeated on each endpoint: authentication is a single header, collection endpoints accept OData query options, and JSON responses are wrapped in a standard envelope.

Before your first call

You need three values from your account team: the API base URL for your environment, your API key, and your shared secret. Keys are scoped to one account — every request resolves to that account automatically, so you never pass an account identifier for your own data.

Throughout this reference the base URL is written {{baseUrl}}.

Authentication

Send the key and secret as a single colon-joined Authorization header. There is no token exchange, no expiry and no refresh step.

Authorization: <apiKey>:<sharedSecret>
Content-Type: application/json

A missing, malformed or unrecognised header returns 401 Unauthorized with envelope status 777. Treat the pair as a password: send it only over HTTPS, and never put it in a query string or a URL that might be logged.

Connector endpoints authenticate differently

The ShipStation, ShipWorks and T-HUB endpoints implement the scheme those products require, not the header above. Everything else on this page uses the standard header.

Response envelope

JSON responses are wrapped in a three-field envelope. Read StatusCode — it is the API's own code and is more specific than the HTTP status.

{
  "Results": { ... } | [ ... ] | null,
  "ResponseMessage": "OK",
  "StatusCode": 100
}

Two families return no envelope

Endpoints whose path segment begins In_, and all fulfilment-connector endpoints, return their payload directly with no wrapper. Parse those against the documented model, not against Results.

Filtering, sorting and paging

Endpoints marked OData accept OData v3 query options. Use them to keep responses small — most collection endpoints return the full authorised set when unfiltered.

# One order by number
GET {{baseUrl}}/api/order/get?$filter=OrderNumber eq '100242'

# Orders in a date window
GET {{baseUrl}}/api/order/get?$filter=OrderPlacedDate gt datetime'2026-01-01T00:00:00'
                              and OrderPlacedDate lt datetime'2026-02-01T00:00:00'

# Page through a large set
GET {{baseUrl}}/api/employee/get?$top=100&$skip=200&$orderby=EmployeeId

Supported: $filter, $orderby, $top, $skip, $select, $expand, $inlinecount. URL-encode the value — a literal space and a single quote both need escaping in practice.

Postman export

Every module below has its own Postman button that downloads a ready-to-import Collection v2.1 file for that module alone. Import it, fill in three collection variables, and every request is runnable.

VariableSet to
baseUrlThe API host for your environment, no trailing slash
apiKeyYour API key
sharedSecretYour shared secret

Collection-level auth is pre-wired to send Authorization: {{apiKey}}:{{sharedSecret}} on every request, so credentials are set once rather than per request.

Status codes

Envelope status

CodeMeaningHTTP
100Success200
101Failure — understood but not processed200 / 500
429Too many requests409
454Category not found404
464Product not found404
474Order not found404
484Shopper not found404
555No records found for the requested resource404
777Unauthorized401

Validation results

Returned in ResponseMessage by the write endpoints.

CodeMeaning
20Processed successfully
21Account does not exist
22User does not exist
23Product not found
24Order does not exist
25SKU not present on this order
26Invalid quantity
27Payment data already exists for this order
28Order already captured
29Processing failed
30Invalid data provided
31Category does not exist
32Parent category does not exist
33Already exists for this request
34Invalid SKU data
35Brand and first-level category do not match
36Category insertion failed
37Identity node not found
38User not found for the given identity
39Invalid or inactive request
40Required parameter was null
41Unable to resolve a valid account
400Malformed URL or parameters
404No record found

Enumerations

Every coded value the API accepts or returns. Send the numeric value; the description is shown so you can label it in your own system.