Overview
Create outbound payouts from COP accounts withPOST /api/v1/co/transactions/outbound.
Omit destinationType, or send bank, for a bank payout (Fast Pay / ACH). Send breb_key or breb_qr for Bre-B.
The amount plus the outbound fee must fit the net balance. A successful create returns 201 with id and status: processing.
Prerequisites
- Bearer API token with access to the COP account
- For bank payouts, a
bankCodefromGET /api/v1/co/banks
List banks
GET /api/v1/co/banks returns code, name, accountTypes, fastPay, and ach for each institution.
bankCode is the 4-digit code. The bank must support Fast Pay or ACH, and it must list the accountType you send.
Destinations
Bank (Fast Pay / ACH)
Required:accountId, amount (up to 2 decimal places), accountType, bankCode, accountNumber (max 20 characters), beneficiaryFullName, documentType, documentNumber.
accountType:
Bre-B key
destinationType: breb_key, plus keyValue, beneficiaryFullName, documentType, and documentNumber. Do not send bank fields.
Bre-B QR
destinationType: breb_qr, plus qrValue (EMV or base64). beneficiaryFullName, documentType, and documentNumber are optional. If the QR encodes a fixed amount, amount must match or the API returns 400 with code: BREB_QR_AMOUNT_MISMATCH.
Document types
nd is bank-only, only for bank code 1507. documentNumber must be ND, and phone (E.164) is required. nd is rejected on Bre-B key and Bre-B QR.
Optional fields
On all three destinations:phone (E.164), email, description (max 40 characters), webhookUrl.
Flow
GET /api/v1/co/bankswhen the destination is a bank accountPOST /api/v1/co/transactions/outbound- Poll
GET /api/v1/co/transactions/{id}/statusor setwebhookUrl— see Receiving webhooks
id, externalID, status, direction, amount (string), currency, and providerStatus when a refresh happened. A transaction that is not an outbound payout returns 400. A refresh failure returns 502 with error, code, and type.
Example (bank)
Example (Bre-B key)
Example (Bre-B QR)
Example (no document, bank 1507)
1507 accepts savings (ch) and electronic deposit (dp).
Payout lifecycle
The payout starts inprocessing and moves to done when it settles, or cancelled when it is rejected.
If the account cannot cover the amount and the outbound fee, the API returns 409 with code: INSUFFICIENT_NET_BALANCE.
A non-COP account returns 400.
Account status
The source account must beOperativa. Bloqueada or Cerrada returns 403 with code: ACCOUNT_NOT_OPERATIVE. Restringida returns 403 with code: RESTRICTED.
