Method
POST /v1/bookings
Body Parameters
Custom booking code/reference
Initial status (
pending by default)Initial payment status
Initial fulfillment status
Sales channel
Source system
ISO currency (e.g. EUR)
Adults count
Children count
Infants count
Number of rooms (if applicable)
Public notes
Internal notes
Custom attributes
Arbitrary metadata
Preferred language
Addon quantity
Room category key
Occupancy per room
Rooms requested
Coupon or promotion code
Attributes and metadata
- attributes — send a JSON object with workspace-specific context (for example, the answers from a booking form). The booking service automatically merges in a
pricingSnapshotthat captures the quote that was used to price the booking. - metadata — supply any arbitrary JSON you need to round-trip (CRM references, analytics tags, third-party payloads). Voyant never mutates this object.
Example
If you omit
attributes, Voyant still persists a pricingSnapshot. When you do send an object, avoid overwriting that key unless you intend to replace it.Totals are calculated on the server from the pricing payload. The booking response includes the computed subtotal, taxes, discounts, and total amount. Items and passengers are created via separate endpoints after the booking is created:
POST /v1/bookings/:id/items— add itemsPOST /v1/bookings/:id/passengers— upsert passengers (bypersonId)
Headers
Bearer token (e.g.
Authorization: Bearer YOUR_API_KEY)application/json