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 /payments/collections/checkouts/initiate

→ Start accepting payments

💸 Send Money (Payouts)

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

POST /payments/payouts/initiate

→ Start sending money


⚡ Quick Start (3 Steps)

1. Get Your API Keys

  1. Sign up at merchants.jpay.africa
  2. Navigate to SettingsApplicationsCreate 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/payments/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