Skip to main content
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.

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.
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.
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:
  1. The customer sees an error message on the Stripe checkout page.
  2. They can retry with a different card or payment method immediately within the same session.
  3. If the session has expired, they need to start a new booking.
If a payment link expires, a new one needs to be generated. Contact support at support@thexo.app if a customer’s payment link has expired and needs to be resent.