Mobile Money with Direct API
About this guide
This page explains how to add Mobile Money to your existing Direct API integration. Direct API integration is basically the same for all payment methods, only varying the payment_type_code
and some additional required fields.
Availability:
Mobile Money integration through Direct API is available to the following countries:
- Ghana
If you are not integrated with EBANX Direct API yet, please take a look in this basic guide about it. Are you not sure if EBANX Direct API is the best option for your e-commerce? Please, talk with one of our integration specialists.
What you will need
Before starting your integration, please make sure that you have:
- An EBANX Sandbox account. That's not the case? Please sign up for an Sandbox Account here;
- Mobile Money enabled in your EBANX Dashboard.
How it works
To complete Mobile Money integration through EBANX Direct API, please follow the steps below.
Enable Mobile Money
Mobile Money availability may vary depending on your contract. So the first step is to check if it is active in your EBANX dashboard.
All set? We can go ahead to next step, otherwise, please get in touch with our integration specialists.
Configure your Notification URL
For your Mobile Money transactions, once the payment is confirmed you will receive a notification changing the status from
pending
toconfirmed
. Check the instructions for configuring your URL on NotificationsBasic parameters:
Parameter Description operation
Operation must be request
integration_key
Your unique and secret integration key payment_type_code
For Mobile Networ Opperators in Ghana the types are mpesa
,airtel
andmtn
country
Two-letter country code - gh
for GhanaCustomer data:
Parameter Description phone_number
Customer phone number, in full international format. It is a mandatory item account_number
Customer bank account with 16 characters limitation Charge parameters:
Parameter Description merchant_payment_code
Unique merchant payment code currency_code
ISO-4217 Currency code transaction. Supported value: GHS
amount_total
Total amount to be charged in full mode, without decimals info
The
phone_number
information is key for this payment flow and it's used to send a push notification for the customer to validate and confirm the charge. It must be sent in full international format, including the Country Code (233 for Ghana).In Ghana all mobile money payments requires an OTP authentication before charging the client.
Check the example:
curl -L -X POST 'https://sandbox.ebanxpay.com/ws/direct' \-H 'Content-Type: application/json' \--data-raw '{"integration_key": "{{integration_key}}","operation": "request","payment": {"name": "YOUR NAME","email": "youremail@youremail.com","phone_number": "234000000000","country": "gh","payment_type_code": "AIRTEL","merchant_payment_code": "63c9377be268e2131","currency_code": "GHS","amount_total": "100"}}'A successful request will return a JSON response like the one below.
{"payment": {"hash": "65d9025d1b3125c494bbaa5e28d591c684faa41543c7cf91","country": "gh","merchant_payment_code": "63c9377be268e2131","order_number": null,"status": "PE","status_date": null,"open_date": "2024-02-23 20:38:53","confirm_date": null,"transfer_date": null,"amount_br": "100.00","amount_ext": "100.00","amount_iof": "0.00","currency_rate": "1.0000","currency_ext": "GHS","due_date": "2024-02-26","instalments": "1","payment_type_code": "airtel","redirect_url": "https://sandbox.ebanx.com/ws/redirect/execute?hash=65d9025d1b3125c494bbaa5e28d591c684faa41543c7cf91","pre_approved": false,"capture_available": null,"withOtp": true},"status": "SUCCESS","redirect_url": "https://sandbox.ebanx.com/ws/redirect/execute?hash=65d9025d1b3125c494bbaa5e28d591c684faa41543c7cf91"}info
The complete API reference for the end-point
ws/direct
can be found here. We strongly recommend you to take a look in all the available options.OTP Functionality
To use the OTP functionality in the Cellulant flow for Ghana (Until now), you will need to make some API calls.
The first call is to create an authorization to make calls and update the KEY in the expirable_key table. The field values must be confirmed when making the call
In the second call, a payment will be created. A detail to identify it as an OTP is a field called withOtp. Here's an example of a payment returned. Some data will be omitted, just for better visualization.
{"payment": {"hash": "123456789","country": "gh","merchant_payment_code": "67838300","status": "PE","currency_ext": "GHS","instalments": "1","payment_type_code": "airtel","redirect_url": "https://sandbox.ebanx.com/ws/redirect/execute?hash=123456789","pre_approved": false,"capture_available": null,"customer": {"document": "38850825862",},"single_transaction": {"amount_local": "0.00","amount_crossborder": "10.00"}"withOtp": true},"status": "SUCCESS","redirect_url": "https://sandbox.ebanx.com/ws/redirect/execute?hash=123456789"}The fields that must be sent to obtain the above response.
{"integration_key": "987654321","operation": "request","payment": {"merchant_payment_code": "{{merchant_payment_code}}","amount_total": 10,"currency_code": "GHS","name": "Johnny Silva","e-mail": "johnny.arruda@objective.com.br","birth_date": "15\/09\/1995","document": "38850825862","country": "gh","zipcode": "11111","address": "Rua E","city": "São Paulo","street_number": "10","state": "SP","phone_number": "2337000000","payment_type_code": "airtel"}}The third step is to validate this payment. To do this, the payment hash will be used, along with the phone number, to confirm the payment. The token will also be used in this validation along with the other data to confirm the payment. In the example, we used the wrong data, but when making the request, make the change.
{"hash": "123456789","phone_number": "23370000000","token": "123456",}Error Codes
Some Error Codes could appear into the integration journey. Find below a list of these items and it meanings to serve as a reference in your troubleshooting
Error Codes:
Error Code Description BP-OTP-000 Missing fields BP-OTP-001 Payment not found BP-OTP-002 Otp validation fail BP-OTP-003 Payment is pending BP-OTP-004 Fail in make the charge BP-OTP-005 Invalid Token BP-OTP-006 Problem in resolver processor Checkout using Mobile Money
The following images depicts how a checkout will behave using Mobile Money in Ghana
Step 1 Customer fill the blank fields below with their information
Step 2 Customer choose Mobile Money as payment method
Step 3 Customer will be redirected to insert an OTP code sent via SMS
Step 4 Customer will complete the payment in their mobile phone
Step 5
Scenario A | Scenario with successful payment
Scenario B | Scenario with denied payment
Wait for the payment
Shortly after a successful charge response your customer will receive a push notification, from the mobile operator network, on its mobile device requiring a PIN validation to confirm the payment.
Once the customer confirms it, payment status is modified from
pending
toconfirmed
.If your customers don't conclude the payment, it will be automatically canceled.
Getting help
We hope this article was enlightening, but in case we’ve failed to take out your doubts you have the following options to keep on seeking for answers:
- If you’re not our partner yet and would like to know more about our prices and conditions please fill our this form and our commercial team will get in touch with you.
- In case you’re already our partner please get in touch with our support team at integration@ebanx.com.