Receiving orders
Whenever an order is placed in one of your stores, we POST it to the
endpoints of type order notification defined in the portal.
The request you receive
Section titled “The request you receive”POST /your-webhook HTTP/1.1Authorization: the-key-configured-on-the-endpointContent-Type: application/json
{ "order_id": "616342127", "store_id": "gi20__001", "order_code": "ISRQHPPK1", "order_time": "2026-05-09 16:16:36", ...}The full body structure: JSON structure.
What your endpoint must do
Section titled “What your endpoint must do”- Check the
Authorizationheader. It must be exactly the key attached to that endpoint. Anything else is rejected with401. - Check whether you already have the order. Look it up by
order_code. - Store it, then reply.
What you reply
Section titled “What you reply”| Situation | Response |
|---|---|
| You took the order | 200 OK |
| You already had it | 200 OK — do not process it twice |
| Wrong or missing header | 401 Unauthorized |
| Invalid payload | 400 Bad Request, with a message in the body |
| Internal problem | 5xx |
Duplicate orders
Section titled “Duplicate orders”The protection is a unique index on order_code in your database. When the insert fails on
conflict, still reply 200 — you have the order, and we have no reason to keep trying.
Do not use order_id as the deduplication key, and do not rely on arrival order.
What differs between order types
Section titled “What differs between order types”Delivery is done either by a platform courier or by the restaurant (marketplace). The payload differs:
| Field | Courier delivery | Marketplace |
|---|---|---|
courier |
filled in | null on both fields |
customer.phone_number |
N/A |
the real number |
customer.name |
first name plus initial | the full name |
delivery_address |
null |
the address with coordinates |
customer_cash_payment_amount |
null |
the amount the customer pays with, for cash orders |
bundled_orders |
empty | may list orders delivered together |
The reason is simple: with courier delivery the restaurant does not need the customer’s details, so it does not receive them.
Cancelled orders
Section titled “Cancelled orders”An order can be cancelled after it was sent to you. If you defined an endpoint of type cancelled orders, you receive that event too — see endpoints.
Without it, the integration gives you no way to learn that an order fell through.
When something did not arrive
Section titled “When something did not arrive”Do not write to us before looking: search for the order by order_code
in the portal. You will see whether we received it, whether we sent it to you, exactly what we sent
and what you replied.