Cancel your hotel booking
You request cancellation of all remaining rooms. Cancellation continues asynchronously; read your booking for its current state and attempt history. Repeated requests reuse an active attempt, and can resume its failed workflow. A canceled stay remains canceled while refunds are processed. Your cancellation refund is the recorded intent, not confirmation of settlement; a null refund requires review. Its refund_to names the payments the refund returns to once the attempt completes.
Your API key. Issued and revoked from the TrustPixel dashboard; the gateway resolves it to an owning organization on every request.
In: header
Path Parameters
^bkg_[a-zA-Z0-9-]+$length <= 128Header Parameters
Correlation id echoed to the upstream service and returned on the response. Generated as req_<uuid> when omitted.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/v1/hotel/bookings/string/cancel"{ "data": { "id": "bkg_example", "reference_id": "order-example", "status": "CANCEL_IN_PROGRESS", "hotel": { "id": "htl_example", "name": "Example Marina Hotel", "address": "Example Avenue, Dubai, AE" }, "check_in": "2027-11-22", "check_out": "2027-11-24", "total": { "amount": 600, "currency": "USD" }, "created_at": "2027-10-01T10:01:00Z", "updated_at": "2027-10-02T09:01:00Z", "confirmed_at": "2027-10-01T10:03:00Z", "canceled_at": null, "payments": [ { "id": "pay_example", "status": "CAPTURED", "amount": { "amount": 600, "currency": "USD" }, "payment_method": { "type": "CARD", "card": { "brand": "VISA", "last4": "4242", "funding": "CREDIT", "wallet": null } }, "created_at": "2027-10-01T10:02:00Z" } ], "cancellations": [ { "id": "can_example", "status": "IN_PROGRESS", "fee": null, "refund": null, "refund_to": null, "created_at": "2027-10-02T09:01:00Z", "canceled_at": null, "error_code": null } ], "hotel_confirmation_code": null, "hotel_remarks": null, "offer_expires_at": "2027-10-01T10:15:00Z", "due_at_property": null, "cancellation_policy": null, "contact": { "first_name": "Alex", "last_name": "Morgan", "email": "alex@example.com", "phone": "+447700900123" }, "loyalty": null, "rooms": [ { "id": "room_example1", "position": 0, "name": "Deluxe Twin", "board": "ROOM_ONLY", "board_name": "Room Only", "adults": 2, "children": [], "total": { "amount": 300, "currency": "USD" }, "due_at_property": null, "cancellation_policy": { "version": 1, "refundable": true, "deadline": "2027-11-20T00:00:00Z", "penalties": [ { "from": "2027-11-20T00:00:00Z", "type": "AMOUNT", "amount": { "amount": 150, "currency": "USD" } } ], "restrictions": [] }, "promotions": null, "supplier_reference_number": null, "hotel_confirmation_code": null, "canceled_at": null, "guests": [ { "id": "guest_example11", "first_name": "Alex", "last_name": "Morgan", "type": "ADULT", "is_lead": true }, { "id": "guest_example12", "first_name": "Sam", "last_name": "Morgan", "type": "ADULT", "is_lead": false } ] }, { "id": "room_example2", "position": 1, "name": "Deluxe Double", "board": "ROOM_ONLY", "board_name": "Room Only", "adults": 2, "children": [], "total": { "amount": 300, "currency": "USD" }, "due_at_property": null, "cancellation_policy": { "version": 1, "refundable": true, "deadline": "2027-11-20T00:00:00Z", "penalties": [ { "from": "2027-11-20T00:00:00Z", "type": "AMOUNT", "amount": { "amount": 150, "currency": "USD" } } ], "restrictions": [] }, "promotions": null, "supplier_reference_number": null, "hotel_confirmation_code": null, "canceled_at": null, "guests": [ { "id": "guest_example21", "first_name": "Jamie", "last_name": "Lee", "type": "ADULT", "is_lead": true }, { "id": "guest_example22", "first_name": "Taylor", "last_name": "Lee", "type": "ADULT", "is_lead": false } ] } ] }}Get weather for your hotel stay GET
You receive daily weather for your stored hotel coordinates and stay dates, including checkout day, regardless of your booking supplier. You need the same organization and user headers as a booking read. Measurements use metric units. Forecasts beyond one week are less reliable. You receive only available days; missing days and optional fields are unknown. Repeating this read requests fresh weather without changing your booking.
Estimate your cancellation fee GET
You receive an advisory quote from fresh supplier data: SUPPLIER_QUOTE uses a cancellation preview (WebBeds), while POLICY_ESTIMATE calculates from a freshly retrieved booking policy (LiteAPI and Duffel Stays). checked_at is the UTC time when the supplier reads completed, not a guaranteed validity deadline. Unreadable or missing booking policies return available=false; failed reads or unusable supplier preview responses return an error instead of stale terms. A local booking change during retrieval returns 409. An active stored WebBeds restriction returns 422 cancellation_restricted before or after the supplier reads. available describes the amount, not whether a new cancellation can start while earlier refund processing remains unfinished. The supplier's cancellation response determines the final fee. Your estimated refund uses the released price; the actual refund is capped by captured funds less previous refund intents.