Testing in Sandbox
Magic values you can use in the sandbox environment to simulate deposits, successful payouts, failures, and other scenarios.
Overview
The sandbox environment lets you exercise the full API without moving real funds:
https://app2test.infiniaweb.com/infinia_api/v1
Sandbox credentials are separate from production credentials — see Authentication for details.
To make testing deterministic, the sandbox supports magic values: specific amounts that trigger a predefined outcome. Any amount not listed below results in the default (successful) behavior.
Accounts
Account creation is currently synchronous: the account's status is returned directly in the Create Account response. By default, accounts created in the sandbox are ACTIVE immediately. To test how your integration handles the other account statuses, create the account with one of these magic label values — the account is created directly in that status:
label | Resulting status |
|---|---|
SIMULATE_STATUS_PROVISIONING | PROVISIONING |
SIMULATE_STATUS_SUSPENDED | SUSPENDED |
SIMULATE_STATUS_CLOSED | CLOSED |
SIMULATE_STATUS_REJECTED | REJECTED |
| Any other label | ACTIVE |
No status webhook is sent in these cases: the account starts in that status rather than transitioning into it.
To test status transitions and your status_callback_url receiver, create the account with the label SIMULATE_PROVISIONING_FLOW: it is created as PROVISIONING and automatically transitions to ACTIVE a few seconds later, firing the status change webhook.
Deposits
Use the [Sandbox] Create Deposit endpoint to simulate incoming funds on a virtual account. This endpoint only exists in the sandbox.
amount | Behavior |
|---|---|
101 | Creates a deposit whose refund will fail: the refund is initially reported as SUCCESS, then a callback with status = FAILED is sent. Use it to test the Refund Deposit failure flow. |
102 | Creates a deposit that includes third-party payer data with an individual document (CPF). |
103 | Creates a deposit that includes third-party payer data with a business document (CNPJ). |
104 | Creates a deposit that includes crypto metadata (sender address, network, and transaction hash). |
| Any other amount | Creates a standard completed deposit. |
These amounts work on sandbox accounts in any country. The simulated third-party payer document is always in Brazilian format (CPF/CNPJ); in production, the payer document reflects the sender's jurisdiction (for example, RFC in Mexico).
Payouts
In the sandbox, payouts are executed against a mock provider. Use these amounts to simulate each lifecycle outcome:
amount | Behavior |
|---|---|
201 | The payout is accepted as IN_PROGRESS and later transitions to completed. Use it to test the asynchronous happy path, including the status webhook. |
202 | The payout is accepted as IN_PROGRESS and later transitions to failed, with an error callback. Use it to test asynchronous failures. |
203 | The payout fails immediately with an error response. |
| Any other amount | The payout completes immediately. |
In production, a payout that is
IN_PROGRESSmay still fail (for example, if the destination account is closed). Once a payout reachesCOMPLETED, it can only transition toREFUNDEDorPARTIALLY_REFUNDED, when the rail supports refunds. We recommend building your integration against the asynchronous scenarios (201and202) rather than relying on immediate completion.
Internal Transfers
Internal transfers succeed in the sandbox by default, so a successful transfer needs no magic value. Use these amounts to reach the failure branches, which the sandbox never produces on its own:
source_amount / target_amount | Behavior |
|---|---|
302 | The transfer is accepted and the source account is debited. A few seconds later the rail rejects it: the transfer moves to FAILED, the debit is refunded to the source account, and the transfer is sent to your callback_url. Use it to test the whole failure flow — the balance drop, the refund and your webhook receiver. |
303 | The transfer fails on the spot: the create response already returns FAILED. Anything already debited is refunded, so the balance ends up where it started. |
| Any other amount | The transfer follows the normal (successful) flow. |
The numbering is deliberately parallel to the payout amounts above: 302 behaves like 202 and 303 like 203.
The rejection comes from the same simulated rail that would settle the transfer, so the failure is the real one, not a shortcut: the transfer is quoted (for cross-currency transfers), the funds are debited and then given back. That means:
- The source account must be funded: if it cannot cover the amount, the transfer fails with the usual insufficient-funds reason instead, exactly as it would for any other amount.
- Both legs show up in List Account Movements, with
operation.typeINTERNAL_TRANSFERand thenINTERNAL_TRANSFER_REFUNDsharing the transfer'soperation.operation_id. The refund leaves the balance exactly where it started. - The refund can land a few seconds after the transfer is reported
FAILED, so read the balance after the refund movement appears rather than immediately.
These amounts only apply to transfers that settle over a rail. A transfer between two accounts held at the same underlying bank is a bookkeeping move that completes on its own, and it succeeds regardless of the amount.
Bank Account Validation
In the sandbox, this product returns pre-defined responses, so you can test your request and response handling end to end without hitting real registries. Use the values below to trigger each outcome. Unless noted otherwise, any input not listed leaves the validation in IN_PROGRESS.
Argentina
| Input | Value | Result |
|---|---|---|
ALIAS | CALOR.ASPIRADORA.CUADRO | SUCCESSFUL — POINCENOT S.A (LEGAL, CUIT 30714423033), account CC in ARS |
ALIAS | RELOJ.CAMARA.LADRILLO | ERROR — account not found |
CBU | 0170032450000643578149 | SUCCESSFUL — INNOVARTECH S.A (LEGAL, CUIT 30776436348), account CA in USD |
CBU | 3220001805000046360015 | SUCCESSFUL — Díaz, Bruno (NATURAL, CUIT 20223385072), account CA in ARS |
CBU | 3220001805000046360016 | SUCCESSFUL — Cooper Sheldon (NATURAL, CUIT 20313342042), account CA in ARS |
CBU | 0170039420000033181593 | ERROR — account not found |
CVU | 0000003100040000000015 | SUCCESSFUL — SOLUCIONES INTEGRALES S.R.L (LEGAL, CUIT 30888888882), account CC in ARS |
CVU | 0000005700034525700013 | ERROR — account not found |
For QR_CODE validations, these payloads return SUCCESSFUL; any other QR code returns ERROR:
- Closed QR (holder JUAN CARLOS LOPEZ, CUIL
20123456789, amount5000):00020101021243650016com.mercadolibre340130636f0f8b322-550d-3b3d-56b0-68d537d0997850150011273805090705204970053030325802AR5914John Doe 6004CABA6304ACF9 - Open QR (holder MARIA GARCIA, CUIL
27123456789, no amount):00020101021243650016com.mercadolibre340130636f0f4b421-310d-3b3d-46c1-48f542f0493850150011273805090705204970053030325802AR5914John Doe 6004CABA63041924
Brazil
| Input | Value | Result |
|---|---|---|
PIX_KEY | +5512575253111, [email protected], 12345678909, 12345678000195, or 4d8f085b-2d91-49de-b10c-3d0be5c59783 | SUCCESSFUL — ANA SILVA (NATURAL, CPF 12345678900), account SVGS in BRL |
PIX_KEY | +5587887815453 | ERROR — account not found |
ACCOUNT_NUMBER_WITH_BRANCH_NUMBER_BR | number 1323555513, branch 00001, ISPB 10853017, type CACC, owner document 12345678901 | SUCCESSFUL — LUCAS OLIVEIRA (NATURAL, CPF 98765432101), account CACC in BRL |
ACCOUNT_NUMBER_WITH_BRANCH_NUMBER_BR | number 3252454544, branch 00002, ISPB 04866275, type SVGS, owner document 42335453441 | ERROR — account not found |
Colombia
| Input | Value | Result |
|---|---|---|
ACH | Any account | SUCCESSFUL immediately |
| BreB key | Any key | Created as IN_PROGRESS, transitions to SUCCESSFUL when you fetch the validation |
Mexico
| Input | Value | Result |
|---|---|---|
CLABE | 021060040538028986 | SUCCESSFUL — JUAN GARCIA (NATURAL, RFC GATJ240309TE8), currency MXN |
CLABE | 351483545522434846 | ERROR — account not found |
Uruguay
| Input | Value | Result |
|---|---|---|
ACCOUNT_NUMBER_UY | number 123456789000001, bank code 001 | SUCCESSFUL — masked owner name, currency USD |
ACCOUNT_NUMBER_UY | number 123456789000002, bank code 001 | ERROR — account not found |
PHONE_NUMBER | 59891653354 | SUCCESSFUL — masked owner name, currency USD |
PHONE_NUMBER | 59894054344 | ERROR — account not found |
United States
| Input | Value | Result |
|---|---|---|
| Account number | 01323555555 | ERROR — account not found |
| Account number | Any other value | SUCCESSFUL |
Identity Validation
In the sandbox, this product returns pre-defined responses too. Use these document numbers to get a SUCCESSFUL validation with pre-defined identity data. Any other document number results in a FAILED validation with an empty response.
| Validation type | Document | Simulated result |
|---|---|---|
AR_DNI | 12345678 | Adult individual ("Eddie Brock", born 1982-12-28) |
AR_DNI | 05184530 | Underage individual ("Miles Morales", born 2015-08-14) |
AR_CUIL | 20343857398 | Adult individual ("Eddie Brock", born 1982-12-28) |
AR_CUIL | 27051845301 | Underage individual ("Miles Morales", born 2015-08-14) |
AR_CUIT | 20343857398 | Business ("Roxxon Corporation") |
BR_CPF | 12345678909 | Adult individual ("Robert Bruce Banner", born 1969-12-18) |
BR_CNPJ | 12345678901230 | Business ("Stark Industries") |
Identity validations resolve synchronously in the sandbox: the final status is available immediately, and if you provide a callback_url the callback is sent right away.
Updated 5 days ago

