JamiDev

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

SurfaceBehavior
CheckoutThe buyer is sent to an internal gateway simulator instead of ArifPay
PaymentsMarked internally as simulated — never reconciled against ArifPay
Orders & sessionsStamped environment: "sandbox" at creation; switching the org later never re-labels historical data
BalanceSandbox earnings show on the Overview but can never be withdrawn and never mix with production numbers
API tokensIssued as jamidev_test_…; they stop authenticating if the org switches environment
WebhooksDelivered normally, with "livemode": false in the payload envelope
EmailsBuyer 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:

PhoneResult
251900000001Instant success — order created, benefits granted, webhooks fired
251900000002Instant failure — session expired, no order
anything elseManual 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.

On this page