Skip to main content
Every integration starts in the sandbox. When you register an application in the business portal, it is issued sandbox application credentials by default. The sandbox exposes the same API contract as production, so you can build and test the full flow before requesting production access.
Base URL: https://api.zeam.money/gw/v1The sandbox uses the same base URL as production. Which environment a request runs in is determined by your application’s registration and role, not by the host. Sandbox and production credentials are separate.

What the sandbox is for

  • Authenticating: issuing an access token and calling protected endpoints.
  • Building the payment flow end to end: wallets, connectors, quotes, and P2P, swap, and off-ramp payments.
  • Exercising deterministic off-ramp outcomes.
  • Testing your webhook handling.
  • Validating your error handling against the RFC 7807 contract.

Sandbox versus production

  • Same base URL. Sandbox and production share https://api.zeam.money/gw/v1; your application’s registration determines the environment, so there is no host to switch.
  • Separate credentials. Sandbox and production credentials are distinct and not interchangeable. See Register your application.
  • No real value moves. Off-ramp payouts are simulated (see below); no funds reach a real mobile-money or bank account.
  • Same contract. Endpoints, request and response shapes, and error formats match production, so your integration code does not change between them.
Treat the sandbox as a shared, non-production environment. Do not send real personal data, real customer identifiers, or anything you could not put in a test system.

Off-ramp testing

In the sandbox, off-ramp execution is simulated so you can test both outcomes deterministically. The simulator decides the result from the sender’s MSISDN (mobile number):
  • Sender MSISDN ends in 111: the off-ramp succeeds.
  • Sender MSISDN ends in 000: the off-ramp fails.
  • Any other ending is treated as a failure.
These rules apply to the sandbox only. Never rely on them in production, where the real payout provider determines the outcome.
The simulator evaluates the sender MSISDN that the platform resolves for the off-ramp. The gateway’s POST /v1/payments/offramp request does not itself carry a sender MSISDN field.
Off-ramps are asynchronous: a submission returns 202 Accepted with a transactionRecordId, and the simulated outcome arrives afterwards. Poll the transaction or receive webhooks to observe it.
1

Submit the off-ramp

cURL
202 Accepted
2

Confirm a success (sender MSISDN ends in 111)

A successful simulation moves the transaction to completed and emits the IntentSuccessful webhook event.
GET /v1/transactions/{transactionRecordId}
3

Confirm a failure (sender MSISDN ends in 000)

A failed simulation moves the transaction to failed and emits the IntentFailed webhook event.
GET /v1/transactions/{transactionRecordId}

Limitations

The sandbox is for integration testing, not load testing or production traffic.

Moving to production

When your integration works end to end in the sandbox, review Moving to production.