Cancel Booking Item Endpoint
Cancels a single product inside a booking, leaving other products in the same booking untouched.
- Endpoint:
/api/v1/bookings/{booking_number}/items/{product_booking_item_id}/cancel - Method:
POST
:::warning Flights are not cancelled here
This endpoint currently handles Tour (pd8) and KKday (pd4) items only. Sending a
flight item returns:
{
"result": 0,
"message": "Cancellation is only available for tour booking items."
}
To cancel or refund a flight, use the flight endpoints instead:
| Situation | Endpoint |
|---|---|
| Booking created but ticket not yet issued | POST /api/v1/flights/bookings/cancel |
| Ticket already issued | POST /api/v1/flights/bookings/refund |
This page documents the shared route so mixed carts are covered — a cart containing a flight and a tour can cancel the tour leg here, but not the flight leg. :::
Headers
| Header | Value | Required | Description |
|---|---|---|---|
Partner-Access-Token | Base64 String | Yes | Your encrypted AES-256 time-sensitive token. |
Authorization | Bearer <token> | Yes | Customer access token from Login. |
Content-Type | application/json | Yes | |
Accept | application/json | Yes |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
booking_number | String | Yes | The booking number. |
product_booking_item_id | Integer | Yes | The id of the item inside the booking's items array. |
Payload Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
cancel_type | String | Conditional | Required for KKday (pd4) items. See the table below. |
cancel_desc | String | Optional | Free-text reason. |
Cancel types
| Value | Description |
|---|---|
MC001 | Trip changes or cancellations |
MC002 | Duplicate orders |
MC003 | Price related factors |
MC004 | Personal reasons |
MC005 | Transportation related factors |
MC006 | Unable to contact vendor/shop |
MC999 | Other reasons |
Eligibility
The item is only cancellable when all of the following hold:
- The booking belongs to the authenticated customer and your partner account.
- The item's
payment_statusispaid. - The item's
booking_statusiscompleted. - The item's product type is
pd8(Tour) orpd4(KKday).
Otherwise the request fails with
Booking item not found or does not belong to the user or booking has cancelled.
Sample Payload
{
"cancel_type": "MC004",
"cancel_desc": "Traveller changed plans"
}
Sample Response
{
"result": 1,
"message": "success",
"data": {
"message": "Booking item cancelled successfully. Please waiting for the refund process."
}
}
Errors
| HTTP | Message | Cause |
|---|---|---|
401 | — | Missing or invalid Authorization bearer token. |
200 | Booking item not found or does not belong to the user or booking has cancelled. | Item not found, not paid, not completed, or not owned by this customer/partner. |
200 | Cancel type is required and must be valid for booking item cancellation. | cancel_type missing or invalid on a KKday item. |
200 | Cancellation is only available for tour booking items. | The item is a flight or another unsupported product type. |
Related
- Flight Booking endpoints — flight cancel and refund.
- Booking Detail — to find
items[].id.