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.
If the checkout session expires before payment, the booking moves to Declined status and the customer needs to start a new booking.
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.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.

