XO offers two ways for customers to pay for their bookings: an in-app checkout session and a payment link. Both use Stripe and result in the same confirmed booking — they differ in how and when the customer pays.Documentation Index
Fetch the complete documentation index at: https://help.thexo.app/llms.txt
Use this file to discover all available pages before exploring further.
In-app checkout session
When a customer completes their booking in the XO app or website, they’re redirected to a Stripe checkout page immediately. This is a checkout session.| Feature | Details |
|---|---|
| How it’s triggered | Automatically when the customer finalises their booking |
| Expiration | 30 minutes — the customer must pay within 30 minutes of submitting their booking |
| Suitable for | Real-time bookings where the customer intends to pay immediately |
Payment link
A payment link is a shareable URL that the customer can open and pay at a later time. It’s typically sent via email or message after the booking is created.| Feature | Details |
|---|---|
| How it’s triggered | Generated on request — either by the system after an admin creates a booking, or via the booking confirmation email |
| Expiration | 24 hours — the customer must pay within 24 hours |
| Suitable for | Situations where you or the customer needs more time before payment |
When would I use a payment link?
Payment links are useful when:- You’ve created an admin booking (guest list entry) and want to send the customer a payment link later.
- The customer didn’t complete the checkout session in time and needs a fresh link.
- The customer is booking by phone or email and you want to send them a link to pay.
What happens after payment?
Regardless of which method is used, the outcome is the same:- Payment successful → Booking moves to Confirmed, entry passes are generated and sent to the customer.
- Payment not completed / expired → Booking remains in Pending or moves to Declined.
Does the customer choose which method to use?
No — the customer doesn’t choose. The checkout session is the default flow. Payment links are generated by the system or admin when needed (e.g., for admin-created bookings or follow-up payment reminders).What if a customer’s payment fails?
If a payment fails during the checkout session:- The customer sees an error message on the Stripe checkout page.
- They can retry with a different card or payment method immediately within the same session.
- If the session has expired, they need to start a new booking.

