Method
POST /v1/bookings
Body Parameters
string
Custom booking code/reference
string
Initial status (
pending by default)string
Initial payment status
string
Initial fulfillment status
string
Sales channel
string
Source system
string
ISO currency (e.g. EUR)
number
Adults count
number
Children count
number
Infants count
number
Number of rooms (if applicable)
string
Public notes
string
Internal notes
object
Custom attributes
object
Arbitrary metadata
string
Preferred language
number
Addon quantity
string
Room category key
number
Occupancy per room
number
Rooms requested
string
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
string
required
Bearer token (e.g.
Authorization: Bearer YOUR_API_KEY)string
application/json