Set a table's status
Try itMarks a table with no open order available, reserved or being cleaned.
https:/ / tablebuddy.radioworkflow.com/ api/ v1/ tables/ {table_id}/ statusMarks a table AVAILABLE, RESERVED or CLEANING, as the floor plan does. OCCUPIED is the order engine's alone: a table becomes OCCUPIED when an order is opened on it and frees itself when the order closes, so a table with an open order is refused.
Authentication
Authorization: Bearer <key>, or the same key in x-api-key. A key acts as the person who made it, cut down to this endpoint’s scope, and never as an owner. How keys worktables.manage) or Take orders on the POS (pos.use)Request headers
AuthorizationrequiredBearer <key>. x-api-key: <key> works too; Authorization wins when both are sent.Idempotency-KeyacceptedContent-Typerequiredapplication/json: the body is JSON.Path parameters
table_idstringidrequiredRequest body
statusenumrequiredAVAILABLERESERVEDCLEANINGA field the endpoint does not take is answered 422 invalid_request naming it, before anything is looked up or the Idempotency-Key is used.
Response
status is the table's status after the change.
currencystringISO 4217minor_digitsinteger0–3idstringidstatusenumAVAILABLERESERVEDCLEANINGAn answer may gain fields within v1: ignore the ones you do not know. Versioning
Response headers
request-idalwaysCache-Controlalwaysno-store: an answer is never cached.RateLimit-Limit, RateLimit-Remaining, RateLimit-Resetonce the key is knownx-error-codeon an errorerror.code in the body.Idempotent-Replayed, Original-Request-Idon a replayed writetrue, and the request-id of the request that ran: this is the kept answer to an earlier request with the same Idempotency-Key.Retry-Afteron a 429, and a 409 idempotency_key_in_useWWW-Authenticateon a 401, and a 403 insufficient_scopeErrors
invalid_idempotency_keyA–Z a–z 0–9 - _ . : ~ + / =.Fix: Send a UUID.
insufficient_scopeFix: Scopes are fixed when a key is made: make a new key with the scope.
issuer_access_endedFix: Make a new key from an active account.
issuer_permission_changedFix: Ask an owner to restore the permission, or make a new key from an account that holds it.
permission_requiredFix: Use a key with the named scope, from a creator who holds the named permission.
not_foundFix: Find it with list-tables.
refusedFix: Read the sentence: it says what to change. The endpoint page lists the common ones.
idempotency_key_in_useFix: Wait Retry-After seconds and send the same request again.
payload_too_largeFix: Send less; split a batch.
json_requiredContent-Type: application/json.Fix: Send JSON with that header.
invalid_requestFix: Fix the named fields. Nothing was done, and an Idempotency-Key is not used up.
idempotency_key_reusedFix: Use a new key for a new request.
Refused by the restaurant’s rules
Answered 409 refused with the engine’s own sentence, the one the console shows. The common ones:
This table has an open order. Close it first.
An open order holds the table.
Fix: Close the order, or move it to another table in Table Buddy; the table frees itself when the order closes.
That table is not available.
The table is switched off on the floor plan.
Fix: Switch it back on under Tables in Table Buddy first.
missing_api_keyNo Authorization: Bearer header and no x-api-key header.invalid_api_keyThe key is unknown, revoked or expired (answered alike).rate_limitedOver the key's 60 units a minute, or over 30 unknown keys a minute from one network (an address; an IPv6 caller's /64).internal_errorSomething failed on our side. Nothing kept the Idempotency-Key.curl -X PATCH "$TABLEBUDDY_URL/api/v1/tables/TABLE_ID/status" \
-H "Authorization: Bearer $TABLEBUDDY_API_KEY" \
-H "Idempotency-Key: $(uuidgen)" \
-H 'Content-Type: application/json' \
-d '{"status":"CLEANING"}'{
"currency": "USD",
"minor_digits": 2,
"id": "cmg5x3c1d0001tb2jr4e6w8qa",
"status": "CLEANING"
}