qbirr verifies CBE, Telebirr, Awash, Dashen, M-Pesa, Bank of Abyssinia and eBirr receipts in real time. One API, every bank, zero screenshots.
No card required · 50 free verifications/month forever
curl -X POST https://verify.qbirr.com/api/v1/verify \
-H "X-API-Key: $QBIRR_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "cbe",
"ref": "FT23001234ABC",
"amount": 500,
"receiver_name": "YOUR NAME",
"receiver_account": "1000017692643"
}'
# → returns instantly
{
"verified": true,
"payer": "JANE DOE",
"amount": 500,
"error": ""
}
Works with every major Ethiopian bank & wallet
If you've ever sold anything online in Ethiopia, this list looks familiar.
Why qbirr
Every detail tuned for how money actually moves here.
Direct from each bank's receipt URL — no SMS forwarding, no upload-screenshot UX.
CBE, Telebirr, Awash, Dashen, M-Pesa, Bank of Abyssinia, eBirr (COOPay/KAAFI/Nib/Wegagen/Ahadu).
Strict normalised match prevents the "paid the wrong account" scam.
Overpayment passes. Underpayment ≤ 10 ETB tolerated. Configurable per merchant.
Each transaction reference can only be verified once per merchant — no replay attacks.
Telebirr & M-Pesa only respond to Ethiopian IPs. We handle that for you.
Node.js, Python, PHP, Go. Plus raw HTTP examples for Ruby, .NET, Java, Rust.
No card needed. We invoice in ETB; you pay via CBE/Telebirr/Awash. Auto-activated within hours.
Per-provider breakdowns, live quota meter, full call log with response times.
How it works
They use any of the 7 supported apps to transfer to your bank/wallet.
At your checkout, they enter the transaction reference from the SMS or app.
Your server POSTs to verify.qbirr.com. We confirm in milliseconds. Order completes.
Supported providers
If your customers can pay with it, we probably verify it.
Don't see your bank? Tell us — we add new providers based on demand.
Use cases
WooCommerce, Shopify, custom carts. Drop in our SDK or plugin. Auto-complete orders the moment payment lands.
Sell digital goods, subscriptions, premium content. Bot asks for the ref, calls our API, unlocks instantly.
Native, Flutter, React Native — make one HTTPS call from your backend. Done.
Issue tickets only after payment is confirmed on-chain… er, on-bank.
Verify deposit and balance payments. Skip the back-and-forth.
Real-time progress bars only count money that actually arrived.
Early access
Real feedback from beta merchants. Names anonymised by request.
We stopped doing manual verification on weekend nights. That alone pays for itself.
The receiver-name check caught two payments to a similarly-named account. Direct save.
Telebirr verification from our USA server just works. We don\'t even think about it.
Built for developers
Node, Python, PHP, and Go SDKs maintained by us. Plus working cURL examples for Ruby, .NET, Java, and Rust. Same request, same response, zero translation gymnastics.
import { Qbirr } from '@qbirr/sdk';
const qb = new Qbirr({
apiKey: process.env.QBIRR_API_KEY,
});
const r = await qb.verify({
provider: 'cbe',
ref: 'FT23001234ABC',
amount: 500,
receiverName: 'YOUR NAME',
receiverAccount: '1000017692643',
});
if (r.verified) {
// ✓ paid by r.payer
order.complete();
}
Pricing
Start free with 50 verifications/month. No card needed. Upgrade when you outgrow it — invoiced in ETB, paid via bank transfer.
FAQ
No. qbirr is independent. We fetch the same public receipt pages and APIs that the banks themselves expose to customers, then parse them on your behalf.
You decide — by default, underpayments up to 10 ETB pass (the tolerance accounts for rounding and tiny fees). Anything more fails verification with a clear error message. We can raise or lower the tolerance per-merchant on request.
No. Each reference can only be verified once per merchant. Once you\'ve marked an order as paid against a ref, that ref is permanently locked from your account.
Never. The money goes directly into your bank/wallet account, exactly as it does now. qbirr only verifies that the transfer actually happened and matches what you expected.
Both providers geo-block their receipt URLs to Ethiopian IPs. We route those verifications through our Ethiopian relay automatically — your server in Frankfurt, New York, or Singapore just calls our API as normal.
qbirr is for Ethiopian rails (banks + mobile money). For Visa/Mastercard you want Stripe, Paddle, or Chapa.
Yes — we have a self-hosted WordPress plugin if you only need verification on a single site. The hosted SaaS gives you multi-site usage, unified billing, SLA, and auto-updates.
We return a network error and don\'t deduct from your quota. Retry-after a few seconds works almost always. We monitor every provider 24/7.
We store transaction references and amounts for billing and audit (per Ethiopian fintech norms). We never see or store your customers\' funds or your bank credentials. Full data-retention details in our privacy policy.
50 free verifications per month, forever. No credit card, no contract.