QuataPay
Developer docs

Sandbox

Test your integration with pre-funded wallets and simulated payment scenarios — no real XAF required.

Browse developer docs
Back to developer docs

Sandbox

Test your integration without moving real money.


Sandbox API keys

Use keys with the qpay_test_ prefix. All operations in test mode operate on isolated sandbox wallets with no real XAF.

Generate test keys from your merchant dashboard under Developer → API Keys — ensure the mode selector shows Test.


Pre-funded sandbox wallets

When you register and log in with a test user account (email ending in @sandbox.quatapay.com), the account is automatically credited with 100,000 XAF in sandbox balance so you can immediately test checkout flows.

To reset your sandbox balance, go to Developer → Sandbox in the merchant dashboard and click Reset sandbox wallets.


Simulating scenarios

Send specific customer_reference values to trigger deterministic outcomes:

customer_reference valueSimulated outcome
sim_successPayment succeeds immediately
sim_insufficientPayment fails — INSUFFICIENT_FUNDS
sim_cancelCustomer cancels the checkout
sim_timeoutIntent expires (TTL simulated)
sim_pin_errorPIN verification fails
(any other value)Normal checkout flow

Test checkout flow

  1. Create a test payment intent using your qpay_test_ key
  2. Open the returned checkout_url in your browser
  3. Log in with a sandbox user account (or create one — pick any email, no SMS is sent in test mode)
  4. Confirm the payment
  5. Watch the webhook arrive at your endpoint

Webhook testing

In Developer → Sandbox, you can click Trigger test event to send a synthetic payment.succeeded or payment.failed webhook to your configured endpoint — useful for testing your handler without going through the full checkout flow.


Differences from production

FeatureSandboxProduction
Real moneyNoYes
SMS OTPNot sentSent via provider
Email receiptsLogged onlySent via SMTP2GO
Webhook retriesImmediateExponential back-off
Rate limitsRelaxed (1,000 req/min)Standard (300 req/min)

Going live

When you're ready to accept real payments:

  1. Complete merchant KYC in the dashboard
  2. Generate a qpay_live_ API key
  3. Swap your key and update your webhook endpoint URL to use the live secret
  4. Remove any sim_* customer references from your integration