Skip to navigation

Sandbox Testing

View as Markdown

Use the Sandbox base URL to exercise your integration without moving money. The Sandbox recognises reserved customer identifiers that force a specific transaction outcome, so you can test every branch of your fulfilment logic before you go live.

These identifiers only work against the Sandbox environment listed on the overview page. In the Live environment, every identifier is treated as a real customer.

Simulated outcomes

Send the identifier in the receiver field of the request. For electricity it is the meter number. For airtime and data it is the customer phone number.

Outcomereceiver valueWhat the API returns
Failure9999999999999HTTP 417 with success: false and a failure message.
Processing8888888888888HTTP 202 with status: PROCESSING. Use requery to resolve the final state.
SuccessAny other numberHTTP 200 with status: SUCCESS.

The same identifiers apply to electricity (POWER), airtime (AIRTIME), and data (DATA). TV does not have documented simulator identifiers.

Where the identifier goes

ProductRequest
ElectricitySend it as the meter number in receiver when you verify or initiate the transaction. The simulated outcome is returned when you vend with the resulting verification reference.
AirtimeSend it as the phone number in receiver in the vend request.
DataSend it as the phone number in receiver in the vend request, together with the selected package.

Suggested test plan

  1. Vend with an ordinary number and confirm your application fulfils the order on SUCCESS.
  2. Vend with 9999999999999 and confirm your application records the failure without fulfilling the order or re-sending the vend.
  3. Vend with 8888888888888, then poll GET /requery until a final status is returned, and confirm that pending transactions are never fulfilled early.

See Transaction Status for requery and reconciliation guidance.