Order lifecycle
Every order moves through a well-defined set of statuses. Understanding these helps you build accurate UI states and support flows.Status transitions are enforced by Synq’s order state machine. You cannot skip states or move backwards — for example, a
confirmed order can only move to processing or cancelled.Required headers
Every request to the Synq API requires three headers for tenant isolation and authentication.Create an order
Request fields
string
required
A unique key scoped to this order attempt. Synq uses this to prevent duplicate order creation — submitting the same key twice returns the original result. Generate a new UUID v4 for each distinct order attempt.
string
required
The payment provider used for this order. For example:
"stripe", "adyen", "braintree".string
required
The transaction or payment intent ID from your payment provider. For Stripe this is typically a
pi_... or ch_... value.array
required
One or more line items in the order. At least one item is required.
string
required
Human-readable product name recorded on the order line.
integer
required
Number of units. Must be greater than zero.
number
required
Price per unit in the order currency. Cannot be negative.
string (UUID)
The Synq variant UUID. Required for inventory-backed items. When provided,
location_id is also required.string (UUID)
The fulfillment location UUID from which inventory will be reserved. Required when
variant_id is set.string
Optional SKU recorded on the line item for reference.
string
Optional human-readable variant label (e.g.
"Size 10 / Black").boolean
Whether this line item requires physical shipment. Defaults to
true when omitted.string
ISO 4217 currency code. Defaults to
"USD" when omitted.string (UUID)
The Synq customer UUID to associate with this order.
string
The sales channel identifier (e.g.
"web-storefront", "mobile-app", "pos-terminal").string
Optional label for the originating platform used for analytics and channel sync.
List orders
UseGET /api/v1/oms/orders to retrieve a paginated list of orders scoped to the authenticated organization.
integer
Number of orders to return per page. Defaults to
50; maximum is 100.integer
Number of records to skip for pagination. Defaults to
0.Response
Get a single order
UseGET /api/v1/oms/orders/{orderID} to retrieve the full detail of one order by its UUID.
Response
Response fields
string
The UUID of the order.
string
Current lifecycle status. See the order lifecycle table above.
string
ISO 4217 currency code for all monetary values on this order.
number
Sum of all line item totals before discounts, shipping, and tax.
number
Total value of discounts applied to the order.
number
Total shipping cost applied to the order.
number
Total tax applied to the order.
number
Final order total:
subtotal - discount_total + shipping_total + tax_total.string
Payment authorization state, e.g.
"authorized".string
The payment provider recorded at order creation.
string
The provider transaction ID recorded at order creation.
string
The sales channel identifier recorded at order creation.
string
The originating platform label, if provided at creation. Otherwise
null.string
The key you supplied at creation, useful for correlating your internal records.
string (ISO 8601)
UTC timestamp of order creation.
string (ISO 8601)
UTC timestamp of the most recent status change or update.
array
Arbitrary string tags attached to the order.