Cuenta del Destinatario
Una Cuenta del Destinatario representa la cuenta bancaria o el destino del payout donde se entregarán los fondos. Antes de crear una cuenta de destinatario, primero debe crear el destinatario como participante y obtener el esquema de cuenta del país de destino.
Creación Basada en Esquemas
Los requisitos de la cuenta del destinatario varían por país. Obtenga siempre el esquema de la cuenta antes de construir su formulario o su llamada a la API:
# Obtener el esquema de cuenta para Colombia
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"
El esquema devuelve un objeto JSON Schema (draft-07) que define los campos requeridos, los valores permitidos y las reglas de validación. Los campos comunes incluyen:
| Campo | Descripción | Ejemplos |
|---|---|---|
asset | Código de moneda (ISO 4217) | BRL, MXN, COP, PEN |
payoutMethod.type | Mecanismo de payout | BANK_DEPOSIT |
payoutMethod.countryCode | País de destino | BR, MX, CO |
payoutMethod.bankCode | Identificador del banco | Varía por país (use el endpoint de Bancos) |
payoutMethod.routingNumber | Código de ruta/SWIFT/BIC | Específico de cada país |
payoutMethod.accountNumber | Número de cuenta | CLABE (MX), IBAN o número de cuenta local |
payoutMethod.accountType | Tipo de cuenta | CHECKING, SAVINGS |
Consejo: Para los países que requieren un
bankCode, use el endpoint de Bancos en un País para poblar un menú desplegable en su interfaz.
Creación de una Cuenta de Destinatario
Endpoint: POST /organizations/{tenant}/payout/participants/{participantId}/recipientAccounts/gateway
Autenticación: A nivel de agente (x-api-key + x-agent-id + x-agent-api-key)
Cuerpo de la Solicitud
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
externalId | string | No | Su identificador interno para esta cuenta |
asset | string | Sí | Código de moneda (ISO 4217) de la cuenta del destinatario |
nickname | string | No | Nombre para mostrar de la cuenta |
payoutMethod | object | Sí | Detalles del destino del payout (específicos del país, vea el esquema) |
payoutMethod.type | string | Sí | BANK_DEPOSIT, PIX, WALLET o CARD — la disponibilidad depende de la configuración de su corredor |
Campos por tipo de método de payout:
| Tipo | Campos |
|---|---|
BANK_DEPOSIT | countryCode, bankCode, routingNumber, accountNumber, accountType (CHECKING/SAVINGS) |
PIX (Brasil) | countryCode, keyType, key (la llave PIX) |
WALLET | countryCode, walletId, walletType, walletOperator |
CARD | countryCode, cardTokenId (tarjeta tokenizada para payout push-to-card) |
El esquema de cuenta de cada país es la fuente de verdad sobre qué tipos y campos admite su corredor.
Ejemplo: Colombia (Depósito Bancario)
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"
}
}'
Ejemplo: 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"
}
}'
Ejemplo: Perú (Depósito Bancario)
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 el
iddevuelto — este es elrecipientAccountIdrequerido al crear una transacción.
Obtener una Cuenta de Destinatario
Endpoint: GET /organizations/{tenant}/payout/recipientAccounts/{recipientAccountId}
Autenticación: A nivel 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"
Los campos sensibles (
accountNumber,routingNumber, lakeyde PIX) se devuelven enmascarados — los valores completos nunca se exponen después de la creación.
Eliminar una Cuenta de Destinatario
Endpoint: DELETE /organizations/{tenant}/payout/recipientAccounts/{recipientAccountId}
Autenticación: A nivel 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"
Devuelve 204 No Content.
Requisitos Específicos por País
| País | Moneda | Campo Clave | Tipo de Documento | Notas |
|---|---|---|---|---|
| Brasil (BR) | BRL | accountNumber | CPF | Las llaves PIX pueden estar disponibles según la configuración de su corredor |
| México (MX) | MXN | accountNumber (CLABE, 18 dígitos) | CURP / INE | La CLABE es el identificador interbancario estándar |
| Colombia (CO) | COP | bankCode + accountNumber | CC (Cédula) | Use el endpoint de Bancos para obtener valores válidos de bankCode |
| Perú (PE) | PEN | bankCode + accountNumber | DNI | Los códigos de banco usan el formato SWIFT/BIC |
| India (IN) | INR | routingNumber (IFSC) | PAN / Aadhaar | El código IFSC es obligatorio para transferencias bancarias en India |
| Filipinas (PH) | PHP | bankCode + accountNumber | — | — |
Use siempre el endpoint de esquema como fuente de verdad — la tabla anterior es solo orientativa.
Flujo de Trabajo de Integración
1. Fetch account schema → GET /payout/recipientAccounts/schema/{countryCode}
2. Fetch bank list → GET /payout/{countryCode}/banks (if bankCode is required)
3. Collect user input → Build form from schema
4. Create account → POST /payout/participants/{id}/recipientAccounts/gateway
5. Save account ID → Use in POST /fx/transactions
Todos los Endpoints
| Operación | Método | Endpoint |
|---|---|---|
| Crear cuenta de destinatario | POST | /organizations/{tenant}/payout/participants/{participantId}/recipientAccounts/gateway |
| Obtener cuenta de destinatario | GET | /organizations/{tenant}/payout/recipientAccounts/{recipientAccountId} |
| Eliminar cuenta de destinatario | DELETE | /organizations/{tenant}/payout/recipientAccounts/{recipientAccountId} |
