Skip to main content
The Orders API lets you create and track orders in Synq’s Order Management System (OMS). When you submit a new order, the platform processes payment capture, inventory reservation, and status transitions in sequence. Because order processing is durable, a transient error never leaves an order in a broken state — failed steps are retried automatically until they succeed or exhaust the retry policy.
All requests require three headers: Authorization: Bearer YOUR_TOKEN, X-Tenant-ID: YOUR_TENANT_ID, and X-Org-ID: YOUR_ORG_ID.

List orders

Retrieve a paginated list of orders scoped to your tenant and organization. GET /api/v1/oms/orders

Headers

string
required
Bearer token from your authentication provider.
string
required
UUID of your tenant.
string
required
UUID of your organization.

Query parameters

integer
Number of orders to return. Max 100, default 50.
integer
Number of orders to skip for pagination. Default 0.

Response

array
Array of order objects.
integer
The limit value used for this page.
integer
The offset value used for this page.

Get an order

Retrieve a single order by its UUID. GET /api/v1/oms/orders/{orderID}

Path parameters

string
required
UUID of the order to retrieve.

Headers

string
required
Bearer token.
string
required
UUID of your tenant.
string
required
UUID of your organization.

Create an order

Submit a new order. The API validates your request, reserves inventory, and processes payment in sequence. It immediately returns a confirmation with the new order ID once the initial order record is created. Poll GET /api/v1/oms/orders/{orderID} to track status transitions. POST /api/v1/oms/orders

Idempotency

You must provide a unique idempotency_key with every order creation attempt. If your request times out or you receive a network error, retry with the same key — the platform detects the duplicate and will not create a second order. Use a value that is unique to each distinct order attempt, such as a client-generated UUID or your cart/session ID.

Headers

string
required
Bearer token from your authentication provider.
string
required
UUID of your tenant.
string
required
UUID of your organization.

Body

string
required
A unique string that identifies this order attempt. Re-use the same key on retries to prevent duplicate orders.
string
required
Name of the payment provider, e.g. stripe, adyen, or paypal.
string
required
The provider-side payment intent or transaction reference, e.g. Stripe’s pi_....
string
UUID of the customer placing the order. Optional.
string
ISO 4217 currency code. Defaults to USD if omitted.
string
Name or identifier of the sales channel this order originated from, e.g. web-storefront.
string
Upstream platform identifier, e.g. shopify. Optional.
array
Array of line items in the order.

Response

Returns the new order ID once the order record has been created. The order is then processed asynchronously through payment authorization and inventory reservation.
string
UUID of the newly created order.
The location_id field is required for every line item that includes a variant_id. Omitting it returns 400 Bad Request with the message location_id is required for inventory-backed items.