Channel API guide
Channel API overview
The Channel API lets an online platform or a larger agency sell a cruise company's cabins directly from its own system, live. It sells only what that company's contract with you allows. This guide is for the developers who build that connection.
- REST over HTTPS, JSON in and out.
- OAuth 2.0 client credentials: your server gets a short-lived token. See Authentication.
- The contract is an OpenAPI 3.1 document, served as
/openapi.yamlwith an interactive reference at/docson every API server. - Money is always an integer in minor units with its currency:
{"amount": 117000, "currency": "USD"}is USD 1,170.00. - Dates are cruise dates in Cairo (
YYYY-MM-DD). Times are ISO 8601 with a time zone.
One client per company
You are a channel of each cruise company you sell for, and you hold one API client per company. A token from a company's client sees only that company, and only the vessels, categories, rate plans and terms of its contract with you.
The flow
GET /v1/vessels what may I sell?
GET /v1/availability free cabins per sailing and category
POST /v1/quotes price a sailing for these cabins and guests
POST /v1/holds hold the cabins while your customer checks out
POST /v1/holds/{id}/confirm confirm with the guests → a booking
GET /v1/bookings/{ref} read it; change it; cancel it
On-request contracts send a request instead of a hold (Requests and offers). Riverdesk tells you about every change with signed webhooks.
Guarantees
- No oversell. A hold reserves the cabins on every leg of the cruise. Once you hold them, they are yours until the hold expires or is released.
- Safe retries. Every write takes an
Idempotency-Key. Retrying returns the original result. See Errors and retries. - Personal data stays put. Passport numbers and dates of birth are accepted but never returned in any response, event or webhook.