> ## Documentation Index
> Fetch the complete documentation index at: https://restoo.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Cancel Booking Details

> Returns the information required to inform the customer about the
financial consequences (if any) of canceling a Booking at this moment.



## OpenAPI

````yaml /public-api.json get /bookings/{bookingUuid}/cancel
openapi: 3.1.0
info:
  title: Restoo Public API
  version: 3.0.0-alpha
  description: Connect your App with Restoo.
servers:
  - url: https://api-dev.myrestoo.net/v3
    description: Dev
  - url: https://api.myrestoo.net/v3
    description: Prod
security:
  - http: []
tags:
  - name: Review
paths:
  /bookings/{bookingUuid}/cancel:
    get:
      tags:
        - Booking
      summary: Get Cancel Booking Details
      description: |-
        Returns the information required to inform the customer about the
        financial consequences (if any) of canceling a Booking at this moment.
      operationId: booking.cancelQuote
      parameters:
        - name: bookingUuid
          in: path
          required: true
          description: The Booking UUID
          schema:
            type: string
            examples:
              - 50b5571be67b477baa9dead4b290c555
        - name: Restoo-Partner-Id
          in: header
          required: true
          description: Unique identifier of your Partner account (defined by Restoo).
          schema:
            type: string
          example: your-restoo-partner-id
        - name: Restoo-Account-Id
          in: header
          required: true
          description: >-
            Unique identifier of the
            [Tenant](/getting-started/key-concepts#tenant).
          schema:
            type: string
          example: best-burger
      responses:
        '200':
          description: '`CancelBookingQuoteResponse`'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CancelBookingQuoteResponse'
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    CancelBookingQuoteResponse:
      type: object
      description: >-
        Response containing all information required to inform the customer
        about the

        financial consequences (if any) of canceling a Booking at this moment.
      properties:
        booking:
          $ref: '#/components/schemas/PublicBooking'
        cancellationPolicyQuote:
          anyOf:
            - $ref: '#/components/schemas/BookingCancellationPolicyQuote'
            - type: 'null'
      required:
        - booking
        - cancellationPolicyQuote
      title: CancelBookingQuoteResponse
    PublicBooking:
      type: object
      description: The Booking details.
      properties:
        customer:
          anyOf:
            - $ref: '#/components/schemas/PublicCustomer'
              description: Public Customer details
            - type: 'null'
        uuid:
          type: string
          description: UUID of the Booking
          examples:
            - 50b5571be67b477baa9dead4b290c555
        bookingAt:
          type: string
          format: date-time
          description: The Booking date and time in ISO 8601 format
          examples:
            - '2025-03-20T23:00:00+02:00'
        status:
          $ref: '#/components/schemas/BookingStatusEnum'
          description: The Booking status
          examples:
            - CONFIRMED
        isTimeLimited:
          type: boolean
          description: |-
            Indicates whether the Booking has a time limit
            that must be notified and accepted by the customer
          examples:
            - true
        customerSpecialRequests:
          type:
            - string
            - 'null'
          description: >-
            Free-text field for customer special requests.

            The Venue will try to accommodate them but cannot guarantee
            fulfillment
          examples:
            - Table near the window
          maxLength: 1024
        hasAllergies:
          type: boolean
          description: |-
            Indicates whether any of the guests have allergies
            (e.g., peanut, chocolate, nuts, etc.)
          examples:
            - true
        allergiesDescription:
          type:
            - string
            - 'null'
          description: Free-text description of allergies
          examples:
            - Peanuts, shellfish, lactose intolerance
          maxLength: 1024
        specialOccasion:
          anyOf:
            - $ref: '#/components/schemas/BookingSpecialOccasionEnum'
              description: The special occasion associated with the booking
              examples:
                - BIRTHDAY
            - type: 'null'
        needsAccessibleSeating:
          type: boolean
          description: |-
            Indicates whether the guest requires an accessible seating
            (e.g., suitable for wheelchairs or reduced mobility)
          examples:
            - true
        hotelRoom:
          type:
            - string
            - 'null'
          description: Hotel room number or identifier associated with the Booking
          examples:
            - Room 305
          maxLength: 50
        publicNotes:
          type:
            - string
            - 'null'
          description: Public notes defined by the venue and visible to the customer
          examples:
            - Your reservation includes a birthday cake.
          maxLength: 2048
        isReconfirmed:
          type: boolean
          description: >-
            Indicates whether the booking was manually reconfirmed

            by the customer **after** the venue contacted them to request
            reconfirmation
          examples:
            - true
        isReconfirmedByCustomer:
          type: boolean
          description: |-
            Indicates whether the booking was automatically reconfirmed
            by the customer through Restoo’s automated reconfirmation service
          examples:
            - false
        cancelReason:
          anyOf:
            - $ref: '#/components/schemas/BookingCancelReasonEnum'
              description: The reason provided when canceling the booking (if applicable)
              examples:
                - CHANGED_PLANS
            - type: 'null'
        bookingPartner:
          anyOf:
            - $ref: '#/components/schemas/BookingPartnerEnum'
              description: The partner through which the Booking was made (if any)
              examples:
                - GOOGLE
            - type: 'null'
        bookingExternalId:
          type:
            - string
            - 'null'
          description: |-
            The Booking ID provided by the external partner (if applicable).
            Required if `bookingPartner` is present
          examples:
            - book_123456
          maxLength: 64
        shiftType:
          $ref: '#/components/schemas/ShiftType'
          description: The Shift Type in which the Booking takes place
        floorPlanArea:
          anyOf:
            - $ref: '#/components/schemas/BookingFloorPlanArea'
            - type: 'null'
        promo:
          anyOf:
            - $ref: '#/components/schemas/BookingPromo'
            - type: 'null'
        product:
          anyOf:
            - $ref: '#/components/schemas/BookingProduct'
            - type: 'null'
        experience:
          anyOf:
            - $ref: '#/components/schemas/BookingExperience'
            - type: 'null'
        cancellationPolicy:
          anyOf:
            - $ref: '#/components/schemas/BookingCancellationPolicy'
            - type: 'null'
        addOns:
          type: array
          description: List of add-ons associated with the Booking (if any)
          items:
            $ref: '#/components/schemas/BookingAddOn'
        accountId:
          type: string
          description: The unique Restoo Account identifier for the Tenant
          examples:
            - best-burger
        highChairs:
          type: integer
          description: The number of high chairs
          examples:
            - 1
          minimum: 0
        paxChildren:
          type: integer
          description: >-
            The number of children in the Booking.

            Available only if the Tenant setting for differentiating adults and
            children is enabled
          examples:
            - 0
          minimum: 0
          maximum: 100
        pax:
          type: integer
          description: >-
            The number of people (or adults, depending on Tenant settings) in
            the Booking
          examples:
            - 2
          minimum: 1
          maximum: 100
        strollers:
          type: integer
          description: The number of strollers
          examples:
            - 1
          minimum: 0
        turnMinutes:
          type: integer
          description: The duration of the Booking in minutes
          examples:
            - 90
          minimum: 15
          maximum: 720
      required:
        - customer
        - uuid
        - bookingAt
        - status
        - isTimeLimited
        - customerSpecialRequests
        - hasAllergies
        - allergiesDescription
        - specialOccasion
        - needsAccessibleSeating
        - hotelRoom
        - publicNotes
        - isReconfirmed
        - isReconfirmedByCustomer
        - cancelReason
        - bookingPartner
        - bookingExternalId
        - shiftType
        - floorPlanArea
        - promo
        - product
        - experience
        - cancellationPolicy
        - addOns
        - accountId
        - highChairs
        - paxChildren
        - pax
        - strollers
        - turnMinutes
      title: PublicBooking
    BookingCancellationPolicyQuote:
      type: object
      description: >-
        Cancellation Policy quote to finalize a Booking.


        Represents a **point-in-time simulation** of the Cancellation Policy
        outcome

        (penalties, deadlines, and resulting status), evaluated using the

        request inputs at the moment the quote is generated.


        This object does NOT represent persisted policy data nor the

        final state applied to the Booking.
      properties:
        status:
          $ref: '#/components/schemas/BookingCancellationPolicyStatusEnum'
          description: >-
            Simulated final status of the Cancellation Policy used to calculate
            this quote
          examples:
            - PENALTY_CANCEL
        cancellationDeadlineAt:
          type: string
          format: date-time
          description: >-
            The deadline to cancel the Booking without penalty in ISO 8601
            format
          examples:
            - '2025-03-20T22:00:00+02:00'
        isPenalizable:
          type: boolean
          description: Indicates whether the Booking would incur a penalty
          examples:
            - true
        quotedAt:
          type: string
          format: date-time
          description: Date and time when this quote was generated
          examples:
            - '2025-03-20T23:00:00+02:00'
        type:
          $ref: '#/components/schemas/CancellationPolicyTypeEnum'
          description: Type of Cancellation Policy
          examples:
            - GUARANTEE_AUTHORIZATION
        amount:
          type: integer
          description: Base unit amount of the Cancellation Policy, expressed in cents
          examples:
            - 2500
          minimum: 100
          maximum: 200000
        amountType:
          $ref: '#/components/schemas/CancellationPolicyAmountTypeEnum'
          description: >-
            Defines how the Cancellation Policy amount is applied.


            - `PER_PAX` — The policy amount applies **per guest**.
              The final charge is calculated as: `amount × number_of_guests`.

            - `PER_BOOKING` — The policy amount applies **once to the entire
            booking**,
              regardless of the number of guests
          examples:
            - PER_PAX
        cancellationNoticeHours:
          type: integer
          description: |-
            Minimum notice required (in hours) before the booking start time
            for the Cancellation Policy to apply
          examples:
            - 24
          minimum: 0
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
          description: The currency represented as a three-letter ISO 4217 code
          examples:
            - EUR
        cancellationFeeAmount:
          type: integer
          description: |-
            Cancellation fee amount dictated by the agreed policy terms,
            regardless of the amount finally charged to the customer
          examples:
            - 5000
          minimum: 0
          maximum: 200000
        chargedAmount:
          type: integer
          description: >-
            The total amount charged to the customer, expressed in cents.


            This value represents the **amount actually charged** to the
            customer,

            independent of the cancellation fee that **should have been
            applied**

            according to the Cancellation Policy, and regardless of the current

            payment or refund status
          examples:
            - 5000
          minimum: 0
          maximum: 200000
        refundedAmount:
          type: integer
          description: >-
            The total amount refunded to the customer, expressed in cents.


            This value represents the **amount to be refunded** to the customer,
            regardless of

            whether the refund has already been issued or fully settled
          examples:
            - 0
          minimum: 0
          maximum: 200000
      required:
        - status
        - cancellationDeadlineAt
        - isPenalizable
        - quotedAt
        - type
        - amount
        - amountType
        - cancellationNoticeHours
        - currency
        - cancellationFeeAmount
        - chargedAmount
        - refundedAmount
      title: BookingCancellationPolicyQuote
    PublicCustomer:
      type: object
      description: Public Customer details.
      properties:
        uuid:
          type: string
          description: The Customer UUID
          examples:
            - 50b5571be67b477baa9dead4b290c555
        email:
          type:
            - string
            - 'null'
          format: email
          description: The Customer's email address
          examples:
            - steve.jobs@restoo.me
        phone:
          type:
            - string
            - 'null'
          description: The Customer's phone number in E.164 format
          examples:
            - '+34600111222'
        birthDate:
          type:
            - string
            - 'null'
          format: date
          description: Date of birth of the Customer in ISO 8601 format (YYYY-MM-DD)
          examples:
            - '1979-03-20'
        postalCode:
          type:
            - string
            - 'null'
          description: The Customer's postal code
          examples:
            - '28045'
          maxLength: 12
        isVip:
          type: boolean
          description: Indicates whether the Customer is marked as VIP
          examples:
            - true
        isBusiness:
          type: boolean
          description: Indicates whether the Customer is associated with a business
          examples:
            - false
        language:
          $ref: '#/components/schemas/CustomerLanguageEnum'
          description: >-
            The preferred language of the Customer, represented as an ISO 639-1
            code
          examples:
            - en
        acceptsImportantAlerts:
          type: boolean
          description: >-
            Indicates whether the customer agrees to receive important alerts
            related to their bookings

            (e.g., cancellations due to weather or unexpected incidents)
          examples:
            - true
        hasGdprConsent:
          type: boolean
          description: Indicates whether the Customer has given GDPR consent
          examples:
            - true
        acceptsMarketing:
          type: boolean
          description: >-
            Indicates whether the Customer has consented to receive marketing
            communications
          examples:
            - true
        country:
          $ref: '#/components/schemas/CountryEnum'
          description: The country represented as a two-letter ISO 3166-1 alpha-2 code
          examples:
            - ES
        name:
          type: string
          description: The full name of the Customer
          examples:
            - Steve Jobs
          minLength: 3
          maxLength: 255
      required:
        - uuid
        - email
        - phone
        - birthDate
        - postalCode
        - isVip
        - isBusiness
        - language
        - acceptsImportantAlerts
        - hasGdprConsent
        - acceptsMarketing
        - country
        - name
      title: PublicCustomer
    BookingStatusEnum:
      type: string
      enum:
        - REQUESTED
        - PENDING_MERCHANT_CONFIRMATION
        - PENDING_WAIT_LIST_BOOKING
        - CONFIRMED
        - WAIT_LIST_WALK_IN
        - ARRIVED
        - SEATED
        - DESSERTS
        - ACCOUNT_SENT
        - ACCOUNT_PAID
        - ATTENDED
        - CANCELED
        - NO_SHOW
        - DECLINED_BY_MERCHANT
        - DELETED
      title: BookingStatusEnum
    BookingSpecialOccasionEnum:
      type: string
      enum:
        - WEDDING
        - BIRTHDAY
        - ROMANTIC
        - FRIENDS
        - FAMILY
        - BUSINESS
        - OTHER
      title: BookingSpecialOccasionEnum
    BookingCancelReasonEnum:
      type: string
      enum:
        - CALL_TO_CANCEL
        - UPDATE_BOOKING
        - UNEXPECTED_SITUATION
        - BOOKED_ANOTHER_PLACE
        - CHANGED_PLANS
        - OTHER
        - REVOKE_LEGAL_CONSENT
      title: BookingCancelReasonEnum
    BookingPartnerEnum:
      type: string
      enum:
        - DEFAULT
        - GOOGLE
        - BOOKLINE
        - BOOKY_BOT
        - FLIP_EAT
        - FACEBOOK
        - MAYBEIN
        - LASTAPP
        - PRIMA
      title: BookingPartnerEnum
    ShiftType:
      type: object
      description: The Shift Type details.
      properties:
        id:
          $ref: '#/components/schemas/ShiftTypeEnum'
          description: The Shift Type ID
          examples:
            - LUNCH
        name:
          type: string
          description: The Shift name, localized in the preferred response language
          examples:
            - Lunch
          maxLength: 16
      required:
        - id
        - name
      title: ShiftType
    BookingFloorPlanArea:
      type: object
      description: The Floor Plan Area details related to a Booking.
      properties:
        name:
          type: string
          description: >-
            The Floor Plan Area name, localized in the preferred requested
            language
          examples:
            - Terrace
          maxLength: 255
        id:
          type: integer
          description: The unique identifier of the resource
          examples:
            - 101
          minimum: 1
      required:
        - name
        - id
      title: BookingFloorPlanArea
    BookingPromo:
      type: object
      description: The Promotion details related to a Booking.
      properties:
        name:
          type: string
          description: The Promotion name, localized in the preferred requested language
          examples:
            - Summer Discount 2025
          maxLength: 255
        id:
          type: integer
          description: The unique identifier of the resource
          examples:
            - 101
          minimum: 1
      required:
        - name
        - id
      title: BookingPromo
    BookingProduct:
      type: object
      description: The Product details related to a Booking.
      properties:
        orderItemId:
          type: integer
          description: The unique identifier of the related Order Item
          examples:
            - 101
          minimum: 1
        orderUuid:
          type: string
          description: The unique identifier of the related Order
          examples:
            - 50b5571be67b477baa9dead4b290c555
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
          description: The currency represented as a three-letter ISO 4217 code
          examples:
            - EUR
        experienceTickets:
          type:
            - integer
            - 'null'
          description: |-
            The number of experience tickets included.

            This applies only to Products that provide experience access.
            If the Product does not include tickets, this value is `null`
          examples:
            - 1
          minimum: 1
        id:
          type: integer
          description: The unique identifier of the resource
          examples:
            - 101
          minimum: 1
        isGift:
          type: boolean
          description: Indicates whether this item is a gift
          examples:
            - true
        name:
          type: string
          description: The Product name, localized in the preferred requested language
          examples:
            - Gift Card
          maxLength: 255
        quantity:
          type: integer
          description: The quantity of this resource
          examples:
            - 1
          minimum: 1
        taxRate:
          type: integer
          description: |-
            Tax rate, expressed in basis points.

            For example, 10.5% is represented as 1050
          examples:
            - 1050
          minimum: 0
          maximum: 10000
        type:
          $ref: '#/components/schemas/ProductTypeEnum'
          description: |-
            The type of Product.

            Determines how the Product behaves during purchase and how its price
            is interpreted. The following product types are supported:

            - **ITEM** — A fixed-price product.
              The customer selects quantity to purchase.
              Each unit has a predefined price (e.g., menus, experiences).

            - **CREDIT** — A monetary-value product.
              The customer selects the amount of credit to purchase.
              The minimum allowed amount is defined by the Product’s base price
              (e.g., gift cards)
          examples:
            - ITEM
        unitPrice:
          type: integer
          description: |-
            The base price of the Product, expressed in cents.

            Its interpretation depends on the Product type:

            - **ITEM** — Represents the fixed unit price of the product.
              The customer selects a quantity, and the final charge is calculated as
              `quantity × amount`.

            - **CREDIT** — Represents the minimum purchasable credit amount.
              The customer chooses the final amount, which must be **greater than or equal**
              to this value
          examples:
            - 7500
          minimum: 100
      required:
        - orderItemId
        - orderUuid
        - currency
        - experienceTickets
        - id
        - isGift
        - name
        - quantity
        - taxRate
        - type
        - unitPrice
      title: BookingProduct
    BookingExperience:
      type: object
      description: The Experience details related to a Booking.
      properties:
        tickets:
          type: integer
          description: The number of tickets reserved for the Booking Experience
          examples:
            - 1
          minimum: 1
        discount:
          type: number
          description: >-
            Discount applied to the Booking Experience, expressed as a
            percentage
          examples:
            - 10.5
          minimum: 0
          maximum: 100
        experienceId:
          type: integer
          description: The unique identifier of the Experience
          examples:
            - 123
          minimum: 1
        name:
          type: string
          description: The Experience name, localized in the preferred requested language
          examples:
            - Premium Menu
          maxLength: 255
        pricePerTicket:
          type: integer
          description: The Experience price per ticket in cents
          examples:
            - 7500
          minimum: 0
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
          description: The currency represented as a three-letter ISO 4217 code
          examples:
            - EUR
        id:
          type: integer
          description: The unique identifier of the resource
          examples:
            - 101
          minimum: 1
      required:
        - tickets
        - discount
        - experienceId
        - name
        - pricePerTicket
        - currency
        - id
      title: BookingExperience
    BookingCancellationPolicy:
      type: object
      description: |-
        The Cancellation Policy details associated with a Booking.

        Represents the **persisted and authoritative state**
        of the Cancellation Policy for a Booking.
      properties:
        status:
          $ref: '#/components/schemas/BookingCancellationPolicyStatusEnum'
          description: >-
            The current persisted status of the Cancellation Policy for this
            Booking
          examples:
            - PENDING_SIGNATURE
        signDeadlineAt:
          type: string
          format: date-time
          description: >-
            Deadline for the customer to accept the Cancellation Policy,
            expressed in ISO 8601 format.


            If the customer does not complete the acceptance flow before this
            timestamp,

            the Booking will be **automatically cancelled** and the signature
            process

            becomes invalid
          examples:
            - '2025-03-20T22:00:00+02:00'
        signedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date and time when the customer signed/accepted the Cancellation
            Policy, expressed in ISO 8601 format.


            If `null`, the policy has not been signed yet
          examples:
            - '2025-03-20T21:35:10+02:00'
        signedFromIp:
          type:
            - string
            - 'null'
          description: |-
            IP address from which the Cancellation Policy was signed/accepted.

            If `null`, the policy has not been signed yet
          examples:
            - 203.0.113.10
        endedAt:
          type:
            - string
            - 'null'
          format: date-time
          description: >-
            Date and time when the Cancellation Policy ended, expressed in ISO
            8601 format.


            If `null`, the policy has not ended yet
          examples:
            - '2025-03-21T23:59:59+02:00'
        endedBy:
          anyOf:
            - $ref: '#/components/schemas/CancellationPolicyEndedByEnum'
              description: >-
                Indicates who or what ended the Cancellation Policy.


                If `null`, the policy has not ended yet.


                Possible values:


                - **GUEST** — The policy was ended by the customer.

                - **STAFF** — The policy was ended by the merchant or venue
                staff.

                - **RESTOO_BOT** — The policy was ended automatically by Restoo
                (system action)
              examples:
                - GUEST
            - type: 'null'
        chargeStatus:
          anyOf:
            - $ref: '#/components/schemas/ChargeStatusEnum'
              description: |-
                Defines the current status of the charge.

                This field is applicable only when `chargedAmount > 0`.
                If no charge was attempted or applied, this field is `null`
              examples:
                - SUCCEEDED
            - type: 'null'
        refundStatus:
          anyOf:
            - $ref: '#/components/schemas/RefundStatusEnum'
              description: |-
                Defines the current status of the refund.

                This field is applicable only when `refundedAmount > 0`.
                If no refund was initiated, this field is `null`
              examples:
                - null
            - type: 'null'
        type:
          $ref: '#/components/schemas/CancellationPolicyTypeEnum'
          description: Type of Cancellation Policy
          examples:
            - GUARANTEE_AUTHORIZATION
        amount:
          type: integer
          description: Base unit amount of the Cancellation Policy, expressed in cents
          examples:
            - 2500
          minimum: 100
          maximum: 200000
        amountType:
          $ref: '#/components/schemas/CancellationPolicyAmountTypeEnum'
          description: >-
            Defines how the Cancellation Policy amount is applied.


            - `PER_PAX` — The policy amount applies **per guest**.
              The final charge is calculated as: `amount × number_of_guests`.

            - `PER_BOOKING` — The policy amount applies **once to the entire
            booking**,
              regardless of the number of guests
          examples:
            - PER_PAX
        cancellationNoticeHours:
          type: integer
          description: |-
            Minimum notice required (in hours) before the booking start time
            for the Cancellation Policy to apply
          examples:
            - 24
          minimum: 0
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
          description: The currency represented as a three-letter ISO 4217 code
          examples:
            - EUR
        cancellationFeeAmount:
          type: integer
          description: |-
            Cancellation fee amount dictated by the agreed policy terms,
            regardless of the amount finally charged to the customer
          examples:
            - 5000
          minimum: 0
          maximum: 200000
        chargedAmount:
          type: integer
          description: >-
            The total amount charged to the customer, expressed in cents.


            This value represents the **amount actually charged** to the
            customer,

            independent of the cancellation fee that **should have been
            applied**

            according to the Cancellation Policy, and regardless of the current

            payment or refund status
          examples:
            - 5000
          minimum: 0
          maximum: 200000
        guaranteedPax:
          type: integer
          description: |-
            The number of guests covered by the Cancellation Policy guarantee.
            Only applies when amountType is "PER_PAX"
          examples:
            - 2
          minimum: 0
        id:
          type: integer
          description: The unique identifier of the resource
          examples:
            - 101
          minimum: 1
        refundedAmount:
          type: integer
          description: >-
            The total amount refunded to the customer, expressed in cents.


            This value represents the **amount to be refunded** to the customer,
            regardless of

            whether the refund has already been issued or fully settled
          examples:
            - 0
          minimum: 0
          maximum: 200000
      required:
        - status
        - signDeadlineAt
        - signedAt
        - signedFromIp
        - endedAt
        - endedBy
        - chargeStatus
        - refundStatus
        - type
        - amount
        - amountType
        - cancellationNoticeHours
        - currency
        - cancellationFeeAmount
        - chargedAmount
        - guaranteedPax
        - id
        - refundedAmount
      title: BookingCancellationPolicy
    BookingAddOn:
      type: object
      description: The Add-ons details related to a Booking.
      properties:
        addOnId:
          type: integer
          description: The unique identifier of the Add-on
          examples:
            - 123
          minimum: 1
        name:
          type: string
          description: The Add-on name localized in the preferred requested language
          examples:
            - Premium wine tasting
          maxLength: 255
        unitPrice:
          type:
            - integer
            - 'null'
          description: The unit price of the Add-on in cents
          examples:
            - 1000
          minimum: 0
        currency:
          $ref: '#/components/schemas/CurrencyEnum'
          description: The currency represented as a three-letter ISO 4217 code
          examples:
            - EUR
        id:
          type: integer
          description: The unique identifier of the resource
          examples:
            - 101
          minimum: 1
        quantity:
          type: integer
          description: The quantity of this resource
          examples:
            - 1
          minimum: 1
      required:
        - addOnId
        - name
        - unitPrice
        - currency
        - id
        - quantity
      title: BookingAddOn
    BookingCancellationPolicyStatusEnum:
      type: string
      enum:
        - PENDING_SIGNATURE
        - SIGNATURE_EXPIRED
        - ACTIVE
        - COMPLETED
        - REVOKED
        - PENALTY_PARTIAL
        - PENALTY_CANCEL
        - PENALTY_NO_SHOW
      title: BookingCancellationPolicyStatusEnum
    CancellationPolicyTypeEnum:
      type: string
      enum:
        - NONE
        - GUARANTEE_AUTHORIZATION
        - PREPAYMENT
      title: CancellationPolicyTypeEnum
    CancellationPolicyAmountTypeEnum:
      type: string
      enum:
        - PER_PAX
        - PER_BOOKING
      title: CancellationPolicyAmountTypeEnum
    CurrencyEnum:
      type: string
      enum:
        - EUR
        - USD
        - GBP
        - MXN
        - DOP
      title: CurrencyEnum
    CustomerLanguageEnum:
      type: string
      enum:
        - es
        - ca
        - it
        - en
        - de
        - fr
        - pt
        - eu
      title: CustomerLanguageEnum
    CountryEnum:
      type: string
      enum:
        - AF
        - AX
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BQ
        - BA
        - BW
        - BV
        - BR
        - IO
        - BN
        - BG
        - BF
        - BI
        - CV
        - KH
        - CM
        - CA
        - KY
        - CF
        - TD
        - CL
        - CN
        - CX
        - CC
        - CO
        - KM
        - CG
        - CD
        - CK
        - CR
        - CI
        - HR
        - CU
        - CW
        - CY
        - CZ
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - SZ
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HK
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - XK
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MO
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MK
        - MP
        - 'NO'
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - RE
        - RO
        - RU
        - RW
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SX
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - UM
        - US
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VG
        - VI
        - WF
        - EH
        - YE
        - ZM
        - ZW
      title: CountryEnum
    ShiftTypeEnum:
      type: string
      enum:
        - LUNCH
        - DINNER
        - SNACK
        - BREAKFAST
        - BRUNCH
        - LUNCH_LATAM
        - SUNBED
        - BALINESE_BED
        - COCKTAILS
        - AFTER_HOUR
        - HAPPY_HOUR
        - EVENT
        - VERMOUTH
        - TARDEO
        - APERITIF
        - TASTING
      title: ShiftTypeEnum
    ProductTypeEnum:
      type: string
      description: >
        Representa el tipo de negocio del producto. CREDIT:  - Producto que
        representa valor monetario (gift cards, vouchers, saldo, crédito)  -
        Precio variable (is_fixed_price = false)  - Se trata como un
        pago/crédito, no como un consumo  - En integraciones POS se envía como
        parte de los "cobros_realizados"  ITEM:  - Producto vendible de precio
        fijo (menús, packs, experiencias, artículos)  - is_fixed_price = true  -
        Se trata como un consumo de producto, no como un pago  - NO se incluye
        dentro de "cobros_realizados"
      enum:
        - CREDIT
        - ITEM
      title: ProductTypeEnum
    CancellationPolicyEndedByEnum:
      type: string
      enum:
        - RESTOO_BOT
        - GUEST
        - STAFF
      title: CancellationPolicyEndedByEnum
    ChargeStatusEnum:
      type: string
      enum:
        - SUCCEEDED
        - PENDING
        - FAILED
      title: ChargeStatusEnum
    RefundStatusEnum:
      type: string
      enum:
        - PENDING
        - SUCCEEDED
      title: RefundStatusEnum
  responses:
    ValidationException:
      description: >-
        Validation Error — The request structure is correct, but one or more
        fields contain invalid or missing data. Example: missing required
        parameters, invalid formats, or out-of-range values.
      content:
        application/problem+json:
          schema:
            type: object
            properties:
              type:
                type: string
                description: A URI identifier that categorizes the error type.
                examples:
                  - about:blank
              title:
                type: string
                description: A short, human-readable summary of the problem type.
                examples:
                  - Validation Error
              status:
                type: integer
                description: >-
                  The HTTP status code generated by the origin server for this
                  occurrence of the problem.
                examples:
                  - 422
              code:
                type: string
                description: >-
                  A short string indicating the error code that could be handled
                  programmatically.
                examples:
                  - VALIDATION_ERROR
              detail:
                type: string
                description: >-
                  A human-readable message providing more details about the
                  error.
                examples:
                  - The request is not valid.
              errors:
                type: array
                description: >-
                  A detailed description of each parameter that failed
                  validation.
                items:
                  type: object
                  properties:
                    parameter:
                      type: string
                      description: The name of the parameter that failed validation.
                      examples:
                        - status
                    reason:
                      type: string
                      description: A human-readable description of the validation error.
                      examples:
                        - The selected status is invalid.
                  required:
                    - parameter
                    - reason
            required:
              - type
              - title
              - status
              - code
              - detail
              - errors
  securitySchemes:
    http:
      type: http
      description: >-
        All requests must include the static API Key in the Authorization header
        using the Bearer scheme.
      scheme: bearer

````