Common errors
Orders
Section titled “Orders”“The order never came into the POS”
Section titled ““The order never came into the POS””Always start with order lookup by order_code.
| What you see there | The cause | What you do |
|---|---|---|
| Not found, code is correct | The order never reached us. | Write to us with the code, store and time. |
Verdict “did NOT arrive”, call with 4xx |
Your system rejected the order. Your response is shown. | Read the message; it is yours. |
| Verdict “did NOT arrive”, connection error | We could not reach your endpoint. | Check certificate, DNS, firewall. |
Verdict “left”, 2xx, but missing on your side |
We delivered it; it was lost after reception. | Look on your side, from the moment in the timeline. |
| No call recorded | Notifications are off, or the store is not activated. | Check in the portal. |
Duplicate orders
Section titled “Duplicate orders”Either you have retry enabled and a slow endpoint, or you do not deduplicate by order_code.
The fix is the same in both cases: a unique index on order_code and 200 on duplicates. See
receiving orders. If you cannot do that right now,
turn retry off.
The receipt total does not match
Section titled “The receipt total does not match”Almost always one of these:
- you computed the total from the products instead of using
payment_total; - you ignored attribute prices, which add on top of the product price;
- you treated amounts as whole currency units when they are subunits (
5700= 57.00 RON).
payment_total is the amount to collect. Do not recalculate it — see
JSON structure.
payment_total is 0
Section titled “payment_total is 0”That is a valid value: the customer covered the entire order with a promo code. Treat 0 as zero, not as missing data, and do not substitute a figure of your own.
The order came in late
Section titled “The order came in late”The timeline in order lookup tells you where the time went:
| Where the gap is | Where the cause is |
|---|---|
| Between “created” and “received by us” | Before us. |
| Between “received” and “sent”, with several attempts | Your endpoint did not answer the first time. |
| Nowhere — everything under 2 seconds | On your side, after reception. |
Authentication
Section titled “Authentication”401 on every call
Section titled “401 on every call”| Cause | Check |
|---|---|
| Missing header | Authorization must be sent on every request. |
| Wrong key | Compare it character by character with the portal. |
| Inactive key | Check it in the portal, under Profile → API keys. |
| Invisible whitespace | A key copied from an email can carry leading or trailing spaces. |
The Bearer prefix is not the problem — it works with or without.
We get 401 from your endpoint
Section titled “We get 401 from your endpoint”You are validating a value other than the one configured on the endpoint in the portal. See endpoints. This typically happens after a half-finished key rotation — the correct procedure is in authentication.
LIMIT_EXCEEDED
Section titled “LIMIT_EXCEEDED”You exceeded the 5 full updates per day for that store. For prices and availability use individual or bulk changes, which have no limit.
FETCH_MENU_INVALID_PAYLOAD
Section titled “FETCH_MENU_INVALID_PAYLOAD”The payload does not match the schema. Run POST /api/v3/menu/validate — it gives you the line and
column of each error and does not count against the daily limit.
NOT_PROCESSED
Section titled “NOT_PROCESSED”Integration misconfiguration: a store_id that does not exist, a partner_name that does not
match, or a store that was never activated. Check them in the portal; if all looks right, write to
us.
Products have no images
Section titled “Products have no images”Image URLs are fetched from outside. Usual causes: an expired certificate on your image server, a
URL using http:// instead of https://, a file that is too large. Requirements are in
menu structure.
The product in an order matches nothing in the POS
Section titled “The product in an order matches nothing in the POS”The id in the order is exactly the one you sent in the menu. If you no longer recognise it, your
identifiers are changing between syncs. Make them stable — see
menu structure.
Stores
Section titled “Stores”A new store receives no orders
Section titled “A new store receives no orders”| Cause | Check |
|---|---|
| Not activated yet | Activation is done by our team after you create the location. |
| “Integration already activated?” ticked by mistake | We were never notified to activate it. See brands and locations. |
| Notifications off | On the brand or on the location. |
| No endpoint defined | You need at least one of type order notification. |
The store appears closed
Section titled “The store appears closed”Check whether it has an active temporary closing:
GET /api/v3/scheduling/stores/{storeId}/closing. If until is not null, you can cancel it with
DELETE on the same path.
When you write to us
Section titled “When you write to us”Send from the start:
order_code(notorder_id) orstore_id, as applicable;- the approximate time and the timezone you used;
- what you saw in order lookup;
- what you expected to happen.
With those, the answer comes in the first reply.