Reliability & automatic failover
How RohoPay keeps payments flowing even when an upstream provider is degraded.
Never-down payments
RohoPay routes every transaction through a smart router with a circuit breaker. If the channel currently handling your transaction is slow, erroring, or offline, RohoPay automatically fails the request over to the next healthy channel — usually without your code noticing.
This is what lets us promise "never down": a single channel outage should never block your customers from paying.
How it works
- Automatic routing (default) — RohoPay routes each mobile-money transaction through the most reliable available channel, with automatic failover to a backup channel if the primary is temporarily unavailable — this is deterministic, not probabilistic. Card payments always go through RohoPay's card processing network. Which channel handles a given transaction is an internal RohoPay implementation detail and may change without notice.
- Weighted routing (alternate, togglable) — a smooth weighted round-robin mode also exists as an internal option, but it is not the default.
- Circuit breaker per channel — each channel has its own breaker, so a degraded channel is automatically taken out of rotation until it recovers.
- Automatic failover — if the chosen channel returns an error, the router retries the same request through the next available channel.
- Self-healing — after a cooldown, the breaker lets a few probe requests through (half-open). If they succeed, the channel is restored to the pool; otherwise it stays open.
When a payment is served by a fallback channel, the API response includes a
failover_reason field so you can see what happened in your logs, e.g. "Primary channel returned a timeout; retried with backup channel".
What this means for you
- No code changes required — failover is transparent at the API level.
- No configuration required — routing, failover, and circuit-breaking are managed entirely by RohoPay; there's nothing to set up or tune on your side.
- Always a path to "paid" — a degraded mobile-money channel won't stop card payments, and vice-versa.
- Observable — every fallback is logged and surfaced via
failover_reason, so you can track reliability in your own dashboards.
