comparison · 5 min read

Free Ethiopian Receipt Verification Without API Keys or Signup

Stop paying check.et 499 ETB/month. Verify CBE, Telebirr, BOA, and M-Pesa receipts for free with no signup, no API key, and no limits. Here's how.

If you're an Ethiopian business owner, you've probably heard of check.et or verify.et. They verify bank receipts so you can confirm payments before releasing goods. The problem? They charge you for data that is already free.

The reality

check.et and verify.et verify receipts by hitting the exact same public bank URLs that anyone can access for free. They add a pricing layer on top of public data. cheki removes that layer.

What check.et, verify.et, qbirr, tinaverify, and tally actually do

Every Ethiopian bank publishes transaction receipts at public URLs. These URLs require no authentication. Here are the actual endpoints:

BankPublic endpointFormatCost
CBE (new)Mb.cbe.com.et/api/v1/transactions/public/transaction-detail/{id}JSONFree
CBE (old)apps.cbe.com.et:100/?id={ref}{account}PDFFree
Telebirrtransactioninfo.ethiotelecom.et/receipt/{ref}HTMLFree
BOAcs.bankofabyssinia.com/api/onlineSlip/getDetails/?id={ref}{acct}JSONFree
Dashenreceipt.dashensuperapp.com/receipt/{ref}PDFFree
M-Pesam-pesabusiness.safaricom.et/api/receipt/getReceipt?trxNo={ref}JSONFree

check.et, verify.et, qbirr, tinaverify, and tally all fetch these URLs, parse the response, and return structured data. That's exactly what cheki does, except cheki is free and open source.

Pricing comparison

ServiceFree tierPaid planPer verification cost
chekiUnlimitedN/A (always free)0 ETB
check.et200 (one-time, not monthly)499 ETB/month or 4,990/year~2.5 ETB per verification at 200/mo
verify.et200 (one-time)$20-40/month~$0.10-0.20 per verification
qbirr50/month500-8,000 ETB/month0.50-0.84 ETB per verification
tinaverifyNone3K-8K ETB per 90 days (credit-based)0.84-0.91 ETB per verification
tallyUnknown (not public)UnknownUnknown

Important detail

check.et's 200 free verifications are a one-time allowance, not monthly. Once you use them, you must upgrade. cheki has no such limit. Ever.

How to verify receipts for free with cheki

1

Go to chekiapp.vercel.app

No signup, no login, no account creation. Just open the page and start verifying.

2

Paste your receipt reference or URL

Type an FT reference for CBE, a transaction ID for Telebirr, or paste a full receipt URL. cheki auto-detects the bank.

3

Click Verify

cheki fetches the receipt from the bank's public endpoint and shows you the result in 1-3 seconds.

4

Review the data

You'll see the sender name, receiver name, amount, date, and source URL. Copy the JSON if you need it for your records.

Using the free API

If you're a developer, cheki provides a free REST API with no authentication:

bash
curl -X POST https://chekiapp.vercel.app/api/verify \
  -H "Content-Type: application/json" \
  -d '{"bank":"cbe","reference":"FT26140P01YB","accountNumber":"1000560536171"}'

No API key header. No Bearer token. No rate limit. Just POST and get JSON back.

Compare this to check.et, which requires a business account, an API key generation step, and Authorization headers:

bash
# check.et requires all this:
export CHECK_ET_API_KEY=chk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

curl -X POST https://api.check.et/api/v1/verify \
  -H "Authorization: Bearer $CHECK_ET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"bank":"cbe","transaction_number":"FT26140P01YB","account_number":"1000560536171"}'

Migrating from check.et

If you're currently using check.et's API, migrating to cheki is simple. Change the URL from api.check.et to chekiapp.vercel.app, remove the Authorization header, and rename transaction_number to reference and account_number to accountNumber. The response structure is similar.

What about verify.et?

verify.et is made by Suba Software and charges in USD ($20-40/month). It has an Android app on the Play Store and supports Telegram OAuth for signup. Here's the interesting part: verify.et blocks AI crawlers in its robots.txt:

code
# From verify.et/robots.txt
User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: Google-Extended
Disallow: /

This means verify.et actively prevents ChatGPT, Claude, and Google's AI from reading its content. Why? Possibly to prevent users from discovering that the underlying data is public. cheki does the opposite: our robots.txt explicitly allows all AI crawlers, and we publish an llms.txt file with key facts for AI assistants.

Self-hosting for zero cost and zero dependency

If you don't want to depend on chekiapp.vercel.app at all, you can self-host the entire system with Docker:

bash
git clone https://github.com/1RB/cheki.git
cd cheki
docker-compose up -d

# Your API is now at http://localhost:3000/api/verify
# No external dependencies. No API calls to chekiapp.vercel.app.
# Full control. MIT licensed.

Self-hosting on an Ethiopian IP also bypasses Telebirr and M-Pesa geo-blocking, which affects both cheki's hosted version and check.et's servers.

Frequently asked questions

Edit this article on GitHubReport an issue →

Continue reading