Checkout Endpoint
Reviews the selected hotel rate and returns final checkout details before booking confirmation.
- Endpoint:
/api/v1/unified-booking/checkout - Method:
POST
Headers
| Header | Value | Required | Description |
|---|---|---|---|
Partner-Access-Token | Base64 String | Yes | Your encrypted AES-256 time-sensitive token. |
X-Currency | Currency Code | Yes | Requested currency code, e.g. THB or MMK. |
Content-Type | application/json | Yes | |
Accept | application/json | Yes |
Payload Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
products | Array | Yes | Products to checkout. |
products.guests | Array | Yes | Guest information grouped by room. Each item is an array of guests for one room. |
hotel_code | String | Yes | Provider hotel code. |
hotel_name | String | Yes | Hotel name. |
rate_code | String | Yes | Rate code from Search Room. |
check_in | String | Yes | Date format YYYY-MM-DD. |
check_out | String | Yes | Date format YYYY-MM-DD. |
rooms | Integer | Yes | Room quantity. |
adults | Integer | Yes | Adult quantity. |
children | Integer | Optional | Children quantity. |
children_ages | Array | Optional | Child ages. |
country_code | String | Yes | Hotel country code. |
product_type | String | Yes | Hotel product type. Use pd11. |
payment_method | String | Yes | Payment method. Example: pay_later. |
payment_option | String | Yes | Payment option. Example: pay_later. |
Sample Payload
{
"products": [
{
"guests": [
[
{
"first_name": "John",
"last_name": "Doe",
"email": "guest@example.com",
"mobile_phone_code": "66",
"mobile_phone_number": "800000000",
"type": "ADU",
"nationality_code": "TH"
}
]
],
"order_note": "test",
"hotel_code": "757293",
"hotel_name": "Best Western Sukhumvit 20",
"rate_code": "v2067864075593089035_7200_2|TH",
"check_in": "2026-06-27",
"check_out": "2026-06-28",
"rooms": 1,
"adults": 2,
"children": 0,
"children_ages": [],
"country_code": "TH",
"product_type": "pd11"
}
],
"payment_method": "pay_later",
"payment_option": "pay_later"
}
Guest Grouping
The guests value must be grouped by room. For one room, send one nested guest array:
Guest type values:
| Value | Description |
|---|---|
ADU | Adult guest. |
CHD | Child guest. |
"guests": [
[
{
"first_name": "John",
"last_name": "Doe",
"email": "guest@example.com",
"mobile_phone_code": "66",
"mobile_phone_number": "800000000",
"type": "ADU",
"nationality_code": "TH"
}
]
]
For two rooms, send two nested guest arrays:
"guests": [
[
{
"first_name": "John",
"last_name": "Doe",
"email": "guest@example.com",
"mobile_phone_code": "66",
"mobile_phone_number": "800000000",
"type": "ADU",
"nationality_code": "TH"
}
],
[
{
"first_name": "Jane",
"last_name": "Smith",
"email": "guest2@example.com",
"mobile_phone_code": "66",
"mobile_phone_number": "800000000",
"type": "ADU",
"nationality_code": "TH"
}
]
]
Sample Response
{
"result": 1,
"message": "Checkout data retrieved successfully.",
"data": [
{
"puid": "0G7KY9KNb6",
"product_type": "pd11",
"hotel_code": "757293",
"hotel_name": "Best Western Sukhumvit 20",
"room_type_code": "4036268",
"room_name": "Superior Double Room",
"rate_code": "v2067864077023346698_7201_2|TH",
"check_in": "2026-06-27",
"check_out": "2026-06-28",
"rooms": 1,
"adults": 2,
"children": 0,
"currency": "THB",
"display_currency": "MMK",
"display_grand_total": 208406.25,
"original_currency": "CNY",
"original_price": 268.75,
"grand_total": 208406.25,
"total_price": 182047.5,
"total_with_tax": 208406.25,
"tax_amount": 26358.75,
"refundable": false,
"cancellation_info": {
"refundable": false,
"deadline": "2026-06-18 10:00:00",
"timezone_label": "Asia/Bangkok"
}
}
],
"meta": {
"currency_code": "MMK",
"sub_total": 208406.25,
"grand_total": 208406.25,
"bank_fee_amount": 3,
"bank_fee_price": 6252.19,
"bank_fee_grand_total": 214658.44
}
}
Notes
Use this endpoint to validate final rate, pricing, and cancellation information before confirming the booking.