Online Order Readiness Webhooks
Introduction
Use webhooks to receive readiness updates without polling.
To receive events, subscribe to:
resource:order_apiname:ONLINE_ORDER_READINESS
Setup
Create or update a webhook
Use Create a Webhook or Update Webhook:
PUT /o/wh/1/webhook
{
"endpointId": "my-oo-readiness-endpoint",
"url": "https://partner.example.com/webhooks/lightspeed",
"withBasicAuth": false,
"subscribeTo": [
{
"resource": "order_api",
"name": "ONLINE_ORDER_READINESS"
}
]
}
Associate business locations
Use Add a Business Location to a Webhook:
PUT /o/wh/1/webhook/{endpointId}/business-locations/{businessLocationId}
Readiness notifications are sent only for associated locations.
Delivery Behavior
- A notification is sent when readiness state changes.
- A notification is sent when one of the readiness inputs changes, even if
statusremainsNOT_READY. - No notification is sent when the newly computed state is identical to the previous state.
Sample Payloads
READY
{
"businessLocationId": 247158188015618,
"lastUpdatedAt": "2026-03-03T10:00:00Z",
"status": "READY",
"type": "ORDER_API",
"onlineOrderingApiConfiguration": {
"enabled": true,
"orderProfileId": 789,
"staffId": 101
},
"posStatus": {
"salesPeriod": "OPENED",
"acceptingOnlineOrders": true,
"availableDevices": true
}
}
NOT_READY
{
"businessLocationId": 247158188015618,
"lastUpdatedAt": "2026-03-03T10:02:00Z",
"status": "NOT_READY",
"type": "ORDER_API",
"onlineOrderingApiConfiguration": {
"enabled": false,
"orderProfileId": null,
"staffId": null
},
"posStatus": {
"salesPeriod": "CLOSED",
"acceptingOnlineOrders": false,
"availableDevices": false
}
}
Troubleshooting
No notifications received
Check the following:
- The webhook includes
ONLINE_ORDER_READINESSonorder_apiinsubscribeTo. - The business location is associated with the webhook endpoint.
- Your endpoint is reachable and returns
2xxresponses. - The location state actually changed.
Status is unexpectedly NOT_READY
Inspect:
onlineOrderingApiConfiguration.enabledposStatus.salesPeriodposStatus.acceptingOnlineOrdersposStatus.availableDevices
Best Practices
- Treat webhooks as event signals and use the API for current-state reconciliation.
- Process webhook deliveries idempotently.
- Acknowledge webhook requests quickly and process asynchronously.