swagger: '2.0'
info:
  title: bookingkit API
  description: >-
    Current version of bookingkit API used by customers and partners to
    integrate with bookingkit software.
  version: v3
host: api.bookingkit.de
basePath: /v3
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  oauth_2_0:
    description: >
      OAuth2 is a protocol that lets external apps request authorization to
      private

      details
    type: oauth2
    flow: application
    tokenUrl: https://api.bookingkit.de/oauth/token
    scopes:
      calendar_read: ''
      calendar_write: ''
      orders_read_owned: ''
      orders_read_all: ''
      orders_write_owned: ''
      orders_write_all: ''
      orders_custom_prices: ''
      inventory_write: ''
tags:
  - name: Vendor
    description: >-
      Vendor is a bookingkit customer, a provider of tours, attractions &
      activities to the end customers.
  - name: Event
    description: >-
      Also known as experience. Events are tours, activities and attractions
      offered by a vendor. Events are the main inventory items of bookingkit.
      Event object contain event contents, price configuration and booking
      restrictions.
  - name: Date
    description: >-
      Also known as appointment. Date is a single particular instance (a
      calendar slot) of an event. 
  - name: Product
    description: >-
      Additional inventory items offered by vendors. For instance audio guides
      or merchandise. Ordered products are associated with an order as a whole,
      not with a particular ticket.
  - name: Order
    description: >-
      Order is a stated intention of end customer to engage in a commercial
      transaction for specific products or services offered by a vendor. One
      order can contain multiple items of different types, eg. tickets,
      products, vouchers.
  - name: Price
    description: >-
      Prices define the cost structure for events, with different pricing
      categories for various participant types (adults, children, seniors,
      etc.). Each price includes the monetary value, currency, VAT information,
      and entry unit types that determine which participants can use this price.
      Prices can be public (visible to customers) or private (internal use
      only).
  - name: Payment
    description: >-
      Payment represents a particular payment transaction related to an order.
      Payments can be either incoming payments (positive values) or refunds
      (negative values). They support various payment methods including
      third-party payments, cash, mobile app payments, and voucher redemptions.
      Each payment can be linked to specific orders and vouchers through the
      related_items field.
  - name: Ticket
    description: >-
      Also known as a booking. Ticket always relates to a single event and a
      single date. Ticket object can contain multiple participants and their
      individual entry tickets.
  - name: Participant
    description: >-
      Participant is an individual that can enter the venue with an individual
      entry ticket. There can be multiple participants within one booking.
      Participant object holds information on the ticket price (snapshot of the
      value when the order was made).
  - name: Open Date Ticket
    description: >-
      A special ticket type which has no set date or time. It includes seasonal
      and undated tickets. Open Date Tickets can be redeemed for normal single
      entry tickets, also at the entry to the venue.  **Note: This endpoint is
      only available when authenticated as a vendor API.**
  - name: Flex Offer
    description: >-
      Flex Offer is an inventory item that can be purchased. It's a multiple or
      single entry ticket to be redeemed to individual tickets at a later date
      by End Customers or directly used to enter the venue. Flex offers have
      multiple types. Purchased flex offers are listed as Flex Tickets, Open
      Date Tickets and Season Passes and are order items.
  - name: Category
    description: >-
      Category of an event. Categories are hierarchical. Events have the lowest
      level categories assigned to them. Categories are used to group events
      together, eg. all events in the 'Excursions and experiences' category.
  - name: User
    description: >-
      User is a person granted access to bookingkit applications. Users are
      employees or representatives of vendors. **Note: This endpoint is only
      available when authenticated as a vendor API.**
  - name: Coupon
    description: >-
      Promotional coupons are discount codes created by vendors to offer special
      pricing to customers. Coupons can provide percentage discounts, fixed
      amount reductions, or other promotional benefits. When applied during
      booking, they reduce the final ticket price. Coupons are managed by
      vendors and can have usage limits, expiration dates, and specific terms
      and conditions. **Note: This endpoint is only available when authenticated
      as a vendor API client.**
  - name: Voucher
    description: >-
      Vouchers are gift cards or prepaid credits that customers can purchase and
      redeem later for tickets or products. They act as a form of payment and
      can be used as gifts, promotional items, or flexible booking options.
      Vouchers have a specific monetary value and can be redeemed against any
      available event or service offered by the vendor. **Note: This endpoint is
      only available when authenticated as a vendor API client.**
definitions:
  vendor:
    title: Vendor
    type: object
    properties:
      id:
        description: Unique identifier
        type: string
        example: 3e3edd05ce4362e2d6a8200c37b1b79c
      name:
        description: The vendor company name
        type: string
        example: Sample Vendor
      url:
        format: url
        description: Vendor homepage URL
        type: string
        example: https://example.com
      service_email:
        format: email
        type: string
        description: Contact email for customer service.
        example: example@example.com
      service_phone:
        description: Contact phone for customer service.
        type: string
        example: +49 123 123 1234
      image:
        format: url
        description: URL of the vendor logo image.
        type: string
        example: https://example.com/logo.jpeg
      terms:
        format: html
        description: Vendor business terms.
        type: string
        example: >-
          <h1>Terms & Conditions of Sample Vendor</h1><p>Lorem ipsum dolor sit
          amet.</p>
      bill_country:
        description: ISO 3166-1 alpha-2 country code
        type: string
        example: DE
      country_of_residence:
        description: ISO 3166-1 alpha-2 country code
        type: string
        example: DE
      activation_date:
        format: date-time
        type: string
        description: Vendor activation UTC date in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ)
        example: '2025-01-24T14:35:41Z'
      currency:
        description: Vendor currency code (ISO 4217)
        type: string
        example: EUR
      legal_company_name:
        description: Vendor legal company name
        type: string
        example: Sample Vendor GmbH
      legal_representative_first_name:
        description: Vendor representative's first name.
        type: string
        example: John
      legal_representative_last_name:
        description: Vendor representative's last name.
        type: string
        example: Smith
  vendors:
    title: Vendor collection
    type: array
    items:
      $ref: '#/definitions/vendor'
  event:
    title: Event
    type: object
    properties:
      id:
        description: Unique identifier
        type: string
        example: 3e3edd05ce4362e2d6a8200c37b1b79c
      active:
        description: >-
          Whether an event is active or inactive. Events can be deactivated by a
          vendor. Inactive events won't be returned.
        enum:
          - '0'
          - '1'
        example: '1'
        type: integer
      root_event_id:
        description: >-
          If an event is a child pricelist event then root_event_id is a parent
          id of that pricelist event. Parent event of a priclist event can be a
          duration event. Parent events (main events and duration events) will
          have root_event_id set to an empty string.
        example: 45d5133ed696a041f9697233f18942a2
        type: string
      title:
        maxLength: 255
        description: Event title, descriptive.
        example: Berlin Tour
        type: string
      description:
        format: html
        description: Description of the event in HTML format.
        example: <p>Tour around Berlin</p>
        type: string
      type:
        description: >-
          Event type (bookings or requests). Requests have to be accepted by the
          vendors to become a booking.
        example: BOOKING
        enum:
          - BOOKING
          - REQUEST
        type: string
      duration:
        description: Duration of the event in minutes.
        type: integer
        example: 60
      pre_time:
        description: >-
          Whether and how much time earlier the participants and team need
          before the event, in minutes. Set to 0 if no extra time is required.
        type: integer
        example: 30
      max_participants:
        description: >-
          Maximum number of participants in a single appointment of an event.
          This can be overriden for each individual apointment.
        example: 200
        type: integer
      timezone:
        description: Timezone identifier of an event location.
        example: Europe/Berlin
        type: string
      location:
        description: Event location address.
        example: Sonnenallee 223, 12059 Berlin
        type: string
      location_place_id:
        description: Google Place ID of the event location.
        example: ChIJVX06QuNRqEcR0coerEj89jo
        type: string
      location_lng:
        description: Event location longitude.
        example: '12.7135121'
        type: number
      location_lat:
        description: Event location latitude.
        example: '41.9214534'
        type: number
      meeting_location:
        description: Meeting location address, MAY differ from event location.
        example: Pariser Platz, 10117 Berlin
        type: string
      meeting_location_lng:
        description: Meeting location longitude.
        example: '13.3785865'
        type: number
      meeting_location_lat:
        description: Meeting location latitude.
        example: '52.5163766'
        type: number
      meeting_location_place_id:
        description: Google Place ID of the meeting location.
        example: >-
          EiRQYXJpc2VyIFBsYXR6LCAxMDExNyBCZXJsaW4sIEdlcm1hbnkiLiosChQKEgk_NdX1xlGoRxEIInH3zI6rAhIUChIJAVkDPzdOqEcRcDteW0YgIQQ
        type: string
      vendor_id:
        description: Unique identifier of the vendor that this events belongs to.
        example: 3e3edd05ce4362e2d6a8200c37b1b79c
        type: string
      bring:
        description: What participants need to bring.
        example: Driving licence
        type: string
      advice:
        description: Advice note to participants.
        example: Children up to 15 years must be accompanied by at least one adult.
        type: string
      hint:
        type: string
        description: Short general hint displayed during the booking process
        example: Liability and comprehensive insurance is included.
      participant_hint:
        type: string
        description: Short question for participants displayed during the booking process
        example: >-
          Please inform us of any special dietary requirements or food
          allergies.
      vendor_name:
        description: Vendor company name, doesn't have to be a full legal name
        type: string
      youtubeVideoId:
        description: ID of Youtube video, not the whole video URL
        example: lcTsn3_IILM
        type: string
      voucher_checkout_url:
        description: Checkout URL to buy a voucher through the bookingkit system.
        example: >-
          https://web.admin-sandbox.bookingkit.com/voucherOrder/index/?id=dc458a4c9fcff0d0eb962c0654ee90f4
        type: string
      images:
        description: URLs of the images
        example:
          - https://cdn-sandbox.bookingkit.de/vendor_images/image1.jpg
          - https://cdn-sandbox.bookingkit.de/vendor_images/image2.jpg
        minItems: 1
        uniqueItems: true
        type: array
        items:
          type: string
      highlights:
        uniqueItems: true
        maxItems: 10
        description: List of main selling points for the event
        example:
          - Guided by a local expert
          - Includes all entrance fees
          - Small group size
        type: array
        items:
          type: string
      categories:
        description: Full ordered category tree. Top level category first.
        example:
          - id: 351
            title: Tickets & Entry tickets
          - id: 371
            title: Water parks
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier of a category
              type: integer
            title:
              description: Category name
              type: string
      prices:
        description: Prices for this event.
        example:
          - id: 378
            title: Standard
            value: 100
            currency: EUR
            public: 1
            category: Adult
            vat: 23
            entry_units:
              - type: ADULT
          - id: 379
            title: Kids
            value: 50
            currency: EUR
            public: 1
            category: Child
            vat: 23
            entry_units:
              - type: CHILD
          - id: 380
            title: Family ticket
            value: 120
            currency: EUR
            public: 1
            category: Group
            vat: 23
            entry_units:
              - type: ADULT
              - type: CHILD
        uniqueItems: true
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier of a price
              type: number
            title:
              description: Price name
              type: string
            value:
              description: Price value as a decimal number
              type: number
            currency:
              maxLength: 3
              minLength: 3
              description: Price currency code (ISO 4217)
              type: string
            public:
              description: >-
                Whether the price is public or not (1 for public, 0 for
                private). Private prices are not shown to end customers. Private
                prices can be used by vendors when creating bookings in the
                admin app.
              type: integer
            category:
              description: Category of the price
              enum:
                - Adult
                - Senior
                - Youth
                - Child
                - Infant
                - Student
                - Group
                - Other
            vat:
              description: VAT rate as a decimal number
              type: number
            entry_units:
              description: >-
                Entry units define categories of participants within this price
                category. For Group price category there can be multiple entry
                units defined, eg. two adults and one child. This field is
                required when the category is "Group".
              type: array
            allOf:
              - if:
                  properties:
                    category:
                      const: Group
                then:
                  required:
                    - entry_units
                  properties:
                    entry_units:
                      minItems: 1
            items:
              type: object
              properties:
                type:
                  description: Category of entry unit
                  type: string
                  enum:
                    - ADULT
                    - YOUTH
                    - CHILD
                    - INFANT
                    - STUDENT
    tags:
      description: >-
        Optional tags for the event describing the scope of the event. Tags are
        used only for certain event categories (eg. for cooking classes).
      example:
        - title: Preparation & Inventory
          values:
            - All cooking ingredients and utensils
            - Presentation and explanation of the various ingredients
            - Introduction to preparation
        - title: Tasting
          values:
            - Joint tasting of the prepared dishes
            - Non-alcoholic drinks
            - Wine, beer, soft drinks
      type: array
      items:
        type: object
        properties:
          title:
            type: string
          values:
            type: array
            items:
              type: string
        required:
          - title
    first_date:
      format: date-time
      type: string
      pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
      description: >-
        Starting time of the next event. Format: YYYY-MM-DDThh:mm:ssZ, UTC. It's
        returned only if "available_from" query parameter is set.
      example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
    min_participants:
      description: >-
        Minimum number of participants per booking. Set to 0 if no minimum is
        required.
      example: 10
      type: integer
    latest_booking_time:
      description: >-
        How much time (in minutes) the event has to be booked before it starts.
        Negative value is used for "opening hours" events to indicate that the
        event can be booked after it has started.
      example: 60
      type: integer
    commission:
      description: >-
        Percentage of the order value received as commission by the reseller.
        Greater than 0 only for resellers API clients.
      example: 0
      type: integer
  event_post_patch:
    title: Event
    type: object
    properties:
      active:
        description: >-
          Whether an event is active or inactive. Events can be deactivated by a
          vendor. Inactive events won't be returned.
        enum:
          - '0'
          - '1'
        example: '1'
        type: integer
      root_event_id:
        description: >-
          If an event is a child pricelist event then root_event_id is a parent
          id of that pricelist event. Parent event of a priclist event can be a
          duration event. Parent events (main events and duration events) will
          have root_event_id set to an empty string.
        example: 45d5133ed696a041f9697233f18942a2
        type: string
      title:
        maxLength: 255
        description: Event title, descriptive.
        example: Berlin Tour
        type: string
      description:
        format: html
        description: Description of the event in HTML format.
        example: <p>Tour around Berlin</p>
        type: string
      type:
        description: >-
          Event type (bookings or requests). Requests have to be accepted by the
          vendors to become a booking.
        example: BOOKING
        enum:
          - BOOKING
          - REQUEST
        type: string
      duration:
        description: Duration of the event in minutes.
        type: integer
        example: 60
      pre_time:
        description: >-
          Whether and how much time earlier the participants and team need
          before the event, in minutes. Set to 0 if no extra time is required.
        type: integer
        example: 30
      max_participants:
        description: >-
          Maximum number of participants in a single appointment of an event.
          This can be overriden for each individual apointment.
        example: 200
        type: integer
      timezone:
        description: Timezone identifier of an event location.
        example: Europe/Berlin
        type: string
      location:
        description: Event location address.
        example: Sonnenallee 223, 12059 Berlin
        type: string
      location_place_id:
        description: Google Place ID of the event location.
        example: ChIJVX06QuNRqEcR0coerEj89jo
        type: string
      location_lng:
        description: Event location longitude.
        example: '12.7135121'
        type: number
      location_lat:
        description: Event location latitude.
        example: '41.9214534'
        type: number
      meeting_location:
        description: Meeting location address, MAY differ from event location.
        example: Pariser Platz, 10117 Berlin
        type: string
      meeting_location_lng:
        description: Meeting location longitude.
        example: '13.3785865'
        type: number
      meeting_location_lat:
        description: Meeting location latitude.
        example: '52.5163766'
        type: number
      meeting_location_place_id:
        description: Google Place ID of the meeting location.
        example: >-
          EiRQYXJpc2VyIFBsYXR6LCAxMDExNyBCZXJsaW4sIEdlcm1hbnkiLiosChQKEgk_NdX1xlGoRxEIInH3zI6rAhIUChIJAVkDPzdOqEcRcDteW0YgIQQ
        type: string
      vendor_id:
        description: Unique identifier of the vendor that this events belongs to.
        example: 3e3edd05ce4362e2d6a8200c37b1b79c
        type: string
      bring:
        description: What participants need to bring.
        example: Driving licence
        type: string
      advice:
        description: Advice note to participants.
        example: Children up to 15 years must be accompanied by at least one adult.
        type: string
      hint:
        type: string
        description: Short general hint displayed during the booking process
        example: Liability and comprehensive insurance is included.
      participant_hint:
        type: string
        description: Short question for participants displayed during the booking process
        example: >-
          Please inform us of any special dietary requirements or food
          allergies.
      vendor_name:
        description: Vendor company name, doesn't have to be a full legal name
        type: string
      youtubeVideoId:
        description: ID of Youtube video, not the whole video URL
        example: lcTsn3_IILM
        type: string
      voucher_checkout_url:
        description: Checkout URL to buy a voucher through the bookingkit system.
        example: >-
          https://web.admin-sandbox.bookingkit.com/voucherOrder/index/?id=dc458a4c9fcff0d0eb962c0654ee90f4
        type: string
      images:
        description: BASE64 encoded image files
        example:
          - >-
            /9j/4AAQSkZJRgABAgEASABIAAD/4QD0RXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAdAAAAcgITAAMAAAABAAEAAIdpAAQAAAABAAAAkAAAAAAAAABIAAAAAQAAAEgAAAABQWRvYmUgUGhvdG9zaG9wIDIwMjQgV2luZG93cwAAAAeQAAAHAAAABDAyMjGRAQAHAAAABAECAwCgAAAHAAAABDAxMDCgAQADAAAAAQABAACgAgAEAAAAAQAAAICgAwAEAAAAAQAAAFWkBgADAAAAAQAAAAAAAAAAAAD/wAARCABVAIADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9sAQwAJCQkJCQkQCQkQFhAQEBYeFhYWFh4mHh4eHh4mLiYmJiYmJi4uLi4uLi4uNzc3Nzc3QEBAQEBISEhISEhISEhI/9sAQwELDAwSERIfEREfSzMqM0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tL/90ABAAI/9oADAMBAAIRAxEAPwD1FYRUohFTK0R/iFSgp6itLnLyIgEQFL5QqzlfUUvHrRzByIq+UKPKFWuDxS7aOYPZoqeUPSk8oVb21HI0cYBdguTgZOMmnzC9mV/KFNMQqpfX/wBj5artrL9oiEg70KaeqJlTs7NERiFMMQq+UphSq5iHSRnmEVGYRWiUphSq5jN0kZTQCqckArcaOqzx1SkZSpI//9D1ZLaMgEd6k+zL2NR2MzTQq3bFaIPWkmZ2RT+zL60vkDON1W8jFRgDec07hyo89uJbm21KeWI4dZCDnuOwPtiujg1O3ubfzllWNuhVjyD/AFrD8QQSHVSIhkOoZvyx1/Cst4QnAZSwYcZ49ecdOlcXtJQk7HoypQqQjc7FNTt0jLzTqfQLyTXPSTT6ndoxOSzqEX+6Mg//AK6zI2WQiRzsALAk8dcnP6frWnpqqNSt5lcMmecEen61lOvKbUZGlLDwpJyW5pazbz3DbFbAJrasYp4YAuc1lalcwI+7d0NQWviO0QGORsMK7Kcoxujy6qvZs6YtOKrvczIcbc1zM/imDdti3GqA8RvuLMpxWntodzLkb2OuW+mZ9uzAqc3Ld1rhT4lZn3IOK3NO121vMqWGR1Bqo1YvREODRtm5/wBmqst7Ghww61eHlOPlIrJv44vNjzjritOYiUHY/9HvLDWLeOIRkjIFLPrqLu2ZP0ryS21GVcGp0v5HJYnrXDOukkkZxkup6MPE4AAKtVO68VNHkohJriXnfYGzTgxuFIasvbyceYcmnojcl1g6mYp5TtAO1gMnlfpUb2Mb3g1MKwkUk7V4VweDnvgjnFX/AA1pkT20xlHDNx68e9dBKgRBGv8AD0zWqi7c19zspzXKotHMTxJewfZWRlQtuyuM4A4HfjNMD+RLFAqsrR/KDjp9Seue9aUEM1tI0qKpLn7qdPz7DPNE0aqxlnbErnnHIHtg9K45ppnoRcWcvdT38ylSGJzWUZGhBEiHdXZy6haMxjC7WAySeh+lVnFrJ8zFRmtoyi1qea8NO5x6zSNyFIojmlL/ALzOK60wW3VcH6VRnto2bbjGa6IpPQ53SlHcxHYkkxtxVCW6MR3xthh3Fa91aeSpMZ61zrxBs5HNEFqQ49DotP8AFl9BzMd4/KpZfEtzfXcTL8ixvubnqK5MwZXA4q/paot3EJPu7xmuhy0M4x1sf//S4pZguFFSpchRjvXXJ4bsj82Ktp4d07qUBNcM6CkYezkji5Ls7AtEV+4+VeTXeHwzZNgmL9KWPw5pyNuWMZHYDmpVBR0K9nJu5Y0O8eKyjWXqxP5Vr3d/FGu4qWbsAK4nUIrr7SqwWj7UIAIIUEeoJI6e9apm2Ji4lVTxwCWwD7ir5uWNjvjT1RLPfzNyoES+9Q+fG/UFsjknqR6ewrnNTikMyLHOcFsZxjn0OeR7VZgS7tpBb3P8Qypzwfqa5KrujvoqwQBZ790P3VBH0pHUbXtyMmPofaptPBjmuB1O85qnc3Rik80D2FZWNrknkwLEskjlc84FaoWKWIGJ92PXrWZKVlsUbA44rMsFeGZiCdpHSrjJpETipblq9nAjKHG7oa56ISk9K7CK2sbubMyNljzWoNFsUPyDiuulJtM8StQqRnd7HnzRvnAFBiaNdw616CdHs+uKqyaNZ556Vo1Nrcjldz//09aB51GNvH1q3DKyMHlHTJxVW2+YZOTWrbhSG8wYzWNx2MebX2GQIpXI64U85qXTdYAhIkWSNmc5JU5Pp+Fahtoc9aFgiAwD0pdbmt1axnXl7DcxEspc5wRtPb8KzBDHd2xgkRlHGD3+la1wyI2zGarMVIrmlSu7nVCrZWRi6pFKzIsURP8ACxOMEVAF1F0VGTIjb5GJ5x6Gt1mXIwKmUq2Pl6UnRRaqsz4opgd5TDH73PWqU1hLKT0HpxmugXaMkij5G5pxopClWbOft9OeOLY5yKsR2ao+4HmtkhSAKYsaKciqVJEuqxkZKdOaRppN33TTmC9abvx3rdKxzydxPObuDUDzfX8RVrdgdjVO4K9SMGmQf//U6C3kIWriyHFZ8HSrq9K5iyfeTShjmoxTh1poZm3n+tH0qqzYFWrz/WD6VUfpQzWOw3dmpFeoRUi1LLRKrmmk9xTV6049KYmCyHoaRyT04pi9ac1XYyuyEgnqaEAzSmhOtAmyfIA4FUbtjtq4elUbv7n40En/2Q==
        minItems: 1
        uniqueItems: true
        type: array
        items:
          type: string
      highlights:
        uniqueItems: true
        maxItems: 10
        description: List of main selling points for the event
        example:
          - Guided by a local expert
          - Includes all entrance fees
          - Small group size
        type: array
        items:
          type: string
      categories:
        description: Full ordered category tree. Top level category first.
        example:
          - id: 351
            title: Tickets & Entry tickets
          - id: 371
            title: Water parks
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier of a category
              type: integer
            title:
              description: Category name
              type: string
          required:
            - id
      prices:
        description: Prices for this event.
        example:
          - title: Standard
            value: 100
            currency: EUR
            category: Adult
            vat: 23
            entry_units:
              - type: ADULT
          - title: Kids
            value: 50
            currency: EUR
            category: Child
            vat: 23
            entry_units:
              - type: CHILD
          - title: Family ticket
            value: 120
            currency: EUR
            category: Group
            vat: 23
            entry_units:
              - type: ADULT
              - type: CHILD
        uniqueItems: true
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier of a price
              type: number
            title:
              description: Price name
              type: string
            value:
              description: Price value as a decimal number
              type: number
            currency:
              maxLength: 3
              minLength: 3
              description: Price currency code (ISO 4217)
              type: string
            public:
              description: >-
                Whether the price is public or not (1 for public, 0 for
                private). Private prices are not shown to end customers. Private
                prices can be used by vendors when creating bookings in the
                admin app.
              type: integer
            category:
              description: Category of the price
              enum:
                - Adult
                - Senior
                - Youth
                - Child
                - Infant
                - Student
                - Group
                - Other
            vat:
              description: VAT rate as a decimal number
              type: number
            entry_units:
              description: >-
                Entry units define categories of participants within this price
                category. For Group price category there can be multiple entry
                units defined, eg. two adults and one child. This field is
                required when the category is "Group".
              type: array
              items:
                type: object
                properties:
                  type:
                    description: Category of entry unit
                    type: string
                    enum:
                      - ADULT
                      - YOUTH
                      - CHILD
                      - INFANT
                      - STUDENT
      tags:
        description: >-
          Optional tags for the event describing the scope of the event. Tags
          are used only for certain event categories (eg. for cooking classes).
        example:
          - title: Preparation & Inventory
            values:
              - All cooking ingredients and utensils
              - Presentation and explanation of the various ingredients
              - Introduction to preparation
          - title: Tasting
            values:
              - Joint tasting of the prepared dishes
              - Non-alcoholic drinks
              - Wine, beer, soft drinks
        type: array
        items:
          type: object
          properties:
            title:
              type: string
            values:
              type: array
              items:
                type: string
          required:
            - title
      first_date:
        format: date-time
        type: string
        pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
        description: >-
          Starting time of the next event. Format: YYYY-MM-DDThh:mm:ssZ, UTC.
          It's returned only if "available_from" query parameter is set.
        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
      min_participants:
        description: >-
          Minimum number of participants per booking. Set to 0 if no minimum is
          required.
        example: 10
        type: integer
      latest_booking_time:
        description: >-
          How much time (in minutes) the event has to be booked before it
          starts. Negative value is used for "opening hours" events to indicate
          that the event can be booked after it has started.
        example: 60
        type: integer
      commission:
        description: >-
          Percentage of the order value received as commission by the reseller.
          Greater than 0 only for resellers API clients.
        example: 0
        type: integer
        minimum: 0
        maximum: 100
    required:
      - title
      - description
      - duration
      - max_participants
      - location
      - location_lng
      - location_lat
      - meeting_location
      - meeting_location_lng
      - meeting_location_lat
      - vendor_id
      - images
      - categories
      - prices
  events:
    title: Event collection
    type: array
    items:
      $ref: '#/definitions/event'
  merged_events:
    title: Merged Event collection
    type: array
    items:
      $ref: '#/definitions/merged_event'
  merged_event:
    title: Merged Event
    type: object
    properties:
      id:
        description: Unique identifier
        type: string
        example: 3e3edd05ce4362e2d6a8200c37b1b79c
      active:
        description: >-
          Whether an event is active or inactive. Events can be deactivated by a
          vendor. Inactive events won't be returned.
        enum:
          - '0'
          - '1'
        example: '1'
        type: integer
      title:
        maxLength: 255
        description: Event title, descriptive.
        example: Berlin Tour
        type: string
      description:
        format: html
        description: Description of the event in HTML format.
        example: <p>Tour around Berlin</p>
        type: string
      type:
        description: >-
          Event type (bookings or requests). Requests have to be accepted by the
          vendors to become a booking.
        example: BOOKING
        enum:
          - BOOKING
          - REQUEST
        type: string
      duration:
        description: Duration of the event in minutes.
        type: integer
        example: 60
      pre_time:
        description: >-
          Whether and how much time earlier the participants and team need
          before the event, in minutes. Set to 0 if no extra time is required.
        type: integer
        example: 30
      max_participants:
        description: >-
          Maximum number of participants in a single appointment of an event.
          This can be overriden for each individual apointment.
        example: 200
        type: integer
      timezone:
        description: Timezone identifier of an event location.
        example: Europe/Berlin
        type: string
      location:
        description: Event location address.
        example: Sonnenallee 223, 12059 Berlin
        type: string
      location_place_id:
        description: Google Place ID of the event location.
        example: ChIJVX06QuNRqEcR0coerEj89jo
        type: string
      location_lng:
        description: Event location longitude.
        example: '12.7135121'
        type: number
      location_lat:
        description: Event location latitude.
        example: '41.9214534'
        type: number
      meeting_location:
        description: Meeting location address, MAY differ from event location.
        example: Pariser Platz, 10117 Berlin
        type: string
      meeting_location_lng:
        description: Meeting location longitude.
        example: '13.3785865'
        type: number
      meeting_location_lat:
        description: Meeting location latitude.
        example: '52.5163766'
        type: number
      meeting_location_place_id:
        description: Google Place ID of the meeting location.
        example: >-
          EiRQYXJpc2VyIFBsYXR6LCAxMDExNyBCZXJsaW4sIEdlcm1hbnkiLiosChQKEgk_NdX1xlGoRxEIInH3zI6rAhIUChIJAVkDPzdOqEcRcDteW0YgIQQ
        type: string
      vendor_id:
        description: Unique identifier of the vendor that this events belongs to.
        example: 3e3edd05ce4362e2d6a8200c37b1b79c
        type: string
      bring:
        description: What participants need to bring.
        example: Driving licence
        type: string
      advice:
        description: Advice note to participants.
        example: Children up to 15 years must be accompanied by at least one adult.
        type: string
      hint:
        type: string
        description: Short general hint displayed during the booking process
        example: Liability and comprehensive insurance is included.
      participant_hint:
        type: string
        description: Short question for participants displayed during the booking process
        example: >-
          Please inform us of any special dietary requirements or food
          allergies.
      vendor_name:
        description: Vendor company name, doesn't have to be a full legal name
        type: string
      youtubeVideoId:
        description: ID of Youtube video, not the whole video URL
        example: lcTsn3_IILM
        type: string
      voucher_checkout_url:
        description: Checkout URL to buy a voucher through the bookingkit system.
        example: >-
          https://web.admin-sandbox.bookingkit.com/voucherOrder/index/?id=dc458a4c9fcff0d0eb962c0654ee90f4
        type: string
      images:
        description: URLs of the images
        example:
          - https://cdn-sandbox.bookingkit.de/vendor_images/image1.jpg
          - https://cdn-sandbox.bookingkit.de/vendor_images/image2.jpg
        minItems: 1
        uniqueItems: true
        type: array
        items:
          type: string
      highlights:
        uniqueItems: true
        maxItems: 10
        description: List of main selling points for the event
        example:
          - Guided by a local expert
          - Includes all entrance fees
          - Small group size
        type: array
        items:
          type: string
      categories:
        description: Full ordered category tree. Top level category first.
        example:
          - id: 351
            title: Tickets & Entry tickets
          - id: 371
            title: Water parks
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier of a category
              type: integer
            title:
              description: Category name
              type: string
      price_groups:
        uniqueItems: true
        description: >-
          List of pricelists. Pricelists are in fact separate events objects and
          can be requested a such. Pricelist are used to make bookings of an
          event with different prices (eg. to make prices higher in a high
          season or over the weekends).
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier of a pricelist.
              example: b4c9dd45265fca13aed91706f5abbb6d
              type: string
            name:
              description: Pricelist name.
              example: High season prices
              type: string
            prices:
              description: Prices for this event.
              example:
                - id: 378
                  title: Standard
                  value: 100
                  currency: EUR
                  public: 1
                  category: Adult
                  vat: 23
                  entry_units:
                    - type: ADULT
                - id: 379
                  title: Kids
                  value: 50
                  currency: EUR
                  public: 1
                  category: Child
                  vat: 23
                  entry_units:
                    - type: CHILD
                - id: 380
                  title: Family ticket
                  value: 120
                  currency: EUR
                  public: 1
                  category: Group
                  vat: 23
                  entry_units:
                    - type: ADULT
                    - type: CHILD
              uniqueItems: true
              type: array
              items:
                type: object
                properties:
                  id:
                    description: Unique identifier of a price
                    type: number
                  title:
                    description: Price name
                    type: string
                  value:
                    description: Price value as a decimal number
                    type: number
                  currency:
                    maxLength: 3
                    minLength: 3
                    description: Price currency code (ISO 4217)
                    type: string
                  public:
                    description: >-
                      Whether the price is public or not (1 for public, 0 for
                      private). Private prices are not shown to end customers.
                      Private prices can be used by vendors when creating
                      bookings in the admin app.
                    type: integer
                  category:
                    description: Category of the price
                    enum:
                      - Adult
                      - Senior
                      - Youth
                      - Child
                      - Infant
                      - Student
                      - Group
                      - Other
                  vat:
                    description: VAT rate as a decimal number
                    type: number
                  entry_units:
                    description: >-
                      Entry units define categories of participants within this
                      price category. For Group price category there can be
                      multiple entry units defined, eg. two adults and one
                      child. This field is required when the category is
                      "Group".
                    type: array
                    items:
                      type: object
                      properties:
                        type:
                          description: Category of entry unit
                          type: string
                          enum:
                            - ADULT
                            - YOUTH
                            - CHILD
                            - INFANT
                            - STUDENT
      tags:
        description: >-
          Optional tags for the event describing the scope of the event. Tags
          are used only for certain event categories (eg. for cooking classes).
        example:
          - title: Preparation & Inventory
            values:
              - All cooking ingredients and utensils
              - Presentation and explanation of the various ingredients
              - Introduction to preparation
          - title: Tasting
            values:
              - Joint tasting of the prepared dishes
              - Non-alcoholic drinks
              - Wine, beer, soft drinks
        type: array
        items:
          type: object
          properties:
            title:
              type: string
            values:
              type: array
              items:
                type: string
          required:
            - title
      first_date:
        format: date-time
        type: string
        pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
        description: >-
          Starting time of the next event. Format: YYYY-MM-DDThh:mm:ssZ, UTC.
          It's returned only if "available_from" query parameter is set.
        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
      min_participants:
        description: >-
          Minimum number of participants per booking. Set to 0 if no minimum is
          required.
        example: 10
        type: integer
      latest_booking_time:
        description: >-
          How much time (in minutes) the event has to be booked before it
          starts. Negative value is used for "opening hours" events to indicate
          that the event can be booked after it has started.
        example: 60
        type: integer
      commission:
        description: >-
          Percentage of the order value received as commission by the reseller.
          Greater than 0 only for resellers API clients.
        example: 0
        type: integer
    required:
      - id
      - title
      - description
      - duration
      - max_participants
      - location
      - location_lng
      - location_lat
      - meeting_location
      - meeting_location_lng
      - meeting_location_lat
      - vendor_id
      - images
      - categories
  date:
    title: Date
    type: object
    properties:
      id:
        description: Unique identifier
        type: string
        example: 220e91cd528a624f37b23b877c8969fc
      active:
        description: >-
          Whether this date is active and available for booking. Non-active
          dates are not available for booking
        type: integer
        enum:
          - 0
          - 1
        example: 1
      event_id:
        description: Unique identifier of event
        type: string
        example: b589292a6b11eadff27b903f0f639065
      date:
        format: date-time
        type: string
        description: Starting time of the event
        example: '2025-08-06T11:00:00Z'
      available_slots:
        description: Number of available seats / persons
        type: integer
        minimum: 0
        example: 10
      total_slots:
        description: Total number of seats / persons
        type: integer
        example: 10
      checkout_url:
        description: Checkout URL to book through the bookingkit system
        type: string
        format: url
        example: >-
          https://eu5-stage.bookingkit.de/checkout2/addToCart/?eventDate_id=220e91cd528a624f37b23b877c8969fc&sid=noCart&ref=mLiUHY1zPYLR7Fe
    required:
      - id
      - active
      - event_id
      - date
      - available_slots
      - total_slots
      - checkout_url
  merged_date:
    title: Merged Date
    description: >-
      Schema for a merged date object representing an event date with
      availability information. **`merged_dates`** returns all dates from a main
      event and its associated pricelist events, with `event_id` always
      referring to the main event
    type: object
    properties:
      id:
        description: Unique identifier of the merged date
        type: string
        example: 1c94b3f41977a481fb426705a80c4125
      active:
        description: >-
          Is this object still valid or not. Non active objects count as deleted
          and will not be a part of the object collection
        type: integer
        enum:
          - 0
          - 1
        example: 1
      event_id:
        description: >-
          Unique identifier of the parent event. If a date is from a pricelist
          event, event_id will be the main event’s ID, not the pricelist event’s
          ID.
        type: string
        example: b589292a6b11eadff27b903f0f639065
      date:
        format: date-time
        type: string
        description: Starting time of the event
        example: '2025-08-06T14:00:00Z'
      available_slots:
        description: Number of available seats/persons
        type: integer
        minimum: 0
        example: 10
      total_slots:
        description: Total number of seats/persons
        type: integer
        minimum: 0
        example: 10
      checkout_url:
        description: Checkout URL to book through the bookingkit system
        type: string
        example: >-
          https://eu5-stage.bookingkit.de/checkout2/addToCart/?eventDate_id=1c94b3f41977a481fb426705a80c4125&sid=noCart&ref=mLiUHY1zPYLR7Fe
    required:
      - id
      - active
      - event_id
      - date
      - available_slots
      - total_slots
      - checkout_url
  date_patch:
    title: Date Patch
    description: Schema for updating an existing date
    type: object
    properties:
      event_id:
        description: Unique identifier of the event
        type: string
        example: b589292a6b11eadff27b903f0f639065
      date:
        format: date-time
        type: string
        description: Starting time of the event
        example: '2025-08-06T11:36:00Z'
      total_slots:
        description: Total number of seats/persons
        type: integer
        example: 9
        minimum: 0
    required: []
  date_post:
    title: Date Creation
    description: Schema for creating a new date for an event
    type: object
    properties:
      event_id:
        description: Unique identifier of the event
        type: string
        example: b589292a6b11eadff27b903f0f639065
      date:
        format: date-time
        type: string
        description: Starting time of the event
        example: '2025-08-06T11:34:00Z'
      available_slots:
        description: Number of available seats/persons
        type: integer
        minimum: 0
        example: 10
      total_slots:
        description: Total number of seats/persons
        type: integer
        minimum: 0
        example: 10
    required:
      - event_id
      - date
      - available_slots
      - total_slots
  dates:
    title: Date collection
    description: A collection of date objects representing available dates for an event
    type: array
    items:
      $ref: '#/definitions/date'
  merged_dates:
    title: Date collection
    type: array
    items:
      $ref: '#/definitions/merged_date'
  eventDates:
    title: Events and dates
    description: >-
      A collection of events and their associated dates. This endpoint returns a
      simplified view with basic identifiers for both events and dates.
    type: array
    items:
      type: object
      properties:
        dates:
          description: List of dates associated with events
          type: array
          items:
            type: object
            properties:
              id:
                description: Unique identifier of the date
                type: string
                example: 09f7409f216f0b6f3d9374732e23b1be
              event_id:
                description: Unique identifier of the event this date belongs to
                type: string
                example: b589292a6b11eadff27b903f0f639065
            required:
              - id
              - event_id
        events:
          description: List of events
          type: array
          items:
            type: object
            properties:
              id:
                description: Unique identifier of the event
                type: string
                example: e3fb3286155dc48fe47ea7fe1deabb46
            required:
              - id
      required:
        - dates
        - events
  datesBatch:
    title: Date Batch Creation
    description: Schema for creating multiple dates in a batch operation
    type: array
    items:
      $ref: '#/definitions/date_post'
  date_batch_patch:
    title: Date Batch Patch Item
    description: Schema for updating a single date in a batch operation
    type: object
    properties:
      date_id:
        description: Unique identifier of the date to update
        type: string
        example: 0d12b9066aee0d320e9ef1353726b146
      event_id:
        description: Unique identifier of the event
        type: string
        example: b589292a6b11eadff27b903f0f639065
      date:
        format: date-time
        type: string
        description: Starting time of the event
        example: '2025-08-06T11:36:00Z'
      total_slots:
        description: Total number of seats/persons
        type: integer
        example: 9
    required:
      - date_id
  datesBatch_patch:
    title: Date Batch Patch
    description: Schema for updating multiple dates in a batch operation
    type: array
    items:
      $ref: '#/definitions/date_batch_patch'
  order:
    title: Order
    type: object
    properties:
      id:
        required: false
        type: string
        description: Unique identifier
        example: 6d2add0cf76d779953f3ffec48fe3406
      code:
        required: false
        type: string
        description: Unique code, communicated to the end user
        example: VWR-3KD9A5
      external_reference:
        required: false
        type: string
        description: >-
          Third party systems that generated this order my write their own
          identifier here
        example: EXT-REF-12345
      vendor_id:
        required: false
        type: string
        description: Unique identifier of the vendor
        example: 8d20ce5d47ab2c9b7a3040157a4e6e9c
      date:
        required: true
        type: string
        format: date-time
        example: '2025-08-05T07:31:02Z'
        description: Date when the order was generated, may not be changed
      payment_date:
        required: false
        type: string
        format: date-time
        example: '2025-08-05T07:31:42Z'
        description: If filled order is marked as payed
      expire_date:
        required: false
        type: string
        format: date-time
        example: '2025-08-06T07:31:42Z'
        description: >-
          If set the Order will automatically cancel at the given time, minimum
          value is current date time, maximum value is the first service date,
          if available
      status:
        required: true
        type: string
        enum:
          - ACCEPTED
          - CANCELED
          - PENDING
          - OPEN
          - RESERVED
        description: Status of the order
        example: ACCEPTED
      lang:
        required: true
        type: string
        minLength: 2
        maxLength: 2
        description: Language code ISO_639-1
        example: en
      currency:
        required: true
        type: string
        maxLength: 3
        minLength: 3
        description: Price currency
        example: EUR
      email:
        required: true
        type: string
        format: email
        description: Billing email of the end customer
        example: customer@example.com
      name:
        required: true
        type: string
        minLength: 2
        description: Billing name of the end customer
        example: John Doe
      company:
        required: false
        type: string
        description: Billing company Name of the end customer
        example: Acme Corporation
      vat_number:
        required: false
        type: string
        description: VAT identification number
        example: DE123456789
      phone:
        required: false
        type: string
        description: Billing phone of the end customer
        example: +49 30 12345678
      street:
        required: false
        type: string
        description: Billing street name of the end customer's address
        example: Main Street
      streetnr:
        required: false
        type: string
        description: Billing house number of the end customer's address
        example: '42'
      zip:
        required: false
        type: string
        description: Billing zip code of the end customer's address
        example: '10115'
      city:
        required: false
        type: string
        description: Billing city of the end customer
        example: Berlin
      country:
        required: false
        type: string
        description: ISO 3166-1 alpha-2 country code
        example: DE
      internal_notes:
        required: false
        type: string
        description: Internal comments
        example: Customer requested special arrangements
      comment:
        required: false
        type: string
        description: Order comments
        example: Please deliver to reception desk
      additional_information:
        required: false
        type: array
        description: Additional order information from customized input
        example:
          - id: d548d35b08e39da5f8c19ffaf497ce59
            title: Age of Participant?
            value: '16'
        items:
          - type: object
            properties:
              id:
                required: true
                type: string
                description: Custom input id
                example: d548d35b08e39da5f8c19ffaf497ce59
              title:
                required: true
                type: string
                description: Custom input title
                example: Age of Participant?
              value:
                required: true
                type: string
                description: Custom input value
                example: '16'
      booking_channel:
        required: false
        type: array
        description: >-
          Reseller or other type of API client that the order was created by.
          This is available only for particular API clients.
        items:
          - type: object
            properties:
              name:
                required: true
                type: string
                description: The reseller or other type of API client name
                example: Reseller Name
              id:
                required: true
                type: string
                description: The reseller ID or other type of API client ID
                example: C12asdXas13
      cancellation_date:
        required: false
        type: string
        format: date-time
        example: '2025-08-10T14:30:00Z'
        description: Date at which the order was cancelled
      total_invoice:
        required: false
        type: number
        description: Total value of this order for invoice purpose
        example: '139.80'
      additional_discount:
        required: false
        type: number
        description: Additional discount value
        example: '0.00'
      redeemed_coupons:
        required: false
        type: array
        description: Applied discount coupons
        items:
          - type: object
            properties:
              id:
                required: true
                type: string
                description: Coupon id
                example: ''
              title:
                required: true
                type: string
                description: Promotion title
              redeemed_value:
                required: true
                type: string
                description: Value redeemed to this order
              usage_date:
                required: true
                type: string
                format: date-time
                example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
                description: Date when the coupon was applied
      redeemed_vouchers:
        required: false
        type: array
        description: Vouchers used to pay for this order
        items:
          - type: object
            properties:
              id:
                required: true
                type: string
                description: Voucher id
                example: abcb45aba049ff4e77a0382c5c931b75
              redeemed_value:
                required: true
                type: number
                description: Value redeemed to this order
                example: '9.98'
              usage_date:
                required: true
                type: string
                format: date-time
                example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
                description: Date when the coupon was applied
              creation_date:
                required: true
                type: string
                format: date-time
                example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
                description: Date when the voucher was created
              purchasing_order_id:
                required: false
                type: string
                description: >-
                  Identifier of the order that purchased this voucher, this can
                  be empty
                example: 6d2add0cf76d779953f3ffec48fe3406
        example:
          id: abcb45aba049ff4e77a0382c5c931b75
          redeemed_value: '9.98'
          usage_date: '2025-08-05T13:21:23Z'
          creation_date: '2025-08-05T07:31:02Z'
          purchasing_order_id: 6d2add0cf76d779953f3ffec48fe3406
      shipping_country:
        required: false
        type: string
        description: ISO 3166-1 alpha-2 country code
        example: DE
      shipping_city:
        required: false
        type: string
        description: Shipping city of the end customer
        example: Berlin
      shipping_zip:
        required: false
        type: string
        description: Shipping zip of the end customer's address
        example: '10115'
      shipping_street:
        required: false
        type: string
        description: Shipping street of the end customer's address
        example: Main Street
      shipping_streetnr:
        required: false
        type: string
        description: Shipping house number of the end customer's address
        example: '42'
      shipping_name:
        required: false
        type: string
        description: Shipping full name of the end customer
        example: John Doe
      sale_params:
        required: false
        type: string
        description: Additional sales information
        example: campaign=summer2023&source=website
      external_order_url:
        required: false
        type: string
        description: Additional order details URL from an external system
        example: https://external-system.example.com/orders/12345
      affiliate_id:
        required: false
        type: string
        description: Affiliate link ID if the order was created through an affiliate link
        example: AFF123456
      email_newsletter_opt_in:
        required: false
        type: string
        description: >-
          Consent to receive e-mail newsletter given with this order. Possible
          values: '1' or empty.
        example: '1'
      tickets:
        required: false
        type: array
        items:
          - type: object
            properties:
              id:
                required: true
                type: string
                description: Unique identifier
                example: a1b2c3d4e5f6g7h8i9j0
              event_date_id:
                required: false
                type: string
                description: >-
                  Unique identifier of the reserved date. **Deprecated, wrong
                  name**
                example: b1c2d3e4f5g6h7i8j9k0
              date_id:
                required: true
                type: string
                description: Unique identifier of the reserved date
                example: c1d2e3f4g5h6i7j8k9l0
              event_id:
                required: false
                type: string
                description: Unique identifier of the reserved event
                example: e1f2g3h4i5j6k7l8m9n0
              code:
                required: false
                type: string
                description: Unique code for this ticket
                example: C6YH4Q
              status:
                required: true
                type: string
                enum:
                  - ACCEPTED
                  - CANCELED
                  - PENDING
                  - OPEN
                  - RESERVED
                description: Status of the ticket
                example: ACCEPTED
              comment:
                required: false
                type: string
                description: Comments for the ticket
                example: Special seating requested
              cancellation_date:
                required: false
                type: string
                format: date-time
                example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
                description: Date when the ticket was canceled
              vat:
                required: false
                type: number
                description: VAT value, not available for all api clients
                example: 0
              participants:
                required: false
                type: array
                minItems: 1
                items:
                  - type: object
                    properties:
                      id:
                        required: true
                        type: string
                        description: Unique identifier of the participant
                        example: p1aa3a67eb1f3aa2a8f712ba8bb6649d
                      status:
                        required: true
                        type: string
                        enum:
                          - ACCEPTED
                          - CANCELED
                        description: Status of the participant
                        example: ACCEPTED
                      name:
                        required: false
                        type: string
                        description: Participant name
                        example: Jane Doe
                      email:
                        required: false
                        type: string
                        format: email
                        description: Participant email
                        example: jane.doe@example.com
                      phone:
                        required: false
                        type: string
                        description: Participant phone number
                        example: +49 123 456 789
                      comment:
                        required: false
                        type: string
                        description: Comments concerning the participant
                        example: Vegetarian meal required
                      price_id:
                        required: false
                        type: string
                        description: >-
                          Unique identifier of the price for this participant,
                          you MUST provide a price_id or price_value
                        example: e1f2g3h4i5j6k7l8m9n0
                      price_value:
                        required: false
                        type: number
                        description: Price value, not available for all API clients
                        example: 50
                      price_title:
                        required: false
                        type: string
                        description: Price title, not available for all API clients
                        example: Adult
                      vat:
                        required: false
                        type: number
                        description: VAT value, not available for all API clients
                        example: 0
                      cancellation_date:
                        required: false
                        type: string
                        format: date-time
                        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
                        description: Date when the participant was canceled
                      code:
                        required: false
                        type: string
                        description: >-
                          Unique identifier for the participant, can be used for
                          ticket validation
                        example: PCG-JE53DT-BQ5
                      checked_in:
                        required: false
                        type: string
                        description: Check-in time of the participant
                        example: '2025-08-05T14:00:00Z'
                      entry_units:
                        description: >-
                          Entry units for this participant. Can be an empty
                          string or an array of objects with type information.
                        type: array
                        items:
                          type: object
                          properties:
                            type:
                              description: Category of entry unit
                              type: string
                              enum:
                                - ADULT
                                - YOUTH
                                - CHILD
                                - INFANT
                                - STUDENT
                              example: ADULT
                      redeemed_flexTicket:
                        type: object
                        properties:
                          id:
                            required: true
                            type: string
                            description: Flexible ticket identifier
                            example: flex-123456
                          redeemed_value:
                            required: true
                            type: number
                            description: Value redeemed to this order
                            example: 10
                          creation_date:
                            required: true
                            type: string
                            format: date-time
                            example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
                            description: Date when the flexible ticket was created
                          purchasing_order_id:
                            required: true
                            type: string
                            description: >-
                              Id of the order that purchased this flexible
                              ticket
                            example: 8270e627a721c271205f103985f14d97
      voucherOrders:
        required: false
        type: array
        items:
          - type: object
            properties:
              id:
                required: false
                type: string
                description: Unique identifier of the voucher purchased
                example: cd0f8845f4f3b18c3c13e9e0865e49cc
              status:
                required: true
                type: string
                enum:
                  - ACCEPTED
                  - CANCELED
                  - PENDING
                description: Status of the voucher order. **Deprecated**
                example: ''
              vat:
                required: false
                type: string
                description: VAT percentage, not available for all API clients
                example: '19.00'
              voucher:
                required: false
                type: object
                properties:
                  id:
                    required: true
                    type: string
                    description: Unique identifier of the voucher
                    example: abcb45aba049ff4e77a0382c5c931b75
                  code:
                    required: true
                    type: string
                    description: Voucher code
                    example: 372FX-UNSH2-S3WRX
                  value:
                    required: true
                    type: number
                    description: Value of the voucher
                    example: '19.90'
                  currency:
                    required: true
                    type: string
                    maxLength: 3
                    minLength: 3
                    description: Voucher currency
                    example: EUR
        example:
          id: cd0f8845f4f3b18c3c13e9e0865e49cc
          status: ''
          vat: '0.00'
          voucher:
            - id: abcb45aba049ff4e77a0382c5c931b75
              code: 372FX-UNSH2-S3WRX
              value: '19.90'
              currency: EUR
      products:
        required: false
        type: array
        items:
          - type: object
            properties:
              product_id:
                required: true
                type: string
                description: Product identifier
                example: b465cdbcdf5c90c51ec6023bfa4f8620
              status:
                required: true
                type: string
                enum:
                  - ACCEPTED
                  - CANCELED
                  - PENDING
                  - OPEN
                description: Status of the product
                example: ACCEPTED
              title:
                required: false
                type: string
                description: Item title
                example: T-shirt
              price:
                required: false
                type: number
                description: Price value
                example: '10.00'
              amount:
                required: true
                type: integer
                description: Items amount
                example: 1
              currency:
                required: false
                type: string
                maxLength: 3
                minLength: 3
                description: Item currency for the product
                example: EUR
              vat:
                required: false
                type: string
                description: VAT percentage applied for the product
                example: '19.00'
        example:
          - product_id: b465cdbcdf5c90c51ec6023bfa4f8620
            status: ACCEPTED
            title: T-shirt
            price: '100.00'
            amount: 1
            currency: EUR
            vat: '19.00'
      flexTickets:
        required: false
        type: array
        items:
          - type: object
            properties:
              id:
                required: true
                type: string
                description: Flex ticket id
                example: 43a17824f48e528f19a0aafd65d42f7b
              code:
                required: true
                type: string
                description: Flex ticket code
                example: JV949-N8XSP-33BME
              status:
                required: true
                type: string
                enum:
                  - ACCEPTED
                  - CANCELED
                  - PENDING
                description: Status of the flex ticket
                example: ACCEPTED
              title:
                required: true
                type: string
                description: Flex ticket display title
                example: Summer offer - 10 Tickets
              redemption_total:
                required: true
                type: integer
                description: Total amount of purchasable entries
                example: 10
              redemption_available:
                required: true
                type: integer
                description: Total amount of available entries
                example: 10
              unlimited_redemptions:
                required: false
                type: integer
                description: 1 (one) if the flex offer can be redeemed unlimited
                example: 0
              price:
                required: false
                type: number
                description: Price value of the Flex ticket
                example: '100.00'
              price_title:
                required: true
                type: string
                description: Price title for the flex ticket
                example: Adult
              currency:
                required: false
                type: string
                maxLength: 3
                minLength: 3
                description: Item currency
                example: EUR
              vat:
                required: false
                type: string
                description: VAT percentage for the flex ticket
                example: '19.00'
              flexOffer:
                required: false
                type: object
                properties:
                  id:
                    required: true
                    type: string
                    description: Flex offer identifier
                    example: eba1b1ee6c128832ee7f3a7b1e122348
                  price_category_id:
                    required: true
                    type: string
                    description: Price ID
                    example: 475
                  event_id:
                    required: true
                    type: string
                    description: Event identifier
                    example: 8716f0b02e9889757064c64b7ce08552
        example:
          - id: 43a17824f48e528f19a0aafd65d42f7b
            code: JV949-N8XSP-33BME
            status: ACCEPTED
            title: flex offer
            redemption_total: 10
            redemption_available: 10
            unlimited_redemptions: 0
            price: '150.00'
            price_title: Adult
            currency: EUR
            vat: '0.00'
            flexOffer:
              - id: eba1b1ee6c128832ee7f3a7b1e122348
                price_category_id: 475
                event_id: 8716f0b02e9889757064c64b7ce08552
    required:
      - date
      - status
      - lang
      - currency
      - name
      - email
  order_patch:
    title: Order Patch
    type: object
    properties:
      external_reference:
        description: >-
          Third party systems that generated this order my write their own
          identifier here
        type: string
        example: EXT-127701
      expire_date:
        format: date-time
        type: string
        description: >-
          If set the Order will automatically cancel at the given time, minimum
          value is current date time, maximum value is the first service date,
          if available. Required for order status 'RESERVED' 
        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
      status:
        description: Status of the order
        enum:
          - ACCEPTED
          - CANCELED
          - PENDING
          - DECLINED
          - OPEN
          - RESERVED
        type: string
        example: ACCEPTED
      lang:
        minLength: 2
        maxLength: 2
        description: Language code ISO_639-1
        type: string
        example: de
      email:
        format: email
        type: string
        description: Billing email for end customer
        example: customer@example.com
      name:
        minLength: 2
        description: Billing name
        type: string
        example: John Doe
      company:
        description: Billing company
        type: string
        example: Acme Corporation
      vat_number:
        description: VAT identification number
        type: string
        example: DE123456789
      phone:
        description: Billing phone
        type: string
        example: '+49123456789'
      street:
        description: Billing street name
        type: string
        example: Main Street
      streetnr:
        description: Billing house number
        type: string
        example: '42'
      zip:
        description: Billing zip code
        type: string
        example: '10115'
      city:
        description: Billing city
        type: string
        example: Berlin
      country:
        description: ISO 3166-1 alpha-2 country code
        type: string
        example: DE
      internal_notes:
        description: Internal comments
        type: string
        example: Customer called to confirm booking details
      comment:
        description: Order comments
        type: string
        example: Please deliver to reception desk
      cancellation_date:
        format: date-time
        type: string
        description: Date at which the order was cancelled
        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
      additional_discount:
        description: Additional discount value
        type: string
        example: '5.00'
      shipping_country:
        description: ISO 3166-1 alpha-2 country code
        type: string
        example: DE
      shipping_city:
        description: Shipping city
        type: string
        example: Berlin
      shipping_zip:
        description: Shipping zip
        type: string
        example: '10115'
      shipping_street:
        description: Shipping street
        type: string
        example: Main Street
      shipping_streetnr:
        description: Shipping house number
        type: string
        example: '42'
      shipping_name:
        description: Shipping name
        type: string
        example: John Doe
      sale_params:
        description: Additional sales informations
        type: string
        example: source=partner_website&campaign=summer_sale
      external_order_url:
        description: Additional order details URL from an external system.
        type: string
        example: https://partner-system.example.com/orders/12345
      tickets:
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier
              type: string
              example: a1b2c3d4e5f6g7h8i9j0
            event_date_id:
              description: >-
                Unique identifier of the reserved date. **Deprecated, wrong
                name**"
              type: string
              example: b1c2d3e4f5g6h7i8j9k0
            date_id:
              description: Unique identifier of the reserved date
              type: string
              example: c1d2e3f4g5h6i7j8k9l0
            status:
              description: Status of the ticket
              enum:
                - ACCEPTED
                - CANCELED
                - PENDING
                - RESERVED
              type: string
              example: ACCEPTED
            comment:
              description: Comments for the ticket
              type: string
              example: Special seating requested
            cancellation_date:
              format: date-time
              type: string
              description: >-
                Date when the ticket was canceled. format: YYYY-MM-DDThh:mm:ssZ,
                UTC
              example: '2025-08-01T14:00:00Z'
            participants:
              minItems: 1
              type: array
              items:
                type: object
                properties:
                  id:
                    description: Unique identifier
                    type: string
                    example: d1e2f3g4h5i6j7k8l9m0
                  status:
                    description: Status of the participant
                    enum:
                      - ACCEPTED
                      - CANCELED
                    type: string
                    example: ACCEPTED
                  name:
                    description: Participant name
                    type: string
                    example: Jane Doe
                  email:
                    format: email
                    type: string
                    description: Participant email
                    example: jane.doe@example.com
                  phone:
                    description: Participant phone
                    type: string
                    example: '+49123456789'
                  comment:
                    description: Comments concerning the participant
                    type: string
                    example: Vegetarian meal requested
                  price_id:
                    description: >-
                      Unique identifier of the price for this participant, you
                      MUST provide a price_id or price_value
                    type: string
                    example: e1f2g3h4i5j6k7l8m9n0
                  code:
                    description: >-
                      Unique identifier for the participant, can be used for
                      ticket validation
                    type: string
                    example: TICKET-123456
                  checked_in:
                    description: Check-in time of this participant
                    type: string
                    example: '2025-08-05T14:00:00Z'
      voucherOrders:
        required: false
        type: array
        items:
          type: object
          properties:
            id:
              required: false
              description: Unique identifier of the voucher purchased
              type: string
              example: cd0f8845f4f3b18c3c13e9e0865e49cc
            status:
              required: true
              description: Status of the voucher order. **Deprecated**
              enum:
                - ACCEPTED
                - CANCELED
                - PENDING
              type: string
            voucher:
              type: object
              required: false
              properties:
                value:
                  required: true
                  description: Value of the voucher
                  type: number
                  example: '19.90'
                currency:
                  required: true
                  maxLength: 3
                  minLength: 3
                  description: Voucher currency
                  type: string
                  example: EUR
                code:
                  required: true
                  maxLength: 255
                  minLength: 4
                  description: Voucher code
                  type: string
                  example: 372FX-UNSH2-S3WRX
      products:
        required: false
        type: array
        items:
          type: object
          properties:
            product_id:
              required: true
              type: string
              description: Product identifier
              example: b465cdbcdf5c90c51ec6023bfa4f8620
            status:
              required: true
              type: string
              enum:
                - ACCEPTED
                - CANCELED
                - PENDING
                - OPEN
              description: Status of the product
              example: ACCEPTED
            title:
              required: false
              type: string
              description: Item title
              example: T-shirt
            price:
              required: false
              type: number
              description: Price value
              example: '10.00'
            amount:
              required: true
              type: integer
              description: Items amount
              example: 1
            currency:
              required: false
              type: string
              maxLength: 3
              minLength: 3
              description: Item currency for the product
              example: EUR
          required:
            - product_id
  orders:
    title: Order collection
    type: array
    items:
      $ref: '#/definitions/order'
  categories:
    title: Categories collection
    type: array
    items:
      $ref: '#/definitions/category'
  category:
    title: Category
    type: object
    properties:
      id:
        description: Unique identifier of a category
        example: 1
        type: integer
      title:
        description: Category title
        example: Workshops & Courses
        type: string
    required:
      - id
  error:
    title: Error
    type: object
    properties:
      message:
        description: Detailed error description
        type: string
        example: The parameter "limit" must be of type "integer"
      code:
        description: Unique error code
        type: number
        example: '40023'
      user_message:
        description: Error message
        type: string
        example: Bad Request Parameters
  authentication_error:
    title: Authentication error
    type: object
    properties:
      message:
        description: Detailed error description
        type: string
        example: Token missing or invalid
      code:
        description: Unique error code
        type: number
        example: '40110'
      user_message:
        description: Error message
        type: string
        example: Request not Permitted
  not_found_error:
    title: Resource not found error
    type: object
    properties:
      message:
        description: Detailed error description
        type: string
        example: >-
          Your requested route "/v3/3e3edd05ce4362e2d6a8200c37b1b79c" could not
          be resolved.
      code:
        description: Unique error code
        type: number
        example: '404'
      user_message:
        description: Error message
        type: string
        example: Not Found
  batch_response:
    title: Batch Response
    description: Schema for batch operation responses
    type: object
    properties:
      status:
        description: Batch processing status
        enum:
          - SUCCESS
          - PARTIAL_SUCCESS
          - FAILURE
        type: string
        example: SUCCESS
      processed_items:
        description: Number of items successfully processed in the batch
        type: integer
        example: 2
    required:
      - status
      - processed_items
  products:
    title: Product collection
    type: array
    items:
      $ref: '#/definitions/product'
  product:
    title: Product
    type: object
    properties:
      id:
        description: Unique identifier
        example: 04b67018b311d9de2784e2a359218720
        type: string
      vendor_id:
        description: Identifier of a vendor
        example: 52a33ab06f459cfca2a9949ea97d1e73
        type: string
      name:
        description: Product name
        example: T-shirt
        type: string
      description:
        description: Product description
        example: T-shirt branded with our famous logo.
        type: string
      total:
        description: >-
          Total product quantity in stock. Empty string returned if the stock is
          unlimited.
        example: 100
        type: integer
      available:
        description: Product quantity available for purchase.
        example: 50
        type: integer
      price:
        description: Product price value
        example: 19.99
        type: number
      currency:
        description: Product price currency code (ISO 4217)
        example: EUR
        type: string
      shipping_address:
        description: >-
          Whether the product requires collecting a shipping address. 0 - no
          shipping required, 1 - shipping required.
        example: 0
        type: integer
      dependencies:
        description: >-
          Which events this product is offered with when booking or selling a
          voucher. If the product is always offered, this array is empty.
        type: array
        example:
          - events:
              - id: b4c9dd45265fca13aed91706f5abbb6d
              - id: 77bb10be5a6eb65a79634e463875d9f2
                prices:
                  - id: 1743
            vouchers:
              - events:
                  - id: b4c9dd45265fca13aed91706f5abbb6d
        items:
          type: object
          properties:
            events:
              description: >-
                List of events this product is offered with when making a
                booking. If the product is offered with all events, this array
                is not returned.
              type: array
              items:
                type: object
                properties:
                  id:
                    description: Event identifier
                    example: b4c9dd45265fca13aed91706f5abbb6d
                    type: string
                  prices:
                    description: >-
                      List of price categories this product is offered with when
                      making a booking. If the product is offered with all event
                      price categories, this array is not returned.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Event price category identifier
                          example: 378
                          type: integer
                      required:
                        - id
                required:
                  - id
            vouchers:
              description: >-
                Whether the product is offered with specific vouchers. Array is
                not returned if the product is not offered with vouchers.
              type: array
              items:
                type: object
                properties:
                  events:
                    description: >-
                      List of events that this product can only be offered with
                      when buying a voucher. If the product is offered with
                      vouchers for all events, this array is empty.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Event identifier
                          example: b4c9dd45265fca13aed91706f5abbb6d
                          type: string
                      required:
                        - id
    required:
      - id
      - vendor_id
      - name
      - description
      - total
      - available
      - price
      - currency
      - shipping_address
      - dependencies
  product_post:
    title: Product
    type: object
    properties:
      vendor_id:
        description: Identifier of a vendor
        example: 52a33ab06f459cfca2a9949ea97d1e73
        type: string
      name:
        description: Product name
        example: T-shirt
        type: string
      description:
        description: Product description
        example: T-shirt branded with our famous logo.
        type: string
      total:
        description: >-
          Total product quantity in stock. Empty string returned if the stock is
          unlimited.
        example: 100
        type: integer
      available:
        description: Product quantity available for purchase.
        example: 50
        type: integer
      price:
        description: Product price value
        example: 19.99
        type: number
      currency:
        description: Product price currency code (ISO 4217)
        example: EUR
        type: string
      shipping_address:
        description: >-
          Whether the product requires collecting a shipping address. 0 - no
          shipping required, 1 - shipping required.
        example: 0
        type: integer
      dependencies:
        description: >-
          Which events this product is offered with when booking or selling a
          voucher. If the product is always offered, this array is empty.
        type: array
        example:
          - events:
              - id: b4c9dd45265fca13aed91706f5abbb6d
              - id: 77bb10be5a6eb65a79634e463875d9f2
                prices:
                  - id: 1743
            vouchers:
              - events:
                  - id: b4c9dd45265fca13aed91706f5abbb6d
        items:
          type: object
          properties:
            events:
              description: >-
                List of events this product is offered with when making a
                booking. If the product is offered with all events, this array
                is not returned.
              type: array
              items:
                type: object
                properties:
                  id:
                    description: Event identifier
                    example: b4c9dd45265fca13aed91706f5abbb6d
                    type: string
                  prices:
                    description: >-
                      List of price categories this product is offered with when
                      making a booking. If the product is offered with all event
                      price categories, this array is not returned.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Event price category identifier
                          example: 378
                          type: integer
                      required:
                        - id
                required:
                  - id
            vouchers:
              description: >-
                Whether the product is offered with specific vouchers. Array is
                not returned if the product is not offered with vouchers.
              type: array
              items:
                type: object
                properties:
                  events:
                    description: >-
                      List of events that this product can only be offered with
                      when buying a voucher. If the product is offered with
                      vouchers for all events, this array is empty.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Event identifier
                          example: b4c9dd45265fca13aed91706f5abbb6d
                          type: string
                      required:
                        - id
    required:
      - id
      - vendor_id
      - name
      - description
      - total
      - available
      - price
      - currency
      - shipping_address
      - dependencies
  _product_post_dup:
    title: Product
    type: object
    properties:
      vendor_id:
        description: Identifier of a vendor
        example: 52a33ab06f459cfca2a9949ea97d1e73
        type: string
      name:
        description: Product name
        example: T-shirt
        type: string
      description:
        description: Product description
        example: T-shirt branded with our famous logo.
        type: string
      total:
        description: Total product quantity in stock.
        example: 100
        type: integer
      available:
        description: Product quantity available for purchase.
        example: 50
        type: integer
      price:
        description: Product price value
        example: 19.99
        type: number
      currency:
        description: Product price currency code (ISO 4217)
        example: EUR
        type: string
      shipping_address:
        description: >-
          Whether the product requires collecting a shipping address. 0 - no
          shipping required, 1 - shipping required.
        example: 0
        type: integer
      dependencies:
        description: >-
          Which events this product is offered with when booking or selling a
          voucher. If the product is always offered, this array is empty.
        type: array
        example:
          - events:
              - id: b4c9dd45265fca13aed91706f5abbb6d
              - id: 77bb10be5a6eb65a79634e463875d9f2
                prices:
                  - id: 1743
            vouchers:
              - events:
                  - id: b4c9dd45265fca13aed91706f5abbb6d
        items:
          type: object
          properties:
            events:
              description: >-
                List of events this product is offered with when making a
                booking. If the product is offered with all events, this array
                is not provided.
              type: array
              items:
                type: object
                properties:
                  id:
                    description: Event identifier
                    example: b4c9dd45265fca13aed91706f5abbb6d
                    type: string
                  prices:
                    description: >-
                      List of price categories this product is offered with when
                      making a booking. If the product is offered with all event
                      price categories, this array is not provided.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Event price category identifier
                          example: 378
                          type: integer
                      required:
                        - id
                required:
                  - id
            vouchers:
              description: >-
                Whether the product is offered with specific vouchers. Array is
                not provided if the product is not offered with vouchers.
              type: array
              items:
                type: object
                properties:
                  events:
                    description: >-
                      List of events that this product can only be offered with
                      when buying a voucher. If the product is offered with
                      vouchers for all events, this array is empty.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Event identifier
                          example: b4c9dd45265fca13aed91706f5abbb6d
                          type: string
                      required:
                        - id
    required:
      - vendor_id
      - name
      - description
      - total
      - price
  product_patch:
    title: Product
    type: object
    properties:
      vendor_id:
        description: Identifier of a vendor
        example: 52a33ab06f459cfca2a9949ea97d1e73
        type: string
      name:
        description: Product name
        example: T-shirt
        type: string
      description:
        description: Product description
        example: T-shirt branded with our famous logo.
        type: string
      total:
        description: Total product quantity in stock.
        example: 100
        type: integer
      available:
        description: Product quantity available for purchase.
        example: 50
        type: integer
      price:
        description: Product price value
        example: 19.99
        type: number
      currency:
        description: Product price currency code (ISO 4217)
        example: EUR
        type: string
      shipping_address:
        description: >-
          Whether the product requires collecting a shipping address. 0 - no
          shipping required, 1 - shipping required.
        example: 0
        type: integer
      dependencies:
        description: >-
          Which events this product is offered with when booking or selling a
          voucher. If the product is always offered, this array is empty.
        type: array
        example:
          - events:
              - id: b4c9dd45265fca13aed91706f5abbb6d
              - id: 77bb10be5a6eb65a79634e463875d9f2
                prices:
                  - id: 1743
            vouchers:
              - events:
                  - id: b4c9dd45265fca13aed91706f5abbb6d
        items:
          type: object
          properties:
            events:
              description: >-
                List of events this product is offered with when making a
                booking. If the product is offered with all events, this array
                is not provided.
              type: array
              items:
                type: object
                properties:
                  id:
                    description: Event identifier
                    example: b4c9dd45265fca13aed91706f5abbb6d
                    type: string
                  prices:
                    description: >-
                      List of price categories this product is offered with when
                      making a booking. If the product is offered with all event
                      price categories, this array is not provided.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Event price category identifier
                          example: 378
                          type: integer
                      required:
                        - id
                required:
                  - id
            vouchers:
              description: >-
                Whether the product is offered with specific vouchers. Array is
                not provided if the product is not offered with vouchers.
              type: array
              items:
                type: object
                properties:
                  events:
                    description: >-
                      List of events that this product can only be offered with
                      when buying a voucher. If the product is offered with
                      vouchers for all events, this array is empty.
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          description: Event identifier
                          example: b4c9dd45265fca13aed91706f5abbb6d
                          type: string
                      required:
                        - id
    required:
      - price
  users:
    title: Users collection
    type: array
    items:
      $ref: '#/definitions/user'
  user:
    title: User
    type: object
    properties:
      id:
        description: The unique user identifier
        type: string
        example: c1aa3a67eb1f3aa2a8f712ba8bb6649d
      name:
        description: The full name of the user in the system
        type: string
        example: Bat man
      email:
        description: The user email address
        type: string
        format: email
        example: batman@bookingkit.de
      language:
        minLength: 2
        maxLength: 2
        description: The user's preferred language code in ISO 639-1 format
        type: string
        example: de
    required:
      - id
      - name
      - email
      - language
  payment:
    title: Payment
    type: object
    properties:
      id:
        description: Unique identifier for the payment transaction
        type: string
        example: 7318b273add6571b6ea8e9b69cdbc7d8
      value:
        description: >-
          Payment amount in the vendor's currency. Positive values indicate
          incoming payments, negative values indicate refunds
        type: number
        example: 90
      type:
        description: Type of payment transaction
        enum:
          - payment
          - refund
        type: string
        example: payment
      code:
        description: Payment method code (deprecated, please use payment_method instead)
        type: string
        example: ThirdParty
      payment_method:
        description: The method of payment used for this transaction
        type: string
        example: ThirdParty
        enum:
          - ThirdParty
          - Cash
          - MobileApp
      name:
        description: Human-readable name of the payment method in English
        type: string
        example: Marketing Partner
      payment_date:
        format: date-time
        type: string
        description: Date and time when the payment was processed (UTC)
        example: '2024-08-06T07:36:35Z'
      related_items:
        description: Related orders and vouchers associated with this payment transaction
        type: object
        properties:
          orders:
            description: Orders related to this payment transaction
            type: array
            items:
              type: object
              properties:
                id:
                  description: Unique identifier of the related order
                  type: string
                  example: 65098279518ee11cd3549c3afa68850c
                code:
                  description: Order code/reference number
                  type: string
                  example: PXG-VJ2T6U
              required:
                - id
                - code
          vouchers:
            description: >-
              Vouchers related to this payment transaction (e.g., vouchers used
              for payment or refund)
            type: array
            items:
              type: object
              properties:
                id:
                  description: Unique identifier of the related voucher
                  type: string
                  example: de8dd18ca8f38574488d21f02bcc11c8
              required:
                - id
    required:
      - id
      - value
      - type
      - payment_method
      - name
      - payment_date
  payments:
    title: Payments collection
    description: A collection of payment transactions for an order
    type: array
    items:
      $ref: '#/definitions/payment'
  payments_post:
    title: Payment Post Request
    description: >-
      Schema for creating a new payment transaction. Only the following fields
      can be posted: payment_method, value, type, and payment_date. The id,
      code, name, and related_items fields are automatically generated by the
      system and cannot be set when creating payments.
    type: object
    properties:
      payment_method:
        description: The method of payment used for this transaction
        enum:
          - ThirdParty
          - Cash
          - MobileApp
        type: string
        example: ThirdParty
      value:
        description: >-
          Payment amount in the vendor's currency. Positive values for payments,
          negative values for refunds
        type: number
        example: 1
      type:
        description: Type of payment transaction
        enum:
          - payment
          - refund
        type: string
        example: payment
      payment_date:
        format: date-time
        type: string
        description: >-
          Date and time when the payment was processed (UTC). If not provided,
          current time will be used.
        example: '2024-08-06T07:36:35Z'
    required:
      - payment_method
      - value
      - type
  payment_response:
    title: Payment Response
    description: >-
      Schema for payment response after creation. This is what is returned when
      a payment is successfully created.
    type: object
    properties:
      code:
        description: Payment method code (automatically generated based on payment_method)
        type: string
        example: ThirdParty
      name:
        description: >-
          Human-readable name of the payment method in English (automatically
          generated)
        type: string
        example: Marketing Partner
      value:
        description: >-
          Payment amount in the vendor's currency. Positive values for payments,
          negative values for refunds
        type: number
        example: 1
      type:
        description: Type of payment transaction
        enum:
          - payment
          - refund
        type: string
        example: payment
      payment_date:
        format: date-time
        type: string
        description: Date and time when the payment was processed (UTC)
        example: '2024-08-06T07:36:35Z'
    required:
      - code
      - name
      - value
      - type
      - payment_date
  entry_unit:
    type: object
    properties:
      type:
        type: string
        description: Type of entry unit
  ticket:
    title: Ticket
    description: >-
      A ticket represents a booking for an event on a specific date. Tickets can
      contain multiple participants and include booking status, payment
      information, and any special requirements.
    type: object
    properties:
      id:
        description: Unique identifier for the ticket
        type: string
        example: t1aa3a67eb1f3aa2a8f712ba8bb6649d
      event_date_id:
        description: Deprecated field - use date_id instead
        type: string
        example: d1aa3a67eb1f3aa2a8f712ba8bb6649d
      date_id:
        description: Unique identifier of the event date/appointment this ticket is for
        type: string
        example: d1aa3a67eb1f3aa2a8f712ba8bb6649d
      event_id:
        description: Unique identifier of the event this ticket is for
        type: string
        example: e1aa3a67eb1f3aa2a8f712ba8bb6649d
      code:
        description: >-
          Unique booking code for this ticket, used for customer reference and
          validation
        type: string
        example: C6YH4Q
      status:
        description: Current status of the ticket booking
        enum:
          - ACCEPTED
          - CANCELED
          - PENDING
          - OPEN
        type: string
        example: ACCEPTED
      comment:
        description: Additional comments or notes for this ticket
        type: string
        example: Customer requested vegetarian meal
      cancellation_date:
        format: date-time
        type: string
        description: Date and time when the ticket was canceled (if applicable)
        example: '2024-08-06T07:36:35Z'
      vat:
        description: VAT amount for this ticket (not available for all API clients)
        type: string
        example: '0.00'
      order:
        description: Order identifier that this ticket belongs to
        type: string
        example: 8270e627a721c271205f103985f14d97
      participants:
        description: >-
          List of participants for this ticket. Each participant represents an
          individual who will attend the event.
        minItems: 1
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier for the participant
              type: string
              example: p1aa3a67eb1f3aa2a8f712ba8bb6649d
            status:
              description: Current status of the participant
              enum:
                - ACCEPTED
                - CANCELED
              type: string
              example: ACCEPTED
            name:
              description: Full name of the participant
              type: string
              example: John Doe
            email:
              format: email
              type: string
              description: Email address of the participant
              example: john.doe@example.com
            phone:
              description: Phone number of the participant
              type: string
              example: +49 123 456 789
            comment:
              description: Additional comments or special requirements for this participant
              type: string
              example: Vegetarian meal required
            price_id:
              description: >-
                Unique identifier of the price category for this participant
                (e.g., adult, child, senior)
              type: number
              example: 123
            price_value:
              description: >-
                Price amount for this participant (not available for all API
                clients)
              type: string
              example: '50.00'
            price_title:
              description: >-
                Human-readable name of the price category (not available for all
                API clients)
              type: string
              example: Adult
            vat:
              description: >-
                VAT amount for this participant (not available for all API
                clients)
              type: string
              example: '0.00'
            cancellation_date:
              format: date-time
              type: string
              description: Date and time when the participant was canceled (if applicable)
              example: '2024-08-06T07:36:35Z'
            code:
              description: >-
                Unique validation code for this participant, used for check-in
                and ticket validation
              type: string
              example: PCG-JE53DT-BQ5
            checked_in:
              description: Date and time when this participant was checked in at the event
              type: string
              example: ''
            entry_units:
              description: >-
                Entry units for this participant (same structure as in
                participant_ticket)
              type: array
              items:
                $ref: '#/definitions/entry_unit'
              example:
                - type: Adult
            ticket_id:
              description: Ticket identifier that this participant belongs to
              type: string
              example: 47fcc1dad975e544384a3894ee3aea13
            order:
              description: Order identifier that this participant belongs to
              type: string
              example: 8270e627a721c271205f103985f14d97
            redeemed_flexTicket:
              description: >-
                Information about the flexible ticket that was redeemed for this
                participant (if applicable). Empty array if no flexible ticket
                was redeemed.
              type: array
              items:
                type: object
                properties:
                  id:
                    description: Unique identifier of the flexible ticket that was redeemed
                    type: string
                    example: flex_123456
                  redeemed_value:
                    description: >-
                      Monetary value that was redeemed from the flexible ticket
                      for this participant
                    type: string
                    example: '25.50'
                  creation_date:
                    format: date-time
                    type: string
                    description: >-
                      Date and time when the flexible ticket was originally
                      created
                    example: '2024-01-15T10:30:00Z'
                  purchasing_order_id:
                    description: >-
                      Unique identifier of the order that originally purchased
                      this flexible ticket
                    type: string
                    example: o1aa3a67eb1f3aa2a8f712ba8bb6649d
                required:
                  - id
                  - redeemed_value
                  - creation_date
                  - purchasing_order_id
          required:
            - id
            - status
            - code
            - ticket_id
            - order
    required:
      - id
      - date_id
      - event_id
      - code
      - status
  tickets:
    title: Ticket collection
    description: >-
      A collection of tickets, typically returned when listing tickets for an
      order or filtering tickets across multiple orders.
    type: array
    items:
      $ref: '#/definitions/ticket'
  participant_ticket:
    title: Participant
    description: >-
      A participant represents an individual who will attend an event. This
      object contains personal information, booking status, and any special
      requirements.
    type: object
    properties:
      id:
        description: Unique identifier for the participant
        type: string
        example: a4f8dce00bef7c934b995c743f5b983a
      status:
        description: Current status of the participant
        enum:
          - ACCEPTED
          - CANCELED
        type: string
        example: ACCEPTED
      name:
        description: Full name of the participant
        type: string
        example: John Doe
      email:
        format: email
        type: string
        description: Email address of the participant
        example: john.doe@example.com
      phone:
        description: Phone number of the participant
        type: string
        example: +49 123 456 789
      comment:
        description: Additional comments or special requirements for this participant
        type: string
        example: Vegetarian meal required
      price_id:
        description: >-
          Unique identifier of the price category for this participant (e.g.,
          adult, child, senior)
        type: number
        example: 559
      price_value:
        description: Price amount for this participant (not available for all API clients)
        type: string
        example: '35.00'
      price_title:
        description: >-
          Human-readable name of the price category (not available for all API
          clients)
        type: string
        example: kids
      vat:
        description: VAT amount for this participant (not available for all API clients)
        type: string
        example: '0.00'
      cancellation_date:
        format: date-time
        type: string
        description: Date and time when the participant was canceled (if applicable)
        example: '2024-08-06T07:36:35Z'
      code:
        description: >-
          Unique validation code for this participant, used for check-in and
          ticket validation
        type: string
        example: 67T-8X5YKK-FGG
      checked_in:
        description: Date and time when this participant was checked in at the event
        type: string
        example: ''
      entry_units:
        description: >-
          Entry units for this participant. Can be an empty string or an array
          of objects with type information.
        type: array
        items:
          type: object
          properties:
            type:
              description: Type of entry unit
              type: string
              example: ADULT
          required:
            - type
        example:
          - type: ADULT
      ticket_id:
        description: Ticket identifier that this participant belongs to
        type: string
        example: 08f99ce88195d7b582e5921548c2b579
      order:
        description: Order identifier that this participant belongs to
        type: string
        example: 0f20cad840e30ebbe5b261a8c7ea8488
      redeemed_flexTicket:
        description: >-
          Information about the flexible ticket that was redeemed for this
          participant (if applicable). This field is optional and may not be
          present in all responses.
        type: array
        items:
          type: object
          properties:
            id:
              description: Unique identifier of the flexible ticket that was redeemed
              type: string
              example: dd7588d4d22a6f9a860596ad38b09eab
            redeemed_value:
              description: >-
                Monetary value that was redeemed from the flexible ticket for
                this participant
              type: string
              example: '10.00'
            creation_date:
              format: date-time
              type: string
              description: Date and time when the flexible ticket was originally created
              example: '2024-01-24T14:15:34Z'
            purchasing_order_id:
              description: >-
                Unique identifier of the order that originally purchased this
                flexible ticket
              type: string
              example: 80cc2fcf4020d3c3258332eb04a29a1f
          required:
            - id
            - redeemed_value
            - creation_date
            - purchasing_order_id
    required:
      - id
      - status
      - ticket_id
      - order
  participant_tickets:
    title: Participant collection
    description: >-
      A collection of participants, typically returned when listing participants
      across multiple tickets or filtering participants.
    type: array
    items:
      $ref: '#/definitions/participant_ticket'
  voucher:
    title: Voucher
    type: object
    properties:
      ident:
        description: Unique identifier for the voucher in the system
        type: string
        example: v1aa3a67eb1f3aa2a8f712ba8bb6649e
      title:
        description: >-
          Human-readable name or title of the voucher (e.g., 'Gift Card €50',
          'Birthday Voucher', 'Corporate Credit')
        type: string
        example: Gift Card €50
      code:
        description: >-
          The unique voucher code that customers use to redeem the voucher
          during checkout
        type: string
        example: GIFT50EUR
    required:
      - ident
      - title
      - code
  vouchers:
    title: Voucher collection
    description: A collection of vouchers available for the vendor
    type: array
    items:
      $ref: '#/definitions/voucher'
  coupon:
    title: Coupon
    type: object
    properties:
      ident:
        description: Unique identifier for the coupon in the system
        type: string
        example: c1aa3a67eb1f3aa2a8f712ba8bb6649d
      title:
        description: >-
          Human-readable name or title of the coupon (e.g., 'Summer Sale 20%
          Off', 'First Time Customer Discount')
        type: string
        example: Summer Sale 20% Off
      code:
        description: >-
          The actual coupon code that customers enter during checkout to apply
          the discount
        type: string
        example: SUMMER20
    required:
      - ident
      - title
      - code
  coupons:
    title: Coupon collection
    description: A collection of promotional coupons available for the vendor
    type: array
    items:
      $ref: '#/definitions/coupon'
  open_date_ticket:
    title: Open Date Ticket
    type: object
    properties:
      id:
        title: Open Date Ticket ID
        description: Unique identifier of the ticket
        type: string
        example: 2005cef0597aac12c83162c9a48104f8
      code:
        title: Code
        description: Unique code for the open date ticket
        type: string
        example: SCQ99-KABA4-YZBZG
      status:
        title: Status
        description: >-
          Ticket status (ACCEPTED: ticket has been accepted, PENDING: ticket is
          pending, CANCELED: ticket has been canceled, RESERVED: ticket has been
          reserved)
        enum:
          - ACCEPTED
          - PENDING
          - CANCELED
          - RESERVED
        type: string
        example: ACCEPTED
      customer_name:
        title: Customer Name
        description: Full customer name
        type: string
        example: John Smith
      customer_email:
        title: Customer Email
        format: email
        type: string
        description: Customer email address
        example: john.smith@example.com
      customer_phone:
        title: Customer Phone
        description: Customer phone number
        type: string
        example: +49 30 1234567
      customer_language:
        title: Customer Language
        minLength: 2
        maxLength: 2
        description: Language code ISO_639-1
        type: string
        example: en
      price_value:
        title: Price Value
        description: Price value
        type: string
        example: '49.99'
      price_title:
        title: Price Title
        description: Price title
        type: string
        example: Premium Experience Package
      currency:
        title: Currency
        maxLength: 3
        minLength: 3
        description: Price currency
        type: string
        example: EUR
      event_id:
        title: Event ID
        description: Unique identifier of the event
        type: string
        example: 8f9f810d91b7323a7a433d303b80cc77
    required:
      - id
      - code
      - status
      - customer_name
      - customer_email
      - customer_phone
      - customer_language
      - price_value
      - price_title
      - currency
      - event_id
  open_date_ticket_redemption:
    title: Open Date Ticket Redemption
    type: object
    properties:
      id:
        title: Open Date Ticket ID
        description: Unique identifier of the open date ticket that was redeemed
        type: string
        example: 2005cef0597aac12c83162c9a48104f8
      order_id:
        title: Order ID
        description: >-
          The unique identifier of the order that was created during redemption
          process
        type: string
        example: 7a9b2c3d4e5f6g7h8i9j0k1l2m3n4o5p
      appointment_id:
        title: Appointment ID
        description: >-
          The unique identifier of the appointment (only required if redemption
          strategy is selected_appointment))
        type: string
        example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
      redemption_strategy:
        title: Redemption Strategy
        description: The strategy to redeem the open date ticket
        enum:
          - next_available_appointment
          - current_appointment_with_overbooking
          - current_appointment_without_overbooking
          - selected_appointment
        type: string
        example: selected_appointment
    required:
      - id
  open_date_ticket_redemption_request:
    title: Open Date Ticket Redemption Request
    type: object
    properties:
      appointment_id:
        title: Appointment ID
        description: The unique identifier of the appointment
        type: string
        example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
      redemption_strategy:
        title: Redemption Strategy
        description: The strategy to redeem the open date ticket
        type: string
        enum:
          - current_appointment_without_overbooking
          - selected_appointment
        example: selected_appointment
  price:
    title: Price
    description: >-
      A price object representing the cost for a specific category of
      participants at an event
    type: object
    properties:
      id:
        description: Unique identifier for the price
        type: integer
        example: 478
      title:
        description: Price name/title explaining the difference to other prices
        type: string
        example: Adult price
      value:
        description: Price value in the specified currency of the vendor
        type: string
        example: '100.00'
      category:
        description: >-
          Price category indicating the type of participant this price applies
          to
        type: string
        example: Adult
        enum:
          - Adult
          - Senior
          - Youth
          - Child
          - Infant
          - Student
          - Group
          - Other
      currency:
        description: 3-letter currency code (vendor's currency)
        type: string
        example: EUR
        minLength: 3
        maxLength: 3
      public:
        description: >-
          Price visibility (1 = public, 0 = private). Private prices are not
          shown to end customers
        type: integer
        enum:
          - 0
          - 1
        example: 1
      vat:
        description: VAT percentage for this price
        type: string
        example: '0.00'
      entry_units:
        description: >-
          Entry units define categories of participants within this price
          category. This field is required when the category is "Group".
        type: array
        items:
          type: object
          properties:
            type:
              description: Entry unit type corresponding to the category
              type: string
              enum:
                - ADULT
                - SENIOR
                - YOUTH
                - CHILD
                - INFANT
                - STUDENT
                - GROUP
                - OTHER
              example: ADULT
          required:
            - type
        default:
          - type: ADULT
    required:
      - id
      - title
      - value
      - category
      - currency
      - public
      - vat
  prices:
    title: Prices collection
    description: A collection of price objects for an event or merged date
    type: array
    items:
      $ref: '#/definitions/price'
  flex_offer:
    type: object
    title: Flex Offer
    properties:
      id:
        required: true
        type: string
        description: Unique identifier
        example: 2005cef0597aac12c83162c9a48104f8
      active:
        required: false
        type: integer
        description: >-
          Is this object still valid or not. Non active objects count as deleted
          and will not be a part of the object collection
        example: 1
      title:
        required: true
        type: string
        description: Flex Offer title
        maxLength: 255
        example: '10 Ticket offer! '
      vendor_id:
        required: true
        type: string
        description: Unique identifier of parent vendor
        example: 8f9f810d91b7323a7a433d303b80cc77
      event_id:
        required: true
        type: string
        description: Unique identifier of linked event
        example: 1c7e41d738337f96ff5f4596bf2b4d88
      start_date:
        required: false
        type:
          - string
          - 'null'
        format: date-time
        description: Offer start date (ISO 8601) or null
        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
      end_date:
        required: false
        type:
          - string
          - 'null'
        format: date-time
        description: Offer end date (ISO 8601) or null
        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
      redemption_start_date:
        required: false
        type:
          - string
          - 'null'
        format: date-time
        description: Start of redemption period or null
        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
      redemption_end_date:
        required: false
        type:
          - string
          - 'null'
        format: date-time
        description: End of redemption period or null
        example: 'format: YYYY-MM-DDThh:mm:ssZ, UTC'
      stock:
        required: false
        type:
          - integer
          - 'null'
        description: Available stock (null if unlimited)
        example: 10
      redemptions:
        required: false
        type: integer
        description: Number of redemptions made
        example: 1
      unlimited_redemptions:
        required: false
        type: integer
        description: 1 if unlimited
        example: 0
      type:
        required: false
        type: string
        enum:
          - FLEX_OFFER
          - SEASON_PASS
          - OPEN_DATE_TICKET
        description: Type of flex offer
        example: FLEX_OFFER
      flex_offer_prices:
        required: true
        type: array
        uniqueItems: true
        example:
          - id: 6
            title: Standard
            value: 5
            currency: EUR
            public: 1
            category: Other
            vat: 0
            entry_units:
              - type: ADULT
          - id: 7
            title: Student
            value: 1
            currency: EUR
            public: 1
            category: Other
            vat: 0
            entry_units:
              - type: ADULT
        items:
          type: object
          properties:
            id:
              required: true
              type: string
              description: Unique identifier
            title:
              required: true
              type: string
              description: Price name, will explain the difference to other prices
            value:
              required: true
              type: number
              description: Price value
            currency:
              required: true
              type: string
              maxLength: 3
              minLength: 3
              description: Price currency
            public:
              required: false
              type: integer
              description: Price type
            vat:
              required: false
              type: number
              description: Price vat percentage
            entry_units:
              required: false
              type: array
              description: Entry units for this price
              items:
                type: object
                properties:
                  type:
                    type: string
                    description: Type of entry unit
  flex_offers:
    required: true
    type: array
    title: Flex Offer collection
    items:
      $ref: '#/definitions/flex_offer'
parameters:
  trait:eventsCollection:match:
    description: |
      Searches the string within therse proterties:
      - title
      - description
      - vendors' names
    type: string
    in: query
    name: match
    required: false
  trait:eventsCollection:category:
    description: >-
      Filter by category id, get a complete list of categories from the
      categories resource
    type: integer
    in: query
    name: category
    required: false
  trait:eventsCollection:categories:
    description: >-
      Filter by list of category ids, get a complete list of categories from the
      categories resource.
    type: string
    in: query
    name: categories
    required: false
  trait:eventsCollection:accept_vendors:
    description: Comma separated list of accepted vendor ids.
    type: string
    in: query
    name: accept_vendors
    required: false
  trait:eventsCollection:exclude_vendors:
    description: Comma separated list of rejected vendor ids.
    type: string
    in: query
    name: exclude_vendors
    required: false
  trait:eventsCollection:preferred_categories:
    description: >-
      Comma separated list of preferred categories. Events with these categories
      are placed at the top of the list.
    type: string
    in: query
    name: preferred_categories
    required: false
  trait:eventsCollection:min_price:
    type: number
    in: query
    name: min_price
    required: false
  trait:eventsCollection:max_price:
    type: number
    in: query
    name: max_price
    required: false
  trait:eventsCollection:type:
    default: BOOKING
    description: Filter by event type.
    enum:
      - BOOKING
      - REQUEST
      - ALL
    type: string
    in: query
    name: type
    required: false
  trait:eventsCollection:available_from:
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
    description: >-
      Return events with at least one date later or equal to this date
      (YYYY-MM-DDThh:mm:ssZ, UTC).
    type: string
    in: query
    name: available_from
    required: false
  trait:eventsCollection:geolocation:
    pattern: ^([0-9\.]+),([0-9\.]+),([0-9\.]+),([0-9\.]+)$
    description: >-
      Comma separated coordinates. Must be exactly 4 coordinates that describe a
      rectangle. Must respect following order {minLat,minLng,maxLat,maxLng}.
    type: string
    in: query
    name: geolocation
    example: 52.069896815019,12.665231159637,52.970116384981,14.144676840363
    required: false
  trait:collection:delta_since:
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
    description: Only return items changed since this date (YYYY-MM-DDThh:mm:ssZ, UTC).
    example: '2025-01-24T14:35:41Z'
    type: string
    in: query
    name: delta_since
    required: false
  trait:eventsCollection:with_private_prices:
    default: false
    description: >-
      Return private and public prices. Private prices are not shown to end
      customers. Private prices can be used by vendors when creating bookings in
      the admin app.
    type: boolean
    in: query
    name: with_private_prices
    required: false
  trait:eventsCollection:only_root_events:
    default: false
    description: >-
      Return root events only. If events have pricelists defined, these are
      treated as separate pricelists events of the parent event. If this
      parameter is set to true, only the root event will be retunred, pricelists
      will be skipped.
    type: boolean
    in: query
    name: only_root_events
    required: false
  trait:eventsCollection:only_main_duration:
    default: false
    description: >-
      Return main duration event only. If events have durations defined, these
      are treated as separate duration events of the parent event. If this
      parameter is set to true, only the root event will be retunred, other
      durations will be skipped.
    type: boolean
    in: query
    name: only_main_duration
    required: false
  trait:eventDatePricesCollection:with_private_prices:
    default: false
    description: Return private and public prices.
    type: boolean
    in: query
    name: with_private_prices
    required: false
  trait:vendorsCollection:match:
    description: |-
      Searches for the provided value within the following proterties:
      - name
    type: string
    in: query
    name: match
    required: false
    example: name
  trait:datesCollection:available:
    default: true
    description: Only return dates with at least one free slot.
    type: boolean
    in: query
    name: available
    required: false
  trait:datesCollection:start_date:
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
    description: Return dates later or equal to this date (YYYY-MM-DDThh:mm:ssZ, UTC)
    type: string
    in: query
    name: start_date
    required: false
  trait:datesCollection:end_date:
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
    description: Return dates earlier or equal to this date (YYYY-MM-DDThh:mm:ssZ, UTC)
    type: string
    in: query
    name: end_date
    required: false
  trait:datesCollection:accept_vendors:
    description: Comma separated list of accepted vendor ids
    type: string
    in: query
    name: accept_vendors
    required: false
  trait:datesCollection:exclude_vendors:
    description: Comma separated list of rejected vendor ids
    type: string
    in: query
    name: exclude_vendors
    required: false
  trait:datesCollection:accept_events:
    description: Comma separated list of accepted event ids
    type: string
    in: query
    name: accept_events
    required: false
  trait:datesCollection:exclude_events:
    description: Comma separated list of rejected event ids
    type: string
    in: query
    name: exclude_events
    required: false
  trait:datesCollection:category:
    description: >-
      Filter by category id, get a complete list of categories from the
      categories resource
    type: integer
    in: query
    name: category
    required: false
  trait:datesCollection:geolocation:
    pattern: ^([0-9\.]+),([0-9\.]+),([0-9\.]+),([0-9\.]+)$
    description: >-
      Comma separated coordinates. Must be exactly 4 coordinates that describe a
      rectangle. Must respect following order {minLat,minLng,maxLat,maxLng}.
    type: string
    in: query
    name: geolocation
    required: false
  trait:datesCollection:ignore_latest_booking_time:
    description: Ignore latest booking time
    type: boolean
    in: query
    name: ignore_latest_booking_time
    required: false
  trait:ordersCollection:match:
    description: |
      Searches the string within therse proterties:
      - name
      - email
    type: string
    in: query
    name: match
    required: false
  trait:ordersCollection:start_date:
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
    description: >-
      Returns orders placed later or equal to this date (YYYY-MM-DDThh:mm:ssZ,
      UTC)
    type: string
    in: query
    name: start_date
    required: false
  trait:ordersCollection:end_date:
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
    description: >-
      Returns orders placed earlier or equal to this date (YYYY-MM-DDThh:mm:ssZ,
      UTC)
    type: string
    in: query
    name: end_date
    required: false
  trait:ordersCollection:start_event_date:
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
    description: >-
      Returns orders with at least one ticket refering to a date later or equal
      to this date (YYYY-MM-DDThh:mm:ssZ, UTC)
    type: string
    in: query
    name: start_event_date
    required: false
  trait:ordersCollection:end_event_date:
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
    description: >-
      Returns orders with at least one ticket refering to a date earlier or
      equal to this date (YYYY-MM-DDThh:mm:ssZ, UTC)
    type: string
    in: query
    name: end_event_date
    required: false
  trait:ordersCollection:status:
    default: ACCEPTED
    description: Returns orders of specified status
    enum:
      - ACCEPTED
      - CANCELED
      - PENDING
      - DECLINED
      - OPEN
      - ALL
    type: string
    in: query
    name: status
    required: false
  trait:ordersCollection:accept_external_reference:
    description: |
      Comma separated list of accepted external reference codes
      Can be used to load by external reference
    type: string
    in: query
    name: accept_external_reference
    required: false
  trait:ordersCollection:accept_code:
    description: |
      Comma separated list of accepted order codes
      can be used to load by code
    type: string
    in: query
    name: accept_code
    required: false
  trait:ordersCollection:accept_dates:
    description: |
      Comma separated list of accepted date ids
    type: string
    in: query
    name: accept_dates
    required: false
  trait:categoriesCollection:match:
    description: |
      Searches the string within therse proterties:
      - title
    type: string
    in: query
    name: match
    required: false
  trait:filterableCollection:limit:
    description: >-
      The limit query parameter specifies the number of resources that a single
      page contains.
    example: 1000
    default: 100000
    type: integer
    in: query
    name: limit
    required: false
  trait:filterableCollection:offset:
    default: 0
    description: >-
      The offset query parameter is used to exclude from a response the first N
      items of a collection.
    example: 0
    type: integer
    in: query
    name: offset
    required: false
  trait:filterableCollection:accept:
    description: Comma separated list of accepted item identifiers.
    type: string
    in: query
    name: accept
    required: false
  trait:filterableCollection:exclude:
    description: Comma separated list of item IDs to be excluded.
    type: string
    in: query
    name: exclude
    required: false
  trait:filterableCollection:fields:
    default: all
    description: Comma separated list of item properties that should be returned.
    type: string
    in: query
    name: fields
    required: false
  trait:filterableCollection:with_count:
    default: false
    description: >-
      If set, the request will return an `X-Total_Count` header with the number
      of the filtered collection items, ignoring offset and limit. The header
      data can be used to handle pagination.


      **USE ONLY IF NECESSARY** this obviously makes every request a lot slower.
      We stringly advise leaving this option to false.
    example: true
    type: boolean
    in: query
    name: with_count
    required: false
  trait:productsCollection:available:
    default: 0
    description: >-
      Set 1 to get products with at least one in stock or 0 to get all products,
      even out of stock. By default you receive all.
    example: 1
    type: integer
    enum:
      - 0
      - 1
    in: query
    name: available
  trait:productsCollection:requires_shipping:
    default: 0
    description: >-
      Set 1 to get products that requires shipping address or 0 for all
      products. By default you receive all.
    example: 1
    type: integer
    enum:
      - 0
      - 1
    in: query
    name: requires_shipping
  trait:productsCollection:accept_vendors:
    description: >-
      Comma separated list of vendor identifiers to return their products. If
      not provided, all vendors are accepted.
    example: 52a33ab06f459cfca2a9949ea97d1e73,52a33ab06f459cfca2a9949ea97d1e74
    type: string
    in: query
    name: accept_vendors
  trait:productsCollection:exclude_vendors:
    description: Comma separated list of vendor identifiers to exclude their products.
    example: 52a33ab06f459cfca2a9949ea97d1e73,52a33ab06f459cfca2a9949ea97d1e74
    type: string
    in: query
    name: exclude_vendors
  trait:productsCollection:min_price:
    description: Minimum price of products to return.
    example: 10
    type: number
    in: query
    name: min_price
  trait:productsCollection:max_price:
    description: Maximum price of products to return.
    example: 100
    type: number
    in: query
    name: max_price
  trait:productsCollection:with_private_products:
    default: false
    description: >-
      Whether to include also the private products. Private products are not set
      as "offered at checkout" and are sold through the admin app.
    example: true
    type: boolean
    in: query
    name: with_private_products
  trait:ticketsCollection:accept_code:
    description: |
      Comma separated list of accepted ticket codes
      can be used to load by code
    type: string
    in: query
    name: accept_code
    required: true
  trait:ticketsCollection:exclude_code:
    description: |
      Comma separated list of excluded ticket codes
      can be used to load by code
    type: string
    in: query
    name: exclude_code
    required: true
  trait:vouchersCollection:limit:
    default: 1000
    type: integer
    in: query
    name: limit
    required: true
  trait:couponsCollection:limit:
    default: 1000
    type: integer
    in: query
    name: limit
    required: true
responses:
  trait:createRequest:400:
    description: Your request is malformed – see error message for details.
    schema:
      $ref: '#/definitions/error'
  trait:createRequest:401:
    description: You are not authorized to make this request
    schema:
      $ref: '#/definitions/authentication_error'
  trait:deleteRequest:204:
    description: Successfull item deletion, the response body is emtpy
  trait:deleteRequest:400:
    description: Your request is malformed – see error message for details.
    schema:
      $ref: '#/definitions/error'
  trait:deleteRequest:401:
    description: You are not authorized to make this request
    schema:
      $ref: '#/definitions/error'
  trait:patchRequest:400:
    description: Your request is malformed – see error message for details.
    schema:
      $ref: '#/definitions/error'
  trait:patchRequest:401:
    description: You are not authorized to make this request
    schema:
      $ref: '#/definitions/error'
paths:
  /vendors:
    get:
      description: Returns a list of vendors you have access to.
      operationId: List vendors
      tags:
        - Vendor
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of vendors with
            their details. The response includes vendor information such as ID,
            name, contact details, and other relevant attributes.
          schema:
            $ref: '#/definitions/vendors'
        '400':
          description: Your request is malformated. Check error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request.
          schema:
            $ref: '#/definitions/authentication_error'
      parameters:
        - description: >-
            Use -/+ in front of the attribute to specify the soriting direction
            (descending / ascending). If no modifier is provided, default
            sorting direction is ascending. Multiple comma separated values may
            be provided.


            Example: `\vendors?order=name` will sort results by name ascending.
          enum:
            - name
          type: string
          in: query
          name: order
          required: false
          example: '-name'
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:vendorsCollection:match'
        - $ref: '#/parameters/trait:collection:delta_since'
  /vendors/{id}:
    get:
      operationId: Retrieve a vendor
      description: Retrieve a single vendor by providing the identifier.
      tags:
        - Vendor
      parameters:
        - description: Unique identifier of a vendor
          type: string
          in: path
          name: id
          required: true
          example: 3e3edd05ce4362e2d6a8200c37b1b79c
      responses:
        '200':
          description: >-
            Returns a successful response containing detailed information about
            a specific vendor. The response includes the vendor's ID, name,
            contact details, address, and other relevant attributes.
          schema:
            $ref: '#/definitions/vendor'
        '400':
          description: Your request is malformated. Check error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request.
          schema:
            $ref: '#/definitions/authentication_error'
        '404':
          description: Resource not found.
          schema:
            $ref: '#/definitions/not_found_error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /vendors/{vendor_id}/events:
    get:
      description: Returns a list of events belonging to a single vendor.
      operationId: List events of a vendor
      tags:
        - Event
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of events belonging
            to the specified vendor. The response includes event details such as
            title, description, duration, pricing information, availability, and
            other relevant attributes.
          schema:
            $ref: '#/definitions/events'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/authentication_error'
      parameters:
        - description: >-
            Use -/+ in front of the attribute to specify the soriting direction
            (descending / ascending). If no modifier is provided, default
            sorting direction is ascending. Multiple comma separated values may
            be provided.


            Example: `\events?order=-duration,title` will sort results by
            duration descending, title ascending.
          example: '-duration,title'
          enum:
            - title
            - duration
            - max_participants
            - vendor_name
            - price
            - category_id
            - first_date
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:eventsCollection:match'
        - $ref: '#/parameters/trait:eventsCollection:category'
        - $ref: '#/parameters/trait:eventsCollection:categories'
        - $ref: '#/parameters/trait:eventsCollection:accept_vendors'
        - $ref: '#/parameters/trait:eventsCollection:exclude_vendors'
        - $ref: '#/parameters/trait:eventsCollection:preferred_categories'
        - $ref: '#/parameters/trait:eventsCollection:type'
        - $ref: '#/parameters/trait:eventsCollection:available_from'
        - $ref: '#/parameters/trait:eventsCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:eventsCollection:with_private_prices'
        - $ref: '#/parameters/trait:eventsCollection:only_root_events'
        - $ref: '#/parameters/trait:eventsCollection:only_main_duration'
    post:
      description: Create a new "event" item
      operationId: Create event of a vendor
      tags:
        - Event
      responses:
        '201':
          description: Successfull item creation
          schema:
            $ref: '#/definitions/event'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/event_post_patch'
          in: body
          name: body
    parameters:
      - type: string
        in: path
        name: vendor_id
        description: Unique identifier of a vendor
        required: true
  /vendors/{id}/dates:
    get:
      description: >
        Get a list of dates in array form

        since api console does not yet support schema relations view **date**
        schema for details
      operationId: List dates of a vendor
      tags:
        - Date
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of dates
            (appointments) for the specified vendor. The response includes date
            details such as start time, end time, availability status, capacity
            information, and other relevant attributes.
          schema:
            $ref: '#/definitions/dates'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/authentication_error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\dates?order=-duration,title`
            will sort results by duration DESC, title ASC
          enum:
            - title
            - duration
            - max_participants
            - vendor_name
            - price
            - category_id
            - first_date
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:eventsCollection:match'
        - $ref: '#/parameters/trait:eventsCollection:category'
        - $ref: '#/parameters/trait:eventsCollection:categories'
        - $ref: '#/parameters/trait:eventsCollection:accept_vendors'
        - $ref: '#/parameters/trait:eventsCollection:exclude_vendors'
        - $ref: '#/parameters/trait:eventsCollection:preferred_categories'
        - $ref: '#/parameters/trait:eventsCollection:type'
        - $ref: '#/parameters/trait:eventsCollection:available_from'
        - $ref: '#/parameters/trait:eventsCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:eventsCollection:with_private_prices'
        - $ref: '#/parameters/trait:eventsCollection:only_root_events'
        - $ref: '#/parameters/trait:eventsCollection:only_main_duration'
    post:
      description: >-
        Create a new date for a specific vendor. This endpoint allows you to add
        a new available date with specified time and capacity.
      operationId: Create date for a vendor
      tags:
        - Date
      responses:
        '201':
          description: Date successfully created
          schema:
            $ref: '#/definitions/date'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
        '404':
          description: Vendor not found
          schema:
            $ref: '#/definitions/not_found_error'
      parameters:
        - schema:
            $ref: '#/definitions/date_post'
          in: body
          name: body
          description: Date creation data
    parameters:
      - type: string
        in: path
        name: id
        description: Vendor identifier
        required: true
  /vendors/{id}/eventDates:
    get:
      description: >-
        Retrieve a list of events and their associated dates for a specific
        vendor. This endpoint returns a simplified view with basic identifiers
        for both events and dates. Use filtering parameters to narrow down
        results by date ranges, availability, or specific events.
      operationId: List events and dates of a vendor
      tags:
        - Event
        - Date
      responses:
        '200':
          description: >-
            Returns a successful response containing a combined list of events
            and their associated dates for the specified vendor. This provides a
            comprehensive view of all scheduled activities, including event
            details and their available time slots in a single response.
          schema:
            $ref: '#/definitions/eventDates'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/authentication_error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\eventDates?order=date,-available_slots`
            will sort results by date ASC, available_slots DESC
          enum:
            - date
            - available_slots
            - event_id
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:datesCollection:available'
        - $ref: '#/parameters/trait:datesCollection:start_date'
        - $ref: '#/parameters/trait:datesCollection:end_date'
        - $ref: '#/parameters/trait:datesCollection:accept_vendors'
        - $ref: '#/parameters/trait:datesCollection:exclude_vendors'
        - $ref: '#/parameters/trait:datesCollection:accept_events'
        - $ref: '#/parameters/trait:datesCollection:exclude_events'
        - $ref: '#/parameters/trait:datesCollection:category'
        - $ref: '#/parameters/trait:datesCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:datesCollection:ignore_latest_booking_time'
    parameters:
      - type: string
        in: path
        name: id
        description: Vendor identifier
        required: true
  /vendors/{id}/orders:
    get:
      description: >
        Get a list of orders in array form

        since api console does not yet support schema relations view **order**
        schema for details
      operationId: List orders of a vendor
      tags:
        - Order
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of all orders
            associated with the specified vendor. The response includes
            comprehensive order details such as customer information, purchased
            items, payment status, and booking details, allowing you to track
            and manage all transactions for this vendor.
          schema:
            $ref: '#/definitions/orders'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/authentication_error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\orders?order=vendor,-date`
            will sort results by vendor ASC, date desc
          enum:
            - name
            - date
            - vendor_id
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:ordersCollection:match'
        - $ref: '#/parameters/trait:ordersCollection:start_date'
        - $ref: '#/parameters/trait:ordersCollection:end_date'
        - $ref: '#/parameters/trait:ordersCollection:start_event_date'
        - $ref: '#/parameters/trait:ordersCollection:end_event_date'
        - $ref: '#/parameters/trait:ordersCollection:status'
        - $ref: '#/parameters/trait:ordersCollection:accept_external_reference'
        - $ref: '#/parameters/trait:ordersCollection:accept_code'
        - $ref: '#/parameters/trait:ordersCollection:accept_dates'
        - $ref: '#/parameters/trait:collection:delta_since'
    post:
      description: Create a new "order" item
      operationId: Create order of a vendor
      tags:
        - Order
      responses:
        '201':
          description: Successfull item creation
          schema:
            $ref: '#/definitions/order'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/order'
          in: body
          name: body
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /products:
    get:
      description: >-
        Get a list of products in form of an array. Products that are not set as
        "Offer product at checkout" are not returned
      operationId: List products
      tags:
        - Product
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/products'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >-
            Use -/+ in front of the attribute to specify the soriting direction
            (descending / ascending). If no modifier is provided, default
            sorting direction is ascending. Multiple comma separated values may
            be provided.


            Example: `\products?order=-name,price` will sort results by name
            descending, price ascending.
          example: '-name,price'
          enum:
            - name
            - price
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:productsCollection:available'
        - $ref: '#/parameters/trait:productsCollection:requires_shipping'
        - $ref: '#/parameters/trait:productsCollection:accept_vendors'
        - $ref: '#/parameters/trait:productsCollection:exclude_vendors'
        - $ref: '#/parameters/trait:productsCollection:min_price'
        - $ref: '#/parameters/trait:productsCollection:max_price'
        - $ref: '#/parameters/trait:productsCollection:with_private_products'
    post:
      description: >-
        Create a new "product" item. **Note: This endpoint is only available
        when authenticated as a vendor API.**
      operationId: Create new product
      tags:
        - Product
      responses:
        '201':
          description: Successfull item creation
          schema:
            $ref: '#/definitions/product'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/product_post'
          in: body
          name: body
  /products/{id}:
    get:
      operationId: Retrieve a product
      tags:
        - Product
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/product'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    patch:
      description: >-
        Update an existing "product" item. **Note: This endpoint is only
        available when authenticated as a vendor API.**
      operationId: Update a product
      tags:
        - Product
      responses:
        '200':
          description: Successfull item update
          schema:
            $ref: '#/definitions/product'
        '400':
          $ref: '#/responses/trait:patchRequest:400'
        '401':
          $ref: '#/responses/trait:patchRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/product_patch'
          in: body
          name: body
    delete:
      operationId: Delete a product
      tags:
        - Product
      responses:
        '204':
          $ref: '#/responses/trait:deleteRequest:204'
        '400':
          $ref: '#/responses/trait:deleteRequest:400'
        '401':
          $ref: '#/responses/trait:deleteRequest:401'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /events:
    get:
      description: Returns a list of events of all events you have access to.
      operationId: List events
      tags:
        - Event
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of all accessible
            events across vendors. The response includes event details such as
            title, description, duration, pricing information, availability, and
            other relevant attributes.
          schema:
            $ref: '#/definitions/events'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\events?order=-duration,title`
            will sort results by duration DESC, title ASC
          enum:
            - title
            - duration
            - max_participants
            - vendor_name
            - price
            - category_id
            - first_date
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:eventsCollection:match'
        - $ref: '#/parameters/trait:eventsCollection:category'
        - $ref: '#/parameters/trait:eventsCollection:categories'
        - $ref: '#/parameters/trait:eventsCollection:accept_vendors'
        - $ref: '#/parameters/trait:eventsCollection:exclude_vendors'
        - $ref: '#/parameters/trait:eventsCollection:preferred_categories'
        - $ref: '#/parameters/trait:eventsCollection:type'
        - $ref: '#/parameters/trait:eventsCollection:available_from'
        - $ref: '#/parameters/trait:eventsCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:eventsCollection:with_private_prices'
        - $ref: '#/parameters/trait:eventsCollection:only_root_events'
        - $ref: '#/parameters/trait:eventsCollection:only_main_duration'
    post:
      description: Create a new "event" item
      operationId: Create an event
      tags:
        - Event
      responses:
        '201':
          description: Successfull item creation
          schema:
            $ref: '#/definitions/event'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/event_post_patch'
          in: body
          name: body
  /events/{id}:
    patch:
      description: Update an existing "event" item
      operationId: Update an event
      tags:
        - Event
      responses:
        '200':
          description: Successfull item update
          schema:
            $ref: '#/definitions/event'
        '400':
          $ref: '#/responses/trait:patchRequest:400'
        '401':
          $ref: '#/responses/trait:patchRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/event_post_patch'
          in: body
          name: body
    get:
      operationId: Retrieve an event
      tags:
        - Event
      responses:
        '200':
          description: >-
            Returns a successful response containing detailed information about
            a specific event. The response includes the event's title,
            description, duration, pricing information, availability, location
            details, and other relevant attributes.
          schema:
            $ref: '#/definitions/event'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /events/{id}/dates:
    get:
      description: >-
        Retrieve a list of dates for a specific event. This endpoint returns all
        available dates for the specified event, including their availability
        information and booking URLs.
      operationId: List dates for an event
      tags:
        - Date
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of dates
            (appointments) for the specified event. The response includes date
            details such as start time, end time, availability status, capacity
            information, and other relevant attributes.
          schema:
            $ref: '#/definitions/dates'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\dates?order=date,-available_slots`
            will sort results by date ASC, available_slots DESC
          enum:
            - date
            - available_slots
            - event_id
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:datesCollection:available'
        - $ref: '#/parameters/trait:datesCollection:start_date'
        - $ref: '#/parameters/trait:datesCollection:end_date'
        - $ref: '#/parameters/trait:datesCollection:accept_vendors'
        - $ref: '#/parameters/trait:datesCollection:exclude_vendors'
        - $ref: '#/parameters/trait:datesCollection:accept_events'
        - $ref: '#/parameters/trait:datesCollection:exclude_events'
        - $ref: '#/parameters/trait:datesCollection:category'
        - $ref: '#/parameters/trait:datesCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:datesCollection:ignore_latest_booking_time'
    post:
      description: >-
        Create a new date for a specific event. This endpoint allows you to add
        a new available date with specified time and capacity.
      operationId: Create date for an event
      tags:
        - Date
      responses:
        '201':
          description: Date successfully created
          schema:
            $ref: '#/definitions/date'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
        '404':
          description: Event not found
          schema:
            $ref: '#/definitions/error'
      parameters:
        - schema:
            $ref: '#/definitions/date_post'
          in: body
          name: body
          description: Date creation data
    parameters:
      - type: string
        in: path
        name: id
        description: Event identifier
        required: true
  /merged_events:
    get:
      description: >-
        Retrieve a list of "merged events". Merged events contain price
        information of all associated pricelists. If event has multiple
        durations then individual event durations are listed as top level event
        items.
      operationId: List merged events
      tags:
        - Event
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of merged events
            with comprehensive pricing information. Each merged event includes
            consolidated price data from all associated price lists, making it
            easier to compare options. For events with multiple durations, each
            duration variant is presented as a separate top-level item for clear
            comparison.
          schema:
            $ref: '#/definitions/merged_events'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\merged_events?order=-duration,title`
            will sort results by duration DESC, title ASC
          enum:
            - title
            - duration
            - max_participants
            - vendor_name
            - price
            - category_id
            - first_date
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:eventsCollection:match'
        - $ref: '#/parameters/trait:eventsCollection:category'
        - $ref: '#/parameters/trait:eventsCollection:categories'
        - $ref: '#/parameters/trait:eventsCollection:accept_vendors'
        - $ref: '#/parameters/trait:eventsCollection:exclude_vendors'
        - $ref: '#/parameters/trait:eventsCollection:preferred_categories'
        - $ref: '#/parameters/trait:eventsCollection:type'
        - $ref: '#/parameters/trait:eventsCollection:available_from'
        - $ref: '#/parameters/trait:eventsCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:eventsCollection:with_private_prices'
        - $ref: '#/parameters/trait:eventsCollection:only_root_events'
        - $ref: '#/parameters/trait:eventsCollection:only_main_duration'
  /merged_events/{id}:
    get:
      description: >-
        Retrieve a merged event. If parent event or event duration is requested,
        the merged event object contains price information of all associated
        pricelists.
      operationId: Retrieve a merged event
      tags:
        - Event
      responses:
        '200':
          description: >-
            Returns a successful response containing detailed information about
            a specific merged event. The response includes comprehensive event
            details along with consolidated pricing information from all
            associated price lists. This provides a complete view of the event
            with all available pricing options in a single response, simplifying
            the process of understanding the full offering.
          schema:
            $ref: '#/definitions/merged_event'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /dates:
    get:
      description: >
        Get a list of dates in array form default sorted by date,

        since api console does not yet support schema relations view **date**
        schema for details
      operationId: List dates
      tags:
        - Date
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of all available
            dates (appointments) across all accessible events. The response
            includes detailed information about each date such as start time,
            end time, availability status, capacity information, and booking
            deadlines. This comprehensive list allows you to view and filter all
            scheduled activities across the platform.
          schema:
            $ref: '#/definitions/dates'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\dates?order=date,-available_slots`
            will sort results by date ASC, available_slots DESC
          enum:
            - date
            - available_slots
            - event_id
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:datesCollection:available'
        - $ref: '#/parameters/trait:datesCollection:start_date'
        - $ref: '#/parameters/trait:datesCollection:end_date'
        - $ref: '#/parameters/trait:datesCollection:accept_vendors'
        - $ref: '#/parameters/trait:datesCollection:exclude_vendors'
        - $ref: '#/parameters/trait:datesCollection:accept_events'
        - $ref: '#/parameters/trait:datesCollection:exclude_events'
        - $ref: '#/parameters/trait:datesCollection:category'
        - $ref: '#/parameters/trait:datesCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:datesCollection:ignore_latest_booking_time'
    post:
      description: >-
        Create a new date. This endpoint allows you to add a new available date
        with specified time and capacity.
      operationId: Create a date
      tags:
        - Date
      responses:
        '201':
          description: Date successfully created
          schema:
            $ref: '#/definitions/date'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/date_post'
          in: body
          name: body
          description: Date creation data
  /dates/{id}:
    get:
      description: >-
        Retrieve a specific date by its identifier. This endpoint returns
        detailed information about a single date including its availability and
        booking URL.
      operationId: Retrieve a date
      tags:
        - Date
      responses:
        '200':
          description: >-
            Returns a successful response containing detailed information about
            a specific date (appointment). The response includes comprehensive
            details such as start and end times, availability status, capacity
            information, booking deadlines, and associated event information.
            This allows you to view all relevant information about a particular
            scheduled activity.
          schema:
            $ref: '#/definitions/date'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    patch:
      description: >-
        Update an existing date item. **Note: This endpoint requires the vendor
        to have activated the Extended Availability Management module.**
      operationId: Update a date
      tags:
        - Date
      responses:
        '200':
          description: Date successfully updated
          schema:
            $ref: '#/definitions/date'
        '400':
          $ref: '#/responses/trait:patchRequest:400'
        '401':
          $ref: '#/responses/trait:patchRequest:401'
        '404':
          description: Date not found
          schema:
            $ref: '#/definitions/error'
      parameters:
        - schema:
            $ref: '#/definitions/date_patch'
          in: body
          name: body
          description: Date update data
    parameters:
      - type: string
        in: path
        name: id
        description: Date identifier
        required: true
  /merged_dates:
    get:
      description: >
        Get a list of merged_dates in array form default sorted by date,

        since api console does not yet support schema relations view
        **merged_date** schema for details
      operationId: List merged dates
      tags:
        - Date
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of merged dates with
            comprehensive information. Each merged date includes consolidated
            data from related events and pricing options, providing a unified
            view of availability across the platform. This format makes it
            easier to compare different date options and their associated events
            in a single response.
          schema:
            $ref: '#/definitions/merged_dates'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\merged_dates?order=date,-available_slots`
            will sort results by date ASC, available_slots DESC
          enum:
            - date
            - available_slots
            - event_id
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:datesCollection:available'
        - $ref: '#/parameters/trait:datesCollection:start_date'
        - $ref: '#/parameters/trait:datesCollection:end_date'
        - $ref: '#/parameters/trait:datesCollection:accept_vendors'
        - $ref: '#/parameters/trait:datesCollection:exclude_vendors'
        - $ref: '#/parameters/trait:datesCollection:accept_events'
        - $ref: '#/parameters/trait:datesCollection:exclude_events'
        - $ref: '#/parameters/trait:datesCollection:category'
        - $ref: '#/parameters/trait:datesCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:datesCollection:ignore_latest_booking_time'
  /merged_dates/{id}:
    get:
      description: >-
        Retrieve a specific merged date by its identifier. This endpoint returns
        detailed information about a single merged date including its
        availability and booking URL.
      operationId: Retrieve a merged date
      tags:
        - Date
      responses:
        '200':
          description: >-
            Returns a successful response containing detailed information about
            a specific merged date. The response includes comprehensive details
            about the date along with consolidated information from related
            events and pricing options. This provides a complete view of a
            particular time slot with all associated event options and pricing
            in a single response.
          schema:
            $ref: '#/definitions/merged_date'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        description: Merged date identifier
        required: true
  /merged_dates/{id}/prices:
    get:
      description: >-
        Retrieve a list of all prices for a specific merged date (event date).
        This endpoint returns both public and private prices (if requested) with
        their associated categories, values, and entry unit types. Prices are
        returned in the vendor's currency and can be filtered by visibility.
      operationId: List prices of a merged date
      tags:
        - Price
      responses:
        '200':
          description: >-
            Returns a successful response containing a comprehensive list of all
            prices associated with the specified merged date. The response
            includes detailed pricing information such as price values,
            currencies, VAT details, entry unit types, and visibility status
            (public or private). This allows you to view all available pricing
            options for a particular date, helping customers understand the cost
            structure for different participant types.
          schema:
            $ref: '#/definitions/prices'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - $ref: '#/parameters/trait:eventDatePricesCollection:with_private_prices'
    parameters:
      - type: string
        in: path
        name: id
        description: Merged date identifier
        required: true
  /datesBatch:
    post:
      description: >-
        Create multiple dates in a single request. This endpoint allows you to
        create multiple dates for events in one batch operation.
      operationId: Create multiple dates
      tags:
        - Date
      responses:
        '201':
          description: Multiple dates successfully created
          schema:
            $ref: '#/definitions/batch_response'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/datesBatch'
          in: body
          name: body
          description: Array of date creation objects
    patch:
      description: >-
        Update multiple dates in a single request. This endpoint allows you to
        update multiple dates for events in one batch operation. **Note: This
        endpoint requires the vendor to have activated the Extended Availability
        Management module.**
      operationId: Update multiple dates
      tags:
        - Date
      responses:
        '200':
          description: Multiple dates successfully updated
          schema:
            $ref: '#/definitions/batch_response'
        '400':
          $ref: '#/responses/trait:patchRequest:400'
        '401':
          $ref: '#/responses/trait:patchRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/datesBatch_patch'
          in: body
          name: body
          description: Array of date update objects
  /eventDates:
    get:
      description: >-
        Retrieve a list of events and their associated dates across all vendors.
        This endpoint returns a simplified view with basic identifiers for both
        events and dates. Use filtering parameters to narrow down results by
        date ranges, availability, specific vendors, or events.
      operationId: List events and dates
      tags:
        - Event
        - Date
      responses:
        '200':
          description: >-
            Returns a successful response containing a combined list of events
            and their associated dates across all accessible vendors. This
            provides a comprehensive view of all scheduled activities
            platform-wide, including event details and their available time
            slots in a single response. Due to the potentially large amount of
            data, the response defaults to including only essential fields.
          schema:
            $ref: '#/definitions/eventDates'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\eventDates?order=date,-available_slots`
            will sort results by date ASC, available_slots DESC
          enum:
            - date
            - available_slots
            - event_id
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:datesCollection:available'
        - $ref: '#/parameters/trait:datesCollection:start_date'
        - $ref: '#/parameters/trait:datesCollection:end_date'
        - $ref: '#/parameters/trait:datesCollection:accept_vendors'
        - $ref: '#/parameters/trait:datesCollection:exclude_vendors'
        - $ref: '#/parameters/trait:datesCollection:accept_events'
        - $ref: '#/parameters/trait:datesCollection:exclude_events'
        - $ref: '#/parameters/trait:datesCollection:category'
        - $ref: '#/parameters/trait:datesCollection:geolocation'
        - $ref: '#/parameters/trait:collection:delta_since'
        - $ref: '#/parameters/trait:datesCollection:ignore_latest_booking_time'
  /orders:
    get:
      operationId: List orders
      tags:
        - Order
      responses:
        default:
          description: >-
            Returns a response containing a list of all orders across all
            accessible vendors. The response includes comprehensive order
            details such as customer information, purchased items, payment
            status, and booking details. This endpoint allows you to view and
            manage all transactions across the platform, with powerful filtering
            and sorting capabilities.
      parameters:
        - description: >
            Use -/+ in front of the attribute to specify the soriting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `\orders?order=vendor,-date`
            will sort results by vendor ASC, date desc
          enum:
            - name
            - date
            - vendor_id
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:ordersCollection:match'
        - $ref: '#/parameters/trait:ordersCollection:start_date'
        - $ref: '#/parameters/trait:ordersCollection:end_date'
        - $ref: '#/parameters/trait:ordersCollection:start_event_date'
        - $ref: '#/parameters/trait:ordersCollection:end_event_date'
        - $ref: '#/parameters/trait:ordersCollection:status'
        - $ref: '#/parameters/trait:ordersCollection:accept_external_reference'
        - $ref: '#/parameters/trait:ordersCollection:accept_code'
        - $ref: '#/parameters/trait:ordersCollection:accept_dates'
        - $ref: '#/parameters/trait:collection:delta_since'
    post:
      description: Create a new "order" item
      operationId: Create an order
      tags:
        - Order
      responses:
        '201':
          description: Successfully item creation
          schema:
            $ref: '#/definitions/order'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/order'
          in: body
          name: body
  /orders/{id}:
    patch:
      description: Update an existing "order" item
      operationId: Update an order
      tags:
        - Order
      responses:
        '200':
          description: Successfully item update
          schema:
            $ref: '#/definitions/order'
        '400':
          $ref: '#/responses/trait:patchRequest:400'
        '401':
          $ref: '#/responses/trait:patchRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/order_patch'
          in: body
          name: body
    get:
      operationId: Retrieve an order
      tags:
        - Order
      responses:
        '200':
          description: >-
            Returns a successful response containing detailed information about
            a specific order. The response includes comprehensive order details
            such as customer information, contact details, purchased items
            (tickets, products), payment status, booking details, and any
            special requirements. This provides a complete view of a particular
            transaction, allowing you to access all relevant information about
            the booking.
          schema:
            $ref: '#/definitions/order'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /orders/{id}/payments:
    get:
      description: >-
        Retrieve a list of all payment transactions for a specific order. This
        endpoint returns both incoming payments and refunds associated with the
        order. Each payment includes details about the payment method, amount,
        date, and any related vouchers or orders.
      operationId: List payments of an order
      tags:
        - Payment
      responses:
        '200':
          description: >-
            Returns a successful response containing a list of all payment
            transactions associated with the specified order. The response
            includes detailed payment information such as payment amounts,
            methods, timestamps, transaction IDs, and payment status. Both
            incoming payments (positive values) and refunds (negative values)
            are included, providing a complete financial history of the order
            and allowing you to track all monetary transactions related to this
            booking.
          schema:
            $ref: '#/definitions/payments'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
    post:
      description: >-
        Create a new payment transaction for an order. This endpoint allows you
        to record incoming payments or refunds. Note that related_items (orders
        and vouchers) cannot be posted when creating payments - they are
        automatically managed by the system.
      operationId: Create payment for an order
      tags:
        - Payment
      responses:
        '200':
          description: Payment successfully created
          schema:
            $ref: '#/definitions/payment_response'
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/payments_post'
          in: body
          name: body
    parameters:
      - type: string
        in: path
        name: id
        description: Order identifier
        required: true
  /orders/{id}/tickets:
    get:
      description: >-
        Retrieve a list of all tickets associated with a specific order. This
        endpoint returns all tickets that belong to the order, including their
        status, participant information, and booking details. Tickets represent
        individual bookings for events and can contain multiple participants.
      operationId: List tickets of an order
      tags:
        - Ticket
      responses:
        '200':
          description: List of tickets successfully retrieved
          schema:
            $ref: '#/definitions/tickets'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Order not found
          schema:
            $ref: '#/definitions/error'
      parameters:
        - $ref: '#/parameters/trait:ticketsCollection:accept_code'
        - $ref: '#/parameters/trait:ticketsCollection:exclude_code'
    parameters:
      - type: string
        in: path
        name: id
        description: Order identifier
        required: true
  /orders/{id}/tickets/{ticket_id}:
    get:
      description: >-
        Retrieve detailed information about a specific ticket within an order.
        This endpoint returns complete ticket details including participant
        information, booking status, and any associated metadata.
      operationId: Retrieve ticket of an order
      tags:
        - Ticket
      responses:
        '200':
          description: Ticket details successfully retrieved
          schema:
            $ref: '#/definitions/ticket'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Ticket or order not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        description: Order identifier
        required: true
      - type: string
        in: path
        name: ticket_id
        description: Ticket identifier
        required: true
  /orders/{id}/tickets/{ticket_id}/participant_tickets:
    get:
      description: >-
        Retrieve a list of all participants associated with a specific ticket.
        This endpoint returns individual participant details including their
        personal information, booking status, and any special requirements or
        notes.
      operationId: List participants of a ticket
      tags:
        - Ticket
      responses:
        '200':
          description: List of participants successfully retrieved
          schema:
            $ref: '#/definitions/participant_tickets'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Ticket or order not found
          schema:
            $ref: '#/definitions/error'
      parameters:
        - $ref: '#/parameters/trait:ticketsCollection:accept_code'
        - $ref: '#/parameters/trait:ticketsCollection:exclude_code'
    parameters:
      - type: string
        in: path
        name: id
        description: Order identifier
        required: true
      - type: string
        in: path
        name: ticket_id
        description: Ticket identifier
        required: true
  /orders/{id}/tickets/{ticket_id}/participant_tickets/{participant_ticket_id}:
    get:
      description: >-
        Retrieve detailed information about a specific participant within a
        ticket. This endpoint returns individual participant details including
        personal information, booking status, and any special requirements.
      operationId: Retrieve a participant of a ticket
      tags:
        - Participant
      responses:
        '200':
          description: Participant details successfully retrieved
          schema:
            $ref: '#/definitions/participant_ticket'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Participant, ticket, or order not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        description: Order identifier
        required: true
      - type: string
        in: path
        name: ticket_id
        description: Ticket identifier
        required: true
      - type: string
        in: path
        name: participant_ticket_id
        description: Participant identifier
        required: true
  /participant_tickets:
    get:
      description: >-
        Retrieve a list of all participants across all tickets. This endpoint
        returns participant information including personal details, booking
        status, and any special requirements. Use filtering parameters to narrow
        down results.
      operationId: List participants
      tags:
        - Participant
      responses:
        '200':
          description: List of participants successfully retrieved
          schema:
            $ref: '#/definitions/participant_tickets'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - $ref: '#/parameters/trait:ticketsCollection:accept_code'
        - $ref: '#/parameters/trait:ticketsCollection:exclude_code'
  /open_date_tickets/{code}:
    get:
      operationId: Retrieve an open date ticket
      tags:
        - Open Date Ticket
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/open_date_ticket'
          examples:
            application/json:
              id: 2005cef0597aac12c83162c9a48104f8
              code: SCQ99-KABA4-YZBZG
              status: ACCEPTED
              customer_name: John Smith
              customer_email: john.smith@example.com
              customer_phone: +49 30 1234567
              customer_language: en
              price_value: '49.99'
              price_title: Premium Experience Package
              currency: EUR
              event_id: 8f9f810d91b7323a7a433d303b80cc77
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: code
        required: true
        description: Ticket Code
  /open_date_tickets/{id}/redeem:
    post:
      operationId: Redeem an open date ticket
      tags:
        - Open Date Ticket
      responses:
        '201':
          description: ''
        '400':
          $ref: '#/responses/trait:createRequest:400'
        '401':
          $ref: '#/responses/trait:createRequest:401'
      parameters:
        - schema:
            $ref: '#/definitions/open_date_ticket_redemption_request'
          in: body
          name: body
    get:
      operationId: Check Open Date Ticket redemption
      tags:
        - Open Date Ticket
      responses:
        '200':
          description: ''
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /categories:
    get:
      description: |
        Get all events categories
      operationId: List categories
      tags:
        - Category
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/categories'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >-
            Use -/+ in front of the attribute to specify the soriting direction
            (descending / ascending). If no modifier is provided, default
            sorting direction is ascending.
          example: '-title'
          type: string
          in: query
          name: order
          required: false
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
        - $ref: '#/parameters/trait:categoriesCollection:match'
  /categories/{id}:
    get:
      operationId: Retrieve a category
      tags:
        - Category
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/category'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /users:
    get:
      description: Get a list of all users
      operationId: List users
      tags:
        - User
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/users'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
  /users/{id}:
    get:
      description: Retrieve a specific user by ID
      operationId: Retrieve a user
      tags:
        - User
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/user'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /vouchers:
    get:
      description: >-
        Retrieve a list of all vouchers available for the authenticated vendor.
        This endpoint returns all vouchers that can be purchased by customers or
        used as payment methods. Vouchers can be used as gift cards, promotional
        credits, or flexible payment options. Use the filtering parameters to
        paginate through large collections of vouchers.
      operationId: List vouchers
      tags:
        - Voucher
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/vouchers'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
  /vouchers/{id}:
    get:
      description: >-
        Retrieve detailed information about a specific voucher by its unique
        identifier. This endpoint returns the complete voucher details including
        its title, code, and other properties.
      operationId: Retrieve a voucher
      tags:
        - Voucher
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/voucher'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /coupons:
    get:
      description: >-
        Retrieve a list of all promotional coupons available for the
        authenticated vendor. This endpoint returns all coupons that can be used
        by customers during the booking process. Use the filtering parameters to
        paginate through large collections of coupons.
      operationId: List coupons
      tags:
        - Coupon
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/coupons'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - $ref: '#/parameters/trait:filterableCollection:limit'
        - $ref: '#/parameters/trait:filterableCollection:offset'
        - $ref: '#/parameters/trait:filterableCollection:accept'
        - $ref: '#/parameters/trait:filterableCollection:exclude'
        - $ref: '#/parameters/trait:filterableCollection:fields'
        - $ref: '#/parameters/trait:filterableCollection:with_count'
  /coupons/{id}:
    get:
      description: >-
        Retrieve detailed information about a specific promotional coupon by its
        unique identifier. This endpoint returns the complete coupon details
        including its title, code, and other properties.
      operationId: Retrieve a coupon
      tags:
        - Coupon
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/coupon'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
  /flex_offers:
    get:
      description: Returns a list of flex offers you have access to.
      operationId: List flex offers
      tags:
        - Flex Offer
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/flex_offers'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
      parameters:
        - description: >-
            Filter by vendor identifier(s). Accepts a single id or a comma
            separated list of ids. Only applicable for marketplace tokens.
          type: string
          in: query
          name: vendor_id
          required: false
        - description: >-
            Filter by event identifier(s). Accepts a single id or a comma
            separated list of ids.
          type: string
          in: query
          name: event_id
          required: false
        - description: Filter by active state (1 = active, 0 = inactive).
          type: integer
          enum:
            - 0
            - 1
          in: query
          name: active
          required: false
        - description: >-
            Use -/+ in front of the attribute to specify the sorting direction
            (DESC / ASC)

            if no modifier is provided default is +

            multiple values MAY be provided comma separated

            example:
              `flex_offers?order=-created_at,title`
            will sort results by created_at DESC, title ASC
          enum:
            - title
            - active
            - start_date
            - end_date
            - created_at
            - vendor_id
            - event_id
          type: string
          in: query
          name: order
          required: false
        - type: string
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
          description: >-
            Return flex offers with start_date later or equal to this date
            (YYYY-MM-DDThh:mm:ssZ, UTC)
          in: query
          name: available_from
          required: false
        - type: string
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
          description: >-
            Return flex offers with end_date earlier or equal to this date
            (YYYY-MM-DDThh:mm:ssZ, UTC)
          in: query
          name: available_until
          required: false
        - type: string
          description: >-
            Only return items changed since this date (YYYY-MM-DDThh:mm:ssZ,
            UTC)
          pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
          in: query
          name: delta_since
          required: false
  /flex_offers/{id}:
    get:
      description: Retrieve a single flex offer by providing the identifier.
      operationId: Retrieve a flex offer
      tags:
        - Flex Offer
      responses:
        '200':
          description: ''
          schema:
            $ref: '#/definitions/flex_offer'
        '400':
          description: Your request is malformed – see error message for details.
          schema:
            $ref: '#/definitions/error'
        '401':
          description: You are not authorized to make this request
          schema:
            $ref: '#/definitions/error'
        '404':
          description: Resource not found
          schema:
            $ref: '#/definitions/error'
    parameters:
      - type: string
        in: path
        name: id
        required: true
