Enviar transferencias
Recetas para enviar dinero desde una cuenta corriente del customer. Para el modelo, estados y endpoints, ver Transferencias.
Antes de empezar
- Necesitás el
sourceAccountId: el ID de la cuenta corriente desde la que salen los fondos. - Toda creación lleva el header
Idempotency-Keypara evitar duplicados ante un reintento. Ver Idempotencia. - El
currencyCodedebe coincidir con el de la cuenta de origen (hoyARS).
Transferencia saliente a un tercero
Indicá el destino inline con su cbuCvu (o alias) y los datos de la contraparte.
POST /v1/transfers
Idempotency-Key: erp-pay-9001
Content-Type: application/json
{
"type": "OUTGOING_TRANSFER",
"sourceAccountId": 17,
"amount": 150000.00,
"currencyCode": "ARS",
"destination": {
"cbuCvu": "0000000088776655443322",
"counterParty": {
"name": "Transportes del Sur S.R.L.",
"taxId": "30123456789"
}
},
"description": "Pago flete mayo",
"externalId": "ERP-PAY-9001"
}
Respuesta
201 Created
Location: /v1/transfers/90021
{
"id": 90021,
"type": "OUTGOING_TRANSFER",
"status": "PENDING",
"sourceAccountId": 17,
"amount": 150000.00,
"currencyCode": "ARS",
"destination": {
"cbuCvu": "0000000088776655443322",
"counterParty": { "name": "Transportes del Sur S.R.L.", "taxId": "30123456789" }
},
"externalId": "ERP-PAY-9001",
"creationDate": "2026-05-27T09:15:00-03:00"
}
La transferencia se acepta en PENDING y se procesa de forma asincrónica. El resultado final (COMPLETED o FAILED) llega por webhook o consultando GET /v1/transfers/{id}.
alias si no tenés el CBU/CVUPodés reemplazar destination.cbuCvu por destination.alias. Se resuelve uno u otro; no hace falta enviar ambos.
Transferencia a un destinatario de la agenda
Si el destino ya está guardado en tu agenda de destinatarios, referencialo con contactId y omití el bloque destination.
POST /v1/transfers
Idempotency-Key: erp-pay-9002
Content-Type: application/json
{
"type": "OUTGOING_TRANSFER",
"sourceAccountId": 17,
"amount": 150000.00,
"currencyCode": "ARS",
"contactId": 540,
"description": "Pago flete mayo"
}
El CBU/CVU, alias y datos de la contraparte se toman del destinatario. La respuesta incluye destination resuelto y contactId.
Transferencia interna entre cuentas propias
Para mover fondos entre dos cuentas corrientes del mismo customer, usá INTERNAL_TRANSFER e indicá la cuenta destino con destination.accountId.
POST /v1/transfers
Idempotency-Key: erp-mov-int-77
Content-Type: application/json
{
"type": "INTERNAL_TRANSFER",
"sourceAccountId": 17,
"amount": 50000.00,
"currencyCode": "ARS",
"destination": {
"accountId": 18
},
"description": "Fondeo subcuenta impuestos"
}
Agendar una transferencia a futuro
Agregá scheduledDate (formato YYYY-MM-DD) para que la transferencia se ejecute ese día. Queda en estado SCHEDULED hasta entonces.
POST /v1/transfers
Idempotency-Key: erp-pay-9050
Content-Type: application/json
{
"type": "OUTGOING_TRANSFER",
"sourceAccountId": 17,
"amount": 150000.00,
"currencyCode": "ARS",
"contactId": 540,
"scheduledDate": "2026-06-02"
}
Transferencias que requieren aprobación
Si el customer tiene habilitado el control por aprobación, la transferencia se crea en PENDING_APPROVAL en lugar de PENDING. Queda retenida hasta que un operador autorizado la apruebe según los controles internos del customer; recién ahí pasa a PENDING y se ejecuta.
Mientras está en PENDING_APPROVAL (o SCHEDULED) podés cancelarla.
Cancelar una transferencia
Solo se pueden cancelar transferencias en estado SCHEDULED o PENDING_APPROVAL.
POST /v1/transfers/90050/cancellations
200 OK
{
"id": 90050,
"status": "CANCELLED",
...
}
Si la transferencia ya está en PENDING o posterior, la API responde 422 con transfer-not-cancelable.
Errores frecuentes
code | HTTP | Cuándo |
|---|---|---|
unmatching-transfer-currency-code | 422 | El currencyCode no coincide con el de la cuenta de origen |
equal-origin-destination | 422 | Origen y destino son la misma cuenta |
source-account-not-active | 422 | La cuenta de origen no está activa |
transfer-not-cancelable | 422 | Se intentó cancelar una transferencia que ya no está en SCHEDULED/PENDING_APPROVAL |
Catálogo completo en Códigos de error.