bank ยท 4 min read
CBE Receipt QR Codes: What They Contain and How to Scan Them
CBE's new receipt sharing system uses short URLs and QR codes. Learn what's inside them, how to scan them, and how to verify instantly with cheki.
Commercial Bank of Ethiopia recently launched a new receipt sharing system. When you complete a transfer in the CBE mobile app, you can now share a short link like https://mbreciept.cbe.com.et/fHCxyV4mg5pRIwEkJO. The recipient opens this link and sees the full receipt in their browser, no app required.
This is a significant upgrade from the old system, which required the FT reference number and the last 8 digits of the receiving account to construct a receipt URL. The new system uses a single short ID and returns clean JSON data instead of a PDF.
What the QR code contains
The QR code on a CBE receipt encodes a URL in this format:
https://mbreciept.cbe.com.et/{SHORT_ID}The short ID is a random string like fHCxyV4mg5pRIwEkJO. It maps to a single transaction on CBE's backend. When you scan the QR code, you get this URL, which you can paste into cheki's URL input mode to verify instantly.
Try it now
Open chekiapp.vercel.app, switch to the 'Receipt URL' tab, and paste any mbreciept.cbe.com.et link. cheki calls CBE's JSON API and returns the full transaction data in under 2 seconds.
The API behind the receipts
The mbreciept.cbe.com.et page is a Nuxt.js single-page app. When it loads, it calls a JSON API at a different domain:
GET https://Mb.cbe.com.et/api/v1/transactions/public/transaction-detail/{SHORT_ID}
Headers:
X-App-ID: d1292e42-7400-49de-a2d3-9731caa4c819
X-App-Version: 0a01980b-9859-1369-8198-59f403820000The response is structured JSON with all the transaction details:
{
"id": "FT2614977L8S",
"transactionType": "ACNX",
"debitAccountNo": "1********8348",
"creditAccountNo": "1********6171",
"amountCredited": "1300.00",
"creditCurrency": "ETB",
"dateTimes": ["2026-05-29T08:30:00Z"],
"debitAccountHolder": "Raeed Ansar Yusuf",
"creditAccountHolder": "Sami Adil Zekaria",
"paymentDetails": ["football 1mo and extratime"]
}cheki uses this API directly. When you paste a mbreciept link, cheki extracts the short ID, calls the JSON API, and returns the parsed result. No PDF parsing needed, which makes it faster and more reliable than the old endpoint.
Old vs new CBE receipt system
| Feature | Old system (apps.cbe.com.et) | New system (mbreciept.cbe.com.et) |
|---|---|---|
| Input needed | FT reference + last 8 digits of account | Single short URL or QR scan |
| Response format | PDF document | Structured JSON |
| Parsing | Requires PDF text extraction | Direct JSON parsing |
| Speed | 2-4 seconds | 0.5-2 seconds |
| Account number required | Yes | No |
| QR code support | No | Yes (encodes receipt URL) |
| Share link | Long URL with sensitive data | Short random ID |
Backward compatible
cheki supports both the old and new CBE systems. The old endpoint (apps.cbe.com.et:100) still works for receipts that use the FT reference + account format. The new endpoint (mbreciept.cbe.com.et) is used automatically when you paste a URL.
How to scan a CBE QR code with cheki
Open chekiapp.vercel.app on your phone
The QR scanner uses your phone's camera, so mobile works best.
Tap the camera icon
It's in the top-right of the verify form, next to the QR icon. Allow camera access when prompted.
Point at the QR code
Hold your phone over the QR code on the receipt. A scan box overlay shows where to aim.
Automatic verification
Once the QR code is detected, the URL is extracted and verification happens automatically. The result appears in under 2 seconds.
Privacy and security
The new CBE receipt system masks account numbers in the API response. Instead of showing the full account number, it returns a masked version like 1********8348. This is better for privacy than the old PDF system, which included full account numbers in the document text.
The short ID in the URL is random and not guessable, which prevents receipt enumeration. You can only access a receipt if someone shares the link with you.
X-App-ID headers
The new CBE API requires hardcoded X-App-ID and X-App-Version headers. These are embedded in the mbreciept.cbe.com.et JavaScript bundle. If CBE rotates these headers, cheki will need to update them. The old PDF endpoint has no such requirement.