Bookings & Payments

Understand the booking lifecycle, payment processing, refunds, gift vouchers, discount codes, and digital waivers.

Booking Flow

The customer booking flow is a guided multi-step process on your public booking page at hyperxi.com/book/your-slug.

1

Select room

Customer browses available rooms with descriptions, difficulty, duration, and pricing

2

Pick a date

Calendar shows available dates with slot counts

3

Choose a time slot

Available slots for the selected date are displayed with remaining capacity

4

Enter details

Customer name, email, phone, number of players, and optional discount code

5

Pay via Stripe

Redirected to Stripe Checkout for secure payment. Gift voucher balance can be applied.

6

Confirmed

Booking confirmed, confirmation email and SMS sent with booking reference code

Booking Statuses

Every booking follows a state machine with well-defined transitions. The booking reference code format is XX-YYYY-ZZZZ (e.g., ES-2026-A7K9), where XX is the tenant prefix, YYYY is the year, and ZZZZ is a unique alphanumeric code.

Booking state machine
                    +---> completed
                    |
pending ---> confirmed ---+---> cancelled
                    |
                    +---> no_show

Transitions:
  pending   -> confirmed    (payment succeeds via Stripe webhook)
  pending   -> cancelled    (payment fails or expires after 30 min)
  confirmed -> completed    (admin marks after session ends)
  confirmed -> cancelled    (admin or customer cancels before session)
  confirmed -> no_show      (admin marks when customer doesn't arrive)

pending

Booking created, awaiting payment. The slot is held for 30 minutes. If payment is not completed, the booking is automatically cancelled and the slot is released.

confirmed

Payment received. The slot is locked. Confirmation email and SMS are sent to the customer with booking details and a manage link.

completed

The session has been played. Set by an admin after the experience ends.

cancelled

Booking cancelled by admin, customer, or system. The slot is released back to inventory. Refunds are processed separately.

no_show

Customer did not arrive. Set by an admin. No automatic refund is issued.

Payments

HyperXI uses Stripe Checkout for payment processing. Customers are redirected to a Stripe-hosted payment page, then returned to your booking confirmation page on success.

Stripe Connect

Each tenant connects their own Stripe account via Stripe Connect. Payments go directly to your Stripe account. HyperXI never holds your funds.

Refunds

Refunds can be issued for confirmed or completed bookings via the admin panel at /admin/bookings/:id or through MCP. You can issue a full refund or a partial amount. The refund is processed through Stripe back to the customer's original payment method.

MCP Prompt

"Cancel booking ES-2026-A7K9 and issue a full refund."

MCP Prompt

"Issue a partial refund of $25 for booking ES-2026-B3M2."

Gift Vouchers

Gift vouchers let customers purchase a dollar amount that can be redeemed during checkout. Vouchers support partial redemption -- if a booking costs less than the voucher value, the remaining balance carries forward.

How customers purchase

Customers visit hyperxi.com/book/your-slug/voucher to purchase a gift voucher. They specify the dollar amount and recipient email. Payment is processed via Stripe, and the recipient receives the voucher code via email.

How customers redeem

During the booking checkout step, customers enter their voucher code. The voucher balance is applied to the total. If the balance covers the full amount, no additional payment is required. If not, the customer pays the remaining difference via Stripe.

Admin-created vouchers

Operators can create vouchers directly from /admin/vouchers or via MCP. This is useful for promotional giveaways, compensation, or loyalty rewards.

MCP Prompt

"Create a $50 gift voucher for john@example.com with no expiry."

MCP Prompt

"Show me all active vouchers with remaining balance."

Discount Codes

Discount codes give customers a price reduction at checkout. Create and manage them at /admin/discounts.

Discount types

Percentage

Reduces the total by a percentage. Example: 20% off.

Fixed amount

Reduces the total by a flat dollar amount. Example: $10 off.

Constraints

Each discount code can be constrained by:

  • Valid date range -- Start and end dates for when the code is active
  • Usage limit -- Maximum number of times the code can be redeemed (total)
  • Room targeting -- Restrict to specific rooms or apply to all

MCP Prompt

"Create a discount code SUMMER25 for 25% off, valid June 1 through August 31, limited to 100 uses."

MCP Prompt

"Create a $15-off discount code WIZARDSPECIAL that only applies to the Wizard's Tower room."

Waivers

HyperXI includes a built-in digital waiver system with automatic reminders and per-participant tracking.

Automatic reminders

After a booking is confirmed, each participant receives an email (and optionally SMS) with a link to sign the waiver. Reminders are sent automatically if the waiver has not been signed 24 hours before the booking time.

Signing flow

Each participant visits their unique waiver link at hyperxi.com/book/your-slug/waiver/:bookingId. They review the waiver sections, enter their name, and provide an electronic signature. The signed waiver is stored with a timestamp and IP address for compliance.

Per-participant tracking

The admin panel shows waiver status for each participant in a booking -- signed, pending, or not yet sent. You can see this at a glance on the booking detail page at /admin/bookings/:id.

MCP Prompt

"How many unsigned waivers do we have for this weekend's bookings?"

MCP Prompt

"Send a waiver reminder for booking ES-2026-C5P1."

Managing via MCP

All booking operations are available through MCP. Here are common prompts:

MCP Prompt

"Show me today's bookings with customer names and waiver status."

MCP Prompt

"What's our revenue for this month so far?"

MCP Prompt

"Mark booking ES-2026-D2R8 as completed."

MCP Prompt

"List all no-shows from last week."

MCP Prompt

"Create a booking for John Smith (john@example.com) for Wizard's Tower this Saturday at 2pm, 4 players."