---
title: Sandbox
description: Test mobile money numbers and what each one does.
---

In the test environment no real money moves for collections and payouts. Utility purchases are the exception: they send real airtime and data in test too. See [Utility purchases](/guides/utility-purchases).

Some providers give you fixed test numbers that decide the outcome.

## Which providers have test numbers

| Provider  | Test numbers                                     |
| --------- | ------------------------------------------------ |
| `telecel` | Yes. Listed below.                               |
| `mtn`     | None documented yet. Do not guess numbers.       |
| `calbank` | None documented yet. Do not guess numbers.       |

If you need to test another provider, ask support.

## Telecel test numbers

Send these as the mobile money number on a `telecel` collection or payout. Ghanaian form (`233000000001`) is accepted. So is the short form (`000000000001`).

| Number         | Collection                     | Payout                            |
| -------------- | ------------------------------ | --------------------------------- |
| `233000000001` | Succeeds.                      | Succeeds.                         |
| `233000000003` | Not documented.                | Fails. The funds are returned.    |
| `233000000004` | Fails as a wrong PIN.          | Not documented.                   |

Any other number is not a test number. Do not expect it to succeed in test.

The failing collection number can take a while to reach `failed`. Poll it, or wait for its webhook. Do not treat an in-progress status such as `dispatched` as a hang straight away.

## Tips

- Use a fresh `reference` for every attempt. References are never reused.
- Test the failure paths, not just success. Make sure your code handles `failed`.
- To try a payout that stops for review, ask support. There is no test number for it.
- Test webhooks need a public HTTPS URL. A laptop is not reachable from outside. Use a tunnel, or poll with `GET` while you build. Once an endpoint is registered, use **Send test event** in the console to check your signature code.
