Sandbox
Test the full checkout, webhook and benefit flow without moving real money.
Every organization has an environment: sandbox or production. It's a property of
the organization (not a separate server), switchable both ways at any time from
Settings → Environment. New organizations start in sandbox.
What sandbox changes
| Surface | Behavior |
|---|---|
| Checkout | The buyer is sent to an internal gateway simulator instead of ArifPay |
| Payments | Marked internally as simulated — never reconciled against ArifPay |
| Orders & sessions | Stamped environment: "sandbox" at creation; switching the org later never re-labels historical data |
| Balance | Sandbox earnings show on the Overview but can never be withdrawn and never mix with production numbers |
| API tokens | Issued as jamidev_test_…; they stop authenticating if the org switches environment |
| Webhooks | Delivered normally, with "livemode": false in the payload envelope |
| Emails | Buyer receipts are suppressed; the org owner still gets a [TEST]-prefixed sale notification |
Test phone numbers
On a sandbox checkout these settle instantly, like Stripe's 4242 card:
| Phone | Result |
|---|---|
251900000001 | Instant success — order created, benefits granted, webhooks fired |
251900000002 | Instant failure — session expired, no order |
| anything else | Manual simulator page with Approve / Fail / Cancel buttons |
The simulator drives the exact same order lifecycle as a real payment notification, so replays are idempotent: approving twice still creates exactly one order.
Switching environments
Both directions are allowed, any time, per organization:
- Sandbox → production: new checkouts charge real money. Existing test data stays
labeled sandbox. Re-issue tokens as
jamidev_live_. - Production → sandbox: new checkouts on your live links become simulated (buyers see the test-mode gateway and are not charged). Production history is untouched.
Only new checkout sessions are affected by a switch — everything already created keeps the environment it was born with.
