Documentation
Ethiopia runs on mobile payments. CBE and Telebirr process millions of transfers daily. But there's no way to confirm a payment is real autonomously. A customer shows you a screenshot — did they actually pay? Is it the right amount? Did it go to your account? Is it the same screenshot they showed someone else yesterday?
Verify Et reads the QR code on payment receipts and verifies the transaction against CBE and Telebirr systems in real-time. It tells you exactly who paid, how much, to whom, and when — in seconds.
What We Built
1. Hosted Checkout System
This is our flagship integration for developers and online businesses. Any website or app can accept verified CBE/Telebirr payments without building payment infrastructure.
How it works:
- Merchant creates a checkout session via API (amount, return URL, webhook URL)
- We generate a hosted checkout page showing the merchant's bank details
- Customer pays externally using their bank app
- Customer uploads their receipt on the checkout page
- We scan the QR code and verify: correct recipient, correct amount, not a duplicate
- Merchant gets a webhook + redirect with a signed verification token
- Merchant confirms the token server-side before fulfilling the order
Smart error handling built in:
- Underpayment/overpayment detection with exact amounts
- Wrong recipient detection (paid the wrong account)
- Duplicate receipt prevention (same QR code used twice)
- Attempt limits (max retries per session)
- Session expiry with countdown timer
Three integration modes via our JavaScript SDK:
- Redirect: full page redirect to checkout
- Popup: new browser window
- Modal: secure iframe overlay on your page (domain-whitelisted via dynamic CSP headers — only your registered origins can embed it)
This replaces what would take weeks of payment integration work with a single API call.
2. Mobile Verification App (verifyet.com)
A mobile-first web app for businesses that verify payments in person — shops, restaurants, service providers.
- Scan or photograph any CBE or Telebirr receipt QR code
- Instant result: sender name, receiver name, amount, date, transaction ID
- Full English and Amharic language support
Cashier Mode
Business owners create cashier accounts for their staff (up to 2 per business). Cashiers get a restricted view:
- Can only scan and verify receipts
- See only their own daily transactions
- Cannot access settings, history, or manage other cashiers
Business owners see everything: all transactions across all cashiers, who verified what, and performance stats. This lets a shop owner hand a phone to an employee and know exactly what payments came through their shift.
Dashboard & Analytics
- Transaction history with date/status/service filters
- Daily summaries and totals
- Cashier performance tracking (which cashier verified which transaction)
- Export to CSV
3.External API & SDK
Full REST API at api.verifyet.com for third-party integrations:
- Client registration with bank account details
- Checkout session management
- Verification history with pagination and filters
- Webhook notifications with HMAC-SHA256 signatures
- Publishable/secret key authentication (pk_live_ / sk_live_)
- Interactive API documentation at api.verifyet.com/docs
JavaScript SDK (npm: verifyet-sdk) for drop-in integration with React, Next.js, Vue, or vanilla JS.
Security
- Domain-whitelisted iframe embedding (allowed_origins enforced per client via dynamic CSP)
- Secret key required for all sensitive endpoints (403 if publishable key is used)
- Rate limiting on authentication and API endpoints
- HTTPS-only webhook URLs enforced at registration
- Webhook signature verification (HMAC-SHA256)
- Input sanitization, Argon2 password hashing, JWT authentication
- Brute force protection (5 login attempts per 60 seconds)
