Bookings

Booking Reservation

Booking Reservation

post

Reserving availability when making a booking. The steps to make a reservation are:

  1. Check Availability: Check the availability on the /availability endpoint to retrieve an availabilityId

  2. Booking Reservation (this step): Create a booking that reserves the availability while you collect payment and contact information from the customer. The booking will remain with status ON_HOLD until the booking is confirmed or the reservation hold expires.

The availability for the booking is held for the amount of time equal to theexpirationMinutes parameter (if provided), up to an internal limit set by either the supplier or the OCTo provider. The utc_expires_at parameter in the response object will indicate when a reservtion will expire. A reservation can be extended by calling the /bookings/{uuid}/extend endpoint.

A reserved booking can be confirmed after the customer finalizes their choice on the /bookings/{uuid}/confirm endpoint provided the reservation had not expired.

Authorizations
Header parameters
Octo-CapabilitiesstringRequired

A list of the Capabilities (their IDs) initialized with your request.

Accept-LanguagestringOptional

This optional request header allows to specify preferred languages for content in the response. A language code that specifies the language of the product content. This code must conform to the BCP 47 standard, following RFC 5646 and RFC 4647 specifications for language tags. Examples include en-US for American English, fr-FR for French (France), and es-ES for Spanish (Spain). This header supports a comma-separated list of language tags with optional quality values (q) to indicate priority, such as en-US, fr-CA;q=0.8, fr;q=0.7, which prioritizes U.S. English, followed by Canadian French, and general French. This header is defined in the HTTP/1.1 specification (RFC 7231) and is commonly used for internationalized websites and services to enhance user experience. For more details, visit MDN Web Docs: Accept-Language - HTTP | MDN. Note this only determines preference and does not guarantee location has content available in the desired language.

Body
uuidstring · uuidOptional

A unique UUID to identify the booking. Setting this value acts like an idempotency key preventing you from double booking.

Example: 559aed3d-6d5b-4fe0-bfca-99f5e7218a56
productIdstringRequired

The product ID for this booking.

Example: 6b903d44-dc24-4ca4-ae71-6bde6c4f4854
optionIdstringRequired

The option ID for this booking.

Example: DEFAULT
availabilityIdstringOptional

The availability ID for the selected timeslot.

Example: 2022-05-23T00:00:00+01:00
expirationMinutesintegerOptional

How many minutes to reserve the availability, otherwise defaults to the supplier default amount.

Example: 30
notesstringOptional

Optional notes for the booking.

Example: Optional notes
currencystringOptional

Can be used only when pricing capability is used.

Example: USD
Responses
200

The request has succeeded.

application/json
post
POST /api/octo/bookings/ HTTP/1.1
Host: localhost:8080
Authorization: Bearer YOUR_SECRET_TOKEN
Octo-Capabilities: text
Content-Type: application/json
Accept: */*
Content-Length: 326

{
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "optionId": "DEFAULT",
  "availabilityId": "2022-05-23T00:00:00+01:00",
  "notes": "Optional notes",
  "unitItems": [
    {
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
    },
    {
      "unitId": "child_797e3ce8-1860-4cbf-80ad-95857df1f640"
    },
    {
      "unitId": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640"
    }
  ]
}
{
  "id": "bbbb6227-54fc-4c32-9ed7-dc3eb99966ea",
  "uuid": "559aed3d-6d5b-4fe0-bfca-99f5e7218a56",
  "testMode": false,
  "resellerReference": null,
  "supplierReference": "XOPSUT",
  "status": "ON_HOLD",
  "utcCreatedAt": "2022-05-25T10:34:22Z",
  "utcUpdatedAt": "2022-05-25T10:34:22Z",
  "utcExpiresAt": "2022-05-25T11:04:22Z",
  "utcRedeemedAt": null,
  "utcConfirmedAt": null,
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "product": {
    "id": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
    "internalName": "London Eye General Admission",
    "reference": "LEYE-GA",
    "locale": "en-GB",
    "timeZone": "Europe/London",
    "allowFreesale": true,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "START_TIME",
    "deliveryFormats": [
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "1 hour",
        "cancellationCutoffAmount": 1,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [
          "firstName"
        ],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": 9
        },
        "units": [
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Adult",
            "reference": null,
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Child",
            "reference": null,
            "type": "CHILD",
            "restrictions": {
              "minAge": 3,
              "maxAge": 12,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Infant",
            "reference": null,
            "type": "INFANT",
            "restrictions": {
              "minAge": 0,
              "maxAge": 3,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": [
                "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
              ]
            },
            "requiredContactFields": [
              "firstName"
            ]
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "1 hour",
    "cancellationCutoffAmount": 1,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [
      "firstName"
    ],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": 9
    },
    "units": [
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "",
  "availability": {
    "id": "2022-05-23T00:00:00+01:00",
    "localDateTimeStart": "2022-05-23T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-24T00:00:00+01:00",
    "utcCutoffAt": "2022-05-22T23:00:00Z",
    "allDay": false,
    "available": true,
    "status": "AVAILABLE",
    "vacancies": 10,
    "capacity": 10,
    "maxUnits": null,
    "openingHours": [
      {
        "from": "08:00",
        "to": "16:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "",
    "locales": [
      "en"
    ],
    "postalCode": "",
    "country": "",
    "notes": ""
  },
  "notes": "Optional notes for the booking",
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": null,
  "unitItems": [
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33a",
      "supplierReference": "K9T7R4",
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": null
    },
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33b",
      "supplierReference": "K9T7R5",
      "unitId": "child_797e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": null
    },
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33c",
      "supplierReference": "K9T7R6",
      "unitId": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": null
    }
  ]
}

Booking Confirmation

Booking Confirmation

post

This endpoint confirms the booking so it's ready to be used.

Authorizations
Path parameters
uuidstringRequired

The UUID of the booking

Header parameters
Octo-CapabilitiesstringRequired

A list of the Capabilities (their IDs) initialized with your request.

Accept-LanguagestringOptional

This optional request header allows to specify preferred languages for content in the response. A language code that specifies the language of the product content. This code must conform to the BCP 47 standard, following RFC 5646 and RFC 4647 specifications for language tags. Examples include en-US for American English, fr-FR for French (France), and es-ES for Spanish (Spain). This header supports a comma-separated list of language tags with optional quality values (q) to indicate priority, such as en-US, fr-CA;q=0.8, fr;q=0.7, which prioritizes U.S. English, followed by Canadian French, and general French. This header is defined in the HTTP/1.1 specification (RFC 7231) and is commonly used for internationalized websites and services to enhance user experience. For more details, visit MDN Web Docs: Accept-Language - HTTP | MDN. Note this only determines preference and does not guarantee location has content available in the desired language.

Body
emailReceiptbooleanOptional

Whether you want OCTO Cloud to email the guest a copy of their receipt and tickets. (defaults to false)

Example: true
resellerReferencestringOptional

Your reference for this booking. Also known as a Voucher Number.

Example: VOUCHER-0123
contactall ofRequired

Contact details for the main guest who will attend the tour/attraction. Contact BODY can be applied to both the booking object (the main reservation) or the unit object (individual ticket holders - if the supplier requires this information).

Example: {"fullName":"John Doe","firstName":"John","lastName":"Doe","emailAddress":"[email protected]","phoneNumber":"+447840739436","locales":["en","en-GB","en-US"],"country":"GB"}
Responses
200

The request has succeeded.

application/json
post
POST /api/octo/bookings/{uuid}/confirm HTTP/1.1
Host: localhost:8080
Authorization: Bearer YOUR_SECRET_TOKEN
Octo-Capabilities: text
Content-Type: application/json
Accept: */*
Content-Length: 219

{
  "resellerReference": "VOUCHER-0123",
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "+447840739436",
    "locales": [
      "en",
      "en-GB",
      "en-US"
    ],
    "country": "GB"
  }
}
{
  "id": "bbbb6227-54fc-4c32-9ed7-dc3eb99966ea",
  "uuid": "559aed3d-6d5b-4fe0-bfca-99f5e7218a56",
  "testMode": false,
  "resellerReference": null,
  "supplierReference": "XOPSUT",
  "status": "CONFIRMED",
  "utcCreatedAt": "2022-05-25T10:34:22Z",
  "utcUpdatedAt": "2022-05-25T10:34:22Z",
  "utcExpiresAt": null,
  "utcRedeemedAt": null,
  "utcConfirmedAt": "2022-05-25T11:00:22Z",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "product": {
    "id": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
    "internalName": "London Eye General Admission",
    "reference": "LEYE-GA",
    "locale": "en-GB",
    "timeZone": "Europe/London",
    "allowFreesale": true,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "START_TIME",
    "deliveryFormats": [
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "1 hour",
        "cancellationCutoffAmount": 1,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [
          "firstName"
        ],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": 9
        },
        "units": [
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Adult",
            "reference": null,
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Child",
            "reference": null,
            "type": "CHILD",
            "restrictions": {
              "minAge": 3,
              "maxAge": 12,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Infant",
            "reference": null,
            "type": "INFANT",
            "restrictions": {
              "minAge": 0,
              "maxAge": 3,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": [
                "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
              ]
            },
            "requiredContactFields": [
              "firstName"
            ]
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "1 hour",
    "cancellationCutoffAmount": 1,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [
      "firstName"
    ],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": 9
    },
    "units": [
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "",
  "availability": {
    "id": "2022-05-23T00:00:00+01:00",
    "localDateTimeStart": "2022-05-23T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-24T00:00:00+01:00",
    "utcCutoffAt": "2022-05-22T23:00:00Z",
    "allDay": false,
    "available": true,
    "status": "AVAILABLE",
    "vacancies": 10,
    "capacity": 10,
    "maxUnits": null,
    "openingHours": [
      {
        "from": "08:00",
        "to": "16:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "",
    "locales": [
      "en"
    ],
    "postalCode": "",
    "country": "",
    "notes": ""
  },
  "notes": "Optional notes for the booking",
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": "2021-10-27T23:28:43Z",
    "deliveryOptions": [
      {
        "deliveryFormat": "QRCODE",
        "deliveryValue": ""
      }
    ]
  },
  "unitItems": [
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33a",
      "supplierReference": "K9T7R4",
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    },
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33b",
      "supplierReference": "K9T7R5",
      "unitId": "child_797e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "CONFIRMED",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    },
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33c",
      "supplierReference": "K9T7R6",
      "unitId": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "CONFIRMED",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    }
  ]
}

Booking Cancellation

Booking Cancellation

post

For cancelling bookings. You can only cancel a booking if booking.cancellable is TRUE, and is within the booking cancellation cut-off window.

Authorizations
Path parameters
uuidstringRequired

The UUID of the booking

Header parameters
Octo-CapabilitiesstringRequired

A list of the Capabilities (their IDs) initialized with your request.

Accept-LanguagestringOptional

This optional request header allows to specify preferred languages for content in the response. A language code that specifies the language of the product content. This code must conform to the BCP 47 standard, following RFC 5646 and RFC 4647 specifications for language tags. Examples include en-US for American English, fr-FR for French (France), and es-ES for Spanish (Spain). This header supports a comma-separated list of language tags with optional quality values (q) to indicate priority, such as en-US, fr-CA;q=0.8, fr;q=0.7, which prioritizes U.S. English, followed by Canadian French, and general French. This header is defined in the HTTP/1.1 specification (RFC 7231) and is commonly used for internationalized websites and services to enhance user experience. For more details, visit MDN Web Docs: Accept-Language - HTTP | MDN. Note this only determines preference and does not guarantee location has content available in the desired language.

Body
reasonstringOptional

A text value describing why the cancellation happened.

Example: Whether you want OCTO Cloud to email the guest a copy of their receipt and tickets. (defaults to false)
forcebooleanOptional

Whether you want OCTO Cloud to email the guest a copy of their receipt and tickets. (defaults to false)

Example: false
Responses
200

The request has succeeded.

application/json
post
POST /api/octo/bookings/{uuid}/cancel HTTP/1.1
Host: localhost:8080
Authorization: Bearer YOUR_SECRET_TOKEN
Octo-Capabilities: text
Content-Type: application/json
Accept: */*
Content-Length: 31

{
  "reason": "this product sucks"
}
{
  "id": "bbbb6227-54fc-4c32-9ed7-dc3eb99966ea",
  "uuid": "559aed3d-6d5b-4fe0-bfca-99f5e7218a56",
  "testMode": false,
  "resellerReference": null,
  "supplierReference": "XOPSUT",
  "status": "CANCELLED",
  "utcCreatedAt": "2022-05-25T10:34:22Z",
  "utcUpdatedAt": "2022-05-25T10:34:22Z",
  "utcExpiresAt": null,
  "utcRedeemedAt": null,
  "utcConfirmedAt": "2022-05-25T11:00:22Z",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "product": {
    "id": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
    "internalName": "London Eye General Admission",
    "reference": "LEYE-GA",
    "locale": "en-GB",
    "timeZone": "Europe/London",
    "allowFreesale": true,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "START_TIME",
    "deliveryFormats": [
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "1 hour",
        "cancellationCutoffAmount": 1,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [
          "firstName"
        ],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": 9
        },
        "units": [
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Adult",
            "reference": null,
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Child",
            "reference": null,
            "type": "CHILD",
            "restrictions": {
              "minAge": 3,
              "maxAge": 12,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Infant",
            "reference": null,
            "type": "INFANT",
            "restrictions": {
              "minAge": 0,
              "maxAge": 3,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": [
                "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
              ]
            },
            "requiredContactFields": [
              "firstName"
            ]
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "1 hour",
    "cancellationCutoffAmount": 1,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [
      "firstName"
    ],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": 9
    },
    "units": [
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      }
    ]
  },
  "cancellable": false,
  "cancellation": {
    "refund": "FULL",
    "reason": "this product sucks",
    "utcCancelledAt": "2022-05-25T11:00:22Z"
  },
  "freesale": false,
  "availabilityId": "",
  "availability": {
    "id": "2022-05-23T00:00:00+01:00",
    "localDateTimeStart": "2022-05-23T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-24T00:00:00+01:00",
    "utcCutoffAt": "2022-05-22T23:00:00Z",
    "allDay": false,
    "available": true,
    "status": "AVAILABLE",
    "vacancies": 10,
    "capacity": 10,
    "maxUnits": null,
    "openingHours": [
      {
        "from": "08:00",
        "to": "16:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "",
    "locales": [
      "en"
    ],
    "postalCode": "",
    "country": "",
    "notes": ""
  },
  "notes": "Optional notes for the booking",
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": null,
  "unitItems": []
}

Get Bookings

Get Booking

get

Fetch the status of an existing booking.

Authorizations
Path parameters
uuidstringRequired

The UUID of the booking

Header parameters
Octo-CapabilitiesstringRequired

A list of the Capabilities (their IDs) initialized with your request.

Accept-LanguagestringOptional

This optional request header allows to specify preferred languages for content in the response. A language code that specifies the language of the product content. This code must conform to the BCP 47 standard, following RFC 5646 and RFC 4647 specifications for language tags. Examples include en-US for American English, fr-FR for French (France), and es-ES for Spanish (Spain). This header supports a comma-separated list of language tags with optional quality values (q) to indicate priority, such as en-US, fr-CA;q=0.8, fr;q=0.7, which prioritizes U.S. English, followed by Canadian French, and general French. This header is defined in the HTTP/1.1 specification (RFC 7231) and is commonly used for internationalized websites and services to enhance user experience. For more details, visit MDN Web Docs: Accept-Language - HTTP | MDN. Note this only determines preference and does not guarantee location has content available in the desired language.

Responses
200

The request has succeeded.

application/json
get
GET /api/octo/bookings/{uuid} HTTP/1.1
Host: localhost:8080
Authorization: Bearer YOUR_SECRET_TOKEN
Octo-Capabilities: text
Accept: */*
{
  "id": "bbbb6227-54fc-4c32-9ed7-dc3eb99966ea",
  "uuid": "559aed3d-6d5b-4fe0-bfca-99f5e7218a56",
  "testMode": false,
  "resellerReference": null,
  "supplierReference": "XOPSUT",
  "status": "CONFIRMED",
  "utcCreatedAt": "2022-05-25T10:34:22Z",
  "utcUpdatedAt": "2022-05-25T10:34:22Z",
  "utcExpiresAt": null,
  "utcRedeemedAt": null,
  "utcConfirmedAt": "2022-05-25T11:00:22Z",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "product": {
    "id": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
    "internalName": "London Eye General Admission",
    "reference": "LEYE-GA",
    "locale": "en-GB",
    "timeZone": "Europe/London",
    "allowFreesale": true,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "START_TIME",
    "deliveryFormats": [
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "1 hour",
        "cancellationCutoffAmount": 1,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [
          "firstName"
        ],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": 9
        },
        "units": [
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Adult",
            "reference": null,
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Child",
            "reference": null,
            "type": "CHILD",
            "restrictions": {
              "minAge": 3,
              "maxAge": 12,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Infant",
            "reference": null,
            "type": "INFANT",
            "restrictions": {
              "minAge": 0,
              "maxAge": 3,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": [
                "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
              ]
            },
            "requiredContactFields": [
              "firstName"
            ]
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "1 hour",
    "cancellationCutoffAmount": 1,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [
      "firstName"
    ],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": 9
    },
    "units": [
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "",
  "availability": {
    "id": "2022-05-23T00:00:00+01:00",
    "localDateTimeStart": "2022-05-23T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-24T00:00:00+01:00",
    "utcCutoffAt": "2022-05-22T23:00:00Z",
    "allDay": false,
    "available": true,
    "status": "AVAILABLE",
    "vacancies": 10,
    "capacity": 10,
    "maxUnits": null,
    "openingHours": [
      {
        "from": "08:00",
        "to": "16:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "",
    "locales": [
      "en"
    ],
    "postalCode": "",
    "country": "",
    "notes": ""
  },
  "notes": "Optional notes for the booking",
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": "2021-10-27T23:28:43Z",
    "deliveryOptions": [
      {
        "deliveryFormat": "QRCODE",
        "deliveryValue": ""
      }
    ]
  },
  "unitItems": [
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33a",
      "supplierReference": "K9T7R4",
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    },
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33b",
      "supplierReference": "K9T7R5",
      "unitId": "child_797e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "CONFIRMED",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    },
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33c",
      "supplierReference": "K9T7R6",
      "unitId": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "CONFIRMED",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    }
  ]
}

Get Booking

Get Booking

get

Fetch the status of an existing booking.

Authorizations
Path parameters
uuidstringRequired

The UUID of the booking

Header parameters
Octo-CapabilitiesstringRequired

A list of the Capabilities (their IDs) initialized with your request.

Accept-LanguagestringOptional

This optional request header allows to specify preferred languages for content in the response. A language code that specifies the language of the product content. This code must conform to the BCP 47 standard, following RFC 5646 and RFC 4647 specifications for language tags. Examples include en-US for American English, fr-FR for French (France), and es-ES for Spanish (Spain). This header supports a comma-separated list of language tags with optional quality values (q) to indicate priority, such as en-US, fr-CA;q=0.8, fr;q=0.7, which prioritizes U.S. English, followed by Canadian French, and general French. This header is defined in the HTTP/1.1 specification (RFC 7231) and is commonly used for internationalized websites and services to enhance user experience. For more details, visit MDN Web Docs: Accept-Language - HTTP | MDN. Note this only determines preference and does not guarantee location has content available in the desired language.

Responses
200

The request has succeeded.

application/json
get
GET /api/octo/bookings/{uuid} HTTP/1.1
Host: localhost:8080
Authorization: Bearer YOUR_SECRET_TOKEN
Octo-Capabilities: text
Accept: */*
{
  "id": "bbbb6227-54fc-4c32-9ed7-dc3eb99966ea",
  "uuid": "559aed3d-6d5b-4fe0-bfca-99f5e7218a56",
  "testMode": false,
  "resellerReference": null,
  "supplierReference": "XOPSUT",
  "status": "CONFIRMED",
  "utcCreatedAt": "2022-05-25T10:34:22Z",
  "utcUpdatedAt": "2022-05-25T10:34:22Z",
  "utcExpiresAt": null,
  "utcRedeemedAt": null,
  "utcConfirmedAt": "2022-05-25T11:00:22Z",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "product": {
    "id": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
    "internalName": "London Eye General Admission",
    "reference": "LEYE-GA",
    "locale": "en-GB",
    "timeZone": "Europe/London",
    "allowFreesale": true,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "START_TIME",
    "deliveryFormats": [
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "1 hour",
        "cancellationCutoffAmount": 1,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [
          "firstName"
        ],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": 9
        },
        "units": [
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Adult",
            "reference": null,
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Child",
            "reference": null,
            "type": "CHILD",
            "restrictions": {
              "minAge": 3,
              "maxAge": 12,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Infant",
            "reference": null,
            "type": "INFANT",
            "restrictions": {
              "minAge": 0,
              "maxAge": 3,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": [
                "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
              ]
            },
            "requiredContactFields": [
              "firstName"
            ]
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "1 hour",
    "cancellationCutoffAmount": 1,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [
      "firstName"
    ],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": 9
    },
    "units": [
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "",
  "availability": {
    "id": "2022-05-23T00:00:00+01:00",
    "localDateTimeStart": "2022-05-23T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-24T00:00:00+01:00",
    "utcCutoffAt": "2022-05-22T23:00:00Z",
    "allDay": false,
    "available": true,
    "status": "AVAILABLE",
    "vacancies": 10,
    "capacity": 10,
    "maxUnits": null,
    "openingHours": [
      {
        "from": "08:00",
        "to": "16:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "",
    "locales": [
      "en"
    ],
    "postalCode": "",
    "country": "",
    "notes": ""
  },
  "notes": "Optional notes for the booking",
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": "2021-10-27T23:28:43Z",
    "deliveryOptions": [
      {
        "deliveryFormat": "QRCODE",
        "deliveryValue": ""
      }
    ]
  },
  "unitItems": [
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33a",
      "supplierReference": "K9T7R4",
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    },
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33b",
      "supplierReference": "K9T7R5",
      "unitId": "child_797e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "CONFIRMED",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    },
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33c",
      "supplierReference": "K9T7R6",
      "unitId": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "CONFIRMED",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": "2021-10-27T23:28:43Z",
        "deliveryOptions": [
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": ""
          }
        ]
      }
    }
  ]
}

Booking Update

Booking Update

patch

Updates a booking before and after it has been confirmed as long as it hasn''t been redeemed or within the cancellation cutoff window. To know if the booking can be updated check the booking''s cancellable field. If the booking can be cancelled, it can also be updated. It''s generally preferred to update a booking rather than cancelling it and rebooking

Authorizations
Path parameters
uuidstringRequired

The UUID of the booking

Header parameters
Octo-CapabilitiesstringRequired

A list of the Capabilities (their IDs) initialized with your request.

Accept-LanguagestringOptional

This optional request header allows to specify preferred languages for content in the response. A language code that specifies the language of the product content. This code must conform to the BCP 47 standard, following RFC 5646 and RFC 4647 specifications for language tags. Examples include en-US for American English, fr-FR for French (France), and es-ES for Spanish (Spain). This header supports a comma-separated list of language tags with optional quality values (q) to indicate priority, such as en-US, fr-CA;q=0.8, fr;q=0.7, which prioritizes U.S. English, followed by Canadian French, and general French. This header is defined in the HTTP/1.1 specification (RFC 7231) and is commonly used for internationalized websites and services to enhance user experience. For more details, visit MDN Web Docs: Accept-Language - HTTP | MDN. Note this only determines preference and does not guarantee location has content available in the desired language.

Body
resellerReferencestringOptional

Your reference for this booking. Also known as a Voucher Number.

Example: VOUCHER-0123
productIdstringOptional

The product ID.

Example: 6b903d44-dc24-4ca4-ae71-6bde6c4f4854
optionIdstringOptional

The option id.

Example: DEFAULT
availabilityIdstringOptional

The availability ID for the selected timeslot.

Example: 2022-05-23T00:00:00+01:00
expirationMinutesintegerOptional

How many minutes to reserve the availability, otherwise defaults to the supplier default amount.

Example: 15
notesstringOptional

Optional notes for the booking.

Example: Optional notes
emailReceiptbooleanOptional

Whether you want OCTO Cloud to email the guest a copy of their receipt and tickets. (defaults to false).

Example: true
contactall ofOptional

Contact details for the main guest who will attend the tour/attraction. Contact BODY can be applied to both the booking object (the main reservation) or the unit object (individual ticket holders - if the supplier requires this information).

Example: {"fullName":"John Doe","firstName":"John","lastName":"Doe","emailAddress":"[email protected]","phoneNumber":"+447840739436","locales":["en","en-GB","en-US"],"country":"GB"}
Responses
200

The request has succeeded.

application/json
patch
PATCH /api/octo/bookings/{uuid} HTTP/1.1
Host: localhost:8080
Authorization: Bearer YOUR_SECRET_TOKEN
Octo-Capabilities: text
Content-Type: application/json
Accept: */*
Content-Length: 520

{
  "resellerReference": "VOUCHER-0123",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "optionId": "DEFAULT",
  "availabilityId": "2022-05-23T00:00:00+01:00",
  "expirationMinutes": 15,
  "notes": "Optional notes",
  "emailReceipt": true,
  "unitItems": [
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
    }
  ],
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "+447840739436",
    "locales": [
      "en",
      "en-GB",
      "en-US"
    ],
    "country": "GB"
  }
}
{
  "id": "bbbb6227-54fc-4c32-9ed7-dc3eb99966ea",
  "uuid": "559aed3d-6d5b-4fe0-bfca-99f5e7218a56",
  "testMode": false,
  "resellerReference": null,
  "supplierReference": "XOPSUT",
  "status": "CONFIRMED",
  "utcCreatedAt": "2022-05-25T10:34:22Z",
  "utcUpdatedAt": "2022-05-25T10:34:22Z",
  "utcExpiresAt": "2022-05-25T11:04:22Z",
  "utcRedeemedAt": "2022-06-25T10:34:22Z",
  "utcConfirmedAt": "2022-05-25T11:00:22Z",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "product": {
    "id": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
    "internalName": "London Eye General Admission",
    "reference": "LEYE-GA",
    "locale": "en-GB",
    "timeZone": "Europe/London",
    "allowFreesale": true,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "START_TIME",
    "deliveryFormats": [
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "1 hour",
        "cancellationCutoffAmount": 1,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [
          "firstName"
        ],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": 9
        },
        "units": [
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Adult",
            "reference": null,
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Child",
            "reference": null,
            "type": "CHILD",
            "restrictions": {
              "minAge": 3,
              "maxAge": 12,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Infant",
            "reference": null,
            "type": "INFANT",
            "restrictions": {
              "minAge": 0,
              "maxAge": 3,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": [
                "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
              ]
            },
            "requiredContactFields": [
              "firstName"
            ]
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "1 hour",
    "cancellationCutoffAmount": 1,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [
      "firstName"
    ],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": 9
    },
    "units": [
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      }
    ]
  },
  "cancellable": true,
  "cancellation": {
    "refund": "FULL",
    "reason": "this product sucks",
    "utcCancelledAt": "2022-05-25T11:00:22Z"
  },
  "freesale": false,
  "availabilityId": "",
  "availability": {
    "id": "2022-05-23T00:00:00+01:00",
    "localDateTimeStart": "2022-05-23T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-24T00:00:00+01:00",
    "utcCutoffAt": "2022-05-22T23:00:00Z",
    "allDay": false,
    "available": true,
    "status": "AVAILABLE",
    "vacancies": 10,
    "capacity": 10,
    "maxUnits": null,
    "openingHours": [
      {
        "from": "08:00",
        "to": "16:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "",
    "locales": [
      "en"
    ],
    "postalCode": "",
    "country": "",
    "notes": ""
  },
  "notes": "Optional notes for the booking",
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": "2021-10-27T23:28:43Z",
    "deliveryOptions": [
      {
        "deliveryFormat": "QRCODE",
        "deliveryValue": ""
      }
    ]
  },
  "unitItems": [
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33a",
      "supplierReference": "K9T7R4",
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": null
    }
  ],
  "pricing": {
    "original": 2000,
    "retail": 2000,
    "net": 1600,
    "currency": "EUR",
    "currencyPrecision": 2,
    "includedTaxes": []
  }
}

Extend Reservation

Booking Update

patch

Updates a booking before and after it has been confirmed as long as it hasn''t been redeemed or within the cancellation cutoff window. To know if the booking can be updated check the booking''s cancellable field. If the booking can be cancelled, it can also be updated. It''s generally preferred to update a booking rather than cancelling it and rebooking

Authorizations
Path parameters
uuidstringRequired

The UUID of the booking

Header parameters
Octo-CapabilitiesstringRequired

A list of the Capabilities (their IDs) initialized with your request.

Accept-LanguagestringOptional

This optional request header allows to specify preferred languages for content in the response. A language code that specifies the language of the product content. This code must conform to the BCP 47 standard, following RFC 5646 and RFC 4647 specifications for language tags. Examples include en-US for American English, fr-FR for French (France), and es-ES for Spanish (Spain). This header supports a comma-separated list of language tags with optional quality values (q) to indicate priority, such as en-US, fr-CA;q=0.8, fr;q=0.7, which prioritizes U.S. English, followed by Canadian French, and general French. This header is defined in the HTTP/1.1 specification (RFC 7231) and is commonly used for internationalized websites and services to enhance user experience. For more details, visit MDN Web Docs: Accept-Language - HTTP | MDN. Note this only determines preference and does not guarantee location has content available in the desired language.

Body
resellerReferencestringOptional

Your reference for this booking. Also known as a Voucher Number.

Example: VOUCHER-0123
productIdstringOptional

The product ID.

Example: 6b903d44-dc24-4ca4-ae71-6bde6c4f4854
optionIdstringOptional

The option id.

Example: DEFAULT
availabilityIdstringOptional

The availability ID for the selected timeslot.

Example: 2022-05-23T00:00:00+01:00
expirationMinutesintegerOptional

How many minutes to reserve the availability, otherwise defaults to the supplier default amount.

Example: 15
notesstringOptional

Optional notes for the booking.

Example: Optional notes
emailReceiptbooleanOptional

Whether you want OCTO Cloud to email the guest a copy of their receipt and tickets. (defaults to false).

Example: true
contactall ofOptional

Contact details for the main guest who will attend the tour/attraction. Contact BODY can be applied to both the booking object (the main reservation) or the unit object (individual ticket holders - if the supplier requires this information).

Example: {"fullName":"John Doe","firstName":"John","lastName":"Doe","emailAddress":"[email protected]","phoneNumber":"+447840739436","locales":["en","en-GB","en-US"],"country":"GB"}
Responses
200

The request has succeeded.

application/json
patch
PATCH /api/octo/bookings/{uuid} HTTP/1.1
Host: localhost:8080
Authorization: Bearer YOUR_SECRET_TOKEN
Octo-Capabilities: text
Content-Type: application/json
Accept: */*
Content-Length: 520

{
  "resellerReference": "VOUCHER-0123",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "optionId": "DEFAULT",
  "availabilityId": "2022-05-23T00:00:00+01:00",
  "expirationMinutes": 15,
  "notes": "Optional notes",
  "emailReceipt": true,
  "unitItems": [
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
    }
  ],
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "+447840739436",
    "locales": [
      "en",
      "en-GB",
      "en-US"
    ],
    "country": "GB"
  }
}
{
  "id": "bbbb6227-54fc-4c32-9ed7-dc3eb99966ea",
  "uuid": "559aed3d-6d5b-4fe0-bfca-99f5e7218a56",
  "testMode": false,
  "resellerReference": null,
  "supplierReference": "XOPSUT",
  "status": "CONFIRMED",
  "utcCreatedAt": "2022-05-25T10:34:22Z",
  "utcUpdatedAt": "2022-05-25T10:34:22Z",
  "utcExpiresAt": "2022-05-25T11:04:22Z",
  "utcRedeemedAt": "2022-06-25T10:34:22Z",
  "utcConfirmedAt": "2022-05-25T11:00:22Z",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "product": {
    "id": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
    "internalName": "London Eye General Admission",
    "reference": "LEYE-GA",
    "locale": "en-GB",
    "timeZone": "Europe/London",
    "allowFreesale": true,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "START_TIME",
    "deliveryFormats": [
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "1 hour",
        "cancellationCutoffAmount": 1,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [
          "firstName"
        ],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": 9
        },
        "units": [
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Adult",
            "reference": null,
            "type": "ADULT",
            "restrictions": {
              "minAge": 18,
              "maxAge": 99,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Child",
            "reference": null,
            "type": "CHILD",
            "restrictions": {
              "minAge": 3,
              "maxAge": 12,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": []
            },
            "requiredContactFields": [
              "firstName"
            ]
          },
          {
            "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
            "internalName": "Infant",
            "reference": null,
            "type": "INFANT",
            "restrictions": {
              "minAge": 0,
              "maxAge": 3,
              "idRequired": false,
              "minQuantity": 1,
              "maxQuantity": 10,
              "paxCount": 1,
              "accompaniedBy": [
                "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
              ]
            },
            "requiredContactFields": [
              "firstName"
            ]
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "1 hour",
    "cancellationCutoffAmount": 1,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [
      "firstName"
    ],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": 9
    },
    "units": [
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Child",
        "reference": null,
        "type": "CHILD",
        "restrictions": {
          "minAge": 3,
          "maxAge": 12,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      {
        "id": "infant_897e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Infant",
        "reference": null,
        "type": "INFANT",
        "restrictions": {
          "minAge": 0,
          "maxAge": 3,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": [
            "adult_697e3ce8-1860-4cbf-80ad-95857df1f640"
          ]
        },
        "requiredContactFields": [
          "firstName"
        ]
      }
    ]
  },
  "cancellable": true,
  "cancellation": {
    "refund": "FULL",
    "reason": "this product sucks",
    "utcCancelledAt": "2022-05-25T11:00:22Z"
  },
  "freesale": false,
  "availabilityId": "",
  "availability": {
    "id": "2022-05-23T00:00:00+01:00",
    "localDateTimeStart": "2022-05-23T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-24T00:00:00+01:00",
    "utcCutoffAt": "2022-05-22T23:00:00Z",
    "allDay": false,
    "available": true,
    "status": "AVAILABLE",
    "vacancies": 10,
    "capacity": 10,
    "maxUnits": null,
    "openingHours": [
      {
        "from": "08:00",
        "to": "16:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "[email protected]",
    "phoneNumber": "",
    "locales": [
      "en"
    ],
    "postalCode": "",
    "country": "",
    "notes": ""
  },
  "notes": "Optional notes for the booking",
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": "2021-10-27T23:28:43Z",
    "deliveryOptions": [
      {
        "deliveryFormat": "QRCODE",
        "deliveryValue": ""
      }
    ]
  },
  "unitItems": [
    {
      "uuid": "3b1bc2ee-3155-4738-9471-f49842a07327",
      "resellerReference": "4ec08a62-892c-48c1-a608-dc946531a33a",
      "supplierReference": "K9T7R4",
      "unitId": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
      "unit": {
        "id": "adult_697e3ce8-1860-4cbf-80ad-95857df1f640",
        "internalName": "Adult",
        "reference": null,
        "type": "ADULT",
        "restrictions": {
          "minAge": 18,
          "maxAge": 99,
          "idRequired": false,
          "minQuantity": 1,
          "maxQuantity": 10,
          "paxCount": 1,
          "accompaniedBy": []
        },
        "requiredContactFields": [
          "firstName"
        ]
      },
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "[email protected]",
        "phoneNumber": "",
        "locales": [
          "en"
        ],
        "postalCode": "",
        "country": "",
        "notes": ""
      },
      "ticket": null
    }
  ],
  "pricing": {
    "original": 2000,
    "retail": 2000,
    "net": 1600,
    "currency": "EUR",
    "currencyPrecision": 2,
    "includedTaxes": []
  }
}

Last updated

Was this helpful?