Skip to main content
POST
Ejecuta un retiro. Un único endpoint maneja ambos rails (BREB + ACH) — el sistema discrimina por la forma del campo destination:
  • destination.brebKeyBREB (debita wallet BREB, dispatcha a red Bre-B)
  • destination.bankAccountACH (debita wallet ACH, dispatcha a banco destino)
Scope requerido: WRITE

Body común

number
required
Monto BRUTO en centavos.
object
required
Una de: brebKey o bankAccount (mutuamente exclusivos).
string
Opcional. Tu identificador interno (max 100 chars). Actúa como idempotency key dentro de 60s.
string
Opcional. Memo human-readable (max 255 chars).

Body BREB

string
required
PHONE, EMAIL, ALPHANUM, o NRIC. Usá el keyType que retornó /transfers/resolve-key.
string
required
El valor de la llave.
string
required
Nombre completo del titular. Sacalo de /transfers/resolve-keyrecipient.fullName.
string
required
Número de documento del titular. Sacalo de /transfers/resolve-keyrecipient.idValue. SARLAFT obligatorio.

Body ACH

number
required
ID del banco. Consultalo en GET /dictionaries/banks/ach.
number
required
20 = Ahorros, 21 = Corriente, 22 = Depósito electrónico.
string
required
4-32 dígitos.
number
required
1 = CC, 4 = CE, 5 = Pasaporte, 8 = NIT.
string
required
5-15 dígitos.
string
required
Nombres del titular (max 64 chars).
string
required
Apellidos del titular (max 64 chars).

Response 201

string
UUID de la transacción
string
PENDING (en flight), COMPLETED (confirmado), FAILED, o AWAITING_APPROVAL (multi-sig)
number
Monto bruto (centavos)
number
Comisión cobrada (centavos)
number
IVA cobrado (centavos)
number
amount - totalFee (lo que recibe el destinatario)
string
"COP"
string
"BREB" o "ACH" — el rail que se dispatchó
string
Titular destino
string
Documento destino
string
Tu reference (si lo proveíste)
string
ISO 8601 timestamp

Ejemplos

Retiro BREB

Retiro ACH

Status lifecycle

Pollea el estado vía GET /wallets/transactions/:id o esperá webhooks salientes (próximamente).

Idempotencia

El campo reference actúa como idempotency key dentro de 60s. Reenviá la misma request con el mismo reference para safely retry tras 5xx.

Defensa SARLAFT

  • targetDocument es obligatorio para BREB (no se persiste null en la transacción)
  • Mouv valida el documento del cliente contra blacklist AML antes de dispatchar
  • Counterparty limits (tope diario/mensual por tercero) se verifican antes del send
  • Transactions quedan persistidas con apiKeyId para audit trail