Travel Bookings
Create, manage, and redeem bookings for lounges, fast-track, dining, and fitness.
Travel Bookings
All travel service bookings (lounge, fast-track, dining, fitness) go through a single bookings endpoint. The product_type field routes to the right service.
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 the search/availability response |
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: [...] } — pay with perk items instead of 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, so existing integrations are unaffected.
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"}}'List Bookings
GET /v1/travel/bookings
Returns the authenticated user's travel booking history.
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' \Get Redemption Details
GET /v1/travel/bookings/{booking_id}/redemption
Returns the e-voucher, QR code, or access code for a confirmed booking. Present this 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' \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
Starts the payment flow for bookings that require 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' \