SET Merchant API · Colombia (PSE)
Collect pesos by PSE
POST/v1/cop_payins
A Colombian payer pays in pesos by bank transfer (PSE) at the provider's payment page, and the customer receives stablecoin. Hand the payer startUrl.
Merchant key A merchant's destination wallet is always its own:
beneficiary.typemust be"customer";"platform"is refused with400 beneficiary_invalid.
Headers
Idempotency-Keystring- Optional. The same key and body run once; a replay answers with
Idempotent-Replayed: true. Kept 24 hours.
Body
customerstringrequired- An
approvedcustomer endorsed for COP. amountdecimal stringrequired- Pesos, at least
"100.00". asset, address, beneficiaryas virtual accounts- Where it is delivered and whose wallet that is.
settleTo{ wallet }- Instead: USDC into one of the customer's own custodial wallets.
redirectUrlhttps URLrequired- Where the payer returns after paying.
expiresAtISO time- When the payment page stops working.
referencestring- Your id; the same reference returns the same pay-in.
platformFeeBpsinteger- Platform keys: the platform's own fee, once SET allows it.
Notes
- SET sends no payer details: the payer gives them on the payment page, so their identity document never passes through SET or you.
- PSE payments cannot be returned (
returnable: false). - COP answers
409 endorsement_requireduntil SET's provider enables COP for SET. - Events
cop_payin.created,cop_payin.<state>.
Errors
400 amount_invalid400 redirect_url_invalid400 expires_at_invalid400 asset_invalid400 beneficiary_invalid400 cop_payin_refused404 wallet_unknown409 settle_route_not_supported409 endorsement_required409 verification_incomplete409 customer_closed401 api_key_required401 api_key_invalid401 api_key_wrong_mode403 scope_missing429 rate_limited