Bank Endpoint Health Check API
GET /api/health: check the status and latency of all Ethiopian bank receipt endpoints.
Read full API docsHealth check overview
GET /api/health: Tests the connectivity and latency of all supported bank receipt endpoints. For each bank, it makes a lightweight request to the bank's endpoint and reports whether the endpoint is reachable, how fast it responded, and whether it's geo-blocked.
Response structure
The response has a top-level status, a checkedAt ISO timestamp, a cached flag, and a banks array. Each entry has id, name, status ('reachable', 'unreachable', 'geo-blocked', or 'in-development' and 'no-parser' for banks that are not checked) and latencyMs (response time in milliseconds). This data is useful for monitoring dashboards and for gracefully handling endpoint failures in your integration.
Integration patterns
Use the health check to build resilient integrations:
- Check health before batch verification to skip banks that are down
- Display current bank status on your dashboard (refreshed at most every 5 minutes)
- Set up alerts when a bank endpoint goes down
- Automatically fall back to manual verification when a bank is geo-blocked
Frequently asked questions
What does GET /api/health return?
A JSON object with status, checkedAt (an ISO timestamp), cached, and a banks array. Each bank entry has id, name, status (reachable, unreachable, geo-blocked, in-development or no-parser) and latencyMs. This tells you which banks are currently reachable from cheki's servers.
Why would a bank endpoint be down?
Bank endpoints can be temporarily down for maintenance, or they can be geo-blocked (Telebirr and M-Pesa block non-Ethiopian IPs). The health check tells you which endpoints are currently accessible so you can handle failures gracefully.
How often is the health check updated?
Results are cached for 5 minutes, on the server and at the CDN, so polling more often than that returns the same snapshot. Concurrent calls share one probe of the bank endpoints.
Read full API docs
Open cheki