Skip to main content

PIX transfer

POST/api/v1/bank/wallet/transfer/pix/Bearer Token

Request headers

HeaderValueRequired
AuthorizationBearer {A55_ACCESS_TOKEN}Yes
Content-Typeapplication/jsonYes
Idempotency-KeyUUID v4Recommended

Request body

FieldTypeRequiredDescription
wallet_uuidstring (UUID)YesSource wallet for the transfer
amountnumberYesTransfer amount in BRL (e.g., 500.00)
currencystringYesMust be BRL
pix_key_typestringYescpf, cnpj, email, phone, random_key
pix_keystringYesPIX key value matching the type
recipient_namestringYesRecipient full name
recipient_tax_idstringYesRecipient CPF or CNPJ
descriptionstringNoTransfer description
reference_idstringNoYour internal reference for reconciliation

Response fields

FieldTypeDescription
transfer_uuidstringUnique transfer identifier
statusstringprocessing, completed, failed
amountnumberTransferred amount
currencystringBRL
pix_key_typestringPIX key type used
pix_keystringPIX key destination
recipient_namestringConfirmed recipient name
created_atstringISO 8601 creation timestamp
completed_atstringISO 8601 completion timestamp (when available)

HTTP status codes

StatusDescription
200Transfer initiated successfully
400Invalid PIX key or missing required fields
401Invalid or expired Bearer token
403Insufficient permissions or wallet balance
404Wallet not found
409Duplicate transfer (same Idempotency-Key)
422Validation error (invalid key type, amount)
429Rate limit exceeded
500Internal server error — retry with exponential backoff

Code examples

curl -s -X POST https://core-manager.a55.tech/api/v1/bank/wallet/transfer/pix/ \
-H "Authorization: Bearer $A55_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 770e8400-e29b-41d4-a716-446655440002" \
-d '{
"wallet_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"amount": 500.00,
"currency": "BRL",
"pix_key_type": "cpf",
"pix_key": "123.456.789-09",
"recipient_name": "João Santos",
"recipient_tax_id": "123.456.789-09",
"description": "Supplier payment #2048",
"reference_id": "PAY-2048"
}'

Error response example

{
"transfer_uuid": null,
"status": "error",
"message": [
{
"code": "INSUFFICIENT_BALANCE",
"source": "wallet",
"description": "Wallet balance is insufficient for this transfer amount"
}
]
}