malipo / malipo-php
Official PHP library for the Malipo Payment Gateway
v1.0.0
2026-05-04 22:56 UTC
Requires
- php: >=7.4
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
The official PHP library for the Malipo Payment Gateway. Securely accept Mobile Money payments (Vodacom MPesa, Orange Money, Airtel Money) in the DRC.
Installation
composer require malipo/malipo-php
Quick Start
use Malipo\Malipo; $malipo = new Malipo('sk_test_your_api_key'); // Create a charge try { $charge = $malipo->charges->create([ "amount" => 10, "currency" => "USD", "phone" => "243810000000", "network" => "VODACOM_MPESA", "description" => "Order #123" ], [ 'idempotencyKey' => 'unique_order_id_123' ]); echo "Charge initiated: " . $charge['id'] . "\n"; echo "Status: " . $charge['status'] . "\n"; // 'pending' } catch (\Malipo\Exceptions\MalipoException $e) { echo "Charge failed: " . $e->getMessage() . "\n"; }
Features
🔐 Idempotency
Protect against duplicate charges by providing an idempotencyKey in the options array.
🔄 Environment Detection
The SDK automatically switches between sandbox and live environments based on your API key prefix (sk_test_ vs sk_live_).
📊 Balance Check
Check your available and pending balances for your current environment.
$balance = $malipo->balance->retrieve(); print_r($balance['available']);
Webhooks
use Malipo\Malipo; $malipo = new Malipo('...'); $payload = file_get_contents('php://input'); $signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE']; $secret = 'whsec_your_secret'; try { $event = $malipo->webhooks->constructEvent($payload, $signature, $secret); if ($event['type'] === 'charge.succeeded') { $charge = $event['data']['object']; // Handle successful payment } } catch (\Exception $e) { http_response_code(400); echo $e->getMessage(); }
License
MIT