Integrate with Chipper Cash Network API to accept payments and send payouts across 7+ African countries. Use this skill when building payment solutions that need to accept payments from verified customers, send payouts across Africa, or integrate a 'Pay With Chipper' checkout. Trigger for cross-border P2P payments, marketplace payouts, remittances, or multi-currency transactions in Nigeria, Kenya, Uganda, Ghana, Tanzania, Rwanda, or South Africa. Also trigger on mentions of 'Chipper Cash', 'Chipper for Business', 'Chipper Network API', or cross-border African payments.
Chipper Cash is a pan-African fintech platform providing payment solutions for businesses and individuals. The Chipper Network API is the business offering that enables merchants to accept payments from verified customers and send payouts across multiple African markets with a simple REST API.
You're building payment infrastructure for African markets — an e-commerce platform needing to accept payments, a marketplace paying sellers across multiple countries, a remittance service, a business application handling international vendor payments, or any platform needing multi-currency transactions. Chipper Cash provides access to 5M+ KYC-verified customers and supports 40+ markets through direct licensing and partnerships.
Important: Chipper Cash is primarily a consumer-focused payment app. The Network API is their business/merchant solution. If you need direct P2P transfers via the consumer app, consider partner integrations or direct merchant onboarding instead of a public API.
Chipper Network API uses API Key authentication. Credentials consist of:
Include these in request headers:
Authorization: Bearer YOUR_API_KEY
X-Chipper-User-ID: YOUR_USER_ID
Keys are provisioned in sandbox and production environments. Store them securely in environment variables like CHIPPER_API_KEY and CHIPPER_USER_ID. Never hardcode credentials.
Base URL (Sandbox): https://sandbox-api.chippercash.com/v1
Base URL (Production): https://api.chippercash.com/v1
The Network API is not open to all developers. To integrate:
Initiate a payment order that customers can complete via their Chipper account or linked payment methods.
POST /v1/orders
Headers:
Authorization: Bearer YOUR_API_KEY
X-Chipper-User-ID: YOUR_USER_ID
Content-Type: application/json
Body:
{
"amount": 5000,
"currency": "NGN",
"customer_email": "[email protected]",
"description": "Payment for Order #12345",
"reference": "ORDER_12345_001",
"redirect_url": "https://yourapp.com/payment-success",
"metadata": {
"order_id": "12345",
"customer_id": "cust_789"
}
}
Response:
{
"success": true,
"data": {
"order_id": "CHI_ORD_xxxxx",
"payment_link": "https://chipper.cash/pay/CHI_ORD_xxxxx",
"amount": 5000,
"currency": "NGN",
"status": "pending",
"created_at": "2026-02-24T10:30:00Z",
"expires_at": "2026-02-25T10:30:00Z"
}
}
Share the payment_link with customers. They authenticate with Chipper and complete payment via the hosted page.
Send funds directly to a recipient's Chipper account or mobile money wallet.
POST /v1/payouts
Body:
{
"recipient_identifier": "+254701234567",
"recipient_type": "phone",
"amount": 2500,
"currency": "KES",
"reason": "Vendor payment",
"reference": "PAYOUT_VND_001",
"metadata": {
"vendor_id": "vnd_123"
}
}
Response:
{
"success": true,
"data": {
"payout_id": "CHI_PAYOUT_xxxxx",
"recipient_identifier": "+254701234567",
"amount": 2500,
"currency": "KES",
"status": "pending",
"estimated_delivery": "2026-02-24T11:00:00Z",
"fees": 50,
"net_amount": 2450,
"reference": "PAYOUT_VND_001",
"created_at": "2026-02-24T10:30:00Z"
}
}
Payouts typically settle within minutes. Monitor via webhooks for payout.completed or payout.failed events.
Retrieve current exchange rates between supported currency pairs for rate quotes.
GET /v1/rates?from=NGN&to=KES
Response:
{
"success": true,
"data": {
"from_currency": "NGN",
"to_currency": "KES",
"rate": 0.45,
"timestamp": "2026-02-24T10:30:00Z",
"rate_expires_in_seconds": 60
}
}
Rates are valid for 60 seconds. Request fresh rates before each transaction.
GET /v1/transactions/{transaction_id}
Response:
{
"success": true,
"data": {
"transaction_id": "CHI_TXN_xxxxx",
"type": "payment",
"amount": 5000,
"currency": "NGN",
"status": "completed",
"reference": "ORDER_12345_001",
"created_at": "2026-02-24T10:30:00Z",
"completed_at": "2026-02-24T10:31:15Z"
}
}
GET /v1/transactions?limit=20&offset=0&status=completed&start_date=2026-02-01&end_date=2026-02-28
Query Parameters:
limit - Maximum 100 (default: 20)offset - For paginationstatus - Filter: pending, completed, failedstart_date, end_date - ISO 8601 formattype - Filter: payment, payoutChipper Cash sends webhooks for transaction events. Verify webhook signatures using HMAC-SHA256:
const crypto = require('crypto');
const signature = req.headers['x-chipper-signature'];
const body = req.rawBody; // Raw request body, not parsed
const expectedSignature = crypto
.createHmac('sha256', YOUR_CHIPPER_SECRET)
.update(body)
.digest('hex');
if (crypto.timingSafeEqual(signature, expectedSignature)) {
// Valid webhook — process the event
} else {
// Invalid signature — reject
return res.status(401).json({ error: 'Invalid signature' });
}
Common webhook events:
payment.completed - Payment received successfullypayment.failed - Payment failed or was cancelledpayout.completed - Payout deliveredpayout.failed - Payout delivery failedpayout.pending - Payout initiated but not yet settledWebhook payload example:
{
"event": "payment.completed",
"timestamp": "2026-02-24T10:31:15Z",
"data": {
"order_id": "CHI_ORD_xxxxx",
"amount": 5000,
"currency": "NGN",
"status": "completed",
"reference": "ORDER_12345_001"
}
}
Configure your webhook endpoint in the Chipper dashboard. Chipper will retry failed webhook deliveries with exponential backoff for up to 72 hours.
POST /v1/orders → receive payment_linkredirect_url with payment statuspayment.completed webhook to confirm and fulfill orderPOST /v1/payouts to each seller in their countryGET /v1/transactions/{id}payout.completed webhook to notify sellersGET /v1/rates?from=NGN&to=KES → show recipient receives amount after feesPOST /v1/payouts → initiate payoutpayout.completed webhookGET /v1/rates → quote current rateChipper Cash returns standardized error responses:
{
"success": false,
"error": {
"code": "INVALID_AMOUNT",
"message": "Amount must be greater than minimum transaction limit"
}
}
Common error codes:
Validation Rules:
Chipper Cash supports direct operations in:
| Country | Currency | Code |
|---|---|---|
| Nigeria | Nigerian Naira | NGN |
| Kenya | Kenyan Shilling | KES |
| Uganda | Ugandan Shilling | UGX |
| Ghana | Ghanaian Cedi | GHS |
| Tanzania | Tanzanian Shilling | TZS |
| Rwanda | Rwandan Franc | RWF |
| South Africa | South African Rand | ZAR |
Plus access to 40+ additional markets through partnerships and licensed corridors.
Transaction Limits:
Fees:
fees field⚠️ UNVERIFIED ENDPOINTS — No Public Documentation Available
Chipper Cash does not maintain a public API documentation portal. The endpoint paths, request/response shapes, and error codes documented in this skill are based on reported integrations and community knowledge, not official documentation. Treat all endpoint paths as unverified. Always request an official Postman collection or documentation package from Chipper's integration team during onboarding, and validate every endpoint before production use.
⚠️ PRODUCT AND MARKET UNCERTAINTY
Chipper Cash has undergone multiple rounds of significant layoffs (2022–2024) and has exited several markets. The "40+ markets" claim may not reflect current supported corridors. Verify active markets with the Chipper team before building. The Network API's long-term support commitment and product roadmap are uncertain. If building mission-critical infrastructure, consider fallback providers.
Consumer App vs. Network API:
Merchant Approval Required:
Production Access:
Idempotency:
reference values to prevent duplicate transactionsRate Limits:
Webhook Reliability:
Currency Conversion: