Onafriq - global-121/121-platform GitHub Wiki
Onafriq
This page contains information about configuring the Onafriq FSP integration in a 121 Platform Instance.
Configure Environment Variables
For the Onafriq FSP integration to work for any program, some settings need to be configured via environment variables:
Corporate code
ONAFRIQ_CORPORATE_CODE
The value is the corporate code provided by Onafriq.
Password
ONAFRIQ_PASSWORD
The value is the password provided by Onafriq.
Unique key
ONAFRIQ_UNIQUE_KEY
The value is a unique key provided by Onafriq.
API url
ONAFRIQ_API_URL
IMPORTANT: It should end with a trailing slash! The value is the base URL of Onafriq's API. The sandbox URL is https://async-v2.dev.apimfsafrica.com/
. In production and staging, a different URL is used.
Currency code
ONAFRIQ_CURRENCY_CODE
The value is the currency code, e.g. 'CDF' for Congolese Franc. Currently 121 is set up only for currency CDF.
Country code
ONAFRIQ_COUNTRY_CODE
The value is the country code, e.g. 'CD' for DRC. Currently 121 is set up only for country DRC.
Sender details
Sender account details ONAFRIQ_SENDER_{MSISDN/NAME/SURNAME/DOB/DOCUMENT_ID/DOCUMENT_TYPE} are needed. They should identify the wallet from which money is transferred.
SFTP credentials
Sftp credentials ONAFRIQ_SFTP_{HOST/PORT/USERNAME/PASSPHRASE} are needed for sending the daily reconciliation report to Onafriq. Additionally, you need a private key file.
Subscribe to webhook
To be able to receive transaction status updates via callback, you have to configure the callback url once for every new environment (or again, when 121's callback URL would change for any reason. The 121 dev team will inform you of this.)
You can configure the callback URL simply by calling the POST /api/fsps/onafriq/webhook/subscribe
endpoint. The right URL does not need to be passed, but is constructed from code.
IMPORTANT: There is a delay for the callbackUrl
to be effectively updated. Even though the available GET /webhook/{ONAFRIQ_CORPORATE_CODE} immediately returns the updated callbackUrl
, in practice callbacks related to transactions created after the webhook update are still sent to the old callbackUrl
for some time. This delay is around 30 minutes according to Onafriq, but to be on the safe side it is good to take at least 2 hours.
Configuration
121 uses the Mobile wallet flow of Onafriq, where money is transferred from a sender mobile wallet to the recipients mobile wallet. Onafriq offers also Bank or Cash Pick Up transactions, but 121 does not use those at the moment.
Onafriq is a payment aggregator that can transfer money to a wide variety of local FSPs in many countries. This local FSP is not specified in the payment request from 121, but determined based on the recipient's phone number. Onafriq can however configure on setup that e.g. only Vodacom/Vodacash phone numbers are allowed, and other phone numbers are blocked.
Different countries have different required fields. Currently the 121 codebase is set up based on the requirements for DRC only.
Payment flow
When a payment is made to a registration with Onafriq FSP, then money is transferred to the mobile wallet of the recipient.
After a payment is made in the 121 platform, transactions are created with the status 'waiting' (indicating that at ths point we know only that the request to Onafriq transaction, but not yet of the payout to the recipient was successful). Once Onafriq has made the (un)succesful transaction to the recipient they inform us via callback of the transaction status. There is also an Onafriq endpoint 121 can call to proactively get the status. This is not used at the moment, but could be in the future as a backup for failing callbacks if applicable.
Onafriq API documentation
For more information about Onafriq's API used, see the Onafriq Async API documentation on Onafriq's website.