Download the PHP package chipdeals/momo-api without Composer
On this page you can find all versions of the php package chipdeals/momo-api. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download chipdeals/momo-api
More information about chipdeals/momo-api
Files in chipdeals/momo-api
Package momo-api
Short Description Easy use mobile money api to access all Africa mobile wallets
License MIT
Informations about the package momo-api
Mobile Money Mobile Money Php documentation
Other libraries documentations
Chipdeals-momo-api is a Mobile Money API that allows you to build a quick, simple and excellent payment experience in your web and native app.This the official Php laravel library
You can send money to any mobile money wallet
Requirements
Laravel 8 or higher
Installation
Quick Start
Initialize Chipdeals Momo API with your API Key (Get apikey here) and start
Quick check possible responses with sandbox tests
Usage
The package needs to be configured with your account's API key, which is available in the when you get access to Chipdeals Sandbox.
You can get your apiKey here
Collect Money
Collect limitation
Simple collection
For example to request 2000 XOF from the +22951010200 Mobile Money wallet, the following code can be used
Collect with a webhook to get response as soon as the payment is processed.
See webhook you get
Disburse Money
Simple Disbursement
You can also send 2000 XOF to the +22951010200 Mobile Money wallet, with the following code
Disburse with a webhook to get response as soon as the deposit is processed.
See webhook you get
Get transaction status
Get status of a transaction of reference dd1e2d17-5c21-4964-b58d-198fd2aac150
Collection transactionData Sample
Disbursement transactionData Sample
Get Your balance
Get your Chipdeals account's balance
Balance sample:
Webhook
Webhooks are an important part of your payment integration. They allow Chipdeals notify you about events that happen on your account, such as a successful payment or a failed transaction.
A webhook URL is an endpoint on your server where you can receive notifications about such events. When an event occurs, we'll make a POST request to that endpoint, with a JSON body containing the details about the event, including the type of event and the data associated with it.
Structure of a webhook payload
All webhook payloads follow the same basic structure:
- an
event
field describing the type of event - a
data
object. The contents of this object will vary depending on the event, but typically it will contain details of the event, including:- a
reference
containing the ID of the transaction - a
status
describing the status of the transaction. possible values aresuccess
,pending
orerror
- a
statusMessageCode
, containing a specific code that identify an exact state of the transaction. See allstatusMessageCode
- a
statusMessage
, cantaining an human undertandable descrption of the exact state of the transaction - transaction details
- a
Here are some sample webhook payloads for transfers and payments
Implementing a webhook
Creating a webhook endpoint on your server is the same as writing any other API endpoint, but there are a few important details to note:
Responding to webhook requests
To acknowledge receipt of a webhook, your endpoint must return a 200
HTTP status code. Any other response codes, including 3xx
codes, will be treated as a failure. We don't care about the response body or headers.
Be sure to enable webhook retries on your dashboard. If we don't get a 200 status code (for example, if your server is unreachable), we'll retry the webhook call every 90 minutes for the next 36 hours.
More Info
Collection and disburssement parametters
- phoneNumber
parameter
You specify the phoneNumber
of a collection with method from(phoneNumber: sting)
And for a disbursement you specify phoneNumber
with method to(phoneNumber: sting)
Those methode are locking for a string containing the phone number of the money sender for collection and the money recipient for disbursement.
The PhoneNumber should respect this format:
XXXOOOOOOOO
where the three X
represent the country phone prΓ©fix (229
| 237
for example), and the O
are the phone number in the country. The number of O
can change with the country but the prefix should be 3.
- currency
parameter
You specify the currenct of a transaction with the method currency(currency: string)
The currency should be a string of 3 character.
If you add a currency that is not the currency localy used in the country of the phone number of the transaction, we will convert the amount of the transaction into local currency.
Our conversion rate evoluate like the market.
- amount
parameter
You specify the amount of a transaction with the method amount(transactionAmount: number)
It is a number.
We will check if the currency that you specify for the transaction is the local currency of the phone number's country and then we will convert the amount into local currency before perform the transaction with the customer
- firstName
and lastName
parameters
You respectively specify firstName
and lastName
with methods firstName(senderFirstName: string)
and lastName(senderLastName: string)
Those parametters are required to perform secured collection request.
Disbursement doesn't need them.
If you make 3 request per day with unspesified firstName
and | or lastName
we will block the 4th and the other. We recommand you to specify fisrtName
and lastName
for all your collection request.
In sandbox test, you have no probleme with firstName
and lastName
specification, you can do as you like But be careful for Live
Status Message Code
Code | Relative Status | Meaning |
---|---|---|
200 | βοΈ -- success | Transaction successful |
201 | π -- pending | Data in validation |
202 | π -- pending | Transaction pending |
203 | π -- pending | Data are validated, server is working |
204 | π -- pending | Waiting for ussd push validation |
400 | β -- error | Incorrect data enter in the request |
401 | β -- error | Parameters not complete |
402 | β -- error | Payment PhoneNumber is not correct |
403 | β -- error | Deposit PhoneNumber is not correct |
404 | β -- error | Timeout in USSD PUSH/ Cancel in USSD PUSH |
406 | β -- error | Payment phoneNumber got is not for mobile money wallet |
460 | β -- error | Payerβs payment account balance is low |
461 | β -- error | An error occured while paying |
462 | β -- error | This kind of transaction is not supported yet, processor not found |
5XX | βοΈ -- error | An unknow error occured on the api |
Sandbox tests
You can use your test apikey
or all users test apikey : test_FOdigzgSopV8GZggZa89
to make sandbox requsts.
All valid phone number you used in sandbox will send you valid responses as it was the live mode.
For exemple, if you use the phone number 22951010581
you will get a response with status message code 201
(what means pending
see more here). Some seconds laters, you will get status messages codes 202
, 203
and 200
(200
means success).
It is the same thing for others phone number with a small exception to allow errors case handling by implementor.
Sandbox Phone number | -> final status message code |
---|---|
22951010402 | 402 |
22951010403 | 403 |
22951010404 | 404 |
22951010460 | 460 |
22951010461 | 461 |
22951010462 | 462 |
22951010200 | 200 |
For Live apiKey
and Live Responses requests Contact us
Limitation
Unsecured collect limitation
When you are making a collection request, you have posibility to specify or not the payer's firstName and lastname.
By not specifying firstName
and lastName
, you can make quick test.
But when firstName
and lastName
are not specified your collection request is not secured.
And you are alowed to perform at most 3 unsecured collection resquest per day. More request will be just blocked.
You cannot perform unsecured collection request for more than 500 XOF.
Contact us
Call us or write us to get your apikey and start getting payment
E-mail: [email protected] Website: https://chipdeals.me Phone: +22990630401 Whatsapp: +22990630401
# Copyright (C) 2022 Chipdeals Inc - https://chipdeals.me