The sandbox
account42 Sandbox is a real studio on the production system, switched to the sandbox environment: it is live, connected to Stripe in test mode, and seeded. Book there as a customer would. No real money moves.
- Hosted booking page: https://app.account42.com/b/account42-sandbox-3bc6c7
- Studio slug:
account42-sandbox-3bc6c7
What is there
Seeded every night (anything missing is recreated; anything you booked is cleared):
| Item | Detail |
|---|---|
| Open Mat (free) | Mon, Wed, Fri 18:00, free, 12 seats, 60 min |
| Drop-in Flow | Tue, Thu 19:00 and Sat 10:00, $10, 8 seats, 60 min |
| Small Group (2 seats) | Sun 09:00, $10, 2 seats, 45 min — fills fast, so the waitlist can be seen |
| 5-class pack | $40 for 5 credits |
| Monthly unlimited | $59 a month |
| Beginner bundle | $30, a class bundle over the next four Open Mat instances |
| Policy | 12-hour cancellation window, texts on, reminders 24 hours before |
Times are America/New_York; prices are USD.
Getting a key
A key for the sandbox is minted exactly as for any studio, through the connect handshake, with platform=html and the origin of the page you will embed on. There is no reviewer login to publish: the handshake is the door.
- Ask hello@account42.com for a sandbox key for your origin, naming the origin (
https://your-site.example). We open the consent page as the sandbox's owner, press Allow, and send you the key. The key is publishable: it may sit in your page, and it works only from that origin. - Or, if you have your own account42 studio, open the consent page yourself:
https://app.account42.com/connect?platform=html
&origin=https://your-site.example
&return=https://your-site.example/anywhere
&state=anything-up-to-256-characters
After Allow, the browser lands on your return URL with ?a42_code=…. Exchange it within ten minutes, with no credential:
curl -X POST https://app.account42.com/api/v1/connect/exchange \
-H 'Content-Type: application/json' \
-d '{"code":"<the a42_code value>"}'
The answer is { "data": { "key": "a42pk_…", "merchant": { … } } }. Then:
<script src="https://app.account42.com/widget/v1/booking.js" defer></script>
<a42-booking key="a42pk_…"></a42-booking>
A secret key (a42_…, the whole v1 surface, server-to-server) is issued by account42 for a studio you own; ask at the same address.
Test cards
The sandbox's Stripe account is in test mode, so Stripe's test cards work and real cards are refused:
| Card | Result |
|---|---|
4242 4242 4242 4242 | Succeeds |
4000 0025 0000 3155 | Requires 3-D Secure authentication |
4000 0000 0000 9995 | Declined, insufficient funds |
Any future expiry, any CVC, any postal code. The full list is in Stripe's documentation under Testing.
The nightly reset
Every day at 05:00 UTC the sandbox is reset: every open waitlist entry is cleared, every open waitlist offer expired, every pending or confirmed booking canceled (seats released; nothing is promoted because no waiter is left), and day-old connect codes swept. The studio, its classes, packs, plans and class bundles stay. Keys minted for the sandbox stay valid; nothing about your integration changes overnight.
A sandbox studio also cannot be moved back to live once a payment exists on it (P0041 environment_locked), so it stays a sandbox.
What sends for real
The sandbox is on the production system, so its messages are real:
- Email is sent for real, from account42 Sandbox via account42, to the address you book with. The confirmation carries the manage link, the add-to-calendar links and
booking.ics; the reminder goes out 24 hours before the class. - Text messages are sent for real to the phone you book with when you choose texts (reminders between 09:00 and 21:00 in the class's time zone). The sandbox is exempt from the trial-studio SMS block, so a sandbox booking with a phone number does receive texts. Reply STOP to opt out.
- Web push is sent for real to a browser that subscribed.
- Payments are Stripe test mode: no money moves, and refunds are test refunds.
Use your own addresses and numbers. Do not book the sandbox with someone else's contact details.