Payments 4 min read

Accept Bre-B Payments in Colombia

Enable instant bank-to-bank transfers for Colombian customers. Real-time confirmation, 24/7 availability.

Problem

  • Card approval rates in Colombia are 60-70% (international providers even lower)
  • PSE only works business hours Monday-Friday
  • Customers prefer bank transfers over cards
  • Manual bank transfer confirmations take hours

What You’ll Build

  • Bre-B instant payment acceptance
  • Real-time payment confirmation
  • Automatic reconciliation via webhooks

Architecture

Customer → Selects Bre-B → Chooses bank → Authorizes → Instant confirmation

Payment completes in under 60 seconds. Works 24/7 including weekends and holidays.

Steps

1. Get API Credentials

Sign up at console.orangepill.cloud:

  • Navigate to Developers → API Keys
  • Copy your test key: sk_test_...
  • Save webhook secret for later

2. Create Payment Request

const payment = await orangepill.paymentRequests.create({
  amount: 50000,
  currency: "COP",
  payment_method_types: ["bre_b"],
  customer_email: "[email protected]",
  success_url: "https://example.com/success",
  cancel_url: "https://example.com/cancel"
});

// Redirect customer to payment.url

3. Customer Pays

Customer experience:

  1. Sees list of 20+ Colombian banks
  2. Selects their bank (Bancolombia, Davivienda, BBVA, etc.)
  3. Authorizes payment in banking app
  4. Returns to your site instantly

4. Receive Confirmation

Listen for webhooks:

app.post('/webhooks/orangepill', (req, res) => {
  const event = req.body;

  if (event.type === 'payment.succeeded') {
    const payment = event.data;

    // Fulfill order immediately
    fulfillOrder(payment.metadata.order_id);
  }

  res.sendStatus(200);
});

5. Test End-to-End

Use sandbox mode:

# Test payment
curl https://api.orangepill.cloud/v1/payment-requests \
  -H "Authorization: Bearer sk_test_..." \
  -d amount=50000 \
  -d currency=COP \
  -d payment_method_types[]=bre_b

Simulate success/failure in test mode.

6. Handle Edge Cases

Set up automatic retries:

const payment = await orangepill.paymentRequests.create({
  amount: 50000,
  currency: "COP",
  payment_method_types: ["bre_b", "pse", "card"],
  // Fallback to PSE/cards if Bre-B fails
});

7. Go Live

Switch to production:

  • Replace sk_test_ with sk_live_ key
  • Update webhook endpoint to production URL
  • Monitor in dashboard

Code Sample

Full integration:

// Create Bre-B payment
async function createBreBPayment(orderAmount, customerEmail, orderId) {
  const payment = await orangepill.paymentRequests.create({
    amount: orderAmount,
    currency: "COP",
    payment_method_types: ["bre_b"],
    customer_email: customerEmail,
    metadata: { order_id: orderId }
  });

  return payment.url; // Redirect customer here
}

Outcome

Customers pay instantly with their preferred Colombian banks. No card declines, no business hours restrictions.

Typical results:

  • 85-95% approval rates (vs 60-70% for cards)
  • 60-second average payment time
  • 24/7 availability including weekends
  • Zero manual reconciliation

What to read next