Skip to content
SarvexDocs
Esc
↑↓navigate↵open⌘Jpreview

Get an order with its sync state

GET/stores/{store_id}/orders/{order_id}
Authorization
AuthorizationBearer token (JWT) · headerrequired

JWT issued by the external IdP via the OAuth 2.0 authorization-code flow (Kinde in production; a simulator in test). The client obtains it and sends it as a Bearer token on every authenticated call. Sarvex's services verify it — issuer, audience, signature (IdP JWKS), expiry — and read identity and tenant from its claims. Sarvex does not issue or revoke these tokens. merchant_id/store_id are read from the verified claims (and the merchant→store mapping), never from the URL. The operator scope is required for /operator/*. Operators acting on a specific merchant pass the X-Operate-As header, which is recorded in the audit log.

Path parameters
store_idstringrequired

A store the caller's merchant owns. Authorized server-side against the principal; not a free-form tenant selector.

order_idstringrequired
Responses
200

Order.

order_idstring
checkout_session_idstring
store_order_refstring | null

Order id in the merchant store.

statusorder_status
Allowed:createdconfirmedshippedcancelledrefunded
sync_statestring
Allowed:pending_handoffcreatedsyncedfailed
valuemoney
Show properties
amount_minorintegerrequired

Amount in minor units (cents).

currencystringrequired
placed_atstring<date-time>
404

Resource not found within the caller's tenant.

errorobjectrequired
Show properties
codestringrequired
messagestringrequired
detailsobject | null
Try it
Server
Authorization
Parameters
Request
curl -X GET "https://api.sarvex.example.com/v1/stores/string/orders/string" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response
{
  "order_id": "string",
  "checkout_session_id": "string",
  "store_order_ref": "string",
  "status": "created",
  "sync_state": "pending_handoff",
  "value": {
    "amount_minor": 0,
    "currency": "AUD"
  },
  "placed_at": "2019-08-24T14:15:22Z"
}