Mock Fiat Deposits

The sandbox environment provides endpoints to simulate incoming fiat and crypto deposits for testing. Each supported rail has its own endpoint.

📘

All mock deposit endpoints are sandbox-only and return HTTP 200 with no body on success. Completion is notified via webhook as PAYMENT_IN_COMPLETED.


Brazil — PIX

Simulates an incoming PIX deposit in BRL. Requires a pre-created transaction ID.

Endpoint: POST /v1/transactions/sandbox/pix

curl -X POST "https://api.sandbox.caliza.com/core-api/v1/transactions/sandbox/pix" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {{ACCESS_TOKEN}}" \
  -d '{
    "transactionId": "{{TRANSACTION_ID}}",
    "documentId": "{{DOCUMENT_ID}}"
  }'
FieldTypeRequiredDescription
transactionIdstringYesThe transaction ID to mock the deposit for
documentIdstringNoBeneficiary's CPF or CNPJ

Mexico — SPEI

Simulates an incoming SPEI deposit in MXN. Two modes are supported:

  • Matched deposit — settle an existing pending deposit by passing transactionId.
  • Unmatched deposit — simulate a SPEI arriving on a CLABE with no pre-created transaction by passing clabe and amount. The sandbox emits the SPEI event and the system auto-creates the transaction, mirroring how real unmatched deposits are handled.

Provide either transactionId or clabe + amount, not both.

Endpoint: POST /v1/transactions/sandbox/spei

Matched deposit — settle an existing pending transaction:

curl -X POST "https://api.sandbox.caliza.com/core-api/v1/transactions/sandbox/spei" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {{ACCESS_TOKEN}}" \
  -d '{
    "transactionId": "{{TRANSACTION_ID}}"
  }'

Unmatched deposit — auto-create a transaction from the SPEI event:

curl -X POST "https://api.sandbox.caliza.com/core-api/v1/transactions/sandbox/spei" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {{ACCESS_TOKEN}}" \
  -d '{
    "clabe": "{{CLABE}}",
    "amount": 100.0,
    "payerName": "SANDBOX PAYER"
  }'
FieldTypeRequiredDescription
transactionIdstringConditionalID of an existing pending deposit to settle. Provide this or clabe, not both.
clabestringConditionalDestination CLABE for an unmatched deposit that auto-creates a transaction. Requires amount.
amountnumberConditionalDeposit amount in MXN. Required when clabe is provided.
payerRfcstringNoPayer's RFC (tax ID). Unmatched mode only. Defaults to XAXX010101000.
payerNamestringNoPayer's name. Unmatched mode only. Defaults to SANDBOX PAYER.
payerBankstringNoPayer's bank code. Unmatched mode only. Defaults to 40002.
payerAccountstringNoPayer's account number. Unmatched mode only. Defaults to 000000000000000000.

United States — ACH, WIRE, SWIFT

Simulates an incoming USD deposit via ACH, WIRE, or SWIFT. Unlike PIX and SPEI, this endpoint does not require a pre-created transaction ID — you provide the beneficiary and amount directly.

Endpoint: POST /v1/transactions/sandbox/usd-deposit

curl -X POST "https://api.sandbox.caliza.com/core-api/v1/transactions/sandbox/usd-deposit" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {{ACCESS_TOKEN}}" \
  -d '{
    "beneficiaryId": "{{BENEFICIARY_ID}}",
    "amount": 100.0,
    "accountNumber": "{{ACCOUNT_NUMBER}}",
    "paymentRail": "WIRE"
  }'
FieldTypeRequiredDescription
beneficiaryIdstringYesThe beneficiary ID to credit the deposit to
amountnumberYesThe deposit amount in USD
accountNumberstringYesThe virtual account number (retrieved from GET /v1/beneficiaries/{beneficiaryId}/virtualAccounts)
paymentRailstringYesOne of: ACH, WIRE, SWIFT

Crypto deposits

For crypto deposits, no dedicated mock endpoint is needed. Call the deposit transaction hash endpoint and the sandbox will simulate the full flow:

Endpoint: PUT /v1/transactions/{transactionId}/depositTransactionHash

curl -X PUT "https://api.sandbox.caliza.com/core-api/v1/transactions/{{TRANSACTION_ID}}/depositTransactionHash" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {{ACCESS_TOKEN}}" \
  -d '{
    "transactionHash": "{{TRANSACTION_HASH}}"
  }'

Did this page help you?