MVP policy for cancelling, refunding, and disputing paid court bookings.
Paid Court Booking Cancellation and Refund Policy
This page documents the first supported post-payment flow for direct court bookings paid through Stripe.
MVP decisions
- Users can self-cancel their own paid court bookings.
- Location organisers and admins can also cancel paid bookings that they are allowed to manage.
- Self-service cancellation is only available while the booking start time is still more than 24 hours away.
- Eligible paid cancellations trigger an automatic full refund in Stripe.
- The MVP refunds the full booking amount, including any Courtex application fee that was retained on the original payment.
- Partial refunds are not a supported self-service path. If a partial refund is created manually in Stripe, Courtex records the refunded amount for admin visibility and follow-up.
- Stripe disputes do not automatically cancel the booking. Courtex marks the payment as disputed for manual review.
Local state rules
- Cancelling a booking without a linked payment only marks the booking as
CANCELLED. - Cancelling a booking with a linked
pendingcourt-booking payment also moves the payment tocancelled. - Cancelling a booking with a linked
paidcourt-booking payment before the cutoff: - creates a Stripe refund using the stored PaymentIntent,
- records the Stripe refund ID locally,
- marks the payment as
refunded, and - marks the booking as
CANCELLED. - Attempting to cancel a paid booking inside the 24-hour cutoff is blocked.
- Disputed payments are blocked from self-service cancellation and require manual admin/support review.
Webhook scope in this MVP
checkout.session.completed: marks the court-booking payment as paid, stores the PaymentIntent ID, and confirms the booking.charge.refunded: syncs Stripe refund data back onto the payment and cancels the booking when the refund is full.charge.dispute.created,charge.dispute.updated,charge.dispute.closed: store dispute state on the payment for admin visibility.