Order Lifecycle
All orders received via the API are considered auto-confirmed and ready for processing. This page describes the typical lifecycle and statuses.
Order Statuses
Orders progress through various statuses during their lifecycle:
| Status | Description |
|---|---|
new | Active order ready for preparation |
future | Order scheduled for later fulfillment |
ready | Order prepared and ready for pickup/delivery |
finished | Order completed successfully |
cancelled | Order was cancelled |
rejected | Order rejected by the system |
Status Transitions
Typical Pickup Order Flow
- Created: Order arrives as
new(immediate) orfuture(scheduled) - Scheduled:
futureorders transition tonewat scheduled time - Prepared: Kitchen marks order as
ready - Completed: Order marked as
finishedwhen picked up
Typical Delivery Order Flow
- Created: Order arrives as
neworfuture - Courier Assignment: Delivery platform assigns courier
- Prepared: Kitchen marks order as
ready - In Transit: Courier picks up and delivers order
- Completed: Order marked as
finishedupon delivery
Delivery Statuses
For delivery orders, track courier progress through deliveryStatus:
| Status | Description |
|---|---|
ASSIGNED | Courier assigned to order |
EN_ROUTE_TO_STORE_LOCATION | Courier traveling to restaurant |
EN_ROUTE_TO_CUSTOMER | Courier traveling to customer |
COMPLETED | Delivery completed |
CANCELED | Delivery cancelled |
Future Orders
Future orders are scheduled for later fulfillment:
- Created with
futurestatus - Include
estimatedPickupAttimestamp - Automatically transition to
newat scheduled time - Appear in order lists immediately upon creation
Cancellations
Orders can be cancelled by different parties:
Cancellation Sources
- Platform: Cancelled by ordering platform (customer request)
- Merchant: Cancelled by restaurant
- System: Automatically cancelled (e.g., timeout)
Cancellation Information
When an order is cancelled, the cancellation object provides:
by: Who initiated the cancellationreason: Explanation for cancellationat: Timestamp of cancellation
Webhook Event Flow
Track order progression through webhook events:
Pickup Orders
order.created— New order receivedorder.status.updated— Status changesorder.canceled— If cancelled (optional)
Delivery Orders
order.created— New order receivedorder.delivery.updated— Courier status updatesorder.status.updated— Kitchen status changesorder.canceled— If cancelled (optional)
Best Practices
Handling Status Updates
- Process status changes idempotently
- Use
updatedAtto determine latest state - Handle out-of-order webhook events
Managing Future Orders
- Display scheduled time to kitchen staff
- Monitor transition from
futuretonew - Allow cancellation before preparation starts
Tracking Deliveries
- Monitor both
statusanddeliveryStatus statusreflects kitchen workflowdeliveryStatustracks courier progress
Related Documentation
- Order Schema — Order data structure
- Webhooks — Real-time notifications
- Orders API — Order management