API v1
Changelog
What changed in API v1, newest first, with the date each change went live.
One order status everywhere
- An order now carries the same status word in the create response, in GET orders and in every order.* webhook: pending_confirmation, accepted, preparing, ready, completed, cancelled or test.
- order.cancelled now fires when the venue rejects an order or it expires before anyone accepts it. Before, a rejection sent no webhook.
- Test orders created with an sf_test_ key now succeed. They are validated and priced like live orders, never reach the till, and are deleted after 24 hours.
Order webhooks match GET orders
- The data of every order.* webhook is the order exactly as GET /api-v1-orders-get returns it, including totals.gross, table_ref and your external_ref.
- The request log in the app now records the status each caller actually received.
Pre-order notes on bookings
- Bookings carry preorder.order_note: the guest's note for the whole pre-order, one line of at most 300 characters, or null.
Read suite, bookings and new webhook events
- New read endpoints: transactions, customers, reservations, daily reports and locations, with keyset pagination.
- New bookings endpoints: list and read booking requests, slot availability, and POST confirm and reject with Idempotency-Key.
- New webhook events: booking.requested, booking.confirmed, booking.rejected, booking.expired and the reservation.* family. Endpoints created before this date receive order.* only; create a new endpoint to subscribe to the new events.
Stuck? Quote the request_id from the response and write toSansflow support.Checked against API v1 on .