Just so we’re on the same page... a webhook is a piece of code that generates an HTTPS call when a certain event is triggered. In this case, the event is the Deliveroo order and the HTTPS call is what informs your restaurant till of the order details.
In other words, your webhook should be a HTTPS endpoint which listens to events from Deliveroo.
Your webhook needs to do 3 things:
- Acknowledge the Deliveroo order
By responding within 10s to the order event with an HTTP 200 OK response. It will only work if you send a 200.
- Notify the restaurant till of the order
How you implement this depends on your internal system. Generally speaking you will need to validate the order event, translate it into a format that the till will understand and then send the order to the till via HTTP or HTTPS.
- Notify Deliveroo of success/failure of Step 2
By sending a new HTTPS request to Deliveroo’s sync_status endpoint.
If the endpoint receives a failure, the webhook will try again after 1 minute. If it still fails it will try once more. After 3 minutes, the Deliveroo tablet in the restaurant will receive a message, instructing staff to input the order manually into the POS.
If the endpoint receives a success, but the webhook fails to send a sync status back after 3 minutes, the tablet will advise staff to check that the order made it to the POS because its actual status is unknown.