POST /orders and does not import externally created orders.
Endpoints
Reading requires
orders.read. Updating a status requires orders.write. Every request remains constrained to the locations and organizations authorized for the API key.
Pagination and reconciliation
Order lists use deterministic cursor pagination ordered by immutable(created_at DESC, id DESC) keys. Set limit from 1 to 100 and use either starting_after or ending_before, never both. Filters include status, service_type, location_id on organization lists, and the created_after, created_before, updated_after, and updated_before timestamp bounds.
For reconciliation after an unavailable consumer or a webhook incident, capture a high-water timestamp before the first request. Send the previous checkpoint as updated_after and that same high-water value as updated_before on every page, then continue until has_more is false. After the bounded scan completes, advance the checkpoint to the high-water mark. Because timestamp bounds are exclusive, retain a one-millisecond overlap when building the next updated_after value and deduplicate by id plus status_version. This bounded protocol prevents updates made during the scan from moving across its cursor; they are returned by the next scan. Do not assume webhook delivery order is the same as order update order.
Order identity
idis the stable Chataigne order identifier used by API paths and webhook deduplication logic.short_idis the human-readable number shown to restaurant staff.location_ididentifies the restaurant that owns the order.status_versionincreases by one on each canonical status transition.
Items and external references
Products and bundles are returned in the sameitems array. Inspect type before reading the item-specific fields:
id is its external SKU reference. A bundle, bundle line, modifier group, and modifier use their persisted external references. Chataigne never substitutes an internal database identifier when an external reference is missing.
Amounts and charges
All monetary values use{ "amount": number, "currency": string }. The public charges array contains only delivery and service charges, both with exactly the same shape:
total remains the canonical amount charged for the order and can therefore include provider-specific or private charges that are intentionally omitted from the public charges array.
Fulfillment times
expected_pickup_timeis when the order should leave the restaurant or be collected.expected_delivery_timeis the promised customer arrival time for delivery orders.expected_timeis the customer-facing promise: delivery time for delivery, pickup time for collection.
expected_delivery_time is null.