Table of Contents

Mobile Money API

You are here:
< All API Documentations

1. Principles

Bizao gateway gives you access to a large panel of services through REST APIs.
Mobile Money is one of these services.

This service is based on a <mobilemoney> northbound API that aggregates and covers
multiple countries, operators, and payment channels.

Right now, our API manages the payment channels below :

Web : channel dedicated to all payment traffic using our PopUp UI
TPE : channel dedicated to all payment traffic coming from integrated merchant-
TPE devices.
USSD : channel dedicated to all payment traffic coming from USSD channel

This API lets you target the right country, operator, and channel by using the dedicated
Header for that.

To grant access to the service, our Integration team will onboard you on this service/API and
send you your dedicate credentials/access-Token.

So far, only Orange Money web-payment page is available for testing via a sandbox.
You can start your implementation based on this Sandbox.

Note :

Please note that is necessary to book a slot for an end-to-end test on our sandbox. Our
Integration team (integration@bizao.com) will help you during the testing step by providing
you a PIN and a dumb number to validate each payment test.
Each PIN is valid during 15 mns.

Mobile money API payment

This API allows you to create payment transaction on Bizao Hub based on the information
provided in your request.
This API manages three categories of parameters:
1. Headers: contains information letting Bizao to route your traffic by : country,
operator and channel targeted.
2. Body-parameters: contains detail on your payment transaction: order-id, amount,
currency, …
3. Static-parameters: this category of parameter cover all parameter that are static
per merchant for all its payment traffic (Notification-URL,…). These parameters will
be provisioned in Bizao Hub (in SignUP step) per Merchant and will be used by Bizao-
Hub in the payment traffic.

2. Description

Bizao <mobileoney> API is a one-time API. Below the syntax and description :

a. Api-name : “mobilemoney/v1”
b. Based URL : https://api.bizao.com/
c. Method : POST

  • “mobilemoney” API query syntax

Your query will contain the following Headers :

HeaderDescription/ContentUsage
AuthorizationYOUR_ACCESS_TOKENMandatory
mno-name(string) the name of the operator.
example : orange, mtn. Bizao will update you
regarding the new mno set in the hub
Mandatory
country-code(string)2 characters code of the country.
Use this norme : ISO 3166 alpha 2 country code, url to
get the all country-code list:
https://www.iban.com/country-codes
(for instance : is the country-code for ivory
Coast.
Mandatory
channelThe type of targeted channel using one of keyword:
<web>: to target the Bizao payment PopUp
<type>: to target the Bizao TPE payment flow
<ussd>: to target the Bizao USSD payment flow
Mandatory
langthe abbreviation in 2 characters of targeted
language for the PopUp, In ISO 639 (alpha-2) format
Mandatory
content-typeapplication/jsonMandatory

The body of your query will manage parameters below :

Parameter
name
DescriptionUsage
currency(string) currency identifier as defined in [ISO4217].
you can use this site to know the currency-code by
country: https://fr.iban.com/currency-codes.html
Mandatory
order_id(string) unique identifier of the payment request.
IT MUST BE UNIQUE FOR THE SYSTEM and must follow
the following format: “MyMerchantNAme_ID” where:
ID : is a unique number identifier of transaction.
Mandatory 30
char max
amount(decimal) amount to be charged.Mandatory
return_urlThe URL of the web site where the customer returns
when the payment is completed
Mandatory
cancel_urlThe URL of the web site where the customer returns
when the payment is canceled by the customer
Mandatory
notif_urlOffline setup: to be provided by the merchant during
the onboarding step.
The notification URL is used by Bizao to update the
merchant about the transaction status.
Mandatory
referenceReference to the Merchant Name.Mandatory 30
char max
user_msisdnThe MSISDN of the User/purchaser.
To use only in : TPE and USSD channels.
Optional in case
of WEB channel
otp_codeWhen applicable, the OTP Code is the one
generated by the User to approve the transaction.
To use only in : TPE and USSD channels
Optional /
Mandatory
based on the
operator
stateParameter up to merchant to set within any value he
wants to keep over all payment transaction
processing.
This field must be in Encodeded-URL (Bizao do not
alternate/update this value and send it back within
payment response/notification)
Mandatory

Payment query sample :

Note: for each new payment-query you have to provide a new value for “order_id” .

Parameter :

curl --location --request POST 'https://api.bizao.com/mobilemoney/v1' \
--header 'Authorization: Bearer 483a05b2-25e8-314f-8db3-dc8081547458' \
--header 'country-code: sn' \
--header 'mno-name: orange' \
--header 'lang: fr' \
--header 'channel: web' \
--header 'Content-Type: application/json' \
--header 'Cookie: SERVERID=s0' \
--data-raw '{
"currency": "XOF",
"order_id": "Merchant_Order_id_4",
"amount": 10,
"state": "param1%3Dvalue1%26param2%3Dvalue2",
"return_url": "https://callback.bizao.com/MM/return.html",
"cancel_url": "https://callback.bizao.com/MM/cancel.html",
"reference": "Your-reference"
}
  • “mobilemoney” API response

Bizao “mobilemoney” payment API will response in Json format.
This Json format/response has two different body according to targeted payment channel:

1. <web> channel:
In case the merchant targets the <web> channel, the payment API will send/response with the URL of Bizao PopUP as below.
Success query response sample :

Content-Type: application/json
{
"status": 201,
"message": "OK",
"pay_token": "v1sqjbl4cahdoonenvedipechroz9yz1agvhxoxblnvyl2kngd4dcua4qyyma2kk",
"payment_url": "https://webpayment.orange-
money.com/ci/mpayment/abstract/v1sqjbl4cahdoonenvedipechroz9yz1agvhxoxblnvyl2kngd4d
cua4qyyma2kk",
"notif_token": "ibcukkpd2mgmahli4qgpig0w0hmhwbgi",
“state": "param1%3Dvalue1%26param2%3Dvalue2”
}

o pay_token: uniquely identifies the payment page/PopUp.
o payment_url : URL of the Bizao PopUp payment where the user will process the
o payment (to display in the User device)

2. <ussd and tpe> channel:

In case the channel is one of value: <ussd> or <tpe> .

The Bizao Hub response will be json format/content below:

{
"meta": {
"type":"payment",
"source": "orange"
"channel":tpe
}
{
“status” : “pending”,
“amount” : “xxxxxx”,
“order-id” : “xxxxxx”,
“currency”: “xxxxx”,
“reference” : “xxxx”,
“country-code”: “xxxxx”,
“state”: ”xxxxxxxxxxx”,
“user_msisdn”:”22575338226 “,
“otp_code”:”123467”,
“Transaction-id” : ”xxxxxxxxxxx”
}
}

3.Notification flow

Bizao “mobilemoney” API also manages a Notification flow. For each user payment
transaction, Bizao makes two type of notification:
o B2C-Notif: this category of notification is for the User/purchaser. For each successful
payment, Bizao will send him a SMS. The format and wording of this SMS message
depends on the Southbound/operator backend that Bizao uses.
o B2B-Notif: this category of notification is for the merchant backend. For each
payment transaction, Bizao will notify the merchant backend (using the merchant-
Callback) with the final status of the payment transaction.
Note: In case of timeout or any technical issues, “getStatus” API is another alternative
to get the transaction details.

Below a sample of notification content:

{
"meta": {
"type":"payment-notif",
"source": "orange",
"channel": "web"
}
{
“status” : “successful”,
“amount” : “xxxxxx”,
“order-id” : “xxxxxx”,
“currency”: “xxxxx”,
“reference” : “xxxx”,
“country-code”: “xxxxx”,
“state”: ”xxxxxxxxxxx”,
“user_msisdn”:”22575338226 “,
“Transaction-id” : ”xxxxxxxxxxx”
}
}