Complete your hotel booking
You complete a ready booking with your saved payment instrument, or send an empty object after authorizing the SDK payment. A repeated confirmed booking returns its stored result. Read an in-progress booking when the result is unknown; do not create a replacement purchase.
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.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
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/book" \ -H "Content-Type: application/json" \ -d '{ "payment_instrument_id": "REPLACE_WITH_YOUR_PAYMENT_INSTRUMENT_ID" }'{ "data": { "id": "bkg_example", "reference_id": "order-example", "status": "CONFIRMED", "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-01T10:03: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": [], "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 } ] } ] }}Prebook a hotel stay POST
You bind an offer to your contact and room guests. Supply one adult lead per room and keep the room order from your offer. Repeat your idempotency key to read the existing booking. A payment SDK token is returned once in meta.payment_sdk.token when you request SDK payment; it is not stored for later retrieval.
Read your hotel booking GET
You receive the stay, contact and guests assigned to each room. Money is in major currency units. Room prices and cancellation policies apply only to that room. Due-at-property uses a stated booking total, otherwise a complete same-currency room sum or a list when room currencies differ; null means the total is unknown. Your hotel.id is the service's stable hotel ID. You receive every payment, oldest first, with the card your traveller paid with when it could be read in time.