Bonaventure OgetoBy Bonaventure Ogeto|

Maintaining Client Payment Integrations as Recurring Revenue

Offer a monthly maintenance retainer to every client after project completion. Include: weekly webhook delivery monitoring, settlement delay alerts, API deprecation notice review, on-call response (within 4 hours on business days), and monthly payment health report. Price: KES 10,000–30,000/month for small clients, KES 30,000–80,000/month for high-volume merchants. Convert 30-50% of project clients to retainers.

What a Maintenance Retainer Includes

ServiceFrequencyHow
Webhook delivery monitoringWeeklyCheck Paystack dashboard → Logs; alert if failure rate > 1%
Settlement monitoringPer settlement cycleFlag if settlement is > T+3 business days late
API deprecation reviewMonthlyCheck Paystack changelog, test deprecated endpoints
Incident responseOn-demand (SLA: 4 hours)Investigate and fix payment failures, escalate to Paystack support
Monthly payment health reportMonthlyEmail summary: transaction volume, success rate, failed payments, webhook health
Minor updatesAs neededUp to 2 hours/month of code changes included

How to Monitor Client Payment Integrations

Set up monitoring for each retainer client:

// Simple webhook health check script (run as cron job)
async function checkWebhookHealth(paystackSecretKey) {
  // Fetch recent transaction list and check webhook delivery
  var res = await fetch('https://api.paystack.co/transaction?perPage=50', {
    headers: { Authorization: 'Bearer ' + paystackSecretKey },
  });
  var data = await res.json();
  var recent = data.data;

  // Check success rate in last 50 transactions
  var successCount = recent.filter(t => t.status === 'success').length;
  var failRate = ((recent.length - successCount) / recent.length) * 100;

  if (failRate > 10) {
    // Alert: over 10% of recent transactions failed
    await sendAlert('High failure rate: ' + failRate.toFixed(1) + '%');
  }

  return { total: recent.length, success: successCount, failRate };
}

For webhook delivery specifically, check Paystack dashboard → Settings → Webhooks → View Logs. Paystack shows delivery attempts and response codes. If you see a pattern of 4xx or 5xx responses, the client's webhook handler has a problem.

Learn More

See handing over a payment integration for how to start the retainer conversation at project end.

Sign up for the McTaba newsletter

Key Takeaways

  • Monthly maintenance retainers are more stable than project work — convert 30% of clients.
  • Monitor webhook delivery rates weekly — silent failures are the most dangerous.
  • Send clients a monthly payment health report even when nothing is wrong — this justifies the retainer.
  • API deprecation notices from Paystack are a maintenance trigger — act before clients are affected.
  • Price retainers based on transaction volume, not just time — high-volume clients pay more.

Frequently Asked Questions

How do I convince clients to pay for maintenance they think is not needed?
Show them examples of what you catch: "In March I noticed your webhook was returning 500 errors for 3 days — I fixed it before you knew it was happening. That was KES 4.2 million in transactions at risk." Payment systems fail in quiet ways. Clients pay for the reassurance that someone is watching, not just for hours of work.
What is a fair response time SLA for a maintenance retainer?
For standard retainers: 4 business hours for non-critical issues, 30 minutes for "payments are completely down" critical incidents. For premium retainers: 1 business hour standard, 15 minutes critical. Be honest about what you can deliver — do not promise 24/7 unless you can actually staff it. Kenyan business hours (8 AM–6 PM EAT) is reasonable for most SME clients.
Can I manage multiple client retainers without it consuming all my time?
Yes — payment systems mostly run themselves. Your monitoring scripts catch issues before clients report them. Most months, a client retainer takes 2-4 hours of actual work. You get paid every month regardless. With 10 retainer clients at KES 15,000 each, that is KES 150,000/month in predictable revenue on top of your project work.

Ready to build real-world apps?

Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.

Apply to the McTaba Marathon