Pular para o conteúdo principal

Criar payout

Quick Reference

WhatEnviar um pagamento de saída (payout) financiado por uma carteira
WhyPagar fornecedores, parceiros e clientes pela LATAM através de um único endpoint unificado
Reading Time10 min
DifficultyIntermediate
PrerequisitesAuthentication → Uma carteira com saldo → Um merchant cadastrado (quando exigido pela sua conta)
POST/api/v1/bank/wallet/payout/Bearer TokenCriar um payout debitando uma carteira

Como os payouts funcionam

Um payout é o fluxo de saída — dinheiro deixando a plataforma, o inverso de uma cobrança. Um único endpoint atende a todos os rails; o campo type_payout seleciona qual deles, e cada tipo exige seu objeto de destino correspondente.


Fluxo do payout


Status do payout

StatusSignificadoTerminal?
pendingCriado, aguardando processamentoNão
issuedEnviado ao providerNão
realizedConfirmado e liquidadoSim
returnedDevolvido pelo banco receptorSim
canceledCanceladoSim
errorFalhou no processamentoSim
expiredExpiradoSim

Cabeçalhos da requisição

HeaderValorObrigatório
AuthorizationBearer {A55_ACCESS_TOKEN}Sim
Content-Typeapplication/jsonSim

Corpo da requisição

CampoTipoObrigatórioDescrição
wallet_uuidstring (UUID)SimCarteira que vai financiar o payout
type_payoutstringSimRail de pagamento: pix, bank_transfer, ted, spei, cash_pickup
valuenumber (float)SimValor a enviar. Deve ser maior que zero
descriptionstringSimDescrição livre do payout
currencystringNãoCódigo ISO 4217. Usa a moeda da carteira quando omitido
merchant_idstring (UUID)NãoMerchant ao qual o payout pertence. Obrigatório quando sua conta usa merchants
transaction_referencestringNãoChave de idempotência externa (por carteira). Um UUID é gerado quando omitido
schedule_datestringNãoYYYY-MM-DD para agendar o payout
country_codestringNãoISO 3166-1 alpha-2 do destino
providersstring[]NãoUUIDs de providers para forçar o roteamento
webhook_urlstring (URL)NãoURL notificada nas mudanças de status
pix_destinationobjectCondicionalObrigatório quando type_payout é pix
bank_destinationobjectCondicionalObrigatório quando type_payout é bank_transfer, ted ou spei
cash_destinationobjectCondicionalObrigatório quando type_payout é cash_pickup

pix_destination

CampoTipoObrigatórioDescrição
pix_address_keystringSimValor da chave PIX
pix_address_key_typestringSimTipo da chave PIX (cpf, cnpj, email, phone, evp)
beneficiary_namestringNãoNome completo do beneficiário
beneficiary_tax_idstringNãoCPF/CNPJ do beneficiário. Obrigatório para chaves email/phone/evp; opcional para chaves cpf/cnpj (usa a chave como documento)

bank_destination (bank_transfer / ted / spei)

CampoTipoObrigatórioDescrição
country_codestringSimISO-3166 alpha-2 ou alpha-3
beneficiary_namestringSimPrimeiro nome do beneficiário
beneficiary_last_namestringSimSobrenome do beneficiário
document_typestringSimCedula / RUC / DPI / RUT / CPF / etc.
beneficiary_tax_idstringSimNúmero do documento do beneficiário
account_numberstringCondicionalNúmero da conta, CBU/CVU, CCI, CLABE, etc. Obrigatório a menos que use bank_alias
bank_aliasstringCondicionalAlias de CBU da Argentina (6-20 chars). Alternativa ao account_number
bank_codestringNãoCódigo do banco no provider. TED Brasil: ISPB de 8 dígitos ou COMPE (ex.: 001)
account_typestringNãoPoupança / Corrente / Cash / RUT / etc. (varia por país)
account_agencystringNãoAgência bancária (TED Brasil)
bank_namestringNãoNome do banco
beneficiary_emailstringNãoObrigatório quando account_type é Cash
beneficiary_phonestringNãoTelefone do beneficiário
expiration_datestringNãoYYYY-MM-DD (redes de cash)

cash_destination (cash_pickup)

CampoTipoObrigatórioDescrição
country_codestringSimPaís de destino
bank_codestringSimCódigo da rede de cash (ex.: 010, 456)
beneficiary_namestringSimNome do beneficiário
beneficiary_emailstringSimO código de retirada é enviado para este email
document_typestringSimTipo de documento do beneficiário
beneficiary_tax_idstringSimNúmero do documento do beneficiário
beneficiary_last_namestringNãoSobrenome do beneficiário
beneficiary_phonestringNãoTelefone do beneficiário
expiration_datestringNãoYYYY-MM-DD de expiração da retirada

Campos da resposta

CampoTipoDescrição
payout_uuidstringIdentificador interno do payout
external_idstringID do payout no provider
statusstringStatus atual do payout (ver tabela acima)
type_payoutstringRail utilizado
amountnumber (float)Valor do payout
feenumber (float)Taxa do provider
currencystringMoeda ISO 4217
descriptionstringDescrição do payout
country_codestringPaís de destino
beneficiary_namestringNome do beneficiário
transaction_referencestringChave de idempotência usada
submitted_datestringData de envio ao provider
confirmed_datestringData de confirmação
schedule_datestringData agendada, quando aplicável
payment_codestringCódigo de retirada (apenas cash payouts)
authorization_codestringCódigo de autorização do provider, quando disponível
authorization_datestringData de autorização, quando disponível
transaction_idstringID da transação no provider, quando disponível
destinationobjectEco dos dados de destino
messagearrayMensagens do provider/processamento
createdstringTimestamp de criação (ISO 8601)
updatedstringTimestamp da última atualização (ISO 8601)

Respostas de erro

StatusCódigoDescrição
400errors.payout.validate_errorPayload falhou na validação (sem type_payout, value <= 0, campos de destino faltando, etc.)
400errors.payout.destination_invalidObjeto de destino inválido para o type_payout escolhido
400errors.payout.provider_not_validNenhum provider elegível para este payout
400errors.wallet.payout_already_existsJá existe um payout com o mesmo transaction_reference para esta carteira
400errors.wallet.daily_transaction_limit_exceededO limite diário da carteira seria excedido
400errors.wallet.merchant_invalidO merchant não pertence à conta da carteira
401unauthorizedToken Bearer inválido ou expirado
404errors.wallet.not_foundCarteira não encontrada
404errors.payout.merchant_not_foundMerchant não encontrado
422errors.payout.insufficient_balanceSaldo da carteira insuficiente para este payout

Exemplos de código

PIX out (Brasil)

curl -s -X POST "https://sandbox.api.a55.tech/api/v1/bank/wallet/payout/" \
-H "Authorization: Bearer $A55_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"type_payout": "pix",
"value": 100.00,
"currency": "BRL",
"description": "Pagamento fornecedor #2048",
"transaction_reference": "PAY-2048",
"webhook_url": "https://your-app.com/webhooks/a55/payouts",
"pix_destination": {
"pix_address_key": "joao@example.com",
"pix_address_key_type": "email",
"beneficiary_name": "João Silva",
"beneficiary_tax_id": "12345678901"
}
}'

TED (Brasil)

curl -s -X POST "https://sandbox.api.a55.tech/api/v1/bank/wallet/payout/" \
-H "Authorization: Bearer $A55_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"type_payout": "ted",
"value": 500.00,
"currency": "BRL",
"description": "Liquidação fornecedor",
"transaction_reference": "PAY-2049",
"bank_destination": {
"country_code": "BR",
"bank_code": "341",
"account_type": "checking",
"account_number": "12345-6",
"account_agency": "0001",
"bank_name": "Itaú",
"beneficiary_name": "Maria",
"beneficiary_last_name": "Costa",
"document_type": "CPF",
"beneficiary_tax_id": "98765432100"
}
}'

SPEI (México)

curl -s -X POST "https://sandbox.api.a55.tech/api/v1/bank/wallet/payout/" \
-H "Authorization: Bearer $A55_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"type_payout": "spei",
"value": 1500.00,
"currency": "MXN",
"description": "Payout MXN",
"transaction_reference": "PAY-2050",
"bank_destination": {
"country_code": "MX",
"account_number": "012180012345678901",
"beneficiary_name": "Carlos",
"beneficiary_last_name": "Hernández",
"document_type": "RFC",
"beneficiary_tax_id": "HEGC800101XXX"
}
}'

Transferência bancária (LATAM)

curl -s -X POST "https://sandbox.api.a55.tech/api/v1/bank/wallet/payout/" \
-H "Authorization: Bearer $A55_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"type_payout": "bank_transfer",
"value": 250.00,
"currency": "ARS",
"description": "Payout Argentina",
"transaction_reference": "PAY-2051",
"bank_destination": {
"country_code": "AR",
"bank_alias": "mi.alias.cbu",
"beneficiary_name": "Lucía",
"beneficiary_last_name": "Gómez",
"document_type": "DNI",
"beneficiary_tax_id": "20304050607"
}
}'

Retirada em dinheiro (Equador)

curl -s -X POST "https://sandbox.api.a55.tech/api/v1/bank/wallet/payout/" \
-H "Authorization: Bearer $A55_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"wallet_uuid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"type_payout": "cash_pickup",
"value": 200.00,
"currency": "USD",
"description": "Payout retirada em dinheiro",
"transaction_reference": "PAY-2052",
"cash_destination": {
"country_code": "EC",
"bank_code": "456",
"beneficiary_name": "Pedro",
"beneficiary_email": "pedro@example.com",
"document_type": "Cedula",
"beneficiary_tax_id": "1234567890"
}
}'

Exemplo completo de resposta

Payout PIX aceito

{
"payout_uuid": "9b1f0c88-3a3c-4f2f-9d6e-1f0a2d4e88c1",
"external_id": "MN-20260616-0001",
"status": "issued",
"type_payout": "pix",
"amount": 100.00,
"fee": 0.50,
"currency": "BRL",
"description": "Pagamento fornecedor #2048",
"country_code": "BR",
"beneficiary_name": "João Silva",
"transaction_reference": "PAY-2048",
"submitted_date": "2026-06-16",
"confirmed_date": null,
"schedule_date": null,
"destination": {
"pix_address_key": "joao@example.com",
"pix_address_key_type": "email"
},
"message": [],
"created": "2026-06-16T18:00:00Z",
"updated": "2026-06-16T18:00:00Z"
}

Retirada em dinheiro aceita (inclui código de retirada)

{
"payout_uuid": "5c2a13f0-5e74-4b21-9c6a-2bd9d9b0aa10",
"external_id": "MN-20260616-0002",
"status": "issued",
"type_payout": "cash_pickup",
"amount": 200.00,
"fee": 1.20,
"currency": "USD",
"description": "Payout retirada em dinheiro",
"country_code": "EC",
"beneficiary_name": "Pedro",
"transaction_reference": "PAY-2052",
"payment_code": "EC-PICKUP-7788",
"message": [],
"created": "2026-06-16T18:05:00Z",
"updated": "2026-06-16T18:05:00Z"
}
Sempre confirme via webhook

A resposta síncrona retorna o status inicial. Um payout normalmente passa de issued para realized de forma assíncrona. Configure a webhook_url e trate o webhook como fonte da verdade para o resultado final. Veja Webhook de payout.