openapi: 3.0.3 info: title: Quandoo Public Partner Availabilities Reservations API description: The Quandoo Public Partner API is a multi-purpose REST API for the Quandoo restaurant reservations platform. It lets partners check merchant availability, search merchants, read merchant reservation and enquiry settings, create and manage reservations and reservation enquiries, manage customers and reviews, handle preorders and reservation tags, and validate phone numbers. Reservation and enquiry creation is idempotent via an agent-specific unique identifier. Derived from the official Quandoo Swagger specification at https://api.quandoo.com/swagger.json. version: 1.0.0 contact: name: Quandoo Developers email: developers@quandoo.com url: https://docs.quandoo.com/ servers: - url: https://public-api.prod.quandoo.com description: Production security: - API_TOKEN: [] tags: - name: Reservations paths: /v1/reservations/{reservationId}: get: tags: - Reservations summary: Quandoo Get Reservation by Id operationId: getReservation_1 description: "This endpoint allows an agent or a user to get a reservation by id. The id is either agent-specific or a public id. The agent/user needs to be authenticated.\n\nThe endpoint will return `HTTP 404 - Not Found` if the reservation with the specified id could not be found.\n\nIt will return `HTTP 403 - Forbidden` if the agent/user is not authenticated, if the agent/user doesn't have permissions, if the reservation doesn't belong to the authenticated agent or if the user doesn't have permissions to see objects from the merchant owner of the reservation\n\n####Request:\n* **reservationId**: Agent-specific or public ID of the requested reservation\n\n####Response:\n* **id**: Agent-specific or public ID of the requested reservation\n* **number**: Quandoo internal identifier of the reservation\n* **quandooId**: The public id of this reservation on quandoo system.\n* **status**: The status of the reservation eg. CREATED, CONFIRMED, CUSTOMER CANCELED etc.\n* **startTime**: The start time of the reservation. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **endTime**: The end time of the reservation. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **capacity**: The capacity (people count) of the reservation\n* **merchantId**: The ID of the merchant at which this reservation was made.\n* **customerId**: The public ID of the customer to which this reservation belongs\n* **promoCode**: The promotion code associated with this reservation. Optional.\n* **extraInfo**: extra information that the customer provided for the reservation. Optional.\n* **links**: Related links that can be followed based on this response.\n* **reservationTags**: A list of reservation tag IDs.\n* **createdAt**: The date the reservation was created. Format: `yyyy-MM-ddTHH:mm:ssZ`\n* **updatedAt**: The date the reservation was last updated. Format: `yyyy-MM-ddTHH:mm:ssZ`\n\nExample curl:\n```\ncurl https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\n```\n\nExample response:\n```\n{\n \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n \"number\": 1092454812,\n \"quandooId\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n \"status\": \"CREATED\",\n \"startTime\": \"2015-06-22T12:00:00+00:00\",\n \"endTime\": \"2015-06-22T13:00:00+00:00\",\n \"capacity\": 4,\n \"merchantId\": 1384,\n \"customerId\": \"35fff464-142c-48ac-a0c6-ed72a1615664\",\n \"promocode\": \"SOME_CAMPAIGN_CODE\",\n \"extraInfo\": \"request for baby chair\",\n \"links\": [\n {\n \"href\": \"https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\",\n \"method\": \"PATCH\",\n \"rel\": \"update\"\n }\n ],\n \"createdAt\": \"2015-06-01T15:21:54Z\",\n \"updatedAt\": \"2015-06-01T18:45:30Z\"\n}\n```" parameters: - name: reservationId in: path required: true description: Id of the reservation schema: type: string responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ReservationData' examples: GetReservation1200Example: summary: Default getReservation_1 200 response x-microcks-default: true value: id: '88086' number: 1 reservationNumber: string quandooId: '88086' status: CONFIRMED updatedAt: '2026-07-15T19:30:00' capacity: 4 merchantId: 88086 customerId: '88086' promocode: string extraInfo: Window table preferred if available. links: - href: {} method: {} rel: {} reservationTags: - 1 '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: GetReservation1400Example: summary: Default getReservation_1 400 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: GetReservation1403Example: summary: Default getReservation_1 403 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '404': description: Reservation not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: GetReservation1404Example: summary: Default getReservation_1 404 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: GetReservation1500Example: summary: Default getReservation_1 500 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: tags: - Reservations summary: Quandoo Update Reservation by Id operationId: updateReservation_1 description: "This endpoint allows an agent to update a reservation by id. The id is agent-specific. The agent needs to be authenticated.\n####Request:\n* **reservationId**: Agent-specific ID of the requested reservation. Taken as a path parameter.\n* **reservation.status**: New status for the reservation. When is present then all parameters below should be omitted!\n* **reservation.capacity**: The capacity (people count) of the reservation.\n* **reservation.areaId**: The ID of the area this reservation should be in.\n* **reservation.dateTime**: The date and time when the reservation will take place. Format: yyyy-MM-ddTHH:mm:ssZ.\n* **reservation.reservationTags** list of reservation tag IDs. Null value is treated as no value.\n* **reservation.extraInfo** additional text information about the reservation.\n\n The next JSON will be treated as follows:\n - { } - **extraInfo** will not be updated\n - { “extraInfo”:null } - **extraInfo** will not be updated\n - { “extraInfo”:“some text”} - **extraInfo** will be updated with provided text\n - { “extraInfo”:“”} - **extraInfo** will be assigned an empty string\n\nFor updating status request body should contain only reservation.status.\nValid status values depend on the current status of reservation and can be `CUSTOMER_CANCELED` or `RECONFIRMED`.\n* `CUSTOMER_CANCELED` is valid if current status is one of the below:\n * CREATED\n * CONFIRMED\n * AUTOMATIC_CONFIRMED\n * NOTIFICATION_REQUESTED\n * NOTIFIED\n * RECONFIRMED\n* `MERCHANT_CANCELED` is valid if current status is one of the below:\n * CONFIRMED\n * AUTOMATIC_CONFIRMED\n * NOTIFICATION_REQUESTED\n * NOTIFIED\n * RECONFIRMED\n* `RECONFIRMED` is valid if current status is one of the below:\n * CONFIRMED\n * AUTOMATIC_CONFIRMED\n * NOTIFICATION_REQUESTED\n * NOTIFIED\n\nIf reservation.status field is not present then reservation data will be updated and reservation's status will be reset.\nDepending on `Automatic confirmation for online reservations` setting, reservation's status will be set to CREATED or AUTOMATIC_CONFIRMED.\n\n####Response:\nThe endpoint will return `HTTP 200 - OK` if update was successful.\nIt will return `HTTP 404 - Not Found` error if the reservation with the specified id could not be found.\nIt will return `HTTP 403 - Forbidden` error if the agent is not authenticated, if the agent doesn't have permissions or the reservation doesn't belong to the \nauthenticated agent.\nIt will return `HTTP 409 - Conflict` error if reservation has menu, made by IOVOX, has conflict in status, time or other conflicts.\n\nExample curl:\n```\ncurl -H \"Content-Type: application/json\" -X PATCH -d '\n{\n \"reservation\": {\n \"status\": \"CUSTOMER_CANCELED\"\n }\n}\n' https://{host}/v{X}/reservations/07f53b36-3f48-11e5-a151-feff819cdc9f\n```\n" parameters: - name: reservationId in: path required: true description: Id of the reservation schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateReservationData' examples: UpdateReservation1RequestExample: summary: Default updateReservation_1 request x-microcks-default: true value: reservation: status: CONFIRMED capacity: 4 areaId: 1 dateTime: '2026-07-15T19:30:00' reservationTags: - {} extraInfo: Window table preferred if available. description: New reservation data responses: '200': description: OK '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UpdateReservation1400Example: summary: Default updateReservation_1 400 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '403': description: Access denied content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UpdateReservation1403Example: summary: Default updateReservation_1 403 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '404': description: Reservation not found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UpdateReservation1404Example: summary: Default updateReservation_1 404 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '409': description: No matching table(s) found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UpdateReservation1409Example: summary: Default updateReservation_1 409 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: UpdateReservation1500Example: summary: Default updateReservation_1 500 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. x-microcks-operation: delay: 0 dispatcher: FALLBACK /v1/reservations: put: tags: - Reservations summary: Quandoo Create Reservations operationId: createReservation_1 description: "This endpoint allows to create a reservation for a certain capacity, date and time. It also requires certain customer information. All optional fields can be either omitted or set to null. The endpoint is idempotent, which means sending the same request twice will not create another reservation. For that purpose the client is required to generate an agent-specific unique ID for the reservation.\n\nThe endpoint will return status `HTTP 409` should the reservation option specified by the given parameters not be bookable anymore.\nThe endpoint will return status `HTTP 400` should any of the required parameters be missing or formatted incorrectly. See schema for details. \n\n####Request:\nThe request needs to have 3 objects for reservation, customer and tracking information.\n\n* **reservation**: Information about the reservation.\n * **id**: The identifier of the reservation for the calling agent (Agent-dependent field). Optional.\n * **merchantId**: The ID of the merchant at which this reservation will be made. **Required**.\n * **capacity**: The capacity (people count) of the reservation. **Required**.\n * **areaId**: The ID of the area this reservation should be in. Optional.\n * **dateTime**: The date and time when the reservation will take place (local time). Format: yyyy-MM-ddTHH:mm:ss. **Required**\n * **extraInfo**: Any extra information that the customer likes to provide. Optional.\n * **promoCode**: A promotion code which should be used with this reservation. Optional.\n * **creditCardVaultSettingsId**: A credit card vault settings to be used by this reservation. Optional.\n * **recurringCardDetailId**:A customer credit card reference to be used if credit card vault should be applied. Optional.\n * **reservationTags**: A list of reservation tag IDs. Optional.\n\n* **customer**: Information on the customer making the reservation.\n * **id**: Identifier of the customer for the calling agent. Agent dependent field. Optional.\n * **firstName**: The first name of the customer. Optional.\n * **lastName**: The last name of the customer. **Required**\n * **emailAddress**: The email address of the customer. **Required**.\n * **phoneNumber**: The phone number of the customer. Without country code, since it will be assumed from the country field. Example: 030120765890. **Required**.\n * **locale**: The locale of the customer. E.g. de_DE. **Required**.\n * **country**: The 2 letter ISO country of the customer. E.g DE. **Required**\n * **subscriptions**: List of requested subscriptions e.g. QUANDOO, MERCHANT. Optional.\n\n* **tracking**: Third party information used to track customer and reservations.\n * **agent**: The id of the agent creating this request and partner references if any. **Required**.\n * **cookie**: Cookie information to be stored with this reservation. Optional.\n\n####Response:\nThe response returns information on the created reservation and the customer along with relevant links to follow.\n\n* **reservation**: Information on the created reservation.\n * **id**: Agent-specific id set for the reservation.\n * **number**: Quandoo internal identifier of the reservation.\n * **reservationNumber**: Quandoo long internal identifier of the reservation. Provided when **number** is not provided. \n * **status**: Status for the created reservation. eg. \"CREATED\"\n * **quandooId**: Quandoo public identifier for the reservation. \n\n* **customer**: Information on the customer making the reservation.\n * **id**: Agent-specific id set for the customer.\n\n* **links**: Related links that can be followed based on this response.\n\nExample curl:\n```\ncurl -H \"Content-Type: application/json\" -X POST -d '\n{\n \"reservation\": {\n \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n \"merchantId\": 15,\n \"capacity\": 2,\n \"areaId\": 1,\n \"dateTime\": \"2015-06-22T12:00:00+00:00\",\n \"extraInfo\": \"Some text\",\n \"promoCode\": \"PROMO123\",\n },\n \"customer\": {\n \"id\": \"659b9f4b-cd1a-4dc9-a5c3-8ef6bacbade5\",\n \"firstName\": \"Hans\",\n \"lastName\": \"Wurst\",\n \"emailAddress\": \"hans.wurst@foo.bar\",\n \"phoneNumber\": \"017312345678\",\n \"locale\": \"de_DE\",\n \"country\": \"DE\",\n \"subscriptions\": [\n {\n \"id\": \"QUANDOO\"\n },\n {\n \"id\": \"MERCHANT\"\n }\n ]\n },\n \"tracking\": {\n \"agent\": {\n \"id\": 3\n },\n \"cookie\": {\n \"tracking\": \"ff819cdc9\",\n \"referenceId\": \"07f53b36\"\n }\n }\n}' https://{host}/v{X}/reservations\n```\n\nExample response:\n```\n{\n \"reservation\": {\n \"id\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\",\n \"number\": 708457891,\n \"status\": \"CREATED\",\n \"quandooId\": \"07f53b36-3f48-11e5-a151-feff819cdc9f\"\n },\n \"customer\": {\n \"id\": \"01a53b36-3f48-11e5-a151-feff819cdc9f\"\n },\n \"links\": [\n {\n \"href\": \"https://{host}/v{X}/merchants/15/reservation-settings\",\n \"method\": \"GET\",\n \"rel\": \"parent\"\n },\n {\n \"href\": \"https://{portal}/edit-reservation/overview/b8d3213a-307b-4fa9-86f7-0202ea3311aa\",\n \"method\": \"GET\",\n \"rel\": \"customer-edit-reservation\"\n },\n {\n \"href\": \"https://{portal}/de/checkout/offline-reservation?reservationId=9e1b295b-554e-4c35-bf84-e529fa971919&merchantId=test-merchant-33719&cardId=889c0613-3b42-4fc5-a1cf-bd24c1d26908\",\n \"method\": \"GET\",\n \"rel\": \"credit-card-details-page\"\n }\n ]\n}\n```" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MerchantReservationData' examples: CreateReservation1RequestExample: summary: Default createReservation_1 request x-microcks-default: true value: reservation: id: '88086' merchantId: 88086 capacity: 4 areaId: 1 dateTime: '2026-07-15T19:30:00' extraInfo: Window table preferred if available. promoCode: string creditCardVaultSettingsId: '88086' recurringCardDetailId: '88086' reservationTags: - {} customer: id: '88086' firstName: Jane lastName: Smith emailAddress: jane.smith@example.com phoneNumber: 030120765890 locale: de_DE country: DE subscriptions: - {} tracking: agent: {} cookie: {} description: Reservation data responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreatedReservationData' examples: CreateReservation1200Example: summary: Default createReservation_1 200 response x-microcks-default: true value: reservation: id: '88086' number: 1 reservationNumber: string status: CONFIRMED quandooId: '88086' customer: id: '88086' links: - href: {} method: {} rel: {} '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: CreateReservation1400Example: summary: Default createReservation_1 400 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '409': description: No matching table(s) found content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: CreateReservation1409Example: summary: Default createReservation_1 409 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' examples: CreateReservation1500Example: summary: Default createReservation_1 500 response x-microcks-default: true value: errorType: BAD_REQUEST_ERROR errorMessage: Window table preferred if available. x-microcks-operation: delay: 0 dispatcher: FALLBACK components: schemas: CreatedReservation: type: object required: - id - quandooId properties: id: type: string description: The id of this reservation for the calling agent. (Agent dependent field) example: '88086' number: type: integer format: int32 description: The id of this reservation on quandoo system. example: 1 reservationNumber: type: string description: The long id of this reservation on quandoo system. example: string status: type: string description: The status of the reservation. example: CONFIRMED quandooId: type: string format: uuid description: The public id of this reservation on quandoo system. example: '88086' RestCookie: type: object properties: tracking: type: string description: A tracking string to be stored with the reservation. Optional. example: string referenceId: type: string description: A reference id to be stored with the reservation. Optional. example: '88086' ErrorResponse: type: object properties: errorType: type: string enum: - BAD_REQUEST_ERROR - FORBIDDEN_ERROR - NOT_FOUND_ERROR - METHOD_NOT_ALLOWED_ERROR - NOT_ACCEPTABLE_ERROR - UNSUPPORTED_MEDIA_TYPE_ERROR - START_TIME_NOT_FOUND_ERROR - MERCHANT_ID_INVALID - RESERVATION_CAPACITY_MISSING - RESERVATION_CAPACITY_INVALID - RESERVATION_DATE_TIME_MISSING - RESERVATION_DATE_TIME_INVALID_FORMAT - RESERVATION_EXTRA_INFO_INVALID - RESERVATION_SHOW_POSTCODE - RESERVATION_DATE_TIME_INVALID_IN_THE_PAST - RESERVATION_NO_TABLES_AVAILABLE - RESERVATION_NOT_FOUND - RESERVATION_IN_NON_EDITABLE_STATUS - RESERVATION_WITH_SMART_OFFER_EDIT - RESERVATION_WITH_CCV_EDIT - RESERVATION_IOVOX_OFFER_EDIT - RESERVATION_WITH_PREPAID_MENU_EDIT - RESERVATION_FOR_MERCHANT_WITH_FEEDBACK_TIME - RESERVATION_WALKIN_NOT_EDITABLE - RESERVATION_CUSTOMER_CANNOT_EDIT - RESERVATION_PROMO_CODE_PARAM_INVALID - RESERVATION_PROMO_CODE_NOT_FOUND - RESERVATION_PROMO_CODE_INVALID_DESTINATION - RESERVATION_PROMO_CODE_ALREADY_USED - RESERVATION_PROMO_CODE_INVALID_CAMPAIGN - RESERVATION_PROMO_CODE_DATE_TIME_IN_PAST_OR_FUTURE - RESERVATION_PROMO_CODE_INVALID_DAY_OF_WEEK - RESERVATION_PROMO_CODE_INVALID_AGENT - RESERVATION_PROMO_CODE_INVALID_MERCHANT - RESERVATION_PROMO_CODE_INVALID_PARTNER_VOUCHER - RESERVATION_PROMO_CODE_ALREADY_OWNED_BY_CUSTOMER - RESERVATION_INVITATION_PROMO_CODE_NOT_FIRST_RESERVATION - CCV_SETTINGS_REQUIRED - CCV_CARD_REQUIRED - CCV_SETTINGS_INVALID - CCV_SETTINGS_OFFLINE - CCV_CARD_INVALID - ENQUIRY_INVALID_MIN_COVERS - CUSTOMER_FIRST_NAME_INVALID - CUSTOMER_LAST_NAME_MISSING - CUSTOMER_LAST_NAME_INVALID - CUSTOMER_EMAIL_MISSING - CUSTOMER_EMAIL_INVALID - CUSTOMER_NEWSLETTER_REQUESTED_MISSING - CUSTOMER_PHONE_NUMBER_MISSING - CUSTOMER_COUNTRY_INVALID - CUSTOMER_ID_EXISTS - CUSTOMER_PHONE_NUMBER_INVALID - UNEXPECTED_SERVER_ERROR - PHONE_NUMBER_MISSING - PHONE_NUMBER_INVALID - UUID_CONFLICT - RESERVATION_STATUS_CONFLICT - INVALID_RESERVATION_GUESTS_QUANTITY - MENU_MAPPING_FAILED example: BAD_REQUEST_ERROR errorMessage: type: string example: Window table preferred if available. MerchantCustomer: type: object required: - country - locale - phoneNumber properties: id: type: string description: Identifier of the customer for the calling agent. (Agent dependent field) example: '88086' firstName: type: string description: The first name of the customer. Optional. example: Jane lastName: type: string description: The last name of the customer. example: Smith emailAddress: type: string description: The email address of the customer. example: jane.smith@example.com phoneNumber: type: string description: The phone number of the customer. The expected format is E164 e.g. +4930120765890 example: 030120765890 locale: type: string description: The locale of the customer. E.g. de_DE example: de_DE country: type: string description: The 2 letter ISO country of the customer, e.g. DE example: DE subscriptions: type: array description: The requested subscriptions, e.g. QUANDOO, MERCHANT items: $ref: '#/components/schemas/MerchantSubscription' MerchantReservation: type: object required: - capacity - merchantId properties: id: type: string description: The identifier of the reservation for the calling agent (Agent-dependent field) example: '88086' merchantId: type: integer format: int32 description: The ID of the merchant at which this reservation will be made. example: 88086 capacity: type: integer format: int32 description: The capacity (people count) of the reservation. example: 4 areaId: type: integer format: int32 description: The id of the area this reservation should be in. Optional. example: 1 dateTime: type: string format: date-time description: 'The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ' example: '2026-07-15T19:30:00' extraInfo: type: string description: Any extra information that the customer likes to provide. Optional. example: Window table preferred if available. promoCode: type: string description: A promotion code which should be used with this reservation. Optional. example: string creditCardVaultSettingsId: type: string format: uuid description: A credit card vault settings to be used by this reservation. Optional. example: '88086' recurringCardDetailId: type: string format: uuid description: A customer credit card reference to be used if credit card vault should be applied. Optional. example: '88086' reservationTags: type: array description: A list of reservation tag IDs. Optional. items: type: integer format: int32 ReservationDetails: type: object required: - capacity - status properties: status: type: string description: The status of the reservation. example: CONFIRMED capacity: type: integer format: int32 description: The capacity (people count) of the reservation. example: 4 areaId: type: integer format: int32 description: The id of the area this reservation should be in. Optional. example: 1 dateTime: type: string format: date-time description: 'The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ' example: '2026-07-15T19:30:00' reservationTags: type: array description: Reservation tag IDs. items: type: integer format: int32 extraInfo: type: string description: Additional text information about the reservation. Pass empty string to remove it. example: Window table preferred if available. MerchantReservationData: type: object required: - customer - reservation - tracking properties: reservation: description: The reservation data. $ref: '#/components/schemas/MerchantReservation' customer: description: The customer data. $ref: '#/components/schemas/MerchantCustomer' tracking: description: The tracking data. $ref: '#/components/schemas/Tracking' MerchantSubscription: type: object properties: id: type: string enum: - QUANDOO - MERCHANT example: QUANDOO ReservationData: type: object required: - capacity - customerId - id - links - merchantId - quandooId - status properties: id: type: string description: The agent-dependent unique id of the reservation. example: '88086' number: type: integer format: int32 description: The id of the reservation on quandoo system. example: 1 reservationNumber: type: string description: The long id of this reservation on quandoo system. example: string quandooId: type: string format: uuid description: The public id of this reservation on quandoo system. example: '88086' status: type: string description: The status of the reservation. example: CONFIRMED updatedAt: type: string format: date-time description: 'The date the review created on. Format: yyyy-MM-ddTHH:mm:ssZ' example: '2026-07-15T19:30:00' capacity: type: integer format: int32 description: The capacity of the reservation. example: 4 merchantId: type: integer format: int32 description: The id of the merchant. example: 88086 customerId: type: string description: The public ID of the customer to which this reservation belongs. example: '88086' promocode: type: string description: The promotion code used in this reservation. Optional. example: string extraInfo: type: string description: Extra information that the customer provided for the reservation. Optional. example: Window table preferred if available. links: type: array description: The links related to this entity. items: $ref: '#/components/schemas/LinkRelationDto' reservationTags: type: array description: A list of reservation tag IDs. items: type: integer format: int32 UpdateReservationData: type: object required: - reservation properties: reservation: description: The reservation status of the reservation. $ref: '#/components/schemas/ReservationDetails' Tracking: type: object required: - agent properties: agent: description: The id of the agent creating this request and partner references if any. Required. $ref: '#/components/schemas/AgentTracking' cookie: description: Cookie information to be stored with this reservation. Optional. $ref: '#/components/schemas/RestCookie' LinkRelationDto: type: object properties: href: type: string format: url example: https://www.quandoo.com/place/sample-restaurant method: type: string example: string rel: type: string enum: - DETAILS - WIDGET - WIDGET_DETAILS - GET_MERCHANT - PARENT - SELF - SETTINGS - AVAILABILITY_DAYS - AVAILABILITIES - CREATE_RESERVATION - GET_RESERVATION - UPDATE_RESERVATION - GET_CUSTOMER_RESERVATION - GET_REVIEW - PORTAL_PREORDER_FORM - RESERVATION_CHECKOUT_PAGE - CREDIT_CARD_DETAILS_PAGE - CUSTOMER_EDIT_RESERVATION example: DETAILS AgentTracking: type: object required: - id properties: id: type: integer format: int32 description: An agent id. Required. example: 1 CreatedCustomer: type: object required: - id properties: id: type: string description: The id of the customer for the calling agent. (Agent dependent field) example: '88086' CreatedReservationData: type: object required: - customer - links - reservation properties: reservation: description: The object holding the reservation data. $ref: '#/components/schemas/CreatedReservation' customer: description: The object holding the customer data. $ref: '#/components/schemas/CreatedCustomer' links: type: array description: Related links to follow items: $ref: '#/components/schemas/LinkRelationDto' securitySchemes: API_TOKEN: type: apiKey name: X-Quandoo-AuthToken in: header