OCTO Developer Hub
OCTO WebsiteOpenAPI (Swagger)Become a Member
  • Welcome
  • Getting Started
    • Glossary of Terms
    • Errors
    • Headers
    • Authentication
    • Endpoints & Capabilities
    • Schemas
    • Development Support
  • OCTO API Core
    • Supplier
    • Products
    • Availability
    • Bookings
  • Capabilities (Optional)
    • Pricing
    • Notifications
    • Content
    • Pickups (Proposed Draft)
    • Promotions (Proposed Draft)
  • Additional Resources
    • Validation Tool
    • Postman Collections
    • Known Implementations
Powered by GitBook
On this page

Was this helpful?

  1. OCTO API Core

Bookings

PreviousAvailabilityNextPricing

Last updated 1 year ago

Was this helpful?

Booking Reservation

A reseller has to perform to retrieve an availabilityId in order to make a .

Booking Confirmation

Booking Cancellation

Get Bookings

Get Booking

Booking Update

Extend Reservation

Availability Check
Booking Reservation

Get Bookings

get

This endpoint will fetch the bookings you have made for the given filters.

When using this endpoint you must include one of the following query parameters:

  • resellerReference
  • supplierReference
  • localDate
  • localDateStart and localDateEnd
Authorizations
Query parameters
resellerReferencestringOptional

The reseller reference on the booking

supplierReferencestringOptional

The reference provided by the supplier

localDatestringOptional

All bookings made for a specific date

localDateStartstringOptional

First date of a date range search

localDateEndstringOptional

Last date of a date range search

productIdstringOptional

The product id to filter by

optionIdstringOptional

The option id to filter by

Responses
200
OK
application/json
400
Example response
application/json
get
GET /octo/bookings HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
[
  {
    "id": "3ef65048-5ffe-474f-8a5c-fb35a9faa6ed",
    "uuid": "814d2566-2c71-4e6a-aaa9-59b9bf26cc0d",
    "testMode": true,
    "resellerReference": null,
    "supplierReference": "RNSRSM",
    "status": "CONFIRMED",
    "utcCreatedAt": "2022-05-25T11:07:05Z",
    "utcUpdatedAt": "2022-05-25T11:09:32Z",
    "utcExpiresAt": null,
    "utcRedeemedAt": null,
    "utcConfirmedAt": "2022-05-25T11:09:32Z",
    "productId": "1",
    "product": {
      "id": "1",
      "internalName": "PPU | OH",
      "reference": null,
      "locale": "en",
      "timeZone": "Europe/London",
      "allowFreesale": false,
      "instantConfirmation": true,
      "instantDelivery": true,
      "availabilityRequired": true,
      "availabilityType": "OPENING_HOURS",
      "deliveryFormats": [
        "PDF_URL",
        "QRCODE"
      ],
      "deliveryMethods": [
        "TICKET",
        "VOUCHER"
      ],
      "redemptionMethod": "DIGITAL",
      "options": [
        {
          "id": "DEFAULT",
          "default": true,
          "internalName": "DEFAULT",
          "reference": null,
          "availabilityLocalStartTimes": [
            "00:00"
          ],
          "cancellationCutoff": "0 hours",
          "cancellationCutoffAmount": 0,
          "cancellationCutoffUnit": "hour",
          "requiredContactFields": [],
          "restrictions": {
            "minUnits": 0,
            "maxUnits": null
          },
          "units": [
            {
              "id": "adult",
              "internalName": "adult",
              "reference": "adult",
              "type": "ADULT",
              "requiredContactFields": [],
              "restrictions": {
                "minAge": 18,
                "maxAge": 100,
                "idRequired": false,
                "minQuantity": null,
                "maxQuantity": null,
                "paxCount": 1,
                "accompaniedBy": []
              }
            }
          ]
        }
      ]
    },
    "optionId": "DEFAULT",
    "option": {
      "id": "DEFAULT",
      "default": true,
      "internalName": "DEFAULT",
      "reference": null,
      "availabilityLocalStartTimes": [
        "00:00"
      ],
      "cancellationCutoff": "0 hours",
      "cancellationCutoffAmount": 0,
      "cancellationCutoffUnit": "hour",
      "requiredContactFields": [],
      "restrictions": {
        "minUnits": 0,
        "maxUnits": null
      },
      "units": [
        {
          "id": "adult",
          "internalName": "adult",
          "reference": "adult",
          "type": "ADULT",
          "requiredContactFields": [],
          "restrictions": {
            "minAge": 18,
            "maxAge": 100,
            "idRequired": false,
            "minQuantity": null,
            "maxQuantity": null,
            "paxCount": 1,
            "accompaniedBy": []
          }
        }
      ]
    },
    "cancellable": true,
    "cancellation": null,
    "freesale": false,
    "availabilityId": "2022-04-30T00:00:00+01:00",
    "availability": {
      "id": "2022-04-30T00:00:00+01:00",
      "localDateTimeStart": "2022-04-30T00:00:00+01:00",
      "localDateTimeEnd": "2022-05-01T00:00:00+01:00",
      "allDay": true,
      "openingHours": [
        {
          "from": "09:00",
          "to": "17:00"
        }
      ]
    },
    "contact": {
      "fullName": "John",
      "firstName": "Doe",
      "lastName": null,
      "emailAddress": "john.doe@email.com",
      "phoneNumber": null,
      "locales": [],
      "country": null,
      "notes": null
    },
    "notes": null,
    "deliveryMethods": [
      "TICKET",
      "VOUCHER"
    ],
    "voucher": {
      "redemptionMethod": "DIGITAL",
      "utcRedeemedAt": null,
      "deliveryOptions": [
        {
          "deliveryFormat": "PDF_URL",
          "deliveryValue": "https://api.octomock.com/octo/pdf?booking=814d2566-2c71-4e6a-aaa9-59b9bf26cc0d"
        },
        {
          "deliveryFormat": "QRCODE",
          "deliveryValue": "RNSRSM"
        }
      ]
    },
    "unitItems": [
      {
        "uuid": "a204e6de-7909-4bf2-b7a8-2884189534bc",
        "resellerReference": null,
        "supplierReference": "1LTYVC",
        "unit": {
          "id": "adult",
          "internalName": "adult",
          "reference": "adult",
          "type": "ADULT",
          "requiredContactFields": [],
          "restrictions": {
            "minAge": 18,
            "maxAge": 100,
            "idRequired": false,
            "minQuantity": null,
            "maxQuantity": null,
            "paxCount": 1,
            "accompaniedBy": []
          }
        },
        "unitId": "adult",
        "status": "ON_HOLD",
        "utcRedeemedAt": null,
        "contact": {
          "fullName": null,
          "firstName": null,
          "lastName": null,
          "emailAddress": null,
          "phoneNumber": null,
          "locales": [],
          "country": null,
          "notes": null
        },
        "ticket": {
          "redemptionMethod": "DIGITAL",
          "utcRedeemedAt": null,
          "deliveryOptions": [
            {
              "deliveryFormat": "PDF_URL",
              "deliveryValue": "https://api.octomock.com/octo/pdf?booking=814d2566-2c71-4e6a-aaa9-59b9bf26cc0d&ticket=a204e6de-7909-4bf2-b7a8-2884189534bc"
            },
            {
              "deliveryFormat": "QRCODE",
              "deliveryValue": "1LTYVC"
            }
          ]
        }
      },
      {
        "uuid": "9116e598-6713-4cb5-8ba4-e5b839f7a5d5",
        "resellerReference": null,
        "supplierReference": "A89VR8",
        "unit": {
          "id": "adult",
          "internalName": "adult",
          "reference": "adult",
          "type": "ADULT",
          "requiredContactFields": [],
          "restrictions": {
            "minAge": 18,
            "maxAge": 100,
            "idRequired": false,
            "minQuantity": null,
            "maxQuantity": null,
            "paxCount": 1,
            "accompaniedBy": []
          }
        },
        "unitId": "adult",
        "status": "ON_HOLD",
        "utcRedeemedAt": null,
        "contact": {
          "fullName": null,
          "firstName": null,
          "lastName": null,
          "emailAddress": null,
          "phoneNumber": null,
          "locales": [],
          "country": null,
          "notes": null
        },
        "ticket": {
          "redemptionMethod": "DIGITAL",
          "utcRedeemedAt": null,
          "deliveryOptions": [
            {
              "deliveryFormat": "PDF_URL",
              "deliveryValue": "https://api.octomock.com/octo/pdf?booking=814d2566-2c71-4e6a-aaa9-59b9bf26cc0d&ticket=9116e598-6713-4cb5-8ba4-e5b839f7a5d5"
            },
            {
              "deliveryFormat": "QRCODE",
              "deliveryValue": "A89VR8"
            }
          ]
        }
      }
    ]
  }
]

Get Booking

get

Fetch the status of an existing booking.

Path parameters
uuidstringRequired

The UUID of the booking

Responses
200
OK
application/json
400
Example response
application/json
get
GET /octo/bookings/{uuid} HTTP/1.1
Host: api.example.com
Accept: */*
{
  "id": "3ac5450f-8511-4386-9feb-17ce4f9e1f86",
  "uuid": "ec0ce0c2-03f0-4c64-bbc5-5e0f7d1e1c0a",
  "testMode": true,
  "resellerReference": null,
  "supplierReference": "ALG6RQ",
  "status": "CONFIRMED",
  "utcCreatedAt": "2022-05-25T11:03:22Z",
  "utcUpdatedAt": "2022-05-25T11:03:31Z",
  "utcExpiresAt": null,
  "utcRedeemedAt": null,
  "utcConfirmedAt": "2022-05-25T11:03:31Z",
  "productId": "1",
  "product": {
    "id": "1",
    "internalName": "PPU | OH",
    "reference": null,
    "locale": "en",
    "timeZone": "Europe/London",
    "allowFreesale": false,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "OPENING_HOURS",
    "deliveryFormats": [
      "PDF_URL",
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET",
      "VOUCHER"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "0 hours",
        "cancellationCutoffAmount": 0,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": null
        },
        "units": [
          {
            "id": "adult",
            "internalName": "adult",
            "reference": "adult",
            "type": "ADULT",
            "requiredContactFields": [],
            "restrictions": {
              "minAge": 18,
              "maxAge": 100,
              "idRequired": false,
              "minQuantity": null,
              "maxQuantity": null,
              "paxCount": 1,
              "accompaniedBy": []
            }
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "0 hours",
    "cancellationCutoffAmount": 0,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": null
    },
    "units": [
      {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "2022-04-30T00:00:00+01:00",
  "availability": {
    "id": "2022-04-30T00:00:00+01:00",
    "localDateTimeStart": "2022-04-30T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-01T00:00:00+01:00",
    "allDay": true,
    "openingHours": [
      {
        "from": "09:00",
        "to": "17:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "johndoe@email.com",
    "phoneNumber": null,
    "locales": [],
    "country": null,
    "notes": null
  },
  "notes": null,
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": null,
    "deliveryOptions": [
      {
        "deliveryFormat": "PDF_URL",
        "deliveryValue": "https://api.octomock.com/octo/pdf?booking=ec0ce0c2-03f0-4c64-bbc5-5e0f7d1e1c0a"
      },
      {
        "deliveryFormat": "QRCODE",
        "deliveryValue": "ALG6RQ"
      }
    ]
  },
  "unitItems": [
    {
      "uuid": "25ec5429-d563-45f9-ba5b-85b03edbf65e",
      "resellerReference": null,
      "supplierReference": "EO6Q0P",
      "unit": {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      },
      "unitId": "adult",
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": null,
        "firstName": null,
        "lastName": null,
        "emailAddress": null,
        "phoneNumber": null,
        "locales": [],
        "country": null,
        "notes": null
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": null,
        "deliveryOptions": [
          {
            "deliveryFormat": "PDF_URL",
            "deliveryValue": "https://api.octomock.com/octo/pdf?booking=ec0ce0c2-03f0-4c64-bbc5-5e0f7d1e1c0a&ticket=25ec5429-d563-45f9-ba5b-85b03edbf65e"
          },
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": "EO6Q0P"
          }
        ]
      }
    }
  ]
}
  • Booking Reservation
  • POSTBooking Reservation
  • Booking Confirmation
  • POSTBooking Confirmation
  • Booking Cancellation
  • POSTBooking Cancellation
  • Get Bookings
  • GETGet Bookings
  • Get Booking
  • GETGet Booking
  • Booking Update
  • PATCHBooking Update
  • Extend Reservation
  • POSTExtend 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.

Header parameters
Content-Typestring ยท enumOptional

Required field on all POST requests

Possible values:
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
availabilityIdstringRequired

The availability ID for the selected timeslot.

Example: 2021-10-27T00:00:00-04: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
Responses
200
OK
application/json
400
Example response
application/json
post
POST /octo/bookings HTTP/1.1
Host: api.example.com
Content-Type: application/json
Accept: */*
Content-Length: 230

{
  "productId": "1a7213eb-3a33-4cbb-b114-64d771c201ac",
  "optionId": "DEFAULT",
  "availabilityId": "2020-07-01T14:30:00-05:00",
  "notes": "Optional notes for the booking",
  "unitItems": [
    {
      "unitId": "adult"
    },
    {
      "unitId": "adult"
    },
    {
      "unitId": "child"
    }
  ]
}
{
  "id": "602a9fdf-5c79-4984-9474-7e14da9b6027",
  "uuid": "a88b4b8d-9c3b-4a09-ba27-323b43af57e4",
  "testMode": true,
  "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": "1",
  "product": {
    "id": "1",
    "internalName": "PPU | OH",
    "reference": null,
    "locale": "en",
    "timeZone": "Europe/London",
    "allowFreesale": false,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "OPENING_HOURS",
    "deliveryFormats": [
      "PDF_URL",
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET",
      "VOUCHER"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "0 hours",
        "cancellationCutoffAmount": 0,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": null
        },
        "units": [
          {
            "id": "adult",
            "internalName": "adult",
            "reference": "adult",
            "type": "ADULT",
            "requiredContactFields": [],
            "restrictions": {
              "minAge": 18,
              "maxAge": 100,
              "idRequired": false,
              "minQuantity": null,
              "maxQuantity": null,
              "paxCount": 1,
              "accompaniedBy": []
            }
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "0 hours",
    "cancellationCutoffAmount": 0,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": null
    },
    "units": [
      {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "2022-04-30T00:00:00+01:00",
  "availability": {
    "id": "2022-04-30T00:00:00+01:00",
    "localDateTimeStart": "2022-04-30T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-01T00:00:00+01:00",
    "allDay": true,
    "openingHours": [
      {
        "from": "09:00",
        "to": "17:00"
      }
    ]
  },
  "contact": {
    "fullName": null,
    "firstName": null,
    "lastName": null,
    "emailAddress": null,
    "phoneNumber": null,
    "locales": [],
    "country": null,
    "notes": null
  },
  "notes": null,
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": null,
    "deliveryOptions": []
  },
  "unitItems": [
    {
      "uuid": "6cbd2582-1345-4d8d-8223-ad004beebc1a",
      "resellerReference": null,
      "supplierReference": "CBIYWQ",
      "unit": {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      },
      "unitId": "adult",
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": null,
        "firstName": null,
        "lastName": null,
        "emailAddress": null,
        "phoneNumber": null,
        "locales": [],
        "country": null,
        "notes": null
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": null,
        "deliveryOptions": []
      }
    }
  ]
}

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
Content-Typestring ยท enumOptional

Required field on all POST requests

Possible values:
Body
emailReceiptbooleanOptional

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

resellerReferencestringOptional

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

Example: 4ec08a62-892c-48c1-a608-dc946531a33b
Responses
200
OK
application/json
400
Example response
application/json
post
POST /octo/bookings/{uuid}/confirm HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 183

{
  "resellerReference": "VOUCHER-0123",
  "contact": {
    "fullName": "Oliver Morgan",
    "emailAddress": "ollym@me.com",
    "phoneNumber": "+447840739436",
    "locales": [
      "en-GB",
      "en-US",
      "en"
    ],
    "country": "GB"
  }
}
{
  "id": "3ac5450f-8511-4386-9feb-17ce4f9e1f86",
  "uuid": "ec0ce0c2-03f0-4c64-bbc5-5e0f7d1e1c0a",
  "testMode": true,
  "resellerReference": null,
  "supplierReference": "ALG6RQ",
  "status": "CONFIRMED",
  "utcCreatedAt": "2022-05-25T11:03:22Z",
  "utcUpdatedAt": "2022-05-25T11:03:31Z",
  "utcExpiresAt": null,
  "utcRedeemedAt": null,
  "utcConfirmedAt": "2022-05-25T11:03:31Z",
  "productId": "1",
  "product": {
    "id": "1",
    "internalName": "PPU | OH",
    "reference": null,
    "locale": "en",
    "timeZone": "Europe/London",
    "allowFreesale": false,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "OPENING_HOURS",
    "deliveryFormats": [
      "PDF_URL",
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET",
      "VOUCHER"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "0 hours",
        "cancellationCutoffAmount": 0,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": null
        },
        "units": [
          {
            "id": "adult",
            "internalName": "adult",
            "reference": "adult",
            "type": "ADULT",
            "requiredContactFields": [],
            "restrictions": {
              "minAge": 18,
              "maxAge": 100,
              "idRequired": false,
              "minQuantity": null,
              "maxQuantity": null,
              "paxCount": 1,
              "accompaniedBy": []
            }
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "0 hours",
    "cancellationCutoffAmount": 0,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": null
    },
    "units": [
      {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "2022-04-30T00:00:00+01:00",
  "availability": {
    "id": "2022-04-30T00:00:00+01:00",
    "localDateTimeStart": "2022-04-30T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-01T00:00:00+01:00",
    "allDay": true,
    "openingHours": [
      {
        "from": "09:00",
        "to": "17:00"
      }
    ]
  },
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "johndoe@email.com",
    "phoneNumber": null,
    "locales": [],
    "country": null,
    "notes": null
  },
  "notes": null,
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": null,
    "deliveryOptions": [
      {
        "deliveryFormat": "PDF_URL",
        "deliveryValue": "https://api.octomock.com/octo/pdf?booking=ec0ce0c2-03f0-4c64-bbc5-5e0f7d1e1c0a"
      },
      {
        "deliveryFormat": "QRCODE",
        "deliveryValue": "ALG6RQ"
      }
    ]
  },
  "unitItems": [
    {
      "uuid": "25ec5429-d563-45f9-ba5b-85b03edbf65e",
      "resellerReference": null,
      "supplierReference": "EO6Q0P",
      "unit": {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      },
      "unitId": "adult",
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": null,
        "firstName": null,
        "lastName": null,
        "emailAddress": null,
        "phoneNumber": null,
        "locales": [],
        "country": null,
        "notes": null
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": null,
        "deliveryOptions": [
          {
            "deliveryFormat": "PDF_URL",
            "deliveryValue": "https://api.octomock.com/octo/pdf?booking=ec0ce0c2-03f0-4c64-bbc5-5e0f7d1e1c0a&ticket=25ec5429-d563-45f9-ba5b-85b03edbf65e"
          },
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": "EO6Q0P"
          }
        ]
      }
    }
  ]
}

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.

Header parameters
Content-Typestring ยท enumOptional

Required field on all DELETE requests

Possible values:
Body
reasonstringOptional

A text value describing why the cancellation happened.

Example: Customer Requested
forcebooleanOptional
Responses
200
OK
application/json
400
Example response
application/json
post
POST /octo/bookings/{uuid}/cancel HTTP/1.1
Host: api.example.com
Content-Type: application/json
Accept: */*
Content-Length: 31

{
  "reason": "Customer Requested"
}
{
  "id": "3ac5450f-8511-4386-9feb-17ce4f9e1f86",
  "uuid": "ec0ce0c2-03f0-4c64-bbc5-5e0f7d1e1c0a",
  "testMode": true,
  "resellerReference": null,
  "supplierReference": "ALG6RQ",
  "status": "CANCELLED",
  "utcCreatedAt": "2022-05-25T11:03:22Z",
  "utcUpdatedAt": "2022-05-25T11:06:24Z",
  "utcExpiresAt": null,
  "utcRedeemedAt": null,
  "utcConfirmedAt": null,
  "productId": "1",
  "product": {
    "id": "1",
    "internalName": "PPU | OH",
    "reference": null,
    "locale": "en",
    "timeZone": "Europe/London",
    "allowFreesale": false,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "OPENING_HOURS",
    "deliveryFormats": [
      "PDF_URL",
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET",
      "VOUCHER"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "0 hours",
        "cancellationCutoffAmount": 0,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": null
        },
        "units": [
          {
            "id": "adult",
            "internalName": "adult",
            "reference": "adult",
            "type": "ADULT",
            "requiredContactFields": [],
            "restrictions": {
              "minAge": 18,
              "maxAge": 100,
              "idRequired": false,
              "minQuantity": null,
              "maxQuantity": null,
              "paxCount": 1,
              "accompaniedBy": []
            }
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "0 hours",
    "cancellationCutoffAmount": 0,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": null
    },
    "units": [
      {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      }
    ]
  },
  "cancellable": false,
  "cancellation": {
    "refund": "FULL",
    "reason": "this product sucks ",
    "utcCancelledAt": "2022-05-25T11:06:24Z"
  },
  "freesale": false,
  "availabilityId": "2022-04-30T00:00:00+01:00",
  "availability": {
    "id": "2022-04-30T00:00:00+01:00",
    "localDateTimeStart": "2022-04-30T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-01T00:00:00+01:00",
    "allDay": true,
    "openingHours": [
      {
        "from": "09:00",
        "to": "17:00"
      }
    ]
  },
  "contact": {
    "fullName": null,
    "firstName": null,
    "lastName": null,
    "emailAddress": null,
    "phoneNumber": null,
    "locales": [],
    "country": null,
    "notes": null
  },
  "notes": null,
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": null,
    "deliveryOptions": []
  },
  "unitItems": []
}

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.

Path parameters
uuidstringRequired

The UUID of the booking

Header parameters
Content-Typestring ยท enumOptional

Required field on all PATCH requests

Possible values:
Body
resellerReferencestringOptional

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

Example: ec08a62-892c-48c1-a608-dc946531a33b
productIdstringOptional

The product ID.

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

The option id.

Example: DEFAULT
availabilityIdstringOptional

The availability ID for the selected timeslot.

expirationMinutesstringOptional

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

notesstringOptional

Optional notes for the booking.

emailReceiptbooleanOptional

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

Responses
200
OK
application/json
400
Example response
application/json
patch
PATCH /octo/bookings/{uuid} HTTP/1.1
Host: api.example.com
Content-Type: application/json
Accept: */*
Content-Length: 692

{
  "resellerReference": "ec08a62-892c-48c1-a608-dc946531a33b",
  "productId": "6b903d44-dc24-4ca4-ae71-6bde6c4f4854",
  "optionId": "DEFAULT",
  "availabilityId": "text",
  "expirationMinutes": "text",
  "notes": "text",
  "emailReceipt": true,
  "unitItems": [
    {
      "uuid": "text",
      "unitId": "text",
      "resellerReference": "text",
      "contact": {
        "fullName": "John Doe",
        "firstName": "John",
        "lastName": "Doe",
        "emailAddress": "johndoe@gmail.com",
        "phoneNumber": "text",
        "locales": [
          "[\"en\"]"
        ],
        "postalCode": "text",
        "country": "text",
        "notes": "text"
      }
    }
  ],
  "contact": {
    "fullName": "John Doe",
    "firstName": "John",
    "lastName": "Doe",
    "emailAddress": "johndoe@gmail.com",
    "phoneNumber": "text",
    "locales": [
      "[\"en\"]"
    ],
    "postalCode": "text",
    "country": "text",
    "notes": "text"
  }
}
{
  "id": "3ef65048-5ffe-474f-8a5c-fb35a9faa6ed",
  "uuid": "814d2566-2c71-4e6a-aaa9-59b9bf26cc0d",
  "testMode": true,
  "resellerReference": null,
  "supplierReference": "RNSRSM",
  "status": "CONFIRMED",
  "utcCreatedAt": "2022-05-25T11:07:05Z",
  "utcUpdatedAt": "2022-05-25T11:09:32Z",
  "utcExpiresAt": null,
  "utcRedeemedAt": null,
  "utcConfirmedAt": "2022-05-25T11:09:32Z",
  "productId": "1",
  "product": {
    "id": "1",
    "internalName": "PPU | OH",
    "reference": null,
    "locale": "en",
    "timeZone": "Europe/London",
    "allowFreesale": false,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "OPENING_HOURS",
    "deliveryFormats": [
      "PDF_URL",
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET",
      "VOUCHER"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "0 hours",
        "cancellationCutoffAmount": 0,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": null
        },
        "units": [
          {
            "id": "adult",
            "internalName": "adult",
            "reference": "adult",
            "type": "ADULT",
            "requiredContactFields": [],
            "restrictions": {
              "minAge": 18,
              "maxAge": 100,
              "idRequired": false,
              "minQuantity": null,
              "maxQuantity": null,
              "paxCount": 1,
              "accompaniedBy": []
            }
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "0 hours",
    "cancellationCutoffAmount": 0,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": null
    },
    "units": [
      {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "2022-04-30T00:00:00+01:00",
  "availability": {
    "id": "2022-04-30T00:00:00+01:00",
    "localDateTimeStart": "2022-04-30T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-01T00:00:00+01:00",
    "allDay": true,
    "openingHours": [
      {
        "from": "09:00",
        "to": "17:00"
      }
    ]
  },
  "contact": {
    "fullName": "test",
    "firstName": null,
    "lastName": null,
    "emailAddress": "test@test.test",
    "phoneNumber": null,
    "locales": [],
    "country": null,
    "notes": null
  },
  "notes": null,
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": null,
    "deliveryOptions": [
      {
        "deliveryFormat": "PDF_URL",
        "deliveryValue": "https://api.octomock.com/octo/pdf?booking=814d2566-2c71-4e6a-aaa9-59b9bf26cc0d"
      },
      {
        "deliveryFormat": "QRCODE",
        "deliveryValue": "RNSRSM"
      }
    ]
  },
  "unitItems": [
    {
      "uuid": "a204e6de-7909-4bf2-b7a8-2884189534bc",
      "resellerReference": null,
      "supplierReference": "1LTYVC",
      "unit": {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      },
      "unitId": "adult",
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": null,
        "firstName": null,
        "lastName": null,
        "emailAddress": null,
        "phoneNumber": null,
        "locales": [],
        "country": null,
        "notes": null
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": null,
        "deliveryOptions": [
          {
            "deliveryFormat": "PDF_URL",
            "deliveryValue": "https://api.octomock.com/octo/pdf?booking=814d2566-2c71-4e6a-aaa9-59b9bf26cc0d&ticket=a204e6de-7909-4bf2-b7a8-2884189534bc"
          },
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": "1LTYVC"
          }
        ]
      }
    },
    {
      "uuid": "9116e598-6713-4cb5-8ba4-e5b839f7a5d5",
      "resellerReference": null,
      "supplierReference": "A89VR8",
      "unit": {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      },
      "unitId": "adult",
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": null,
        "firstName": null,
        "lastName": null,
        "emailAddress": null,
        "phoneNumber": null,
        "locales": [],
        "country": null,
        "notes": null
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": null,
        "deliveryOptions": [
          {
            "deliveryFormat": "PDF_URL",
            "deliveryValue": "https://api.octomock.com/octo/pdf?booking=814d2566-2c71-4e6a-aaa9-59b9bf26cc0d&ticket=9116e598-6713-4cb5-8ba4-e5b839f7a5d5"
          },
          {
            "deliveryFormat": "QRCODE",
            "deliveryValue": "A89VR8"
          }
        ]
      }
    }
  ]
}

Extend Reservation

post

Use this endpoint to hold the availability for a booking longer if the status is ON_HOLD.

Authorizations
Path parameters
uuidstringRequired

The UUID of the booking

Header parameters
Content-Typestring ยท enumOptional

Required field on all POST requests

Possible values:
Body
expirationMinutesintegerOptionalExample: 15
Responses
200
OK
application/json
400
Example response
application/json
post
POST /octo/bookings/{uuid}/extend HTTP/1.1
Host: api.example.com
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "expirationMinutes": 0
}
{
  "id": "602a9fdf-5c79-4984-9474-7e14da9b6027",
  "uuid": "a88b4b8d-9c3b-4a09-ba27-323b43af57e4",
  "testMode": true,
  "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": "1",
  "product": {
    "id": "1",
    "internalName": "PPU | OH",
    "reference": null,
    "locale": "en",
    "timeZone": "Europe/London",
    "allowFreesale": false,
    "instantConfirmation": true,
    "instantDelivery": true,
    "availabilityRequired": true,
    "availabilityType": "OPENING_HOURS",
    "deliveryFormats": [
      "PDF_URL",
      "QRCODE"
    ],
    "deliveryMethods": [
      "TICKET",
      "VOUCHER"
    ],
    "redemptionMethod": "DIGITAL",
    "options": [
      {
        "id": "DEFAULT",
        "default": true,
        "internalName": "DEFAULT",
        "reference": null,
        "availabilityLocalStartTimes": [
          "00:00"
        ],
        "cancellationCutoff": "0 hours",
        "cancellationCutoffAmount": 0,
        "cancellationCutoffUnit": "hour",
        "requiredContactFields": [],
        "restrictions": {
          "minUnits": 0,
          "maxUnits": null
        },
        "units": [
          {
            "id": "adult",
            "internalName": "adult",
            "reference": "adult",
            "type": "ADULT",
            "requiredContactFields": [],
            "restrictions": {
              "minAge": 18,
              "maxAge": 100,
              "idRequired": false,
              "minQuantity": null,
              "maxQuantity": null,
              "paxCount": 1,
              "accompaniedBy": []
            }
          }
        ]
      }
    ]
  },
  "optionId": "DEFAULT",
  "option": {
    "id": "DEFAULT",
    "default": true,
    "internalName": "DEFAULT",
    "reference": null,
    "availabilityLocalStartTimes": [
      "00:00"
    ],
    "cancellationCutoff": "0 hours",
    "cancellationCutoffAmount": 0,
    "cancellationCutoffUnit": "hour",
    "requiredContactFields": [],
    "restrictions": {
      "minUnits": 0,
      "maxUnits": null
    },
    "units": [
      {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      }
    ]
  },
  "cancellable": true,
  "cancellation": null,
  "freesale": false,
  "availabilityId": "2022-04-30T00:00:00+01:00",
  "availability": {
    "id": "2022-04-30T00:00:00+01:00",
    "localDateTimeStart": "2022-04-30T00:00:00+01:00",
    "localDateTimeEnd": "2022-05-01T00:00:00+01:00",
    "allDay": true,
    "openingHours": [
      {
        "from": "09:00",
        "to": "17:00"
      }
    ]
  },
  "contact": {
    "fullName": null,
    "firstName": null,
    "lastName": null,
    "emailAddress": null,
    "phoneNumber": null,
    "locales": [],
    "country": null,
    "notes": null
  },
  "notes": null,
  "deliveryMethods": [
    "TICKET",
    "VOUCHER"
  ],
  "voucher": {
    "redemptionMethod": "DIGITAL",
    "utcRedeemedAt": null,
    "deliveryOptions": []
  },
  "unitItems": [
    {
      "uuid": "6cbd2582-1345-4d8d-8223-ad004beebc1a",
      "resellerReference": null,
      "supplierReference": "CBIYWQ",
      "unit": {
        "id": "adult",
        "internalName": "adult",
        "reference": "adult",
        "type": "ADULT",
        "requiredContactFields": [],
        "restrictions": {
          "minAge": 18,
          "maxAge": 100,
          "idRequired": false,
          "minQuantity": null,
          "maxQuantity": null,
          "paxCount": 1,
          "accompaniedBy": []
        }
      },
      "unitId": "adult",
      "status": "ON_HOLD",
      "utcRedeemedAt": null,
      "contact": {
        "fullName": null,
        "firstName": null,
        "lastName": null,
        "emailAddress": null,
        "phoneNumber": null,
        "locales": [],
        "country": null,
        "notes": null
      },
      "ticket": {
        "redemptionMethod": "DIGITAL",
        "utcRedeemedAt": null,
        "deliveryOptions": []
      }
    }
  ]
}