Overview
CrediBill supports 4 African payment providers. Each provider has different requirements, coverage, and features. This guide walks through configuring each provider.Getting Started
General Setup Process
- Get active merchant account with provider
- Obtain API credentials (keys, tokens, secrets)
- Configure webhook in provider dashboard
- Add to CrediBill via settings
- Test connection before going live
CrediBill Configuration Steps
- Go to Settings → Payment Providers
- Click Add Provider
- Select provider from dropdown
- Enter credentials
- Choose environment (Test or Live)
- Optionally set as primary provider
- Click Save & Test Connection
Flutterwave
Coverage
Setup Steps
1. Create Account
- Go to Flutterwave Dashboard
- Complete business verification (KYC)
- Wait for approval (1-3 business days)
2. Get Credentials
Test Mode:- Log in to Flutterwave dashboard
- Navigate to Settings → API
- Copy “Public Key (Test)” - format:
FLWPUBK_TEST-xxx - Copy “Secret Key (Test)” - format:
FLWSECK_TEST-xxx
- Complete business verification
- Get approval from Flutterwave support
- Switch to Live mode in dashboard
- Copy “Public Key (Live)” - format:
FLWPUBK-xxx - Copy “Secret Key (Live)” - format:
FLWSECK-xxx
3. Configure Webhook
- In Flutterwave dashboard, go to Settings → Webhooks
- Set webhook URL to:
https://your-credibill-instance.com/webhooks/flutterwave - Copy the webhook hash (this is your webhook secret)
- Enable webhook notifications
- Test webhook delivery
4. Add to CrediBill
In CrediBill Dashboard → Settings → Payment Providers:Testing
Test Cards
Test Mobile Money
MTN Uganda (Success):Webhook Format
Flutterwave sends webhooks in this format:Troubleshooting
PawaPay
Coverage
Setup Steps
1. Create Account
- Contact PawaPay sales: hello@pawapay.io
- Complete KYC (Know Your Customer) verification
- Sign merchant agreement
- Receive API credentials via email
2. Get Credentials
Test Mode:3. Configure Webhook
- Contact PawaPay support
- Provide webhook URL:
https://your-credibill-instance.com/webhooks/pawapay - Request webhook secret for signature verification
- PawaPay will configure on their end and send you the secret
4. Add to CrediBill
In CrediBill Dashboard → Settings → Payment Providers:Testing
Test Mobile Money Numbers
MTN Uganda (Instant Success):Webhook Format
PawaPay sends webhooks in this format:PENDING, COMPLETED, FAILED, CANCELLED
Troubleshooting
Pesapal
Coverage
Setup Steps
1. Create Account
- Go to Pesapal
- Register as merchant
- Complete business verification (KYC)
- Wait for approval
2. Get Credentials
Test Mode:- Log in to Pesapal dashboard
- Go to Settings → API Integration
- Copy “Consumer Key (Demo)” - format:
qkio1BGGYAXTu2JOfm7XSXNruoZsrqEW - Copy “Consumer Secret (Demo)” - format:
osGQ364R49cXKeOYSpaOnT++rHs=
- Switch to Live mode in dashboard
- Copy “Consumer Key (Live)”
- Copy “Consumer Secret (Live)“
3. Configure IPN (Webhook)
- In Pesapal dashboard, go to Settings → IPN
- Set IPN URL to:
https://your-credibill-instance.com/webhooks/pesapal - Enable IPN notifications
- Save settings
4. Add to CrediBill
In CrediBill Dashboard → Settings → Payment Providers:Testing
Test Cards
Visa (Success):Test M-Pesa
Test Failure Scenarios
Webhook Format
Pesapal sends IPN (Instant Payment Notification) in this format:COMPLETED, FAILED, CANCELLED, PENDING
Troubleshooting
DPO (Direct Pay Online)
Coverage
Setup Steps
1. Create Account
- Contact DPO sales: https://www.directpay.online/
- Complete merchant application
- Provide business documentation
- Wait for approval (3-5 business days)
2. Get Credentials
Test Mode:3. Configure Callback URL
- Log in to DPO merchant portal
- Go to Settings → Integration
- Set Callback URL:
https://your-credibill-instance.com/webhooks/dpo - Save settings
4. Add to CrediBill
In CrediBill Dashboard → Settings → Payment Providers:Testing
Test Cards
Visa (Success):Test Mobile Money
Test Failure Scenarios
Webhook Format
DPO sends callbacks in XML format:000 (Paid), 001 (Failed), other codes for specific errors
Troubleshooting
Multi-Provider Strategy
Primary + Backup Setup
Recommended configuration:- Set one provider as primary (default for all payments)
- Add second provider as backup for failover
- CrediBill automatically fails over if primary unavailable
Country-Specific Routing
Route by customer country:Payment Method Routing
Route by payment method:Production Checklist
Provider Setup
- Live merchant account created
- Business verification completed with provider
- Live API credentials obtained
- Webhook URL configured in provider dashboard
- Webhook signature verified working
- SSL/HTTPS certificate is valid
- Test connection succeeds in CrediBill
CrediBill Configuration
- Environment set to Live (not Test)
- Primary provider configured
- Backup provider configured (optional)
- Webhook secret matches provider exactly
- No test data in production
- Error notifications configured
Testing
- Test successful payment end-to-end
- Test failed payment and retry logic
- Test webhook delivery and signature verification
- Test multiple payment methods (if provider supports)
- Test idempotency (duplicate webhook handling)
- Monitor logs for first 24 hours
Monitoring
- Payment success rate tracked (target: >95%)
- Webhook delivery monitored (target: 99.9%)
- Failed payments monitored
- Error alerts configured
- Provider status page monitored
- Daily reconciliation spot-checks
Common Issues
Test Credentials Not Working
Cause: Using test credentials in Live mode or vice versa Solution:- Double-check environment is “Test” in CrediBill
- Verify credentials are for test, not live
- Don’t use live credentials in test environment
Webhook Not Received
Causes:- Webhook URL not publicly accessible
- HTTPS certificate invalid
- Firewall blocking provider IPs
- Provider disabled webhooks
- Test webhook URL manually:
curl -X POST https://your-url.com/webhooks/provider - Check provider dashboard for webhook delivery logs
- Verify firewall rules
- Enable webhooks in provider settings
Payment Stuck in Pending
Cause: Provider API slow response or webhook delivery delay Solution:- Check provider dashboard for payment status
- Wait 5-10 minutes for mobile money
- Check webhook logs for delivery attempts
- Contact provider support if stuck > 1 hour
Signature Verification Fails
Cause: Webhook secret wrong or corrupted Solution:- Copy webhook secret again from provider dashboard
- Don’t add/remove any characters
- Clear any extra spaces
- Test connection again in CrediBill
Support
Provider Support Contacts
- Flutterwave: support@flutterwavego.com
- PawaPay: hello@pawapay.io
- Pesapal: support@pesapal.com
- DPO: support@directpay.online
CrediBill Support
- Technical issues: support@credibill.tech
- Integration help: integration@credibill.tech
- Billing questions: billing@credibill.tech