What payment gateway SLAs typically cover: API availability (can you reach their servers). What they typically exclude: bank network issues (if the acquiring bank is down, they are not liable), mobile money network issues (Safaricom STK push failures are not Paystack's liability), settlement timing delays (often listed as "best efforts"), fraud screening effectiveness. SLA credits are usually small (one month's fees) compared to revenue lost during downtime. Evaluate real reliability by checking status page history, developer community reports, and running your own uptime monitoring — not by reading the SLA document.
| SLA Coverage Area | Typically Covered | Typically Excluded |
|---|---|---|
| API availability | Yes — if their API returns 5xx, it counts against uptime | Degraded performance (slow but not down) |
| Bank network issues | No | If your bank's clearing system is down, Paystack is not liable |
| Mobile money network | No | Safaricom/MTN network issues are excluded |
| Settlement timing | Usually "best efforts" only | Settlement delays from bank side |
| Fraud screening | Not typically in SLA | False positive rates, missed fraud |
| Webhook delivery | Sometimes — with retry commitments | Final delivery guarantee is rare |
| Maintenance windows | Excluded — planned maintenance does not count against uptime | Depends on notice period given |
Measuring real reliability independently:
// Simple uptime monitor — ping Paystack API health endpoint
const https = require('https');
function checkPaystackHealth() {
return new Promise((resolve) => {
var start = Date.now();
https.get('https://api.paystack.co/bank', {
headers: { Authorization: 'Bearer ' + process.env.PAYSTACK_SECRET_KEY },
timeout: 5000,
}, (res) => {
var latency = Date.now() - start;
resolve({ healthy: res.statusCode === 200, latency, statusCode: res.statusCode });
}).on('error', (err) => {
resolve({ healthy: false, latency: Date.now() - start, error: err.message });
});
});
}
// Run every minute; alert when unhealthy
setInterval(async () => {
var result = await checkPaystackHealth();
if (!result.healthy) {
await sendAlert('Paystack health check failed: ' + JSON.stringify(result));
}
}, 60000);
See gateway failover design for responding to outages when they occur despite monitoring.
KES 2,999
The definitive guide to building payment systems with Paystack — from your first transaction to production-grade payment infrastructure across Africa. 9 modules, 47 lessons. Free preview available.
Start Paystack Course