Sandbox & test values
Trigger specific payout outcomes and settle collections on demand while you test.
Everything on this page needs a Sandbox key (prefix mpb_test_). Sandbox uses the same base URL and endpoints as Live; see Environments. No real money moves.
Payout outcomes
The last four digits of the recipient's account number (or phone number, IBAN or CLABE) decide what happens to a Sandbox payout:
| Destination ends in | Result |
|---|---|
0000 | Declined immediately: 502 PROVIDER_DECLINED. Your wallet is credited back and payment.failed is sent. |
0001 | Accepted as processing, then settles a few minutes later (within about 5 minutes) and payment.settled is sent. Use it to test asynchronous settlement. |
| anything else | Settles immediately: the create response shows successful and payment.settled is sent. |
For example, a Nigerian bank recipient with account number 0123450000 always declines, and 0123450001 settles asynchronously.
{
"status": "error",
"message": "PROVIDER_DECLINED",
"data": { "reason": "Sandbox: destination ending 0000 always declines" }
}Account validation
POST /payouts/validate-account always returns "accountName": "Sandbox Account" in Sandbox, for any account number.
Settle a collection
Customers cannot pay Sandbox collections, so settle them yourself with POST /collections/{id}/mock-settle. The collection settles, your Sandbox wallet is credited less fees and collection.settled is sent, exactly as for a real payment. On a test checkout, press Simulate payment or use a test card.
A full test run
List wallets with GET /wallets to find your Sandbox balances.
Create a collection, settle it with mock-settle, and check that collection.settled reaches your webhook endpoint and the wallet balance went up.
Create three recipients whose account numbers end in 0000, 0001 and something else, then pay each to see a decline, an asynchronous settlement and an instant settlement.
Confirm your system handles each payment.* webhook and that GET /transactions matches your records.