Troubleshooting
Payment Issues
Payment Stuck in “Pending”
Symptoms: Transaction created but status never changes to success/failed Common causes:- Mobile money delays: MMOs can take 1-5 minutes
- Webhook delivery failure: Provider sent webhook but we didn’t receive it
- Provider API error: Provider accepted payment but network error on response
- Next.js (App Router)
- cURL
- Wait 5-10 minutes for MMO confirmation
- Check provider dashboard for payment status
- Check CrediBill webhook logs for delivery attempts
- If payment confirmed in provider but not in CrediBill, contact support
Payment Declined
Symptoms: Payment fails immediately with “declined” status Common causes:- Insufficient funds: Customer doesn’t have balance
- Invalid payment method: Phone number or card incorrect
- Account blocked: Account frozen by provider
- Daily limit reached: Customer exceeded daily transaction limit
- Next.js (App Router)
- cURL
- Ensure sufficient funds in mobile money wallet
- Verify correct phone number
- Check account not blocked by provider
- Retry with different payment method
Multiple Charges for Single Payment
Symptoms: Customer charged multiple times for one subscription Causes:- Missing idempotency: Payment initiated multiple times
- Client-side double submission: Form submitted twice
- Webhook retry processing: Same webhook processed multiple times
Webhook Issues
Webhooks Not Received
Symptoms: Webhook endpoint configured but never receives calls Checklist:- Webhook URL is public (not localhost)
- HTTPS certificate is valid
- Firewall allows CrediBill IPs
- Endpoint returns 200 OK
- Endpoint responds within 10 seconds
- Correct provider webhook secret configured
Webhook Signature Verification Fails
Symptoms: All webhooks rejected with “Invalid signature” error Checklist:- Using raw body (not parsed JSON)
- Webhook secret is correct
- Using timing-safe comparison
- Timestamp header present
- Not modifying body before verification
Duplicate Webhooks
Symptoms: Same event processed multiple times Cause: Network timeout causing CrediBill to retry webhook Solution:Credential & Configuration Issues
”Invalid Credentials” Error
Symptoms: Provider connection test fails immediately Checklist:- Credentials copied correctly (no extra spaces)
- Using correct credentials (test vs. live)
- Credentials still valid in provider dashboard
- Not using URL-encoded credentials
Provider Connection Keeps Failing
Symptoms: Test connection fails repeatedly Checklist:- Credentials are current (not expired)
- Provider account active (not suspended)
- Network connectivity working
- Firewall allows outbound to provider
- Provider API not down
Troubleshooting tips
- Ensure the secret key is set in server environment variables, not in frontend code.
- Use cURL or a server-side route to test keys.
-
Verify the key prefix is
sk_(secret keys) notpk_(publishable keys). console.error(“3. Key matches environment”); } }
Frequently Asked Questions
Billing & Pricing
Q: How much does CrediBill cost? A: See pricing page. Typically a percentage of transaction amount plus per-transaction fee. Q: Do you charge for failed payments? A: No. We only charge for successful transactions. Q: Can you help with invoicing? A: Yes, CrediBill generates and sends invoices automatically. You can customize templates in dashboard.Technical
Q: What happens if a provider API is down? A: CrediBill failsover to backup provider if configured. Payment marked as pending and retried later. Q: How long do payment retries continue? A: Up to 3 automatic retries with exponential backoff. After 3 failures, subscription marked PAST_DUE. Q: Can I use multiple providers simultaneously? A: Yes. Configure primary and backup. Can also route by customer country/payment method. Q: What happens if my webhook endpoint is down? A: CrediBill retries webhooks up to 3 times with backoff. After 3 failures, marked as failed. Check webhook logs to manually retry. Q: How long does a mobile money payment take? A: Instant to 5 minutes typical. Some edge cases up to 30 minutes. Check provider dashboard.Security
Q: Are my credentials encrypted? A: Yes. AES-256-GCM encryption with per-app keys. In transit uses HTTPS/TLS 1.2+. Q: Do you store card numbers? A: No. We never handle raw card data. Providers handle PCI compliance. Q: How do you prevent fraud? A: Signature verification, replay attack prevention, rate limiting, anomaly detection. For high-risk transactions, may request additional verification. Q: Can I get an audit trail? A: Yes. View all transactions, webhooks, and configuration changes in dashboard. Export available for compliance.Integration
Q: How long does integration take? A: 2-4 hours with CrediBill docs. Additional time for provider setup. Q: Do you have SDKs? A: Yes, for Node.js, Python, Go, Ruby. REST API for any language. Q: Can I test before going live? A: Yes. All providers have test mode. Use test credentials and payment numbers. Q: How do I handle different currencies? A: Each provider supports specific currencies. Configure per provider. Automatic currency conversion available. Q: Can I customize invoice templates? A: Yes. Dashboard has template editor. Can add logo, colors, custom fields.Support & Troubleshooting
Q: How do I contact support? A: Email [email protected] or use in-app chat. Response time < 2 hours for critical issues. Q: What’s your SLA? A: 99.95% uptime SLA. Check our status page for incidents. Q: Can you help debug payment issues? A: Yes. We can check logs on our side. Provide transaction ID and time. Q: What if I lose webhook logs? A: Logs retained for 90 days. Older logs available by contacting support. Q: How do I cancel my account? A: Go to Settings → Account → Delete Account. All data deleted within 30 days per GDPR.Still Need Help?
- Email: [email protected]
- Chat: Available in dashboard
- Status Page: https://status.credibill.tech/
- Community: Join our Discord