Skip to main content

How to Create a BRL Transfer

BRL transfers send funds to a Brazilian bank account. Unlike EUR and USD transfers, bank accounts in LATAM are not associated with beneficiaries — they are created automatically at the moment the transfer is submitted.

There are three ways to create a BRL transfer:

  • Option A — New transfer with full bank data (creates the bank account inline)
  • Option B — New transfer with a PIX key (creates the bank account inline)
  • Option C — Reuse a previously created bank account via bankAccountId

PDF attachments are optional for BRL transfers. If included: maximum 10 files, maximum 1 MB per file, PDF format only.


Option A — Full Bank Data

Pass complete bank account data directly in the transfer body. A new bank account is created automatically and linked to the transfer.

Required fields for this option:

FieldDescription
currencyBRL
amountAmount in BRL
bankCountryCountry code (BR)
accountNumberBank account number
bankAccountNameAccount holder name
bankNameBank name
bankCodeBank agency number

Request

curl -X POST "/api/v1/transfer" \
-H "Authorization: Bearer <token>" \
-F "currency=BRL" \
-F "amount=5000.00" \
-F "bankCountry=BR" \
-F "accountNumber=12345-6" \
-F "bankAccountName=João da Silva" \
-F "bankName=Itaú Unibanco" \
-F "bankCode=0341"

Option B — PIX Key

Use a PIX key as the accountNumber. In this case, bankName and bankCode are not required.

Required fields for this option:

FieldDescription
currencyBRL
amountAmount in BRL
bankCountryCountry code (BR)
accountNumberPIX key (CPF, CNPJ, phone, email, or random key)
bankAccountNameAccount holder name

Request

curl -X POST "/api/v1/transfer" \
-H "Authorization: Bearer <token>" \
-F "currency=BRL" \
-F "amount=5000.00" \
-F "bankCountry=BR" \
-F "accountNumber=joao.silva@email.com" \
-F "bankAccountName=João da Silva"

Option C — Existing Bank Account

If a bank account was previously created through a prior transfer, it can be reused by passing its id as bankAccountId. No bank account fields are needed.

List existing Brazilian bank accounts

curl -X GET "/api/v1/bank-account?bankCountry=BR" \
-H "Authorization: Bearer <token>"

This returns a paginated list of bank accounts linked to the authenticated user. Use the id of the desired account.

Request

curl -X POST "/api/v1/transfer" \
-H "Authorization: Bearer <token>" \
-F "bankAccountId=d6c6c357-343f-4106-8f7d-b678c60ff10a" \
-F "currency=BRL" \
-F "amount=5000.00" \

Response (201) — All options

{
"id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"transferNumber": "002095696342671878",
"status": "pending",
"currency": "BRL",
"amount": "5000.00",
"amountInUSD": "950.57",
"quote": "5.26",
"pdfDocuments": [],
"bankAccount": {
"id": "d6c6c357-343f-4106-8f7d-b678c60ff10a",
"name": "João da Silva",
"bankCountry": "BR",
"accountNumber": "12345-6",
"bankName": "Itaú Unibanco",
"bankCode": "0341"
},
"createdAt": "2026-05-14T12:05:00.000Z",
"updatedAt": "2026-05-14T12:05:00.000Z"
}

Balance Impact

EventEffect on Balance
Transfer createdamountInUSD is immediately deducted from the user's available balance
Transfer rejectedAmount is automatically restored to the user's balance