Introduction
Welcome to the Bizify Partner API documentation. This API allows external partners to integrate directly with our ERP, CMS and reservations systems.
All requests are secured via API keys. You will need your unique PARTNER_API_KEY for URL routing (provided to the integrations partner) and a standard api_key for request authentication (provided to the client).
API Response Structure
Every API response is a JSON object containing two root elements: a status indicator and a data object.
| Element | Type | Description |
|---|---|---|
s |
Integer (1 | 0) |
Status indicator: 1 for successful execution (no errors), 0 for unsuccessful execution (errors occurred). |
d |
Object | An object containing response details. The specific content of this object is described under each endpoint's 'Response' section. |
Reservations
Events
Manage table events via the partner endpoint.
Table Arrival
Marks a specific table as occupied. This event helps the system track current occupancy and manage reservations in real-time.
Real World Scenario: This endpoint should ideally be triggered automatically when a waiter opens a new table or order on your POS system, signaling that guests have been seated.
Behavior: When an explicit reservation is targeted via id / external_id, no table matching is performed:
id(or a knownexternal_id) resolves to a reservation → that reservation is marked arrived, its booking data is left intact.external_idis not yet known → a new walk-in is created on the table with thatexternal_idstored on it (this is how a POS-originated booking enters Bizify).
Otherwise the system looks for an active reservation on the table around the current time (±15 minutes) and reacts as follows:
- No reservation found → a new walk-in reservation is created and seated at the table (status arrived).
- The table is already occupied (a walk-in, or a booked party already marked arrived) → no action; the reservation already on the table is returned. A second party is never seated on top of an occupied table — only the complete / cancel event frees it (or the reservation drops out of the match window once its time slot has passed).
- An upcoming reservation, arriving within the grace period (reservation time + the venue's arrival grace) → it is marked arrived.
- An upcoming reservation, arriving after the grace period → handled according to
mark_existing_as_noshow(see below).
To use this event for status updates only, send do_not_create_walk_in=true: every case above that would create a walk-in becomes a no-op (walkin_skipped), while existing reservations are still marked arrived / no-show as described.
Repeating the same event is safe: a status the reservation already carries is never re-written, so a POS retry changes nothing.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
event |
String | Yes | Must be set to arrival. |
table |
String | Yes | Exact label of the table (e.g., "Table 1") or its ID (obtained via /reservations/floorplan/get). |
id |
String | No | Identifier of a specific reservation to mark as arrived (the id returned by Get Reservations). When provided, table matching is skipped and exactly that reservation is marked arrived. An unknown id fails the request (s = 0, invalid_param = id). When sent together with external_id, id takes precedence for locating the reservation. |
external_id |
String | No | Your own (POS-side) reservation identifier (max 50 characters). If a reservation with this external_id already exists it is marked arrived (table matching is skipped). If it does not exist yet, a new walk-in is created on the table and the external_id is stored on it, so later complete / cancel events can target it directly. |
arrived_at |
String (Y-m-d H:i:s) |
No | Actual arrival timestamp reported by the POS (e.g. 2026-03-17 19:05:00). Used only when this event creates a walk-in: the walk-in is dated at this moment instead of "now". When provided, matching against existing reservations on the table is skipped and a walk-in is always created (unless id / external_id resolve to an existing reservation). An unparseable value is ignored. |
mark_existing_as_noshow |
Boolean | No | Controls what happens to an existing upcoming reservation when guests arrive after the arrival grace period (reservation time + the venue's grace period, e.g. 20 min). Within the grace period the reservation is always marked arrived regardless of this flag. After the grace period: true → the existing reservation is marked no-show and a new walk-in is created; false → the existing reservation is marked arrived (the late guests are treated as the booked party); omitted / null → the existing reservation is left untouched and a new walk-in is created alongside it. |
party_size |
Integer | No | Number of guests, used only when this event creates a walk-in reservation. If omitted, the table's default capacity is used (falling back to 2). Must be between 1 and 500. |
do_not_create_walk_in |
Boolean | No | When true, this event never creates a walk-in reservation. Wherever one would otherwise be created, the action is walkin_skipped instead; with mark_existing_as_noshow=true after the grace period, the existing reservation is still marked no-show (reservation_noshow). Defaults to false. |
use_webhooks |
Boolean | No | Whether this event may emit reservation webhooks (e.g. created / updated). Defaults to false — POS-driven events are silent unless you explicitly pass true. |
Response
The d field describes the outcome of the event:
| Field | Type | Description |
|---|---|---|
action |
String | What the event did (see the values below). |
reservation |
String | null |
Identifier of the reservation affected. For walk-in creations this is the new walk-in; for status changes it is the existing reservation. null when no reservation was involved. |
Possible action values:
| Value | Meaning |
|---|---|
walkin_created | A new walk-in was created and seated — no matching reservation existed on the table, or an unknown external_id / an explicit arrived_at was supplied. |
reservation_arrived | An existing reservation was marked arrived (matched on the table, or targeted via id / external_id). |
reservation_noshow_walkin_created | The existing reservation was marked no-show and a new walk-in was created (mark_existing_as_noshow=true, after grace). |
walkin_created_over_reservation | A new walk-in was created while the existing reservation was left untouched (mark_existing_as_noshow omitted, after grace). |
reservation_noshow | The existing reservation was marked no-show without creating a walk-in (mark_existing_as_noshow=true, after grace, do_not_create_walk_in=true). |
walkin_skipped | No action — a walk-in would have been created but do_not_create_walk_in=true. reservation is the untouched reservation on the table, or null if there was none. |
reservation_already_arrived | No action — the table is already occupied by a walk-in or an arrived party; reservation is the reservation currently on the table. Send a complete / cancel event to free it. |
Example Request
Table Complete
Marks a specific table as available again and records the revenue generated. This action completes the reservation lifecycle for that table.
Real World Scenario: This endpoint should be triggered when the table is closed or the final invoice is issued on the POS system, indicating that the guests have left and the table is ready for the next party.
Behavior: The reservation to close is selected by an explicit id or external_id when provided; otherwise the oldest active reservation currently on the table is used. It is marked finished, and when billed_amount is supplied that amount (in cents) is stored on the reservation.
Optionally, the individual items on the bill can be reported with bill_items for detailed spend analytics (see Bill Items below). Bill items never block completing the reservation: an invalid item is skipped and reported back, the rest are stored.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
event |
String | Yes | Must be set to complete. |
table |
String | Yes | Exact label of the table (e.g., "Table 1") or its ID (obtained via /reservations/floorplan/get). |
id |
String | No | Identifier of the specific reservation to close (the id returned by Get Reservations). When provided, exactly that reservation is finished. When omitted (and no known external_id is given), the oldest active reservation currently on the table is used. When sent together with external_id, id takes precedence. |
external_id |
String | No | Your own (POS-side) reservation identifier (max 50 characters). When it matches a reservation, exactly that reservation is finished. An unknown external_id is not an error — the request falls back to the oldest active reservation on the table. |
billed_amount |
Integer | No | Total invoice amount in cents (e.g., 100 = 1 EUR). When provided, it is stored on the finished reservation. When omitted, the total is calculated from bill_items instead (only when every item is valid). |
bill_items |
Array of Object | No | The items on the bill, at most 100. See Bill Items. |
use_webhooks |
Boolean | No | Whether this event may emit reservation webhooks. Defaults to false — pass true to opt in. |
Response
The d field describes the outcome of the event:
| Field | Type | Description |
|---|---|---|
action |
String | reservation_finished when a reservation was closed, or no_reservation when no matching reservation was found on the table. |
reservation |
String | null |
Identifier of the reservation that was finished, or null when none was found. |
bill_item_errors |
Array of String | Present only when some of the sent bill_items were skipped. One message per skipped item, prefixed with its zero-based position in the list (e.g. "Item 2: quantity must be a whole number between 1 and 5000"). |
If an explicit id is provided but no such reservation exists, the request fails (s = 0) with invalid_param set to id.
Bill Items
Each entry of bill_items describes one line of the bill. All prices are in cents.
| Field | Type | Required | Description |
|---|---|---|---|
name |
String | Yes | Name of the item as printed on the bill (e.g. "Pivo 0,5 l"). Longer names are cut to 255 characters. |
quantity |
Integer | Yes | Number of units, a whole number between 1 and 5000. |
price |
Integer | Yes | Price of a single unit including VAT, in cents (e.g. 350 = 3.50 EUR). Items with a price of 0 are ignored. |
tax_rate |
Number | No | VAT rate in percent, between 0 and 99.99 (e.g. 22 or 9.5). Used to calculate the prices before VAT; when omitted, the prices before VAT are recorded the same as the prices including VAT. |
The line total is price × quantity; prices before VAT are derived from tax_rate and rounded to whole cents.
- Sending
bill_itemsreplaces the items previously reported for the reservation, so repeating the event never duplicates them. Sending an empty list removes them. - An invalid item is skipped and listed in
bill_item_errors; the valid items are stored and the reservation is still finished. If none of the sent items is valid, the previously reported items are kept. - When
billed_amountis omitted, the reservation's total is the sum of the line totals — but only when no item was skipped, so a partial bill never understates the total.
With a multipart/form-data request, send each field in bracket notation (bill_items[0][name], bill_items[0][quantity], …), as in the examples below. The same request can be sent as a JSON body with Content-Type: application/json:
Example Request
Table Cancel
Cancels a reservation. Use this when an order/booking is voided on the POS so the matching Bizify reservation is marked cancelled.
Real World Scenario: A booking is cancelled, or an open order is voided, on your POS system.
Behavior: The reservation to cancel is selected by external_id (or id) when provided; otherwise the oldest active reservation currently on the table is used. It is marked cancelled.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
event |
String | Yes | Must be set to cancel. |
table |
String | Yes | Exact label of the table (e.g., "Table 1") or its ID (obtained via /reservations/floorplan/get). |
external_id |
String | No | Your own (POS-side) reservation identifier (max 50 characters). When it matches a reservation, exactly that reservation is cancelled. When omitted or unknown (and no id is given), the oldest active reservation currently on the table is cancelled. |
id |
String | No | Identifier of the specific reservation to cancel (the id returned by Get Reservations). Alternative to external_id; when both are sent, id takes precedence. An unknown id fails the request (s = 0, invalid_param = id). |
use_webhooks |
Boolean | No | Whether this event may emit reservation webhooks. Defaults to false — pass true to opt in. |
Response
The d field describes the outcome of the event:
| Field | Type | Description |
|---|---|---|
action |
String | reservation_cancelled when a reservation was cancelled, or no_reservation when no matching reservation was found on the table. |
reservation |
String | null |
Identifier of the reservation that was cancelled, or null when none was found. |
Example Request
Get Reservations
Returns a list of reservations for a given date and time window. Useful for syncing upcoming reservations with an external POS or display system.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
date |
String (Y-m-d) | null |
No | The date for which to fetch reservations, in Y-m-d format (e.g. 2026-03-17). If null or omitted, defaults to today. |
time |
String (H:i) | null |
No | The starting time from which to fetch reservations onward, in H:i format (e.g. 14:00). If null or omitted, defaults to the current time. |
Response
The d field contains an array of reservation objects. Each object has the following structure:
| Field | Type | Description |
|---|---|---|
id |
String | Unique identifier of the reservation. |
reference |
String | Human-readable reservation reference (e.g. RES-26-0032). |
date |
String | Date of the reservation in Y-m-d format. |
time |
String | Start time of the reservation in H:i format. |
duration |
Integer | Duration of the reservation in minutes. |
date_from |
String | Start datetime in Y-m-d H:i:s format. |
date_to |
String | End datetime in Y-m-d H:i:s format. |
party_size |
Integer | Number of guests. |
status |
Object | Reservation status with id, name, colour, and color fields. |
experience |
Object | null |
Associated experience/menu with id, name, colour, and color fields. |
guest |
Object | null |
Guest details: id, name, phone, email, tags. null when no guest is attached (e.g. anonymous walk-ins). |
guest_notes |
String | null |
Notes left by or about the guest. |
objects |
Array | Tables/objects assigned to the reservation. Each entry has id, name, and floor (with id). |
tags |
Array | null |
Tags attached to the reservation. Each entry has id, name, icon, colour, auto, and context. |
language |
Integer | Language code of the guest. |
walk_in |
Boolean | Whether this is a walk-in reservation. |
online |
Boolean | Whether the reservation was made online. |
date_created |
String | Creation datetime in Y-m-d H:i:s format. |
user_created |
String | Initials or identifier of the user who created the reservation. |
Example Request
Get Floorplan
Returns the full floorplan structure: all floors with their assigned tables and positioning data. Useful for rendering a visual seating map or syncing table layouts with an external system.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
Response
The d field contains an array of floor objects. Each floor has the following structure:
| Field | Type | Description |
|---|---|---|
id |
String | Unique identifier of the floor. |
name |
String | Display name of the floor (e.g. Restavracija, Terasa). |
order |
Integer | Display order of the floor. |
is_active |
Boolean | Whether the floor is currently active. |
objects |
Array | List of table/object entries on this floor (see below). |
Each entry in objects has the following structure:
| Field | Type | Description |
|---|---|---|
id |
String | Unique identifier of the table/object. |
name |
String | Display label of the table (e.g. 1, 51). |
min_guests |
Integer | Minimum number of guests for this table. |
max_guests |
Integer | Maximum number of guests for this table. |
is_online |
Boolean | Whether this table is bookable online. |
is_active |
Boolean | Whether this table is currently active. |
is_group |
Boolean | Whether this is a logical group object (no physical position). |
includes_object_ids |
Array | null |
For group objects (is_group = true): the ids of the tables that make up the group. null for regular tables. |
order |
Integer | Display order within the floor. |
position |
Object | Visual positioning data: top, left, height, width (all integers, in pixels), rotation (degrees), shape (rectangle, oval, or null for group objects). |
Example Request
Get Experiences
Returns the venue's active experiences (bookable offers such as "À la carte", "Tasting menu", "Sunday brunch") together with their schedule, pricing / deposit rules and the public booking card. Use the returned id as experience_id in the availability endpoints.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
online_only |
Boolean | No | Omitted / null / true → only experiences that are bookable online are returned (default). false → all active experiences are returned, including those reserved for in-house use. Accepts true/false or 1/0. |
Response
The d field contains an array of experience objects. Each object has the following structure:
| Field | Type | Description |
|---|---|---|
id |
String | Unique identifier of the experience. |
name |
Object | Translated name, keyed by language flag code (e.g. {"si": "Degustacijski meni", "gb": "Tasting menu"}). Empty object when no name is set. |
description |
Object | Translated description, same structure as name. |
is_online |
Boolean | Whether guests can book this experience online. |
is_active |
Boolean | Whether the experience is active (only active experiences are returned). |
date_from |
String (Y-m-d) | null |
First date the experience is offered. null = no lower bound. |
date_to |
String (Y-m-d) | null |
Last date the experience is offered. null = no upper bound. |
dotw |
Array of Integer | ISO weekday numbers on which the experience is offered: 1 = Monday … 7 = Sunday (e.g. [1,2,3,4,5]). |
first_reservation_time |
String (H:i:s) |
Earliest reservation start time of the day. |
last_reservation_time |
String (H:i:s) |
Latest reservation start time of the day. |
reservation_span |
Integer | Duration of one reservation in minutes. The availability endpoints use it to compute each slot's to time. |
payment_type |
Integer | null |
Payment protection required at booking: 0 / null = none, 1 = prepayment (deposit), 2 = no-show protection (card guarantee). |
prepayment_amount |
Integer | Deposit amount in cents (applies when payment_type = 1). |
prepayment_per_cover |
Boolean | true → prepayment_amount is charged per guest; false → per reservation. |
noshow_amount |
Integer | No-show fee in cents (applies when payment_type = 2). |
noshow_per_cover |
Boolean | true → noshow_amount is charged per guest; false → per reservation. |
noshow_group_rules |
String | null |
Per-party-size overrides of noshow_amount, as party_size:amount_cents pairs separated by commas (e.g. 8:2000,12:3000). A party size without a rule uses noshow_amount. null when no overrides exist. |
cost_amount |
Integer | Informational price of the experience in cents (e.g. menu price). |
cost_per_cover |
Boolean | true → cost_amount is per guest; false → per reservation. |
package_selection_required |
Boolean | Whether the guest must choose a package (e.g. menu option) when booking this experience. |
card_details |
Object | null |
The public booking card: description, terms and email_text (each an object keyed by language id, with lng, lng_flag, lng_name and value), plus enable_packages, select_packages, multiple_packages (Booleans) and packages_text (Integer). null when no card is configured. |
direct_url |
String | Public URL where guests can book this experience directly (e.g. https://r.venuo.net/{venue}/reservation/{id}/). |
Example Request
Availability: Dates
Returns, for each day in a date range, whether a reservation for the given party size and experience can be made. Optionally returns the concrete free time slots per day. Availability is computed with the same rules the public online booking widget uses (online-bookable shifts and tables only). Useful for rendering a booking calendar in an external app.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
party_size |
Integer | Yes | Number of guests. Must be between 1 and 100. |
experience_id |
String | No | Identifier of the experience to check (the id returned by Get Experiences). When omitted, the venue's default experience is used. If the venue has no default experience configured (and more than one eligible experience exists), the request fails with invalid_param = experience_id — pass one explicitly in that case. |
date_from |
String (Y-m-d) |
No | First date of the range. Defaults to today; must not be in the past. |
date_to |
String (Y-m-d) |
No | Last date of the range (inclusive). Defaults to date_from + 3 months. Must not be before date_from and must not be more than 6 months from today. |
obtain_timeslots |
Boolean | No | Defaults to false. When true, each date carries its list of free time slots instead of a simple yes/no flag (slower — use only when you need the times up front). |
Response
The d field is an object keyed by date (Y-m-d), one entry per day in the range:
| Mode | Value type | Description |
|---|---|---|
obtain_timeslots omitted / false |
Integer (1 | 0) |
1 when at least one reservation slot is available on that date for the given party size, 0 otherwise. |
obtain_timeslots = true |
Array | List of free slots, each an object with from and to (H:i). to = from + the experience's reservation_span. Empty array when nothing is available. |
Example (obtain_timeslots omitted):
Example (obtain_timeslots = true):
Example Request
Availability: Times
Returns the free reservation time slots on a single date for the given party size and experience. Typically called after the guest picks a date from the Availability: Dates result. Availability is computed with the same rules the public online booking widget uses.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
party_size |
Integer | Yes | Number of guests. Must be between 1 and 100. |
experience_id |
String | No | Identifier of the experience to check (the id returned by Get Experiences). When omitted, the venue's default experience is used; if none is configured the request fails with invalid_param = experience_id. |
date |
String (Y-m-d) |
Yes | The date to check (e.g. 2026-03-17). |
Response
| Field | Type | Description |
|---|---|---|
date |
String (Y-m-d) |
The date that was checked. |
available_timeslots |
Array | List of free slots, each an object with from and to (H:i). to = from + the experience's reservation_span. Empty array when nothing is available on that date. |
Example:
Example Request
Availability: Check
Checks whether one specific slot (date + time + party size + experience) can still be booked. This is the final check to run immediately before Create Reservation: the dates / times lists may be seconds old, and the create endpoint itself does not reject a slot that has meanwhile filled up.
Behavior: The slot is evaluated live, with the same rules the public online booking widget uses (online-bookable shifts and tables only, the venue's shift-overflow settings, and reservations already on the books). For one-time event experiences the check is based on the event's remaining capacity rather than the date / time.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
party_size |
Integer | Yes | Number of guests. Must be between 1 and 100. |
experience_id |
String | No | Identifier of the experience to check (the id returned by Get Experiences). When omitted, the venue's default experience is used; if none is configured the request fails with invalid_param = experience_id. Pass the same value you will send to Create Reservation. |
date |
String (Y-m-d) |
Yes | The date to check (e.g. 2026-03-17). |
time |
String (H:i) |
Yes | The reservation start time to check, 24-hour format (e.g. 19:00). Use a from value returned by Availability: Times. |
Response
| Field | Type | Description |
|---|---|---|
available |
Integer (1 | 0) |
1 when the slot can be booked for the given party size and experience, 0 otherwise. |
Example:
Example Request
Create Reservation
Creates a new, confirmed reservation for a guest. Intended for external booking channels (your own website, app or marketplace) that let guests book a table at the venue.
Real World Scenario: A guest picks an experience, date, time and party size in your app (using Get Experiences and the availability endpoints), enters their contact details and confirms — your backend runs Availability: Check and, if the slot is free, calls this endpoint to place the booking.
Behavior:
- The reservation is created as an online reservation with status confirmed, attributed to the partner API as its source.
- Tables are assigned automatically by the seating engine for the given experience, date, time and party size (for experiences that use table-based availability).
- This endpoint does not reject a slot that is fully booked — always validate the exact slot with Availability: Check right before calling it.
- The guest is matched to an existing guest record when
guest_name,guest_emailandguest_phoneall match exactly; otherwise a new guest is created. - Guest and venue notifications are off by default; opt in with
notify_guest/notify_venue. Guest notifications are sent inlanguage. - The experience's payment protection settings (deposit / no-show guarantee) apply as configured for the venue; this endpoint does not collect payments itself.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
language |
String | Yes | Guest's language as a 2-letter lowercase code. One of: en, sl, de, it, hr, fr. Stored on the reservation and used for guest notifications. |
experience_id |
String | Yes | Identifier of the experience being booked (the id returned by Get Experiences). |
date |
String (Y-m-d) |
Yes | Reservation date (e.g. 2026-03-17). |
time |
String (H:i) |
Yes | Reservation start time (e.g. 19:00). Use a from value returned by Availability: Times. |
party_size |
Integer | Yes | Number of guests. Must be between 1 and 100. |
duration |
Integer | No | Reservation duration in minutes (15 – 600). Defaults to the experience's reservation_span. |
guest_name |
String | No | Guest's full name (max 255 characters). |
guest_email |
String | No | Guest's e-mail address (must be a valid e-mail). Required for e-mail notifications to the guest. |
guest_phone |
String | No | Guest's phone number, preferably in international format (e.g. +38640123456; max 19 characters). Everything except digits and a leading + is stripped. Required for SMS notifications to the guest. |
notes |
String | No | Guest's remarks or special requests (max 2000 characters). Shown to the venue and returned as guest_notes by Get Reservations. |
notify_guest |
Boolean | No | Defaults to false. When true, the guest receives the venue's confirmation notification (e-mail and/or SMS, per the venue's settings) in language. |
notify_venue |
Boolean | No | Defaults to false. When true, the venue receives its new-reservation notification. |
Response
On success (s = 1) the d field contains the new reservation:
| Field | Type | Description |
|---|---|---|
id |
String | Unique identifier of the new reservation. Use it with Update Reservation or the table events. |
reference |
String | Human-readable reservation reference shown to the guest and the venue. |
If the reservation could not be created, the response has s = 0 and d = null. Validation failures return s = 0 with invalid_param naming the offending parameter (e.g. language, experience_id, date, time, duration, party_size, guest_name, guest_phone, guest_email, or guest when the guest record could not be created).
Example Request
Update Reservation
Updates an existing reservation. Currently used to store your own external (POS) reference on a Bizify reservation, so later table events can target it by external_id.
Real World Scenario: After your POS creates its own record for a reservation, call this to save that POS id onto the matching Bizify reservation.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
id |
String | Conditional | Identifier of the reservation to update (the id returned by Get Reservations). Locates the reservation. At least one of id / external_id is required. |
external_id |
String | Conditional | Your own (POS-side) reservation identifier (max 50 characters). This value is stored on the reservation. It also doubles as a locator when id is omitted (the reservation already carrying this external_id is updated); when both are sent, id locates the reservation and external_id is written onto it. At least one of id / external_id is required. |
Response
The d field is a boolean indicating whether the update succeeded.
| Field | Type | Description |
|---|---|---|
d |
Boolean | true when the reservation was updated, false otherwise. |
Example Request
Gift Vouchers
Manage and redeem gift vouchers via the partner API.
Check Voucher Status
Check if a voucher is valid and retrieve its balance.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
token |
String | Yes | The unique token of the gift voucher. |
Response
| Field | Type | Description |
|---|---|---|
is_valid |
Boolean | True if the voucher is valid, false otherwise. |
amount_total |
Integer | Total original value of the voucher in cents. |
amount_redeemed |
Integer | Amount already redeemed from the voucher in cents. |
amount_remaining |
Integer | Remaining balance of the voucher in cents. |
Example Request
Redeem Voucher
Redeem a specific amount from a gift voucher.
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key |
String | Yes | API key (client's own API key). Provided to you by the client or our support team. |
token |
String | Yes | The unique token of the gift voucher. |
amount |
Integer | Yes | Amount to redeem in cents (100 = 1 EUR). Must be positive. |
Response
| Field | Type | Description |
|---|---|---|
amount_total |
Integer | Total original value of the voucher in cents. |
amount_redeemed |
Integer | Total amount redeemed after this transaction in cents. |
amount_remaining |
Integer | Remaining balance after this transaction in cents. |