About Tuna
What is Tuna?
Tuna is an open-source receipt verification service for Ethiopian banks and mobile wallets. It takes a receipt reference number, screenshot, QR code, SMS text, or receipt URL and verifies it against the bank's live endpoint. You get back structured data: amount, payer, date, status.
The name "Tuna" comes from the idea of "checking" — like checking a receipt. It's short, memorable, and works as both a noun and a verb.
Why does it exist?
Ethiopian businesses and individuals need to verify payments constantly. Banks don't provide a unified verification API. Each bank has its own format — CBE uses PDF receipts with JSON APIs, Telebirr returns HTML pages, BOA uses JSON with authentication, Dashen returns PDFs.
Existing solutions are either paid (check.et charges 499 ETB/month, verify.et charges $20-40/month) or closed-source. Tuna is free, open-source, and designed to be self-hosted.
How it works
Tuna uses a manifest-driven architecture. Each bank is defined in a TOML file with its parser, endpoint, and required fields. Adding a new bank means writing one parser file and adding one entry to the manifest — no framework changes needed.
Supported banks
Tuna currently supports 7 banks with working parsers and 3 more with stubs:
- • Commercial Bank of Ethiopia (CBE) — PDF + JSON API, requires account number for FT refs
- • Telebirr — HTML parsing, geo-blocked outside Ethiopia
- • Bank of Abyssinia (BOA) — JSON API with authentication
- • Zemen Bank — PDF parsing
- • Dashen Bank — PDF parsing (partial)
- • Awash Bank — HTML parsing (partial)
- • M-Pesa — JSON + PDF, geo-blocked
Input methods
Tuna accepts receipts in multiple formats:
- • Text reference — Paste FT numbers, receipt IDs, or transaction references
- • Screenshot — Upload an image and Tuna runs OCR to extract the reference
- • QR code — Camera scan or image upload — reads embedded receipt links
- • SMS text — Paste bank SMS notifications — auto-detects bank and extracts reference
- • Receipt URL — Paste any bank receipt link — auto-detects bank from domain
Security
Tuna does not store receipt data. All verification is done in real-time against bank endpoints. The frontend uses XSS-safe rendering (no innerHTML with user data). Rate limiting and abuse prevention protect the API.
Open source
Tuna is MIT licensed. The code is on GitHub. You can self-host it, contribute parsers, or use the API in your own projects.
Built by
Tuna is built by Ash, a software developer based in Ethiopia. The project started as a receipt verification tool for personal use and grew into a full API with multiple bank parsers.