Developer guide
VEXPay siteAPI reference
Browse documentation

Recipe: accept Colombian pesos

Let buyers in Colombia pay with Bre-B, Nequi or Daviplata — at checkout or from your own screens — and hold, refund or convert the pesos.

Two ways to collect pesos

WayBest whenHow
Hosted checkoutYou already use checkout sessions or linksAdd "cop" to methods (or leave methods empty)
Direct APIYou build your own payment screenPOST /v1/cop/payments with a channel

Pesos have their own balance, apart from bolívares and stablecoins. The standard fee is 4.5% + COP 1,500 per payment, with a COP 20,000 minimum.

Step 01

Collect from your own screen

Bre-B (curl)bash
curl --request POST "${API_URL}/v1/cop/payments" \
  --header "content-type: application/json" \
  --header "x-api-key: ${VEXPAY_API_KEY}" \
  --header "Idempotency-Key: order-1042" \
  --data '{ "amountCop": 100000, "channel": "breb", "reference": "order-1042" }'
channelWhat the buyer doesWhat you show
brebScans a QR or pastes a transfer key in their bank appnext.qrPngBase64 and next.transferKey (only in this response)
nequiApproves a push notification in NequiA waiting screen
daviplataTypes the SMS code Daviplata sends themA code field; send it to POST /v1/cop/payments/:id/otp

Step 02

After the payment

  1. Fulfill

    payment.completed carries amountCop and feeCop. Match on reference.

  2. Hold

    The pesos are held 24h: GET /v1/cop/balance shows availableCop, heldCop and nextReleaseAt.

  3. Refund if needed

    POST /v1/cop/payments/:id/refund within 96 hours. A refund of a sale that is still held comes out of the hold.

  4. Convert or withdraw

    Convert pesos to USDT (POST /v1/conversions with sourceCurrency COP, or auto-convert a share of every payment), or ask VEX Pay for a bank payout of your available pesos.