Documentation
Introduction
Mobile Money Payment API
Welcome to the LimoPay API documentation. Our RESTful API allows you to integrate mobile money payments from MTN, Airtel, and Zamtel into your applications.
Key Features
Multiple Networks
MTN, Airtel, and Zamtel support
Real-time Processing
Instant payment confirmations
Web & Mobile SDKs
Easy integration for all platforms
Secure Transactions
Bank-level encryption
Authentication
API Key Authentication
All API requests require authentication using your API key. Include it in the request headers:
X-API-KEY: YOUR_API_KEY
Note: Keep your API keys secret! Never expose them in client-side code or version control.
Base URL
| Environment | Base URL |
|---|---|
| Production | http://localhost:8000/api/v1 |
| Staging | http://localhost:8000/api/v1 |
API Endpoints
POST
/payments/mobile-money/{wallet_id}/
Initiate a mobile money provider options are: [AIRTEL_OAPI_ZMB, MTN_MOMO_ZMB, ZAMTEL_ZMB].
Example Request:
curl -X POST /payments/mobile-money/{wallet_id}/
-H "x-api-key: YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"amount": "500", "payer": "0761234567", "provider": "MTN",
"reference": "INV-001", "payerMessage": "INV-001", "payerEmail": "INV-001"
}'
Example Response:
{"status": "success", "transaction_id": "TXN-12345",
"message": "Payment processed successfully"
}
GET
/payments/{transaction_id}
Check payment status
Example Response:
{
"status": "completed",
"amount": "500",
"currency": "ZMW",
"timestamp": "2024-05-19T10:30:00Z"
}
Error Handling
| Status Code | Description |
|---|---|
| 200 | Success - Request processed successfully |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing API key |
| 403 | Forbidden - Insufficient permissions |
| 404 | Not Found - Resource not found |
| 500 | Server Error - Internal server error |
SDKs & Libraries
Python SDK
pip install limopay-sdk
JavaScript SDK
npm install @limopay/sdk
PHP SDK
composer require limopay/sdk
Webhooks
Receive real-time notifications for payment events:
{
"event": "payment.completed",
"data": {
"transaction_id": "TXN-12345",
"amount": "500",
"currency": "ZMW",
"provider": "MTN",
"status": "completed",
"timestamp": "2024-05-19T10:30:00Z"
}
}