The service in detail

A single API that turns a receipt id into trusted, structured data

Payment·Verify reads Telebirr and CBE receipts straight from each bank’s own endpoint, parses them into clean JSON, and (optionally) confirms the money landed in your account. No screenshots, no manual checking.

What it does

Four jobs, one endpoint shape

Learn the pattern once. Every bank and every operation follows it.

📥

1 · Read

You send a transaction id, full receipt URL, or FT reference. We fetch the live receipt from the bank.

🧩

2 · Parse

We extract payer, receiver, amount, currency, date and status into a consistent JSON object.

🔐

3 · Verify

Optionally pass your account/name — we compare it to the receiver and return a true/false match.

⚖️

4 · Decide

auto_eligible tells your app when it’s safe to auto-approve an order or top-up.

Endpoints

The full surface

All POST, all JSON, all behind your Authorization: Bearer pk_live_… key.

EndpointPurposeRequired body
POST /api/check/telebirrParse a Telebirr receipturl
POST /api/check/cbeParse a CBE receipturl (+ receiver_account for bare FT)
POST /api/verify/telebirrParse and match receiverurl + receiver_name/receiver_account
POST /api/verify/cbeParse and match receiverurl + receiver_account
POST /check · /verifyGeneric — pick bank in bodybank + url
GET /healthService status (no key)—

Try them live with your key in the tester or the interactive docs.

Shape

Request in, structured data out

POST /api/check/telebirr
{
  "url": "DDQ18SQ4KF"
}
POST /api/check/cbe
{
  "url": "FT261459C214",
  "receiver_account": "1000310163957"
}
POST /api/verify/telebirr
{
  "url": "DDQ18SQ4KF",
  "receiver_name": "Abebe Kebede",
  "receiver_account": "251911223344"
}
Response fields
bank
telebirr or cbe
payer
Who sent the money
receiver
Who was paid
amount
Numeric value
currency
ETB
status
Completed / Unknown
verified
Match result (verify only)
auto_eligible
Safe to auto-approve?
Trust & safety

How we keep results honest

📡

Read from the source

We query the bank’s own receipt endpoint — never an uploaded image that can be edited.

🚫

No false positives

Invalid, expired or unreadable ids return status: "Unknown" and auto_eligible: false — never a fake “Completed”.

🎯

Receiver matching

Verify endpoints confirm the money reached your account, defeating “paid someone else” screenshots.

🗝️

Hashed keys

API keys are stored only as a hash. Lost a key? Revoke and mint a new one from your dashboard.

🧾

Clear errors

Bad input → 400, your key inactive → 402, upstream bank down → 502, timeout → 504. Easy to handle.

📈

Usage tracking

See your calls per day in the dashboard so you always know what you’re using.

Who it’s for

Built for anyone accepting Ethiopian payments

🛒

E-commerce

Auto-confirm an order the moment a customer pastes their transfer id at checkout.

📱

Top-up & wallets

Credit balances instantly once a Telebirr/CBE payment to your account is verified.

🎫

Bookings & events

Validate ticket and reservation payments without a human checking screenshots.

🏢

SaaS & subscriptions

Activate or renew accounts automatically from a pasted receipt — like we do.

🤝

Marketplaces

Confirm buyer→seller payments before releasing goods or payouts.

🤖

Bots & automations

Telegram/WhatsApp bots can verify a payment in a single API call.

Coverage

Telebirr & CBE live — more banks shipping soon

Same API, growing list. See what’s live and what’s next.

View supported banks →

Ready to integrate?

Sign up free, get your key, and make a verified call in minutes.