Bookings — write
create_booking write
Section titled “create_booking ”Create a reservation on a brand. Pass the brand slug as `brand`, the guest’s name + party size + date + time. Phone and email are optional (matches the FOH walk-in flow). Backend runs the canonical capacity + large-party + attendance-confirmation gates — same rules as the dashboard form.
Required scope: bookings.write
| Parameter | Type | Required | Description |
|---|---|---|---|
brand |
string | no | Brand slug (e.g. ‘il-caminetto’). Optional in JWT mode (auto-resolved from session); required in API-key mode when key grants multiple brands. |
name |
string | yes | Guest’s name. |
phone |
string | no | E.164 phone (e.g. +61400123456). Optional for walk-ins. |
email |
string | no | Email address. Optional. |
numberOfPeople |
number | yes | |
date |
string | yes | Display date string (e.g. “Friday, April 4, 2026”). |
time |
string | yes | Display time string (e.g. “7:00 PM”). |
timestamp |
number | no | Unix ms-epoch in brand TZ. Optional — backend canonicalizes from `date`+`time` if omitted. |
notes |
string | no | Optional internal notes. |
notifyCustomer |
boolean | no | Send a confirmation SMS to the customer. Default true; set false to log a booking silently. |
idempotencyKey |
string | no | Optional client-supplied dedup key (UUID). Retries within 24h with the same key return the original response without re-creating. Same idea as Stripe / Linear idempotency-key headers. |
update_booking write
Section titled “update_booking ”Update a reservation: change date/time, party size, or notes. Pass at least one mutable field. Backend cascades shrinks/moves to the waitlist trigger — if a freed slot matches a waiting guest, an offer SMS fires automatically.
Required scope: bookings.write
| Parameter | Type | Required | Description |
|---|---|---|---|
brand |
string | no | Brand slug. Optional in JWT mode; in API-key mode pass the slug from list_brands. Must match the reservation when supplied. |
id |
string | yes | Reservation ID (24-char hex). |
numberOfPeople |
number | no | |
date |
string | no | New display date (e.g. “Friday, May 1, 2026”). |
time |
string | no | New display time (e.g. “7:30 PM”). |
notes |
string | no | Replaces the internal notes. |
foodDrinkNotes |
string | no | |
seatingNotes |
string | no | |
idempotencyKey |
string | no |
cancel_booking write
Section titled “cancel_booking ”Cancel a reservation. Triggers the waitlist “slot freed” engine — a matching waiting guest will be offered the slot via SMS. Customer receives a cancellation notification per brand settings.
Required scope: bookings.write
| Parameter | Type | Required | Description |
|---|---|---|---|
brand |
string | no | Brand slug. Optional in JWT mode; required in multi-brand API-key mode. |
id |
string | yes | |
reason |
string | no | Optional human reason captured for audit (e.g. “guest changed plans”). |
idempotencyKey |
string | no |
mark_arrived write
Section titled “mark_arrived ”Mark a reservation as ‘arrived’ — guest has arrived at the restaurant but hasn’t been seated yet.
Required scope: bookings.write
No parameters.
mark_seated write
Section titled “mark_seated ”Mark a reservation as ‘seated’ — guest is at their table.
Required scope: bookings.write
No parameters.
mark_completed write
Section titled “mark_completed ”Mark a reservation as ‘completed’ — service finished, guest has left.
Required scope: bookings.write
No parameters.
mark_no_show write
Section titled “mark_no_show ”Mark a reservation as ‘no-show’ — guest never arrived. Frees the slot for the waitlist engine.
Required scope: bookings.write
No parameters.
add_note write
Section titled “add_note ”Replace the internal notes on a reservation. Pass `append: true` to keep the existing note and concatenate with a newline. Use `field` to target food/drink or seating tabs; defaults to the main notes field.
Required scope: bookings.write
| Parameter | Type | Required | Description |
|---|---|---|---|
brand |
string | no | Brand slug. Optional in JWT mode; required in multi-brand API-key mode. |
id |
string | yes | |
note |
string | yes | |
field |
enum | no | Which notes field to write (notes / foodDrinkNotes / seatingNotes). |
append |
boolean | no | When true, append to the existing note with a newline. Default replaces. |