Base URL: /api/channel/v1
get/products
Products of linked, approved operators with the rate card valid today
200 Products400 invalid_request, invalid_json401 unauthorized: missing or invalid key403 missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked404 Not found429 rate_limited (header Retry-After)500 internal
post/quotes
Availability and price; a sold-out answer is authoritative
200 Quote400 invalid_request, invalid_json401 unauthorized: missing or invalid key403 missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked404 product_not_found422 no_rate, invalid_range, rate_plan_not_valid, stay_too_short, stay_too_long, lead_time, beyond_horizon (arrival more than 365 days ahead)429 rate_limited (header Retry-After)500 internal
get/bookings
Bookings of this channel changed since
200 Bookings400 invalid_request, invalid_json, invalid_since401 unauthorized: missing or invalid key403 missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked404 Not found429 rate_limited (header Retry-After)500 internal
post/bookings
Create a booking; idempotent on externalRef
200 The same request again: the existing booking for this externalRef201 Created400 invalid_request, invalid_json401 unauthorized: missing or invalid key403 missing_scope, forbidden, not_a_channel, operator_not_linked, sandbox_not_allowed404 product_not_found409 declined_no_capacity, declined_arrival_blocked, price_changed (expectedTotalGrossMinor differs from the current total), idempotency_mismatch (externalRef used with a different request), request_in_progress422 no_rate, invalid_range, rate_plan_not_valid, stay_too_short, stay_too_long, lead_time, beyond_horizon (arrival more than 365 days ahead), vehicle_not_accepted, payment_mode_not_offered429 rate_limited (header Retry-After)500 internal503 checkout_paused
get/bookings/{reference}
One booking with its stay report
200 Booking400 invalid_request, invalid_json401 unauthorized: missing or invalid key403 missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked404 booking_not_found429 rate_limited (header Retry-After)500 internal
post/bookings/{reference}/cancel
Cancel; the fee follows the policy snapshot
200 Cancelled booking400 invalid_request, invalid_json401 unauthorized: missing or invalid key403 missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked404 booking_not_found409 not_cancellable, cancel_after_arrival (after the booked arrival the no-show rules apply)429 rate_limited (header Retry-After)500 internal
get/deliveries
Your webhook delivery log (last 100)
200 Deliveries400 invalid_request, invalid_json401 unauthorized: missing or invalid key403 missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked404 Not found429 rate_limited (header Retry-After)500 internal
post/deliveries/{id}/redeliver
Send a failed or dead-lettered delivery again (needs a writing scope)
200 Queued400 invalid_request, invalid_json401 unauthorized: missing or invalid key403 missing_scope, forbidden, not_a_channel or not_a_connector, operator_not_linked404 delivery_not_found409 not_redeliverable: delivered, still pending or being sent, or its event is past the 30-day retention429 rate_limited (header Retry-After)500 internal