2. Your ACCESS_TOKEN
The ACCESS_TOKEN is generated offline and sent to the IRT via a suitable chanel.

3. Partner onboarding:
For < Bulk >, we have two additional steps apart the access token:

1- we will follow the same step as the <transfer> to create the partner id and the security token for the authentication

2- We will create Three virtual wallets for the partner:

a. one called <MainAccount> where we credit the balance of the partner in Bizao hub. Transactions will debit this account. It is mandatory to have enough balance in this wallet for a transaction to be processed correctly. It is necessary to have a dedicated profile to be able to credit this account via a GUI portal. All transactions there are typed (via the parameter operationType) as credit, debit, refund or advance.

  • i. operationType= credit: means it is a classical and normal operation of crediting an account
  • ii. operationType = debit: means it is a classical and normal operation of debiting an account
  • iii. operationType =advance means it is a loan possibility accorded to the partner. This operation can only be done in the and is like a counter which limits the maximum loan amount for a service provider. If the advancedAccount is set to 100.000 for an SP, this means that SP can have a loan till 100.000. In other word, the mainAccount can be decreased till (-100.000) but not lower.
  • iv. operationType =refund: : means it is an operation of credit (or debit) to (from) the main account to adjust an error.

b. <fees> wallet where Bizao collects all the fees gained from transactions processed by this partner. This wallet is only for internal use.In order to be able to collect the fees, it is mandatory to setup the fees calculation process in the Bizao system. Based on the fees, Bizao system should be able to generate invoices.

c. <advancedAccount>: is used to set a loan possibility accorded to the partner

4. < Bulk > API

4.1 Principles
This API allows you to do Cashin in different recipients with just one click through Bizao Hub based on the information provided in your request.

This API manages three categories of parameters:

  • Headers: contains information letting Bizao to route your traffic by country, operator, channel and type you target.
  • Headers: contains information letting Bizao to route your traffic by country, operator, channel and type you target.
  • Static-parameters: this category of parameter cover all parameters that are static per merchant for all its payment traffic (Notification-Fees rules,sender details, …). These parameters will be provisioned in Bizao Hub (in SignUP step) per Partner and will be used by Bizao-Hub in the transfer process.

4.2 Description
Bizao <bulk> isss a restful API, based on json.

• Api-name: “bulk/v1”
• URL:
o Preproduction: https://preproduction-gateway.site-dev.bizao.com
o Production: https://api.site-dev.bizao.com
• Method: POST

4.2.1 bulkpayment API query syntax

Your query will contain the following Headers:

HeaderDescription/ContentUsage
AuthorizationYOUR_ACCESS_TOKENMandatory
country-code(string)2 characters code of the country you target ( 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: <ci> is the country-code for ivory Coast.Mandatory
channelThe type of targeted channel using one of keyword:
<web>:
Mandatory
typeThe type is set to bulkMandatory
langthe abbreviation in 2 characters of targeted language for the request, In ISO 639 (alpha-2) formatMandatory
content-typeapplication/jsonMandatory

The body of your query will manage parameters below:

Parameter nameDescriptionUsage
currencystring) currency identifier as defined in [ISO4217]. Note (as described for the amount parameter) that either currency and amount or code must be specified. you can use this site to know the currency-code by country: https://fr.iban.com/currency-codes.htmlMandatory
referenceReference to the bulkpayment clientMandatory 30 char max
batchNumber(string) identifies this create payment request. This field SHOULD be present. IT MUST BE UNIQUE FOR THE SYSTEM.Mandatory
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
beneficiaryObject <customer>Mandatory, it is an object

Customer object

<<customer ::Object>>
id //lock number
beneficiaryFirstName //customer first name beneficiaryLastName //customer last name beneficiaryAddress //customer address beneficiaryMobileNumber //customer msisdn
amount //customer address Amount to transfer to the beneficiary wallet feesApplicable //(YES or NO) boulean parameter to know if the fees is applicable or not mno // MNO name

bulkpayment query sample:
Note : for each new bulkpayment query you have to provide a new value for “batchNumber ”
Parameter.

POST bulk/v1/
Host: api.site-dev.bizao.com Authorization: Bearer token
Content-Type: application/json
country-code: sn lang:fr channel:web type: bulk

–d ‘{
« currency »: « XOF »,
« reference »: « bsc-bulk-mt-XOF »,
« batchNumber »: « bulk-sn_07-10-2021_01 », // Unique « state »: « param1%3Dvalue1%26param2%3Dvalue2 », « data »: [
{
« id »: « 001 », // This id will be concatenated with the batchNumber. The result of this concatenation will be order_id of the request to be sent to the MNO.
« beneficiaryFirstName »: « Abdou »,
« beneficiaryLastName »: « Diop », « beneficiaryAddress »: «  »,
« beneficiaryMobileNumber »: « 221761234567”, // to be mapped with the MSISDN in the southbound request. The international mobile number without 00 or +
« amount »: 10,
« feesApplicable »: « YES », « mno »: « free »
},
{
« id »: « 002 »,
« beneficiaryFirstName »: « Logan », « beneficiaryLastName »: « Doo »,
« beneficiaryAddress »: « Rue 10 angle 20, Medina, Dakar », « beneficiaryMobileNumber »: « 2217754566666 »,
« amount »: 1, « feesApplicable »: « YES », « mno »: « orange »
}
]
}’

4.2.2 Bulk API response
Bizao <bulk> API will response in Json format
This Json format/response has two different parties :

  • The meta bloc containing the common details( reference, batchNumber, bulkpayment customer informations, …)
  • The second bloc(data) contain the specific data for the beneficiary

Response query

Content-Type: application/json
}
« meta »: {
« source »: « bizao »,
« merchant-name »: « [email protected] »,
« type »: « bulk »,
« currency »: « XOF »,
« batchNumber »: « bulk-sn_07-10-2021_01 », « reference »: « bsc-bulk-mt-XOF »,
« feesType »: « FIXED_FEE », //Type of fees applicable for this bulk payment customer
« lang »: « fr »,
« totalAmount »: 11.00, //Total principal amount in the batch
« totalFees »: 2.00, //Total fees amount in the batch

//Bulkpayment customer details « senderFirstName »: « Damith », « senderLastName »: « Sulochana », « senderAddress »: « Colombo », « senderMobileNumber »: « 2250512345678 », « fromCountry »: « cm »,
//END Bulkpayment customer details
« comment »: « Bulk Process will take minimum 0.28 minutes »
},
« data »: [
{
« id »: « 001 »,
« orderId »: « bulk-sn_07-10-2021_01-001 », « mno »: « free », « beneficiaryFirstName »: « Salif », « beneficiaryLastName »: « KA », « beneficiaryAddress »: «  »,
« beneficiaryMobileNumber »: « 221765151504 ». The international mobile number without 00 or +
« toCountry »: « sn », « feesApplicable »: « Yes », « amount »: 10.00,
« fees »: 1.00,
« status »: « Pending »,
« intTransaction-Id »: « 1aa27e52-969b-4fd1-8012-da5606b8de71 », //the transaction id from BIZAO system
« extTransaction-Id »: «  » //the transaction id from the MNO system
},
{
« id »: « 002 »,
« orderId »: « bulk-sn_07-10-2021_01-002 », « mno »: « orange », « beneficiaryFirstName »: « Logan », « beneficiaryLastName »: « Doo »,
« beneficiaryAddress »: « Rue 10 angle 20, Medina, Dakar », « beneficiaryMobileNumber »: « 221775782348 », « toCountry »: « sn »,
« feesApplicable »: « Yes », « amount »: 1.00,
« fees »: 1.00,
« status »: « Pending »,
« intTransaction-Id »: « 4be22560-389b-4c69-9e45-e6aa7452b7dd », //the transaction id from
BIZAO system
« extTransaction-Id »: «  » //the transaction id from the MNO system
}
]
}

4.3 getBalanceInfo
This service is very important for Northbound partners. It will help them to know the remaining balance in their virtual wallet merchantAccount(main wallet) in BIZAO system.
Each partner has its own dedicated < main wallet>. So, it is necessary to have the partner id to be able to display the correct balance for a given partner.

Get /bulk/v1/getBalanceInfo/merchantAccount/Account_number
api.site-dev.bizao.com
Authorization: Bearer token type: bulk

Samples Responses:

{
« meta »: {
« source »: « bizao »,
« type »: « bulk »
},
« accounts »: [

{
« account_number »: « bsc2001 »,                            // Account number
« status »: « Active »,                                                    // Account status
« currency »: « XOF », « balance »: 9767.00,               //total balance in the system
« reserved_amount »: 43.00,                               //reserved amount for a batch not treated yet
« loan_balance »: 0.00,
« advance_amount »: 0.00,
« turnover_balance »: 6.00,
« settlement_balance »: 0.00
}
]
}

4.4  Notification flow
Bizao bulk is an asynchronous API.

For each bulk payment, there are two types of notification:

  • B2C-Notif: this category of notification is for the beneficiary. For each successful transfer, the mobile operator will send him an SMS with the details of the transfer.
  • B2B-Notif: this category of notification is for the bulkpayment customer backend. For each batch of transfers, based on the backend configuration (Asynch), Bizao will notify the partner backend (using the partner-Callback when necessary) with the final status of the payment transaction.

Below a sample of notification content:

{
« meta »: {
« source »: « bizao »,
« merchant-name »: « [email protected] », « type »: « bulk »,
« currency »: « XOF »,
« batchNumber »: « bulk-sn_07-10-2021_01 », « reference »: « bsc-bulk-mt-XOF », « feesType »: « FIXED_FEE »,
« lang »: « fr », « totalAmount »: 11.00,
« totalFees »: 2.00, « senderFirstName »: « Damith », « senderLastName »: « Sulochana », « senderAddress »: « Colombo »,
« senderMobileNumber »: « 2250512345678 », « fromCountry »: « cm »
},
« data »: [
{
« id »: « 001 »,
« orderId »: « bulk-sn_07-10-2021_01-001 », « mno »: « free »,
« beneficiaryFirstName »: « Salif », « beneficiaryLastName »: « KA », « beneficiaryAddress »: «  », « beneficiaryMobileNumber »: « 221765151504 », « toCountry »: « sn »,
« feesApplicable »: « Yes », « amount »: 10.00,
« fees »: 1.00,
« status »: « Successful »,
« intTransaction-Id »: « 1aa27e52-969b-4fd1-8012-da5606b8de71 », « extTransaction-Id »: « CI211007.1411.A95748 »
},
{
« id »: « 002 »,
« orderId »: « bulk-sn_07-10-2021_01-002 », « mno »: « orange », « beneficiaryFirstName »: « Logan », « beneficiaryLastName »: « Doo »,
« beneficiaryAddress »: « Rue 10 angle 20, Medina, Dakar », « beneficiaryMobileNumber »: « 221775782348 », « toCountry »: « sn »,
« feesApplicable »: « Yes »,
« amount »: 1.00,
« fees »: 1.00,
« status »: « Failed »,
« failedReason »: « Validation failed, please contact support », « intTransaction-Id »: « 4be22560-389b-4c69-9e45-e6aa7452b7dd », « extTransaction-Id »: «  »
}
]
}

Get Statuts API

5.1 Principales
The bulkpayment customer can check any transactions in a batch via the “getStatus” service.
“getStatus” API

5.2 Description
Bizao <getStatus> API Resful/json API. Below syntax and description

• Api-name: “bulk/v1/getStatus”
• batchNumber: the batchNumber of the bulk transaction.
• Based URL:
o Preproduction: https://preproduction-gateway.site-dev.bizao.com
o Production: https://api.site-dev.bizao.com/
• Method: GET

5.2.1 “getStatus” API query syntax :
To call the “getStatus” service, below is the syntax: https://api.site-dev.bizao.com/bulk/v1/getStatus/{batchNumber}

“getstatus” sample query :

curl –location –request GET ‘https://api.site-dev.bizao.com/bulk/v1/getStatus/bulk-sn_07-10- 2021_01’ \
–header ‘Authorization: token’ \
–header ‘Content-Type: application/json’ \
–header ‘channel: web’ \
–header ‘type: bulk’ \
–header ‘Cookie: AlteonMS17=AVGuRvbEYwp+/a0U3c6Ndg$$; SERVERID=s0; SRV=c4929e28-54ed-4c57-bec6-a50f7151ac41’

5.2.2 Getstatus API response
Bizao <getstatus> API will response in Json format.
This Json format/response has the same format as for notification flow.

{
« meta »: {
« source »: « bizao »,
« merchant-name »: « [email protected] », « type »: « bulk »,
« currency »: « XOF »,
« batchNumber »: « bulk-sn_07-10-2021_01 », « reference »: « bsc-bulk-mt-XOF », « feesType »: « FIXED_FEE »,
« lang »: « fr », « totalAmount »: 11.00,
« totalFees »: 2.00, « senderFirstName »: « Damith »,
« senderLastName »: « Sulochana », « senderAddress »: « Colombo », « senderMobileNumber »: « 2250512345678 », « fromCountry »: « cm »
},
« data »: [
{
« id »: « 001 »,
« orderId »: « bulk-sn_07-10-2021_01-001 », « mno »: « free », « beneficiaryFirstName »: « Salif », « beneficiaryLastName »: « KA », « beneficiaryAddress »: «  »,
« beneficiaryMobileNumber »: « 221765151504 », « toCountry »: « sn »,
« feesApplicable »: « Yes », « amount »: 10.00,
« fees »: 1.00,
« status »: « Successful »,
« intTransaction-Id »: « 1aa27e52-969b-4fd1-8012-da5606b8de71 », « extTransaction-Id »: « CI211007.1411.A95748 »
},
{
« id »: « 002 »,
« orderId »: « bulk-sn_07-10-2021_01-002 », « mno »: « orange », « beneficiaryFirstName »: « Logan », « beneficiaryLastName »: « Doo »,
« beneficiaryAddress »: « Rue 10 angle 20, Medina, Dakar », « beneficiaryMobileNumber »: « 221775782348 », « toCountry »: « sn »,
« feesApplicable »: « Yes », « amount »: 1.00,
« fees »: 1.00,
« status »: « Failed »,
« failedReason »: « Validation failed, please contact support », « intTransaction-Id »: « 4be22560-389b-4c69-9e45-e6aa7452b7dd », « extTransaction-Id »: «  »
}
]
}

5 Bizao transfer API common error code
Error Code API Reponses Error Message Error Description.
Transfer API (BMT100XX)
BMT10001 Missing mandatory header parameter: m no-name mno-name header is missing
BMT10002 Missing mandatory header parameter: country-code country-code header is missing
BMT10003 Missing mandatory header parameter: channel channel header is missing
BMT10004 Missing mandatory parameter: amount Transfer amount is not provided
BMT10005 Amount cannot contain cents Invalid amount, amount is provided with cents
BMT10006 Amount should be in number Provided amount consist some character or special signs
BMT10007 Missing mandatory parameter: beneficiaryMobileNumber BeneficiaryMobileNumber is not provided
BMT10008 senderMobileNumber and beneficiaryMo bileNumber must not be same. User has pass same MSISDN for sender and beneficiary.
BMT10009 Beneficiary number does not match with MNO number format. Invalid MSISDN format for MNO and country
BMT10010 Missing mandatory parameter: currency Currency for transfer is not provided.
BMT10011 Missing mandatory parameter: reference Merchant reference for the currency account Is not provided.
BMT10012 Missing mandatory parameter: order_id Order id for request is not provided.
BMT10013 Missing mandatory header parameter: lang Lang header is missing.
BMT10014 Missing mandatory header parameter: USER_ID Missing USER_ID parameter which send from Api Manager
BMT10015 Missing mandatory header parameter: state State is not provided in the request
BMT10016 Missing mandatory header parameter : type Type header is missing
BMT10017 Invalid parameter for header parameter: type When type parameter type other than wall et or bulk
BMT10018 Invalid header parameter: channel When the channel parameter is having unr ecognized values
BMT11000 Duplicate Order ID Order ID is already used.
BMT11001 You have successful transaction recently for same amount, same sender and same benef iciary. Request has already success for same bene ficiary/sender/mount/currency/mno
BMT11002 No matching account for the request Cannot find Service provider provisioning for requested currency and reference.
BMT11003 Invalid service provider name: %s or merchant name does not match with service provider name. Invalid Service Provider
BMT11004 Fee rule not found for the transfer. Please contact support. Fee rule has not been provisioned for the currency and SP.
BMT11005 Order does not exist for given order ID Invalid or not existing Order ID
BMT11006 Insufficient account Balance Insufficient account balance
BMT00000 Validation failed. Please contact support. General Error
BMT21000 Can’t find the mt_bulk settings conf Cannot find the bulk account no
BMT21001 Exceeded the bulk transaction record limit Cannot find the bulk settings configuration for id = 1
BMT21002 Can’t find bulk account no Merchant is not provisioned or invalid mer chant reference
BMT21003 Date format exception yyyy-mm-dd For the request parameters, date format should be as “yyyy-mm-dd »
BMT20004 Number format exception Beneficiary msisdn is not match with the mno number format.
BMT20005 Can’t find the sender msisdn Merchant information is invalid or not provision the sender msisdn.
BMT20006 Same sender and beneficiary msisdn Both sender and benificiary msisdns as same.
BMT20007 Can’t find the information for given order id. Invalid order id.
BMT20008 Can’t find the bulk accounts for given sp Invalid geven parameters
BMT20009 Request items have missing mandatory properties. Request items have missing mandatory properties
BMT20010 Transaction amount exceeded to current balance. Transaction amount exceeded to current b alance.
BMT20011 No records found for the given criteria. No records found for the given criteria.
BMT20012 date format error When the request parameter is not on the declared date format.
BMT20013 Error while executing background processor. Error while executing background processor.
Retour en haut