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:

code
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:

http
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-59f403820000

The response is structured JSON with all the transaction details:

json
{
  "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

FeatureOld system (apps.cbe.com.et)New system (mbreciept.cbe.com.et)
Input neededFT reference + last 8 digits of accountSingle short URL or QR scan
Response formatPDF documentStructured JSON
ParsingRequires PDF text extractionDirect JSON parsing
Speed2-4 seconds0.5-2 seconds
Account number requiredYesNo
QR code supportNoYes (encodes receipt URL)
Share linkLong URL with sensitive dataShort 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

1

Open chekiapp.vercel.app on your phone

The QR scanner uses your phone's camera, so mobile works best.

2

Tap the camera icon

It's in the top-right of the verify form, next to the QR icon. Allow camera access when prompted.

3

Point at the QR code

Hold your phone over the QR code on the receipt. A scan box overlay shows where to aim.

4

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.

Frequently asked questions

Edit this article on GitHubReport an issue โ†’

Continue reading