Colombia: bank transfer and PSE
SET API and SET Merchant API · Live since 2026-11-09 · Needs COP enabled
Besides Bre-B, pesos can now move by ordinary Colombian bank transfer, in both directions.
Paying out to a Colombian bank account
- Link the customer's own account:
POST /v1/bank_accounts {customer, currency: "cop", accountType: "co_bank_transfer", ownerName, accountNumber, bankCode, bankAccountType, documentType, documentNumber, phoneNumber}. - Open a Cash-Out Address that pays it:
POST /v1/cash_out_addresses {…, rail: "co_bank_transfer"}.
To pay a third party in Colombia, create a recipient with destination: {kind: "bank", currency: "cop", rail: "co_bank_transfer", …same fields} and pay it with POST /v1/payouts. A reference goes to the bank: up to 18 letters, digits and spaces.
| Field | Values |
|---|---|
bankAccountType | checking, savings, electronic_deposit |
documentType | cc, ce, nit, rut, pa, ppt, ti, rc, te, die, nd |
phoneNumber | +57 and ten digits |
bankCode | 4 digits |
Account numbers and the holder's document go to SET's provider only. Without rail, a COP recipient is paid by Bre-B, as before.
Collecting pesos by PSE
POST /v1/cop_payins {customer, amount, asset, address, beneficiary | settleTo: {wallet}, redirectUrl, expiresAt?, reference?} returns startUrl, the provider's payment page.
- The payer pays there by bank transfer, and the customer receives the stablecoin.
- SET sends no payer details: the payer gives them on the page, so their identity document never passes through SET or the platform.
- The minimum is 100 pesos. A PSE payment cannot be returned (
returnable: false). - Events:
cop_payin.created,cop_payin.<state>.
Availability
COP must be enabled for SET by its provider. Until it is, COP calls answer 409 endorsement_required.