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:

labelResulting status
SIMULATE_STATUS_PROVISIONINGPROVISIONING
SIMULATE_STATUS_SUSPENDEDSUSPENDED
SIMULATE_STATUS_CLOSEDCLOSED
SIMULATE_STATUS_REJECTEDREJECTED
Any other labelACTIVE

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.

amountBehavior
101Creates 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.
102Creates a deposit that includes third-party payer data with an individual document (CPF).
103Creates a deposit that includes third-party payer data with a business document (CNPJ).
104Creates a deposit that includes crypto metadata (sender address, network, and transaction hash).
Any other amountCreates 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:

amountBehavior
201The payout is accepted as IN_PROGRESS and later transitions to completed. Use it to test the asynchronous happy path, including the status webhook.
202The payout is accepted as IN_PROGRESS and later transitions to failed, with an error callback. Use it to test asynchronous failures.
203The payout fails immediately with an error response.
Any other amountThe payout completes immediately.
📘

In production, a payout that is IN_PROGRESS may still fail (for example, if the destination account is closed). Once a payout reaches COMPLETED, it can only transition to REFUNDED or PARTIALLY_REFUNDED, when the rail supports refunds. We recommend building your integration against the asynchronous scenarios (201 and 202) 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_amountBehavior
302The 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.
303The 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 amountThe 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.type INTERNAL_TRANSFER and then INTERNAL_TRANSFER_REFUND sharing the transfer's operation.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

InputValueResult
ALIASCALOR.ASPIRADORA.CUADROSUCCESSFUL — POINCENOT S.A (LEGAL, CUIT 30714423033), account CC in ARS
ALIASRELOJ.CAMARA.LADRILLOERROR — account not found
CBU0170032450000643578149SUCCESSFUL — INNOVARTECH S.A (LEGAL, CUIT 30776436348), account CA in USD
CBU3220001805000046360015SUCCESSFUL — Díaz, Bruno (NATURAL, CUIT 20223385072), account CA in ARS
CBU3220001805000046360016SUCCESSFUL — Cooper Sheldon (NATURAL, CUIT 20313342042), account CA in ARS
CBU0170039420000033181593ERROR — account not found
CVU0000003100040000000015SUCCESSFUL — SOLUCIONES INTEGRALES S.R.L (LEGAL, CUIT 30888888882), account CC in ARS
CVU0000005700034525700013ERROR — 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, amount 5000):
    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

InputValueResult
PIX_KEY+5512575253111, [email protected], 12345678909, 12345678000195, or 4d8f085b-2d91-49de-b10c-3d0be5c59783SUCCESSFUL — ANA SILVA (NATURAL, CPF 12345678900), account SVGS in BRL
PIX_KEY+5587887815453ERROR — account not found
ACCOUNT_NUMBER_WITH_BRANCH_NUMBER_BRnumber 1323555513, branch 00001, ISPB 10853017, type CACC, owner document 12345678901SUCCESSFUL — LUCAS OLIVEIRA (NATURAL, CPF 98765432101), account CACC in BRL
ACCOUNT_NUMBER_WITH_BRANCH_NUMBER_BRnumber 3252454544, branch 00002, ISPB 04866275, type SVGS, owner document 42335453441ERROR — account not found

Colombia

InputValueResult
ACHAny accountSUCCESSFUL immediately
BreB keyAny keyCreated as IN_PROGRESS, transitions to SUCCESSFUL when you fetch the validation

Mexico

InputValueResult
CLABE021060040538028986SUCCESSFUL — JUAN GARCIA (NATURAL, RFC GATJ240309TE8), currency MXN
CLABE351483545522434846ERROR — account not found

Uruguay

InputValueResult
ACCOUNT_NUMBER_UYnumber 123456789000001, bank code 001SUCCESSFUL — masked owner name, currency USD
ACCOUNT_NUMBER_UYnumber 123456789000002, bank code 001ERROR — account not found
PHONE_NUMBER59891653354SUCCESSFUL — masked owner name, currency USD
PHONE_NUMBER59894054344ERROR — account not found

United States

InputValueResult
Account number01323555555ERROR — account not found
Account numberAny other valueSUCCESSFUL

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 typeDocumentSimulated result
AR_DNI12345678Adult individual ("Eddie Brock", born 1982-12-28)
AR_DNI05184530Underage individual ("Miles Morales", born 2015-08-14)
AR_CUIL20343857398Adult individual ("Eddie Brock", born 1982-12-28)
AR_CUIL27051845301Underage individual ("Miles Morales", born 2015-08-14)
AR_CUIT20343857398Business ("Roxxon Corporation")
BR_CPF12345678909Adult individual ("Robert Bruce Banner", born 1969-12-18)
BR_CNPJ12345678901230Business ("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.


Did this page help you?