Travel Bookings & Redemption
Create bookings, retrieve vouchers, and redeem travel services as an end user.
Travel Bookings & Redemption
Users book and redeem travel services (lounge, fast-track, dining, fitness) through a single bookings endpoint. Vouchers are retrieved via the redemption endpoint and presented at the venue.
Create Booking
POST /v1/travel/bookings
| Field | Type | Required | Description |
|---|---|---|---|
product_type | string | yes | lounge | fast_track | dining | fitness |
product_id | string | yes | Service ID from search/availability |
date | string | yes | ISO-8601 date (YYYY-MM-DD) |
time | string | yes | Slot time (HH:MM) |
passenger_count | integer | yes | Number of passengers |
lead_passenger | object | yes | { first_name, last_name, email, calling_code?, phone?, country_code? }. calling_code + phone are required for fast-track bookings. |
passenger_details | array | no | [{ first_name, last_name, title?, date_of_birth?, nationality?, passport_number? }] |
booking_type | string | no | Booking intent — see below. Defaults to prebook. |
flight_number | string | no | Flight number, where the service requires it |
special_requests | string | no | Free-text notes forwarded to the venue |
circle_id | string | no | Attribute the booking to a travel circle (group bookings) |
prebooking_id | string (uuid) | no | Hydrate a previously held slot in held state |
perk_payment | object | no | { item_ids: [...] } — redeem perk items instead of paying cash |
Booking intent — prebook vs walk_in
booking_type controls how the slot is fulfilled. Both intents share the identical create → pay → confirm pipeline and hit the same VanityPass Travel Network order endpoint — only the persisted intent differs:
| Value | Behaviour |
|---|---|
prebook (default) | Reserves a specific slot and guarantees entry at the booked time. |
walk_in | Pay-first, immediate booking with no slot guarantee — entry is subject to venue availability at the door. |
Accepted aliases (case-insensitive): walk_in / walkin, prebook / pre_book / instant. Absent or unrecognised values fall back to prebook.
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/bookingsSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X POST 'https://cloud.vanitypass.com/v1/travel/bookings' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"product_type":"lounge","product_id":"lounge_example_id","date":"2026-07-01","time":"14:30","passenger_count":1,"booking_type":"prebook","lead_passenger":{"first_name":"Jane","last_name":"Doe","email":"jane@example.com"}}'Get Redemption Voucher
GET /v1/travel/bookings/{booking_id}/redemption
Returns the e-voucher, QR code, or access code. Show this to the staff at the venue.
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/bookings/{booking_id}/redemptionSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X GET 'https://cloud.vanitypass.com/v1/travel/bookings/{booking_id}/redemption' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \List My Bookings
GET /v1/travel/bookings
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/bookingsSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X GET 'https://cloud.vanitypass.com/v1/travel/bookings' \ -H 'Content-Type: application/json' \ -H 'X-Environment: Sandbox' \
Get Booking Details
GET /v1/travel/bookings/{booking_id}
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/bookings/{booking_id}Sandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X GET 'https://cloud.vanitypass.com/v1/travel/bookings/{booking_id}' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \Cancel Booking
POST /v1/travel/bookings/{booking_id}/cancel
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/bookings/{booking_id}/cancelSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X POST 'https://cloud.vanitypass.com/v1/travel/bookings/{booking_id}/cancel' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \Initiate Payment
POST /v1/travel/bookings/{booking_id}/initiate-payment
For bookings requiring upfront payment rather than perk redemption.
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/travel/bookings/{booking_id}/initiate-paymentSandbox credentials
Keys never leave your browser — they are sent only to cloud.vanitypass.com with X-Environment: Sandbox.
curl -X POST 'https://cloud.vanitypass.com/v1/travel/bookings/{booking_id}/initiate-payment' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \