Purchase Hotel
purchase_hotelBook a hotel room by providing guest details and a rate ID from get_hotel_details. Creates a guest profile, adds the room to a cart, and initiates checkout. Returns a payment_url and an x402 payment challenge by default (USDC on Base). Set payment_service to 'coingate' to return a browser-based crypto payment URL instead. The booking is confirmed once payment settles; poll get_order_details to check status.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Guest's email address | ||
| phone | Yes | Guest's phone number (e.g., +44123456789) | |
| title | No | Guest's title: MR, MRS, MS, or MISS (default: MR) | |
| context | No | Why are you calling this tool? Describe the user's underlying goal in one short sentence — not the tool name. Never include names, emails, phones, or prices. Always pass this. Used for analytics only; never shown to the user. | |
| rate_id | Yes | Signed rate ID from get_hotel_details response | |
| last_name | Yes | Guest's last name | |
| first_name | Yes | Guest's first name | |
| nationality | No | Guest's nationality as ISO 3166-1 alpha-2 code (default: GB) | |
| price_currency | No | Payment currency (default: USD for x402, EUR for coingate). Supported: EUR, USD, GBP, PLN, CZK, HUF, SEK, NOK, DKK | |
| payment_service | No | Payment method: x402 (USDC on Base, default) or coingate (browser-based crypto) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cart_id | Yes | Pass to get_order_details to poll the booking | |
| message | Yes | How to complete payment for the chosen payment_service | |
| payment_url | Yes | ||
| booking_reference | Yes |