Blog

How to Verify CBE Bank Transfers Automatically

July 3, 2026 · 6 min read · CBE · Automation · API

If you run an online store in Ethiopia, you've probably had this conversation: a customer sends you a screenshot of their CBE transfer, you squint at it, cross-check names, and hope the ref hasn't been reused. This guide shows you how to make that process instant and automatic.

The Problem with Manual CBE Verification

CBE (Commercial Bank of Ethiopia) is the largest bank in the country, processing millions of Birr in transfers every day. But verifying those transfers is still done the old-fashioned way:

This doesn't scale. As your orders grow, so does the time spent on verification. And screenshots can be edited. A real-time check against the bank's own data is the only way to be sure.

How CBE Receipt Verification Actually Works

CBE exposes a public receipt page for every successful transfer. When someone sends money, they receive an SMS with a transaction reference (a FT number like FT23001234ABC). This ref opens a page on the CBE website that shows the payer name, amount, and account details in real time.

The trick is fetching and parsing that page programmatically. That's what qbirr does — we hit CBE's receipt URL, parse the response, and return a clean verified: true or verified: false.

Option 1: Do It Yourself (Hard Way)

You could build a scraper that mimics what a browser does when it opens a CBE receipt URL. This means:

It's doable, but it's a maintenance burden. Banks change their pages regularly, and your verification code breaks silently — meaning you think payments are verified when they aren't.

Option 2: Use qbirr (Simple Way)

With qbirr, you make one API call and get a yes/no answer in under 500ms. Here's how it works:

curl -X POST https://verify.qbirr.com/api/v1/verify \
  -H "X-API-Key: $QBIRR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "cbe",
    "ref": "FT23001234ABC",
    "amount": 500,
    "receiver_name": "YOUR NAME",
    "receiver_account": "1000017692643"
  }'

# → {
#   "verified": true,
#   "payer": "JANE DOE",
#   "amount": 500,
#   "error": ""
# }

We handle the CBE receipt page parsing, geo-blocking (CBE only responds to Ethiopian IPs), and page structure changes. You just check verified and ship the order.

What About Other Banks?

CBE is one of seven providers qbirr supports. The same API works for Telebirr, Awash, Dashen, M-Pesa, Bank of Abyssinia, and eBirr. The only thing that changes is the provider field:

Start Automating Today

You can get started with qbirr's free tier — 50 verifications per month, no card required. No matter which SDK language you use (Node.js, Python, PHP, Go), the API shape is the same.

Stop chasing screenshots.

Verify every CBE, Telebirr, Awash, and Dashen payment in milliseconds. Get your API key →