POST /v1.1/book
Create a booking for a specific sailing, cabin, and guest configuration. Returns a booking confirmation with reservation code, booking URL, PDF download link, and full pricing breakdown.


Request
POST /v1.1/book
Headers
| Header | Required | Description |
|---|---|---|
X-WorldTravel-Testing | No | Set to true to create a test booking |
Request Body
{
"departure": {
"date": "20261205"
},
"itinerary": {
"code": "07D519",
"ship": {
"code": "RH"
}
},
"stateroom": {
"code": "7014"
},
"stateroom_subcategory": {
"code": "4B"
},
"sitting": {
"code": "M"
},
"promotion": {
"code": "BESTRATE"
},
"prepay_gratuities": "false",
"guests": {
"adults": "2",
"children": "0",
"details": [
{
"first_name": "Bar",
"last_name": "Foo",
"address": "Earth",
"email": "73pry.fictive@icloud.com",
"birth_date": "20000101",
"title": { "code": "MR" },
"citizenship": { "code": "ROU" },
"phone": "(+40)711223344"
},
{
"first_name": "Baz",
"last_name": "Foo",
"birth_date": "20000101",
"title": { "code": "MRS" },
"citizenship": { "code": "ROU" }
}
]
}
}
Body Parameters
| Field | Type | Required | Description |
|---|---|---|---|
departure.date | string | Yes | Departure date (YYYYMMDD format) |
itinerary.code | string | Yes | Itinerary code |
itinerary.ship.code | string | Yes | Ship code |
stateroom.code | string | Yes | Cabin number |
stateroom_subcategory.code | string | Yes | Stateroom subcategory code |
sitting.code | string | Yes | Dining sitting category code |
promotion.code | string | No | Promotion code (e.g. BESTRATE) |
prepay_gratuities | string | No | Whether to prepay gratuities ("true" or "false") |
guests.adults | string | Yes | Number of adult guests |
guests.children | string | Yes | Number of child guests |
guests.details | array | Yes | Array of guest detail objects (see below) |
Guest Detail Parameters
The first guest in the details array is the lead guest and requires additional fields.
| Field | Type | Required | Description |
|---|---|---|---|
first_name | string | Yes | Guest first name |
last_name | string | Yes | Guest last name |
birth_date | string | Yes | Date of birth (YYYYMMDD format) |
title.code | string | Yes | Title code (e.g. MR, MRS, MS) |
citizenship.code | string | Yes | Country code (ISO 3166-1 alpha-3) |
address | string | Lead only | Mailing address |
email | string | Lead only | Contact email |
phone | string | Lead only | Contact phone number |
Example Request
curl -X POST "https://api.rccl.ro/v1.1/book" \
-H "X-WorldTravel-ApiKey: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"departure": { "date": "20261205" },
"itinerary": { "code": "07D519", "ship": { "code": "RH" } },
"stateroom": { "code": "7014" },
"stateroom_subcategory": { "code": "4B" },
"sitting": { "code": "M" },
"promotion": { "code": "BESTRATE" },
"prepay_gratuities": "false",
"guests": {
"adults": "2",
"children": "0",
"details": [
{
"first_name": "Bar", "last_name": "Foo",
"address": "Earth", "email": "guest@example.com",
"birth_date": "20000101",
"title": { "code": "MR" },
"citizenship": { "code": "ROU" },
"phone": "(+40)711223344"
},
{
"first_name": "Baz", "last_name": "Foo",
"birth_date": "20000101",
"title": { "code": "MRS" },
"citizenship": { "code": "ROU" }
}
]
}
}'
Response
200 OK
Returns a single booking resource with full pricing breakdown and related objects included.
Response body (included array truncated):
{
"data": {
"type": "booking",
"id": "a13e87db-d497-3bd6-ba6c-8d62b064ef78",
"attributes": {
"code": "0932656",
"url": "https://rccl.ro/rezervare/...",
"pdf": "https://rccl.ro/rezervare/...?download-pdf"
},
"relationships": {
"stateroom_subcategory": {
"links": {
"related": "/v1.1/stateroom_subcategory/55523f76-70a2-3ea9-8e77-e68cb819c503"
},
"data": {
"type": "stateroom_subcategory",
"id": "55523f76-70a2-3ea9-8e77-e68cb819c503"
}
},
"guests_charge": {
"links": {
"related": "/v1.1/guests_charge/45425036-1772-3f4c-ac50-6057ea07bc2a"
},
"data": {
"type": "guests_charge",
"id": "45425036-1772-3f4c-ac50-6057ea07bc2a"
}
},
"company": {
"links": {
"related": "/v1.1/company/2a15e462-7710-332a-b536-2ef4731d9dad"
},
"data": {
"type": "company",
"id": "2a15e462-7710-332a-b536-2ef4731d9dad"
}
},
"itinerary": {
"links": {
"related": "/v1.1/itinerary/41c9f2d0-7f17-3318-b72f-96aacb9f65b2"
},
"data": {
"type": "itinerary",
"id": "41c9f2d0-7f17-3318-b72f-96aacb9f65b2"
}
},
"ship": {
"links": {
"related": "/v1.1/ship/9508a19d-7801-307e-a7b7-628c31bfdd47"
},
"data": {
"type": "ship",
"id": "9508a19d-7801-307e-a7b7-628c31bfdd47"
}
},
"guest_charge": {
"data": [
{
"type": "guest_charge",
"id": "af25f52f-9ca3-3433-bc09-e14a3e8508a8"
},
{
"type": "guest_charge",
"id": "f23d6bfb-afa4-37a7-b2aa-b7c55d54e8d5"
}
]
},
"sitting_category": {
"links": {
"related": "/v1.1/sitting_category/69691c7b-dcc3-3e6d-9d8a-1361f22d04ac"
},
"data": {
"type": "sitting_category",
"id": "69691c7b-dcc3-3e6d-9d8a-1361f22d04ac"
}
},
"stateroom": {
"links": {
"related": "/v1.1/stateroom/113b8879-e07e-30b3-8c0f-f28605cf1ba4"
},
"data": {
"type": "stateroom",
"id": "113b8879-e07e-30b3-8c0f-f28605cf1ba4"
}
},
"region": {
"links": {
"related": "/v1.1/region/2e68a730-fe6a-3961-b469-6960b9af34c8"
},
"data": {
"type": "region",
"id": "2e68a730-fe6a-3961-b469-6960b9af34c8"
}
},
"promotion_category": {
"links": {
"related": "/v1.1/promotion_category/caa2791a-60cc-3086-9d37-05b9b521fbd9"
},
"data": {
"type": "promotion_category",
"id": "caa2791a-60cc-3086-9d37-05b9b521fbd9"
}
}
},
"links": {
"self": "/v1.1/booking/a13e87db-d497-3bd6-ba6c-8d62b064ef78"
}
},
"links": {
"self": "/v1.1/booking/a13e87db-d497-3bd6-ba6c-8d62b064ef78"
},
"included": ["..."],
"jsonapi": {
"version": "1.0"
}
}
Booking Attributes
| Field | Type | Description |
|---|---|---|
code | string | Reservation confirmation code |
url | string | URL to view the booking online |
pdf | string | URL to download the booking confirmation PDF |
Booking Relationships
| Relationship | Type | Cardinality | Description |
|---|---|---|---|
stateroom_subcategory | stateroom_subcategory | one | The booked stateroom subcategory |
guests_charge | guests_charge | one | Full pricing breakdown for all guests |
company | company | one | Operating cruise line |
itinerary | itinerary | one | The itinerary |
ship | ship | one | The ship |
guest_charge | guest_charge | many | Per-guest charge breakdowns |
sitting_category | sitting_category | one | Selected dining sitting |
stateroom | stateroom | one | The booked cabin |
region | region | one | Sailing region |
promotion_category | promotion_category | one | Applied promotion |
Guests Charge Attributes (included)
The guests_charge resource contains the same pricing fields as /v1.1/search/pricing:
| Field | Type | Description |
|---|---|---|
departure | string | Departure date (ISO 8601) |
adults | integer | Number of adult guests |
children | integer | Number of child guests |
base_fare_amount | number | Base fare before discounts |
base_nccf_amount | number | Base NCCF amount |
fare_amount | number | Fare after discounts |
fare_saving_amount | number | Total fare savings |
nccf_amount | number | Non-commissionable cruise fare |
subtotal_amount | number | Subtotal (fare + NCCF) |
total_amount | number | Total including taxes |
total_savings_amount | number | Total savings amount |
tax_amount | number | Port taxes |
payment_amount | number | Final payment amount |
payment_date | string | Final payment due date (ISO 8601) |
deposit_amount | number | Deposit amount per person |
deposit_date | string | Deposit due date (ISO 8601) |
Included Resource Types
| Type | Description |
|---|---|
company | Cruise line details |
ship | Ship details |
itinerary | Itinerary with ports and region |
region | Sailing region |
stateroom_subcategory | Subcategory details |
facility | Facility/amenity group |
stateroom | Full cabin details |
deck | Deck with plan image and legend |
stateroom_attribute | Cabin feature attributes |
bed | Bed type configuration |
stateroom_positioning | Ship position with diagram |
sitting_category | Dining sitting category |
promotion_category | Promotion with refundability |
refundability | Refundability policy |
guests_charge | Full pricing breakdown |
guest_charge | Per-guest charge breakdown |
Error Responses
| Status | Description |
|---|---|
401 | Unauthorized — missing or invalid API key |
422 | Unprocessable Entity — invalid guest details or booking parameters |
500 | Internal Server Error — upstream booking failure |