Click through the whole flow (signup, pay, entitlements, Trebel handoff) against an in-memory sandbox at /demo/*. No Keycloak, no Stripe, no SFTP. State resets when the server restarts.
Creates a sandbox user. Returns a demo token + a fake client_secret for Stripe Embedded Checkout.
Real flow: /billing/checkout-session returns a client_secret, frontend mounts Stripe's Embedded Checkout. Here we just flip the user to paid.
What SeatClub or any other integrator would read.
Stripe Customer Portal URL (stand-in) and recent invoices.
Sets end_date to yesterday, dropping all entitlements.