MP
mpaannddreew/momo
Momo is a simple library in PHP for the MTN Mobile Money Open API.
Momo
Momo is a simple library in PHP for the MTN Mobile Money Open API.
Product support
- Collections
- Disbursements
- Remittances
Getting Started
- Signup For An Account
- Subscribe To Products
Signup For An Account
Follow this link to the developer portal and signup
for an account.
Subscribe To Products
On the Products page on developer portal you should see items you can subscribe to:
- Collections
- Disbursements
- Remittances
Installation
The recommended way to install Momo is through composer.
Just create a composer.json file for your project and require it:
composer require fannypack/momo
Now you can add the autoloader, and you will have access to the library:
<?php
require 'vendor/autoload.php';Usage
Creating a product instance
<?php
use FannyPack\Momo\Products\Collection;
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
$options = [
// 'callbackHost' => '', //(optional) default is http://localhost:8000
// 'callbackUrl' => '', //(optional) default is http://localhost:8000/callback
// 'environment' => '', //(optional) default is sandbox
// 'accountHolderIdType' => '', //(optional) default is msisdn
'subscriptionKey' => '', //Product Subscription key
'xReferenceId' => '', //Api user reference id (in UUID format)
'apiKey' => '', // Api user key (Supply this after generating it at 'Create API Key')
//'preApproval' => '', //(optional) default is false
//'accessToken' => '' //Required for transactions
];
// Using collection
$collection = Collection::create($options);
// Using disbursement
$disbursement = Disbursement::create($options);
// Using remittance
$remittance = Remittance::create($options);Sandbox User Provisioning
Create API User
<?php
use FannyPack\Momo\Products\Collection;
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
// Using collection
$product = Collection::create($options);
// Using disbursement
$product = Disbursement::create($options);
// Using remittance
$product = Remittance::create($options);
$product->createApiUser(); //{"statusCode": 201}GET API User Details
<?php
use FannyPack\Momo\Products\Collection;
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
// Using collection
$product = Collection::create($options);
// Using disbursement
$product = Disbursement::create($options);
// Using remittance
$product = Remittance::create($options);
$apiUser = $product->getApiUser();
$apiUser->getProviderCallbackHost(); //http://localhost:8000
$apiUser->getTargetEnvironment(); //sandboxCreate API Key
<?php
use FannyPack\Momo\Products\Collection;
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
// Using collection
$product = Collection::create($options);
// Using disbursement
$product = Disbursement::create($options);
// Using remittance
$product = Remittance::create($options);
$apiKey = $product->createApiKey();
$apiKey->getApiKey(); //apiKeyOauth 2.0
Get token
<?php
use FannyPack\Momo\Products\Collection;
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
// Using collection
$product = Collection::create($options);
// Using disbursement
$product = Disbursement::create($options);
// Using remittance
$product = Remittance::create($options);
$token = $product->getToken();
$token->getAccessToken(); //accessToken
$token->getTokenType(); //tokenType
$token->getExpiresIn(); //expiry in secondsTransactions
Get account balance
<?php
use FannyPack\Momo\Products\Collection;
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
// Using collection
$product = Collection::create($options);
// Using disbursement
$product = Disbursement::create($options);
// Using remittance
$product = Remittance::create($options);
$balance = $product->getAccountBalance();
$balance->getAvailableBalance(); //accountBalance
$balance->getCurrency(); //currencyGet account holder status
<?php
use FannyPack\Momo\Products\Collection;
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
// Using collection
$product = Collection::create($options);
// Using disbursement
$product = Disbursement::create($options);
// Using remittance
$product = Remittance::create($options);
$product->getAccountHolderInfo($accountHolderId); //{"statusCode": 201}Collections
Request to pay
<?php
use FannyPack\Momo\Products\Collection;
// Using collection
$product = Collection::create($options);
$product->requestToPay($externalId, $partyId, $amount, $currency, $payerMessage = '', $payeeNote = ''); // {"statusCode": 200, "financialTransactionId": "8f3077a6-ce43-4584-a425-589c50cfcbe4"}Request to pay status
<?php
use FannyPack\Momo\Products\Collection;
// Using collection
$product = Collection::create($options);
$transactionStatus = $product->getRequestToPayStatus($financialTransactionId);
$transactionStatus->getAmount(); //amount
$transactionStatus->getCurrency(); //currency
$transactionStatus->getExternalId(); //externalId
$transactionStatus->getPayer(); //payer object
$transactionStatus->getStatus(); //statusDisbursements and Remittances
Transfer
<?php
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
// Using disbursement
$product = Disbursement::create($options);
// Using remittance
$product = Remittance::create($options);
$product->transfer($externalId, $partyId, $amount, $currency, $payerMessage = '', $payeeNote = '');// {"statusCode": 200, "financialTransactionId": "8f3077a6-ce43-4584-a425-589c50cfcbe4"}Transfer status
<?php
use FannyPack\Momo\Products\Disbursement;
use FannyPack\Momo\Products\Remittance;
// Using disbursement
$product = Disbursement::create($options);
// Using remittance
$product = Remittance::create($options);
$transactionStatus = $product->transferStatus($financialTransactionId);
$transactionStatus->getAmount(); //amount
$transactionStatus->getCurrency(); //currency
$transactionStatus->getExternalId(); //externalId
$transactionStatus->getPayer(); //payer object
$transactionStatus->getStatus(); //statusBugs
For any bugs found, please email me at andrewmvp007@gmail.com or register an issue at issues
On this page
Languages
PHP100.0%
Contributors
Created April 20, 2019
Updated April 22, 2023