laravel-airtel-money maintained by bmatovu
Laravel Airtel Money
Getting Started
To get started with your Airtel Money integration:
-
Register your application on the Airtel Money Developer Portal.
-
Add products to your application: APIs are grouped into products.
- Start with: Account, KYC, Collection-APIs, and Disbursement-APIs.
- Each product may have specific KYC/compliance requirements, which the Airtel Money team will advise during onboarding.
-
Request application approval from the Airtel Money Support Team.
- Your application will only work after it has been approved.
- You can monitor the approval status in the developer portal.
-
Whitelist your source IPs in the developer portal under
Settings -> Security -> Server IP Allowed List.- Any collection or disbursement request originating from a non-whitelisted source IP will be declined at Airtel Money.
-
Set disbursement PIN: optional for collections.
-
Set collection callback: you can set an endpoint to where your callbacks should be set. Optionally, you can enable Authorization for it.
Statuses
| Mode (Env) | Required Status |
|---|---|
| TEST | Partially Approved |
| PRODUCTION | Approved |
New Applications will have the default NA status.
Products
| Product | Functionality | Comment |
|---|---|---|
| KYC | User Inquiry | Get user basic information like first and last name |
| Account | Balance Inquiry | Collection wallet balance check |
| Collection APIs | Payments (USSD Push) | Request a payment. User enters PIN to approve the transaction. |
| Refund | Refund a previous collection transaction (partial or full) | |
| Callback (No Auth) | Sent to your callback URL upon transaction completion | |
| Callback (With Auth) | Sent to your callback URL with Authorization (must be enabled first) | |
| Transaction Inquiry | Check collection transaction details | |
| Disbursement APIs | Payments | Send money to an Airtel number. Requires your PIN and prior PIN setup |
| Transaction Inquiry | Check disbursement transaction details |
The disbursement wallet has no dedicated balance-inquiry API; its running balance is returned with each transaction response.
Integration
Installation
composer require bmatovu/laravel-airtel-money
Publishables
php artisan vendor:publish --provider="Bmatovu\AirtelMoney\AirtelMoneyServiceProvider"
Database Migrations
php artisan migrate
Authorization & PIN
Set Credentials
Retrieve your client_id and client_secret from Key Management
php artisan airtel-money:auth
Set Disbursement PIN
php artisan airtel-money:pin
Usage
use Bmatovu\AirtelMoney\Facades\Authorization;
$token = Authorization::getToken();
use Bmatovu\AirtelMoney\Facades\Kyc;
$user = Kyc::getUser($phoneNumber);
use Bmatovu\AirtelMoney\Facades\Collection;
$transaction = Collection::receive($phoneNumber, $amount);
$transaction = Collection::refund($airtelMoneyId);
$transaction = Collection::getTransaction($transactionId);
use Bmatovu\AirtelMoney\Facades\Account;
$balance = Account::getBalance();
use Bmatovu\AirtelMoney\Facades\Disbursement;
$transaction = Disbursement::send($phoneNumber, $amount);
$transaction = Disbursement::getTransaction($transactionId);
Testing
composer test
Credits
License
This package is open-source software licensed under the MIT License.

