Magic Numbers
Magic numbers are reserved sandbox phone numbers (MSISDNs) that drive a deterministic provider outcome when used with a test key. They let you reproduce declines, timeouts, and provider errors without touching real customer accounts.
Use magic numbers only with a
srail_test_*credential. Live keys never receive magic-number handling — they reach the real provider.
How to use
- Authenticate with a sandbox (test) API key.
- Send the magic MSISDN as the payer phone on your payment request.
- The sandbox fabricates the mapped outcome (success callback, decline, etc.).
- Confirm your integration handles each outcome safely.
Airtel Money
| MSISDN | Outcome | Description |
|---|---|---|
256702000000 | success | Always succeeds. |
256702000001 | insufficient_funds | Insufficient balance. |
256702000002 | payer_not_found | Unknown Airtel Money payer. |
256702000003 | payer_rejected | Payer declines the USSD prompt. |
256702000004 | timeout | Payer never responds; callback after SLA. |
256702000006 | service_unavailable | Airtel-side outage. |
256702000008 | internal_provider_error | Internal provider error. |
MTN MoMo
| MSISDN | Outcome | Description |
|---|---|---|
46733123450 | internal_provider_error | RequestToPay fails with INTERNAL_PROCESSING_ERROR. |
46733123451 | payer_rejected | Payer rejects the approval prompt. |
46733123452 | timeout | Payer never approves; the request expires or times out. |
46733123453 | timeout | Request remains ongoing/pending in sandbox. |
46733123454 | timeout | Delayed payer response; useful for pending-path tests. |
46733123455 | payer_not_found | Payer MSISDN is not a registered MoMo account. |
46733123456 | internal_provider_error | Payee is not allowed to receive. |
46733123457 | internal_provider_error | Payer is not allowed. |
46733123458 | internal_provider_error | Target environment is not allowed. |
46733123459 | internal_provider_error | Callback URL host is invalid. |
46733123460 | internal_provider_error | Currency is invalid. |
46733123461 | internal_provider_error | Provider returns INTERNAL_PROCESSING_ERROR. |
46733123462 | service_unavailable | Provider-side outage. |
46733123463 | internal_provider_error | Provider could not perform the transaction. |
56733123453 | success | Always succeeds. Use for RequestToPay happy-path integration tests. |
Generated 2026-07-01 from api/internal/fixtures/magic_numbers.go.