API ReferenceProviders

Providers

The Providers API gives you real-time visibility into the health and performance of all payment providers connected to POPFAB.

List Provider Health

GET
/v1/providers

Returns the current health snapshot for all providers, updated every 60 seconds.

Get provider healthbash
curl https://api.popfab.io/v1/providers \
  -H "Authorization: Bearer sk_test_YOUR_API_KEY"
Responsejson
[
  {
    "provider_id": "paystack",
    "circuit_state": "CLOSED",
    "success_rate": 0.974,
    "avg_latency_ms": 312,
    "p95_latency_ms": 680,
    "requests_in_window": 1423,
    "last_updated": "2025-03-19T10:25:00.000Z"
  },
  {
    "provider_id": "flutterwave",
    "circuit_state": "CLOSED",
    "success_rate": 0.961,
    "avg_latency_ms": 428,
    "p95_latency_ms": 892,
    "requests_in_window": 876,
    "last_updated": "2025-03-19T10:25:00.000Z"
  },
  {
    "provider_id": "monnify",
    "circuit_state": "OPEN",
    "success_rate": 0.52,
    "avg_latency_ms": 2100,
    "p95_latency_ms": 4800,
    "requests_in_window": 34,
    "last_updated": "2025-03-19T10:25:00.000Z"
  }
]

Response Fields

FieldTypeDescription
provider_idstringProvider identifier: paystack, flutterwave, monnify, squad, interswitch, payaza.
circuit_statestringCurrent circuit breaker state. See circuit breaker reference below.
success_ratefloat (0–1)Rolling 15-minute success rate for this provider.
avg_latency_msintegerAverage response time in milliseconds over the last 15 minutes.
p95_latency_msinteger95th percentile response time — the latency 95% of requests are faster than.
requests_in_windowintegerTotal request count in the current 60-second monitoring window.
last_updatedISO 8601Timestamp of the last health snapshot computation.

Circuit Breaker States

POPFAB automatically monitors each provider's failure rate and manages traffic routing through a circuit breaker pattern. You do not need to take any action — this happens automatically. The provider health API lets you observe the current state.

StateMeaningTraffic
CLOSEDProvider is healthy. Normal operation.Full traffic routed normally.
OPENFailure rate exceeded 30% in the last 60s, or 3+ consecutive timeouts detected.Zero traffic. All requests fail over to other providers immediately.
HALF_OPENRecovery probe active. A single test request is sent every 30 seconds.Single probe transaction only. Success → CLOSED. Failure → OPEN.

Default circuit breaker thresholds

ParameterDefaultRange
Error rate threshold30%10–60%
Monitoring window60 seconds30–300s
Consecutive timeout threshold31–10
Minimum requests to open5 in windowConfigurable
Half-open probe interval30 secondsFixed

Supported Providers

IDNameMethodsMarketsStatus
paystackPaystackCard, Bank Transfer, USSD, QRNG, GH, KE, ZALive
flutterwaveFlutterwaveCard, Mobile Money, Bank Transfer, USSDNG + 30 marketsLive
monnifyMonnifyBank Transfer, CardNGLive
squadSquad (GTBank)Card, Bank Transfer, USSDNGComing soon
interswitchInterswitchCard, USSDNGComing soon
payazaPayazaCard, Bank TransferNG, GHPlanned

Capability Matrix

ProviderPaymentsTransfersVirtual AccountsSubaccountsIdentity (BVN)
Paystack
Flutterwave
Monnify
Squad
Interswitch
Payaza