create_payment_link
Creates a booking cart and returns a secure payment URL the customer uses to pay. Locks live prices for up to 4 items (a hotel room from search_hotels_near_event, event tickets from search_events, or an experience from search_experiences, which comes back as a site link for the customer to complete) and returns an Event Escapes payment link for that exact total. Requires the customer's email, first and last name, and customer_consent: the customer's own words asking to book these items. This tool charges nothing: the customer pays on the payment page, and the card is only captured once every booking is confirmed. Returns status payment_link_ready with payment_url, or status action_required listing what is still needed (a ticket category, approval of a price change, or attendee details that some ticket suppliers require); calling again with the same items plus those fields continues the booking. Items stay in the customer's cart for 90 minutes across calls and one payment URL covers the whole cart. Each new payment URL expires the customer's previous unpaid one, and a payment URL expires after about 30 minutes. Event Escapes is the merchant of record. Requires agent_terms_accepted: true, the calling agent's acceptance of the Event Escapes AI Agent Terms (https://eventescapes.com/terms/ai-agents); every payment link is recorded with the agent, the customer's consent, the items and the total as booking evidence. Large orders also need total_confirmation.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | What to book, in order. Each item is one hotel room, one ticket line, or one experience. | |
| agent_name | No | Name of the AI assistant making the booking, e.g. 'Meta Muse' or 'Claude'. Recorded with the booking. | |
| promo_code | No | Promo code supplied by the customer, exactly as given. | |
| attendee_names | No | EVENT tickets for more than one attendee: comma-separated full names, when a previous result asked for them. | |
| customer_email | Yes | Customer's email address, exactly as the customer confirmed it. The receipt and booking confirmations are sent here. | |
| customer_phone | No | Customer's mobile in E.164 (+61..., +1...), if known. | |
| accept_new_price | No | true to accept a price change reported by a previous result, once the customer has agreed to the new total. | |
| attendee_details | No | Attendee details, when a previous result asked for them: one entry per attendee separated by ';', e.g. 'name=John Smith, dob=1985-03-04, passport=N1234567, nationality=Australia', with only the fields that result named. | |
| customer_consent | Yes | Required. The customer's own words asking to book these items (e.g. 'yes book the Marriott and 2 tickets'). | |
| residency_country | No | Customer's country of residence, if stated (hotel prices vary by residency). | |
| customer_last_name | Yes | Lead traveller's last name. | |
| total_confirmation | No | Only when a previous result asked for it (large orders): the customer's own words confirming the stated total. | |
| customer_first_name | Yes | Lead traveller's first name. | |
| agent_terms_accepted | Yes | Required, must be true: the calling agent accepts the Event Escapes AI Agent Terms (https://eventescapes.com/terms/ai-agents) and confirms it acts on this customer's instruction. | |
| details_confirm_quote | No | Required when attendee_details includes a passport or date of birth: the customer's confirmation that the details are correct, given after being told they cannot be changed later. |