Going Live
Ship with confidence. Run through this checklist before accepting live payments.Pre-launch checklist
Account setup
Account setup
- KYC submitted and approved (required for B2C payouts)
- Live API key generated from the console
- Service wallet funded with enough balance for expected volume
- Payment channels (Paybill/Till) configured and verified
Integration
Integration
- Webhook endpoint deployed and accessible over HTTPS
- Webhook handler returns
200before processing (async) - Duplicate callback delivery handled (idempotent processing)
- All terminal states handled:
SUCCESS,FAILED,CANCELLED,REVERSED -
requestIdlogged from every API response
Error handling
Error handling
-
402 INSUFFICIENT_SERVICE_BALANCEhandled — alerts your team to top up -
429rate limit handled withRetry-Afterbackoff -
500server errors retried with exponential backoff - Payment failures communicated gracefully to end users
Security
Security
- API key stored in environment variables — not in source code
- API key not exposed in client-side code or mobile binaries
- HTTPS enforced on webhook endpoints
- Webhook payloads validated against your transaction records
Operations
Operations
- Alerts configured for payment failures above expected threshold
- Service wallet balance monitored — alert before balance runs out
- Process documented for manually confirming transactions if webhooks are missed
- Support contact available for live payment issues
Service wallet
The service wallet holds pre-funded balance used to pay transaction fees. Every STK Push and B2C payout deducts a fee at initiation. If balance reaches zero, new payment requests return402 INSUFFICIENT_SERVICE_BALANCE. No payments can be processed until you top up.
Recommended:
- Set an alert threshold (e.g. KES 500) and top up proactively
- Top up via
POST /wallets/service/topups - Monitor
GET /wallets/service/balancein your operations dashboard
B2C payouts — KYC requirement
B2C payouts require approved KYC. Initiating before approval returns403 KYC_NOT_VERIFIED.
- Submit documents from console.palpluss.com under KYC
- PalPluss reviews within 1–3 business days
- B2C payouts are enabled automatically on approval
Phone number formats
The API accepts multiple formats and normalises them internally:| Input | Normalised |
|---|---|
0712345678 | 254712345678 |
0112345678 | 254112345678 |
+254712345678 | 254712345678 |
254712345678 | 254712345678 |
STK abuse protection
PalPluss monitors STK Push patterns. Accounts with unusually high failure rates or low success ratios may be temporarily suspended. This does not trigger under normal usage. For bulk use cases, contact developer@palpluss.com before launch.Rate limits
60 requests per minute per API key. Sufficient for most integrations. To increase throughput:- Use separate API keys for distinct services or payment flows
- Contact support to discuss custom limits for high-volume use cases