Skip to main content

Method

POST /v1/bookings/:id/items

Path Parameters

id
string
required
Booking ID

Body Parameters

type
string
required
Item type (e.g., activity, room, addon)
inventoryItemId
uuid
required
Inventory item ID
supplierId
uuid
Supplier ID
departureId
uuid
required
Departure ID
startAt
date
Start date/time
endAt
date
End date/time
durationMinutes
number
Duration in minutes
quantity
number
Quantity (defaults to 1)
paxAdults
number
Adults for pricing context (defaults to booking adults)
paxChildren
number
Children for pricing context (defaults to booking children)
paxInfants
number
Infants for pricing context (defaults to booking infants)
paxCount
number
Override passengers count for this item
details
object
Provider-specific details
The details object is integration-specific. Use these examples as guidance; concrete keys may differ by supplier. Choice-style customizations (e.g., groups/options/timeslots) are persisted via POST /v1/bookings/:bookingId/items/:itemId/options. Pricing is always calculated on the server; the response includes the computed unit and total amounts.
status
string
Item status
supplierReference
string
Supplier reference
voucherCode
string
Voucher code
notes
string
Notes

Headers

Authorization
string
required
Bearer token (e.g. Authorization: Bearer YOUR_API_KEY)
content-type
string
application/json
curl -X POST https://api.voyantcloud.com/v1/bookings/bkg_456def/items \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "type": "activity",
  "inventoryItemId": "2c5f3f8e-1111-2222-3333-abcdefabcdef",
  "departureId": "50d1c6aa-aaaa-bbbb-cccc-111122223333",
  "quantity": 1,
  "paxAdults": 2
}'
{
  "id": "itm_123",
  "type": "activity",
  "status": "pending"
}