Hotel Bookings
Initiate, pay, list, and cancel hotel bookings.
Hotel Bookings
Manage the full hotel booking lifecycle: initiate a reservation, process payment, retrieve booking history, and handle cancellations.
Initiate Booking
POST /v1/hotel/booking/initiate
Create a reservation. Returns a booking_id used in all subsequent booking operations. The reservation is held for a short window while payment is processed.
| Field | Type | Required | Description |
|---|---|---|---|
room_id | string | yes | Room identifier from the rooms response. |
hotel_id | string | yes | Hotel identifier. |
check_in | string | yes | Check-in date in YYYY-MM-DD format. |
check_out | string | yes | Check-out date in YYYY-MM-DD format. |
guests.adults | integer | yes | Number of adult guests. |
guests.rooms | integer | yes | Number of rooms. |
lead_guest.first_name | string | yes | Lead guest's first name. |
lead_guest.last_name | string | yes | Lead guest's last name. |
lead_guest.email | string | yes | Lead guest's email address for confirmation. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/hotel/booking/initiateSandbox 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/hotel/booking/initiate' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"room_id":"room_example","hotel_id":"htl_example","check_in":"2026-07-01","check_out":"2026-07-03","guests":{"adults":2,"rooms":1},"lead_guest":{"first_name":"Jane","last_name":"Doe","email":"jane@example.com"}}'Pay for Booking
POST /v1/hotel/booking/pay
[!WARNING] Deprecated: This endpoint is deprecated. Use the unified checkout orchestrator endpoints (
/v1/checkout/sessionsand/v1/checkout/sessions/{id}) instead.
Initiate payment for a booking. Returns a payment intent or redirect URL depending on the payment method and gateway configured for the application.
| Field | Type | Required | Description |
|---|---|---|---|
booking_id | string | yes | Booking identifier from the initiate response. |
payment_method | string | yes | Payment method: card, wallet, or bank_transfer. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/hotel/booking/paySandbox 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/hotel/booking/pay' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"booking_id":"book_example","payment_method":"card"}'List Bookings
POST /v1/hotel/booking/list
List bookings with optional filters. Returns a paginated list of hotel bookings for the authenticated user.
| Field | Type | Required | Description |
|---|---|---|---|
page | integer | no | Page number (default: 1). |
per_page | integer | no | Results per page (default: 20, max: 100). |
status | string | no | Filter by status: pending, confirmed, cancelled, completed. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/hotel/booking/listSandbox 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/hotel/booking/list' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"page":1,"per_page":20}'Cancel Booking
POST /v1/hotel/booking/cancel
Cancel a booking. Returns cancellation policy details including any applicable fees and the expected refund timeline.
| Field | Type | Required | Description |
|---|---|---|---|
booking_id | string | yes | Booking identifier to cancel. |
https://cloud.vanitypass.com with X-Environment: Sandbox. No real bookings or charges. Production access: contact us./v1/hotel/booking/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/hotel/booking/cancel' \
-H 'Content-Type: application/json' \
-H 'X-Environment: Sandbox' \
-d '{"booking_id":"book_example"}'Booking Object
Booking detail responses (from Get Booking Details / List Bookings) were enriched with structured guest, hotel-profile, and payer/payee fields. Every field below is nullable — treat any as absent if the supplier or catalogue did not provide it.
| Field | Type | Description |
|---|---|---|
guest_details | array | Structured guests on the booking: [{ full_name, phone_number? }]. Defaults to an empty array when no guest data is available. |
guest_name | string | Lead guest display name. |
guest_email | string | Lead guest email. |
duration_nights | integer | Number of nights for the stay. |
occupancy | object | Occupancy breakdown for the booked room(s). |
room_details | object | Room-level detail as returned by the supplier. |
rate_plan | object | Rate-plan detail (board type, refundability, etc.). |
cancellation_policy | object | Cancellation terms, deadlines, and any fees. |
property_rules | object | Property rules (check-in/out times, house policies). |
hotel_profile | object | Static hotel profile enriched from the internal catalogue: { property_type?, star_rating?, contact_phone?, email_address?, website_url? }. Omitted entirely when no matching hotel record exists. |
hotel_address | object | Structured hotel address. |
hotel_contact | object | Hotel contact details. |
traveller_info | object | Traveller information attached to the booking. |
payer_name | string | Name of the member who paid. |
payer_email | string | Email of the member who paid. |
payer_membership_id | string (uuid) | Membership that funded the booking. |
payee_id | string (uuid) | Membership designated as the payee (group / circle bookings). |
allocated_members | array | For circle/group bookings, the members allocated to each room. |