Skip to main content

JPay Africa API Documentation

Accept and send payments across Africa in minutes.


🚀 Two Core APIs​

💰 Accept Payments (Collections)​

Receive money from customers via mobile money (M-Pesa, Airtel Money, T-Kash).

POST /collections/checkouts/initiate

→ Start accepting payments

💸 Send Money (Payouts)​

Send money to customers, vendors, or employees via mobile money or bank transfers.

POST /payouts/initiate

→ Start sending money


⚡ Quick Start (3 Steps)​

1. Get Your API Keys​

  1. Sign up at merchants.jpay.africa
  2. Navigate to Settings → Applications → Create New App
  3. Save your app_key and app_secret

2. Get Access Token​

curl -X POST https://sandbox.api.jpay.africa/api/v1/auth/app/token \
-H "Content-Type: application/json" \
-d '{
"app_key": "your_app_key",
"app_secret": "your_app_secret"
}'

Response:

{
"access": "eyJ0eXAiOiJKV1QiLCJhbGc...",
"refresh": "eyJ0eXAiOiJKV1QiLCJhbGc...",
"merchant_id": 123
}

3. Accept Your First Payment​

curl -X POST https://sandbox.api.jpay.africa/api/v1/collections/checkouts/initiate \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"payfrom": "+254712345678",
"amount": "100.00",
"ref_no": "ORDER-001",
"callback_url": "https://yourdomain.com/webhook"
}'

✅ Done! Customer receives payment prompt on their phone.


📖 API Quick Reference​

What You NeedEndpointDocumentation
Accept paymentPOST /collections/checkouts/initiate→ Docs
Send paymentPOST /payouts/initiate→ Docs
Check balanceGET /wallets/balance→ Docs
List transactionsGET /collections/checkouts→ Docs
Get auth tokenPOST /auth/app/token→ Docs

🌍 API Base URLs​

Sandbox (Testing):

https://sandbox.api.jpay.africa/api/v1

Production:

https://api.jpay.africa/api/v1

🔑 Key Features​

✅ Mobile Money Integration - M-Pesa, Airtel Money, T-Kash
✅ Bank Transfers - Direct bank payouts
✅ Real-time Webhooks - Instant transaction notifications
✅ Secure Authentication - JWT-based with token refresh
✅ Simple REST API - Easy integration in any language


📚 Next Steps​

  1. Getting Started Guide - Detailed setup walkthrough
  2. Authentication - Learn about token management
  3. Error Handling - Handle API errors gracefully
  4. Best Practices - Build reliable integrations

💬 Support​


⚠️ Rate Limits​

  • 60 requests per minute
  • 100 burst limit

Exceeding limits returns 429 Too Many Requests.


🎯 Quick Tips​

  • Use sandbox environment for testing
  • Always validate phone numbers to E.164 format (+254...)
  • Use unique reference numbers for each transaction
  • Implement webhook handlers for transaction updates
  • Enable IP whitelisting for production security