An MTN Mobile Money php client.
PHP >=8.0
You can install via Composer. Run the following command:
composer require mediumart/momo
The client env
configuration default to live
. If you want to practice in the sandbox environment before going live, you probably want to enable it before resolving any client instance.
use Mediumart\MobileMoney\MobileMoney;
MobileMoney::setCurrentEnvironment('sandbox');
Alternatively, you can also configure a specific service instance to run in the sandbox by providing a 'sandbox'
argument upon getting the instance.
$collection = MobileMoney::collection('sandbox');
Connect to your Momo developer Dashboard, subscribe to a product : collection
, disbursement
, or remittance
. Go to your profile and grab the corresponding subscription key (should be primary key
or secondary key
).
Then create a new sandbox user for your subscription key.
use Mediumart\MobileMoney\Sandbox\UsersProvisioning;
$user = UsersProvisioning::sandboxUserFor('<your product subscription key>');
This will get you a fresh Mediumart\ModileMoney\User
instance, a value object with 3 properties (all lowercase):
$id = $user->id;
$apikey = $user->apikey;
$subscriptionkey = $user->subscriptionkey;
Use them to get a new access token for the corresponding service (collection
, disbursement
, or remittance
).
$collection = MobileMoney::collection();
$token = $collection->createAccessToken($subscriptionkey, $id, $apikey);
The same Mediumart\ModileMoney\User
class can be used to store similar values in your live
environment.
Mtn Mobile Money API supported services are: collection
, disbursement
, and remittance
.
Resolve services clients instances using the MobileMoney
facade.
use Mediumart\MobileMoney\MobileMoney;
$collection = MobileMoney::collection();
$disbursement = MobileMoney::disbursement();
$remittance = MobileMoney::remittance();
Then this is the list of methods you 'll have access to :
bcAuthorize
createAccessToken
createOauth2Token
validateAccountHolderStatus
getAccountBalance
getBasicUserinfo
getUserInfoWithConsent
requestToPayDeliveryNotification
transfer
getTransferStatus
requestToPay
requestToPayTransactionStatus
requestToWithdrawV1
requestToWithdrawV2
requestToWithdrawV1TransactionStatus
cancelInvoice
createInvoice
getInvoiceStatus
createPayments
getPaymentStatus
preApproval
getPreApprovalStatus
depositV1
depositV2
getDepositStatus
refundV1
refundV2
getRefundStatus
cashTransfer
getCashTransferStatus
For now, to know which parameters are required for each method, please look at the code . A complete API docs may be released soon.
Mediumart momo is an open-sourced software licensed under the MIT license.