Inyo

Conta do Destinatário

Uma Conta do Destinatário representa a conta bancária ou o destino de payout onde os fundos serão entregues. Antes de criar uma conta de destinatário, você deve primeiro criar o destinatário como participante e consultar o schema da conta para o país de destino.


Criação Orientada por Schema

Os requisitos da conta do destinatário variam por país. Sempre consulte o schema da conta antes de construir seu formulário ou chamada de API:

# Consultar o schema de conta para a Colômbia
curl --request GET \
  --url https://{FQDN}/organizations/$TENANT/payout/recipientAccounts/schema/co \
  --header "x-api-key: $API_KEY" \
  --header "x-agent-id: $AGENT_ID" \
  --header "x-agent-api-key: $AGENT_KEY"

O schema retorna um objeto JSON Schema (draft-07) que define os campos obrigatórios, os valores permitidos e as regras de validação. Os campos comuns incluem:

CampoDescriçãoExemplos
assetCódigo da moeda (ISO 4217)BRL, MXN, COP, PEN
payoutMethod.typeMecanismo de payoutBANK_DEPOSIT
payoutMethod.countryCodePaís de destinoBR, MX, CO
payoutMethod.bankCodeIdentificador do bancoVaria por país (use o endpoint de Bancos)
payoutMethod.routingNumberCódigo de roteamento/SWIFT/BICEspecífico do país
payoutMethod.accountNumberNúmero da contaCLABE (MX), IBAN ou número de conta local
payoutMethod.accountTypeTipo de contaCHECKING, SAVINGS

Dica: Para países que exigem um bankCode, use o endpoint Bancos em um País para popular um dropdown na sua interface.


Criando uma Conta de Destinatário

Endpoint: POST /organizations/{tenant}/payout/participants/{participantId}/recipientAccounts/gateway
Autenticação: Nível de agente (x-api-key + x-agent-id + x-agent-api-key)

Corpo da Requisição

CampoTipoObrigatórioDescrição
externalIdstringNãoSeu identificador interno para esta conta
assetstringSimCódigo da moeda (ISO 4217) da conta do destinatário
nicknamestringNãoNome de exibição da conta
payoutMethodobjectSimDetalhes do destino do payout (específicos do país, veja o schema)
payoutMethod.typestringSimBANK_DEPOSIT, PIX, WALLET ou CARD — a disponibilidade depende da configuração do seu corredor

Campos por tipo de método de payout:

TipoCampos
BANK_DEPOSITcountryCode, bankCode, routingNumber, accountNumber, accountType (CHECKING/SAVINGS)
PIX (Brasil)countryCode, keyType, key (a chave PIX)
WALLETcountryCode, walletId, walletType, walletOperator
CARDcountryCode, cardTokenId (cartão tokenizado para payout push-to-card)

O schema da conta de cada país é a fonte da verdade sobre quais tipos e campos seu corredor suporta.

Exemplo: Colômbia (Depósito Bancário)

curl --request POST \
  --url https://{FQDN}/organizations/$TENANT/payout/participants/$RECIPIENT_ID/recipientAccounts/gateway \
  --header 'Content-Type: application/json' \
  --header "x-api-key: $API_KEY" \
  --header "x-agent-id: $AGENT_ID" \
  --header "x-agent-api-key: $AGENT_KEY" \
  --data '{
  "externalId": "acct-co-001",
  "asset": "COP",
  "payoutMethod": {
    "type": "BANK_DEPOSIT",
    "countryCode": "CO",
    "bankCode": "1001",
    "routingNumber": "1234",
    "accountNumber": "9876543210",
    "accountType": "SAVINGS"
  }
}'

Exemplo: México (CLABE)

curl --request POST \
  --url https://{FQDN}/organizations/$TENANT/payout/participants/$RECIPIENT_ID/recipientAccounts/gateway \
  --header 'Content-Type: application/json' \
  --header "x-api-key: $API_KEY" \
  --header "x-agent-id: $AGENT_ID" \
  --header "x-agent-api-key: $AGENT_KEY" \
  --data '{
  "externalId": "acct-mx-001",
  "asset": "MXN",
  "payoutMethod": {
    "type": "BANK_DEPOSIT",
    "countryCode": "MX",
    "bankCode": "002",
    "routingNumber": "002",
    "accountNumber": "012345678901234567",
    "accountType": "CHECKING"
  }
}'

Exemplo: Peru (Depósito Bancário)

curl --request POST \
  --url https://{FQDN}/organizations/$TENANT/payout/participants/$RECIPIENT_ID/recipientAccounts/gateway \
  --header 'Content-Type: application/json' \
  --header "x-api-key: $API_KEY" \
  --header "x-agent-id: $AGENT_ID" \
  --header "x-agent-api-key: $AGENT_KEY" \
  --data '{
  "externalId": "acct-pe-001",
  "asset": "PEN",
  "payoutMethod": {
    "type": "BANK_DEPOSIT",
    "countryCode": "PE",
    "bankCode": "BINPPEPL",
    "routingNumber": "1234",
    "accountNumber": "1345",
    "accountType": "CHECKING"
  }
}'

Guarde o id retornado — este é o recipientAccountId necessário ao criar uma transação.


Consultando uma Conta de Destinatário

Endpoint: GET /organizations/{tenant}/payout/recipientAccounts/{recipientAccountId}
Autenticação: Nível de agente

curl --request GET \
  --url https://{FQDN}/organizations/$TENANT/payout/recipientAccounts/$ACCOUNT_ID \
  --header "x-api-key: $API_KEY" \
  --header "x-agent-id: $AGENT_ID" \
  --header "x-agent-api-key: $AGENT_KEY"

Os campos sensíveis (accountNumber, routingNumber, key do PIX) são retornados mascarados — os valores completos nunca são expostos após a criação.


Excluindo uma Conta de Destinatário

Endpoint: DELETE /organizations/{tenant}/payout/recipientAccounts/{recipientAccountId}
Autenticação: Nível de agente

curl --request DELETE \
  --url https://{FQDN}/organizations/$TENANT/payout/recipientAccounts/$ACCOUNT_ID \
  --header "x-api-key: $API_KEY" \
  --header "x-agent-id: $AGENT_ID" \
  --header "x-agent-api-key: $AGENT_KEY"

Retorna 204 No Content.


Requisitos Específicos por País

PaísMoedaCampo PrincipalTipo de DocumentoObservações
Brasil (BR)BRLaccountNumberCPFChaves PIX podem ser suportadas dependendo da configuração do seu corredor
México (MX)MXNaccountNumber (CLABE, 18 dígitos)CURP / INEA CLABE é o identificador interbancário padrão
Colômbia (CO)COPbankCode + accountNumberCC (Cédula)Use o endpoint de Bancos para valores válidos de bankCode
Peru (PE)PENbankCode + accountNumberDNIOs códigos de banco usam o formato SWIFT/BIC
Índia (IN)INRroutingNumber (IFSC)PAN / AadhaarO código IFSC é obrigatório para transferências bancárias na Índia
Filipinas (PH)PHPbankCode + accountNumber

Sempre use o endpoint de schema como fonte da verdade — a tabela acima é apenas orientativa.


Fluxo de Integração

1. Consultar o schema da conta  →  GET /payout/recipientAccounts/schema/{countryCode}
2. Consultar a lista de bancos  →  GET /payout/{countryCode}/banks (se bankCode for obrigatório)
3. Coletar os dados do usuário  →  Construir o formulário a partir do schema
4. Criar a conta                →  POST /payout/participants/{id}/recipientAccounts/gateway
5. Salvar o ID da conta         →  Usar em POST /fx/transactions

Todos os Endpoints

OperaçãoMétodoEndpoint
Criar conta de destinatárioPOST/organizations/{tenant}/payout/participants/{participantId}/recipientAccounts/gateway
Consultar conta de destinatárioGET/organizations/{tenant}/payout/recipientAccounts/{recipientAccountId}
Excluir conta de destinatárioDELETE/organizations/{tenant}/payout/recipientAccounts/{recipientAccountId}

Documentação Interativa da API