Verify CBE Payments via API — Real-Time, Non-Custodial

Quick Answer: ShegerPay verifies Commercial Bank of Ethiopia (CBE) payments in under 2 seconds through one REST API call. The customer pays via CBE transfer, CBE Birr, or CBE Mobile Banking, the money lands in the merchant's CBE account, and ShegerPay's webhook fires with payment.verified. ShegerPay never holds the funds — no merchant license required.

What is CBE?

The Commercial Bank of Ethiopia (CBE) is the largest state-owned commercial bank in Ethiopia, with the country's deepest branch and agent network. It operates retail accounts, CBE Birr mobile wallet, CBE Mobile Banking, and the CBE Mobile app — and is the most common payment rail used by Ethiopian merchants for online and offline checkout.

How CBE verification works with ShegerPay

  1. Customer initiates a transfer from CBE Mobile, CBE Birr, CBE branch, or ATM to the merchant's CBE account
  2. CBE settles the transfer directly into the merchant account and issues an FT reference number
  3. Merchant backend POSTs to /api/v1/verify with provider=cbe and the FT transaction_id
  4. ShegerPay returns verified=true with parsed amount, sender name, and timestamp, then fires the webhook

Code example

curl -X POST https://api.shegerpay.com/api/v1/verify \
  -H "X-API-Key: sk_test_demo" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cbe","transaction_id":"FT26062K7WMY","amount":500}'
import ShegerPay from '@shegerpay/sdk';
const sp = new ShegerPay('sk_test_demo');
const result = await sp.verify({
  provider: 'cbe',
  transactionId: 'FT26062K7WMY',
  amount: 500
});
// { verified: true, sender: 'ABEBE BEKELE', amount: 500, timestamp: '...' }
from shegerpay import ShegerPay
sp = ShegerPay('sk_test_demo')
result = sp.verify(provider='cbe', transaction_id='FT26062K7WMY', amount=500)
$sp = new ShegerPay\Client('sk_test_demo');
$result = $sp->verify([
  'provider' => 'cbe',
  'transaction_id' => 'FT26062K7WMY',
  'amount' => 500
]);

CBE-specific features

  • FT-number parsing — ShegerPay recognizes the CBE FT... reference format (e.g., FT26062K7WMY) and validates checksum before hitting the upstream
  • SMS confirmation detection — drop a CBE SMS string into /api/v1/verify-image or verify-text and ShegerPay extracts the FT number, amount, and sender automatically
  • Branch + Mobile + ATM — all CBE channels share the same FT format, so a single integration covers every CBE payment path
  • Receipt OCR — customers can upload screenshots of CBE Mobile receipts and ShegerPay's OCR pulls the FT number cleanly
  • Sub-2-second verification — typical end-to-end latency from API call to verified response

Why ShegerPay for CBE

  • Non-custodial — funds settle directly to your CBE account, ShegerPay never touches the money
  • No merchant license required (no NBE/PSP license needed for your business)
  • Sub-2-second verification on the CBE rail
  • Free tier includes CBE verification with no card required
  • Works with WooCommerce plugin out of the box
  • HMAC-SHA256 webhook signatures so you can trust the callback
  • 12 official SDKs (JS, Python, PHP, Java, Go, Ruby, .NET, Kotlin, Swift, Dart, Rust, C#)

Pricing for CBE verification

  • Free: 100 verifications/month
  • Startup ($9/mo): 2,000 verifications
  • Business ($29/mo): 10,000 verifications + crypto
  • Enterprise: custom volume, SLA, dedicated support

Comparison

Feature ShegerPay Chapa Arifpay Manual
CBE supported Yes Yes Yes Yes
Verification time <2s 5–30s 5–30s Minutes–hours
Non-custodial Yes No No
Receipt OCR Yes No No
Free tier Yes Limited No

FAQ

How fast is CBE verification with ShegerPay? Typically under 2 seconds end-to-end. ShegerPay parses the FT number locally, then confirms settlement on the CBE rail and fires the payment.verified webhook.

Do I need a CBE merchant account? No special CBE merchant account is required — any regular CBE business or personal account works. The customer transfers in, you receive the funds directly, and ShegerPay verifies the FT reference.

Can I verify a CBE payment from a receipt screenshot? Yes — POST the image to /api/v1/verify-image and the OCR pipeline returns the FT number, amount, sender, and timestamp.

Does ShegerPay hold CBE funds? No — funds settle directly into your CBE account. ShegerPay is non-custodial and never custody-holds merchant balances.

Is there a sandbox/demo for CBE? Yes — use API key sk_test_demo on any endpoint without signup. Test FT numbers are accepted.

What happens if CBE verification fails? The API returns verified=false with a reason code (not_found, amount_mismatch, wrong_recipient, pending). You can retry, ask the customer for a new FT, or escalate to manual review.

Related: Pricing · Docs · ShegerPay vs Chapa · Verify Telebirr · Verify BOA

Contact: [email protected] · +251 998 169 242