Api Doc
Api Doc
Api Doc
DOCUMENTATION [Version 2]
INTRODUCTION
This document is an integration document of the Univasa VAS, product purchase and wallet API
Interface. It provides guidance and template material which is intended to assist the relevant
stakeholders to easily integrate to the different interface.
The Univasa VAS interface uses JSON over HTTPS to process incoming requests, sample requests
are provided further in this document.
ASSUMPTIONS
In order for the relevant stakeholders to integrate via the Univasa API Interface, the assumption is
that such an individual has;
• Familiarity with the TCP/IP stack.
• Familiarity with Transport Layer Security schemes.
• Familiarity with SOA and RESTful services.
• Familiarity with Authentication schemes and the Basic Authentication scheme.
• Familiarity with JSON.
SECURITY
Given the sensitive nature of the data being communicated it is essential that we:
• Protect data in transit from unauthorized third-party access.
• Ensure API requests be permitted from only authorized third parties.
For the above reasons, we expose the endpoints over HTTPS and we require that a Bearer
authentication (also called token authentication), which is a HTTP authentication scheme that
involves security tokens called bearer tokens. The name “Bearer authentication” can be understood
as “give access to the bearer of this token.”. Such token will be passed in the header with every
request sent.
1|Page
We also require users to sign up in order to access this token which will then be used with every
request that is passed.
Note: Kindly note that the base endpoint URL used in this document is for development and
integration testing purposes only and it can be changed without prior notice. The production URL
will be communicated when the integration is complete.
INTEGRATION OVERVIEW
The Univasa API Interface is a secure interface and has the capabilities to do the following:
Authentication
Generate dynamic Generate a virtual account. This account will expire after 1 hour and can
account only receive exact amount specified only once. Transaction to this
account is also once either exact or wrong amount
Get Private Key Get private key for validating inbound transactions that come through the
webhook
Initiate Web Get a URL for initiating payment in dollar or naira
Payment
2|Page
Set Webhook URL Set webhook URL for receiving notification alert for every inbound
transaction
Sign in Check Check if a customer is registered or not
Sign Up Brand Sign up a brand or company
Signup New Signup and retrieve an authentication token (New version)
Signup Signup and retrieve an authentication token
Verify Pin This is used for verification of Pin associated with customer
Virtual Account Get the record of virtual account(s) associated to an authentication token
Record
Virtual Number Get the record of virtual number(s) associated to an authentication token
Record
Wallet Record Get the record of balance associated with the wallet belonging to an
authentication token
OTP (One Time Password)
Get email OTP Get email OTP
Get OTP Get email or SMS OTP
Get SMS OTP Get SMS OTP
Get US MVNO Get US number SMS OTP
SMS OTP
Verify email OTP Verify email OTP
Verify OTP Verify email or SMS OTP
Verify SMS OTP Verify SMS OTP
Verify US MVNO Verify US number SMS OTP
SMS OTP
Enquiry
Account Name Fetch Account Name Matching an Account Number
Enquiry
Virtual Number Get Virtual numbers belonging to the authenticated user
Enquiry
Bank Code Lookup Fetch Bank Code associated with Bank Names
Fetch Reference Fetch any transaction details based on the reference number
Fetch Telecom Plan Fetch telecom data associated with an MVNO number
3|Page
Fund Transfer Check a single Transaction Status of a fund transfer
Query
Get Account Fetch all transactions associated with a particular account
Transactions
Get US MVNO Fetch plans associated with US based MVNO
Plan
Value Added Validate and verify the identity of an object that is about to be used for a
Services (VAS) VAS transaction, e.g. DStv smartcard.
Customer Lookup
Value Added Fetch payment information for vas transaction
Services (VAS)
Payment Lookup
Beneficiary
Add Beneficiary Add beneficiary to customer’s account
Fetch Beneficiary Fetch beneficiary associated with customer’s account
Host Fetch Fetch host associated with customers’ account
Remove Remove any beneficiary associated with a customers’ account
Beneficiary
MVNO
US Activate Activate a US Based MVNO SIM
US Change Plan Change Plan on a US based MVNO SIM
US ESN Status Check ESN Status on a US based MVNO SIM
US Purchase Make a Purchase on a US Based MVNO SIM
Order Processing
Airtime Processing Process an airtime order
Bulk Funds Process bulk funds transfer order
Transfer Processing
Data Processing Process data order
Electrical Bill Process an electrical bill payment order
Payment Processing
Paid TV Payment Process paid tv payment order
Processing
4|Page
Shared Credit Process the sharing of credit between users’ wallets
Payment Processing
Single Funds Process single funds transfer order
Transfer Processing
Virtual Number Process the purchase of a virtual number
Purchase
Processing
Virtual Number Process the renewal of a virtual number
Renewal Processing
Virtual Number Process the top-up of a virtual number
Top-up Processing
Voice OTP Process a voice OTP
processing
Order Payment
Bulk Funds Payment of bulk funds transfer order
Transfer Payment
Single Funds Payment of single fund transfer order
Transfer Payment
Value Added Payment of services associated with VAS e.g. electricity, data, airtime
Services (VAS) etc.
Payment
Virtual Number Virtual number purchase payment
Purchase Payment
Virtual Number Virtual number renewal payment
Renewal Payment
Virtual Number Virtual number top-up payment
Top-up Payment
Field Description
Value Description Mandatory/Not
Amount This is the amount associated with Mandatory
the account the customer intends to
pay
notify_phone_number Phone number to receive Not
notification on payment
notify_phone_network Phone network associated with the Not
number (MTN, Airtel, Glo,
9mobile)
6|Page
Note: Please a point to note is that the private key should have been generated before the URL set
will be able to receive transaction.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/get_private_key
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
amount The amount the customer intends to pay Mandatory
Currency The currency type (‘USD’ or ‘NGN’) Mandatory
7|Page
Login New
This endpoint is used by a customer to login to Univasa API system and retrieve an authentication
token for the security associated with other endpoints associated with consumption of the service.
This is done by providing valid customer credentials (either email, or phone number), created when
signing up to the system. While passing these credentials to the end point, there’s no form of
authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/login_new
Method POST
Content/Type application/json
JSON Object {
"id": "[email protected]",
"password": "string"
}
Field Description
Value Description Mandatory/Not
id Valid email or phone number associated Mandatory
with the customer or the business, passed
as a string variable.
8|Page
password Password for authentication of user upon Mandatory
login to the system.
Login
This endpoint is used by a customer to login to Univasa API system and retrieve an authentication
token for the security associated with other endpoints associated with consumption of the service.
This is done by providing valid customer credentials, created when signing up to the system. While
passing these credentials to the end point, there’s no form of authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/login
Method POST
Content/Type application/json
JSON Object {
"email": "[email protected]",
"password": "string"
}
Field Description
Value Description Mandatory/Not
9|Page
email Valid email associated with the customer Mandatory
or the business, passed as a string
variable.
password Password for authentication of user upon Mandatory
login to the system.
10 | P a g e
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
phone Valid phone number associated with the Mandatory
customer or business, passed as a string.
Should also be passed with country code.
otp One time password sent to the phone Mandatory
number and that was used for the
validation.
Field Description
Value Description Mandatory/Not
profile_picture Image file associated the picture of Mandatory
customer/user
11 | P a g e
Update Me
This endpoint is used to update credentials associated with the user account whose authorization
token is provided. This is done by providing authorization type called bearer token. This token to
be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/me_update
Method POST
Content/Type application/json
JSON Object {
"name": "string",
"email": "string",
"flash_type": "string",
"flash_airtime_amount": 0,
"flash_data_name": "string",
"address": "string",
"state": "string",
"zip_code": "string",
"country": "string",
"pin": "string"
}
12 | P a g e
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
name Name associated with the customer Not
email Email associated with the customer Not
flash_airtime_amount This parameter is associated with a Not
product called flash2recharge. This
is the airtime amount a customer
intends to recharge upon every flash.
flash_type This parameter is associated with a Not
product called flash2recharge. This
is the type of flash activity a
customer desires, either airtime or
data flash activity.
flash_data_name This parameter is associated with a Not
product called flash2recharge. This
is the data product a customer
desires to be recharged upon every
flash.
address The address associated with the Not
customer/user.
state The state associated with the Not
customer/user.
zip_code The zip code associated with the Not
area of the user.
country The country associated with the user Not
pin This is pin for transacting on the Not
application. This pin is unique to the
customer.
14 | P a g e
Order Record
This endpoint is used by a customer to fetch user orders and transaction reports associated with
the customer. This is done by providing authorization type called bearer token. This token to be
inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/order
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
search This is used to search for a particular data Not
within the record
15 | P a g e
PayPal Create
This endpoint is used by a customer to fetch URL for initiating a PayPal transaction. This is done
by providing authorization type called bearer token. This token to be inputted is gotten from the
login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/ paypal_create?total_amount=xxxx
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
total_amount This is amount associated with what a Mandatory
customer is about to pay
16 | P a g e
Product Record
This endpoint is used by a customer to get list of available products for vending and transaction.
This is done by providing authorization type called bearer token. This token to be inputted is gotten
from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/product
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
search This is used to search for a particular data Not
within the record
17 | P a g e
Set New Password
This endpoint is used to set new password credentials associated with the user account.
Verification of the email or phone should occur before calling this endpoint. It does not require
token authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/set_new_password
Method POST
Content/Type application/json
JSON Object {
"id": "string",
"otp": "string",
"new_password": "string",
"confirm_new_password": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
id The email or phone number Mandatory
associated with the account
requiring a new password
otp The OTP sent to the email address Mandatory
or phone number to validate user
18 | P a g e
new_password New password to be set. Mandatory
confirm_new_password New password to be set. Mandatory
19 | P a g e
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
webhook_url This is the URL that has created by the Mandatory
customer to receive inbound transaction
notification as a JSON payload.
Sign in Check
This endpoint is used to check the credentials of a customer (either email or phone number),
whether it has been registered. It does not require an authorization bearer token.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/signin_check
Method POST
Content/Type application/json
JSON Object {
"id": "[email protected]"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
id The email or phone number associated Mandatory
with the account requiring a new
password
20 | P a g e
Sign Up Brand
This endpoint is used to check the credentials of a customer e.g. email, whether it has been
registered. It does not require an authorization bearer token.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/signup_brand
Method POST
Content/Type application/json
JSON Object {
"brand_name": "string",
"brand_address": "string",
"contact_email": "string",
"contact_phone": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
brand_name Name associated with a brand Mandatory
brand_address Address associated with a brand Mandatory
contact_email Email associated with a brand Mandatory
contact_phone Contact associated with a brand Mandatory
21 | P a g e
Sign Up New
This endpoint is used by a customer to sign up or come onboard the Univasa API system. This is
done by providing valid customer credentials. While passing these credentials to the end point,
there’s no form of authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/signup_new
Method POST
Content/Type application/json
JSON Object {
"email": "[email protected]",
"password": "string",
"brand_code": "string",
"country": "United State"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
email Valid email associated with the customer Mandatory
or the business, passed as a string
variable.
password Password for authentication of user upon Mandatory
login to the system.
brand_code Brand id/code associated with the user Not
coming into the system, if any
country Country of User Not
22 | P a g e
Sign Up
This endpoint is used by a customer to sign up or come onboard the Univasa API system. This is
done by providing valid customer credentials. While passing these credentials to the end point,
there’s no form of authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/signup
Method POST
Content/Type application/json
JSON Object {
"name": "string",
"email": "[email protected]",
"password": "string",
"phone": 0
}
23 | P a g e
Field Description
Value Description Mandatory/Not
name Name associated with customer or the Mandatory
business, passed as a string variable.
email Valid email associated with the customer Mandatory
or the business, passed as a string
variable.
password Password for authentication of user upon Mandatory
login to the system.
phone Valid phone number associated with the Mandatory
customer or business, passed as an
integer. Should also be passed with
country code.
24 | P a g e
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Verify Pin
This endpoint is used verify a pin set by a customer for the purpose of transaction. This is done by
providing authorization type called bearer token. This token to be inputted is gotten from the login
endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/auth/verify_pin
Method POST
Content/Type application/json
JSON Object {
"pin": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
25 | P a g e
pin This is the pin passed by a customer that Mandatory
needs verification
27 | P a g e
OTP (One Time Password)
Get email OTP
This endpoint is used to fetch OTP needed to verify an email address supplied by the customer.
While passing these credentials to the end point, there’s no form of authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/otp/get_email_otp
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
email The email supplied by the customer Mandatory
needing verification
28 | P a g e
Get OTP
This endpoint is used to fetch OTP needed to verify an email address or phone number supplied
by the customer. While passing these credentials to the end point, there’s no form of authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/otp/get_otp
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
id The email/phone number supplied by the Mandatory
customer needing verification
29 | P a g e
Get SMS OTP
This endpoint is used to fetch OTP needed to verify a phone number supplied by the customer.
While passing these credentials to the end point, there’s no form of authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/otp/get_sms_otp
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
phone The phone number supplied by the Mandatory
customer needing verification
30 | P a g e
URL https://api.univasa.com/api:fEuwbnkZ/otp/get_us_mvno_sms_otp
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
phone The phone number supplied by the Mandatory
customer needing verification
31 | P a g e
URL https://api.univasa.com/api:fEuwbnkZ/otp/verify_email_otp/?email=xxx&otp=
xxx
Method GET
Content/Typ text/plain
e
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
email The email supplied by the customer Mandatory
needing verification
otp The otp sent to the email for the purpose Mandatory
of verification
Verify OTP
This endpoint is used to verify an email account/phone number supplied by the customer using
OTP. While passing these credentials to the end point, there’s no form of authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/otp/verify_otp/?id=xxx&otp=xxx
32 | P a g e
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Object Not Applicable
Field Description
Value Description Mandatory/Not
id The email supplied by the customer Mandatory
needing verification
otp The otp sent to the email for the purpose Mandatory
of verification
33 | P a g e
Content/Typ text/plain
e
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
phone The phone number supplied by the Mandatory
customer needing verification
otp The otp sent to the phone number for the Mandatory
purpose of verification
34 | P a g e
JSON Not Applicable
Object
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
phone The phone number supplied by the Mandatory
customer needing verification
otp The otp sent to the phone number for the Mandatory
purpose of verification
ENQUIRY
Account Name Enquiry
This endpoint is used by a customer to fetch account name matching an account number. This is
done by providing authorization type called bearer token. This token to be inputted is gotten from
the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/enquiry/account_name_enquiry
Method POST
Content/Type application/json
35 | P a g e
JSON Object {
"bankCode": "string",
"accountNumber": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
bankCode This is the bank code associated with Mandatory
the bank owing the account number.
The bank can be gotten from the bank
code endpoint.
accountNumber This is the account number associated Mandatory
with the customer’s name to be
retrieved.
36 | P a g e
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
search This is used to search for a particular data Not
within the record
37 | P a g e
Fetch Reference
This endpoint is used by a customer to fetch data associated with a transaction by the reference
number. This is done by providing authorization type called bearer token. This token to be inputted
is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/enquiry/fetch_reference?reference=xxx
xx
Method GET
Content/Typ text/plain
e
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
reference This is the reference number Mandatory
associated with the transaction, that is
seen as a unique identifier for the
query
38 | P a g e
Fetch Telecom Plan
This endpoint is used by a customer to fetch data associated with a telecom number by providing
OTP sent to the number. This is done by providing authorization type called bearer token. This
token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/enquiry/fetch_telecom_plan
Method POST
Content/Type application/json
JSON Object {
"phone_number": "string",
"otp": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
phone_number The telecoms data to be fetched Mandatory
39 | P a g e
otp The OTP that has been sent to the Mandatory
telecoms number for the purpose of
verification and validation
40 | P a g e
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
reference_number This is the reference number Mandatory
associated with bank transfer
transaction, that is seen as a unique
identifier for the query
41 | P a g e
Method POST
Content/Type application/json
JSON Object {
"accountNumber": "string",
"fromDate": "string",
"toDate": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
accountNumber This is the bank account number Mandatory
whose transaction details are to be
fetch.
fromDate This is the beginning of the time range Mandatory
from which transactions will be
picked.
toDate This is the end of the time range from Mandatory
which transactions will be picked.
42 | P a g e
Get US MVNO Plan
This endpoint is used fetch plans associated with the US based MVNO. This is done by providing
authorization type called bearer token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/enquiry/get_us_mvno_plan
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
search This is used to search for a particular data Not
within the record
43 | P a g e
Value Added Services (VAS) Customer Lookup
This endpoint is used to validate and verify the identity of an object that is about to be used for a
VAS transaction, e.g. DStv smartcard, GOtv smartcard, meter number etc. This is done by
providing authorization type called bearer token. This token to be inputted is gotten from the login
endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/enquiry/vas_customer_lookup
Method POST
Content/Type application/json
JSON Object {
"customer_id": "string",
"product_name": "string",
"description": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
customer_id This is the unique identifier of the Mandatory
object associated with VAS
transaction, like DSTV smart card
number and the likes.
44 | P a g e
product_name This the VAS product name which can Mandatory
be fetched from the API associated
with fetching products.
description This the VAS product description Mandatory
which can be fetched from the API
associated with fetching products.
45 | P a g e
Field Description
Value Description Mandatory/Not
reference_number This is the reference number Mandatory
associated with VAS transaction, that
is seen as a unique identifier for the
query
BENEFICIARY
The below list of Endpoints is associated with a Univasa service called flash2recharge.
Flash2recharge is a mobile recharge service that allows you to top up your mobile phone credit
instantly using a toll-free number. With Flash2recharge, you can easily fund your designated wallet
to recharge your phone on the go without the need for physical recharge cards or mobile banking.
It's a quick and hassle-free way to keep your phone topped up and stay connected.
Some of the objects associated with this service are beneficiary and host. Beneficiary are
individuals connected to a customer’s (Host) phone number, placed there by the customer to allow
such individuals benefit from the content of the customers wallet. A Host is a customer that allows
other individuals (Beneficiaries) benefit from his/her wallet via connecting their number to theirs.
Beneficiary Add
This endpoint allows users to add beneficiaries to his/her account. This requires authorization type
called bearer token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/beneficiary/add
46 | P a g e
Method POST
Content/Type application/json
JSON Object {
"phone": "string",
"amount": 100,
"period": "string",
"count": 0
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
phone This is the phone number of the Mandatory
beneficiary.
amount This is the amount that is assigned to Mandatory
the beneficiary.
period This is the time period (e.g. daily, Mandatory
weekly and monthly) assigned to the
beneficiary within which he/she can
benefit that amount.
count This is the number of times that the Mandatory
beneficiary can access the amount set
within the stipulated time period
47 | P a g e
Beneficiary Fetch
This endpoint allows a user to check or access a list of beneficiaries associated with the user
account. This is done by providing authorization type called bearer token. This token to be inputted
is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/beneficiary/fetch
Method GET
Content/Type text/plain
JSON Object Not Applicable
Request Not Applicable
Object
Field Description
Value Description Mandatory/Not
search Any information a user intends to Not
search for associated with the
beneficiary
page This refers to the current page Not
per_page This refers to the records per page Not
48 | P a g e
offset This refers to the number of pages Not
before current page
Screenshot example associated with API call;
Field Description
Value Description Mandatory/Not
search Any information a user intends to Not
search for associated with the host
page This refers current page of reference Not
49 | P a g e
per_page This refers to number of records per Not
page
offset This refers to the number of pages Not
before current page
Beneficiary Remove
This endpoint allows users to remove beneficiaries associated with his/her account. This requires
authorization type called bearer token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/beneficiary/remove
Method POST
Content/Type application/json
JSON Object {
"phone": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
phone This is the phone number of the Mandatory
beneficiary.
50 | P a g e
MVNO
The below list of Endpoints is associated with the Univasa Mobile Virtual Network Operators
(MVNO) based in US. Its simple a brand of the company associated with activities of Sim cards
distribution and vending across the country.
US Activate
This endpoint is used to activate a US based MVNO sim. This requires authorization type called
bearer token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/mvno/us_activate
Method POST
Content/Type application/json
JSON Object {
"location_type": "string",
"imei": "string",
"plan_id": "string",
"zip_code": "string",
"street1": "string",
"street2": "string",
"city": "string",
"state": "string",
"zip": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
location_type This describes whether the sim is Mandatory
required by someone with a SIM pack
(offline) or without (online). The key
51 | P a g e
words to pass as values to this key is
“offline” or “online”.
imei Number to be activated. Can be found Mandatory
on a sim pack or retrieved from
inventory of numbers.
plan_id MVNO plan with can be gotten from Mandatory
“Get US MVNO Plan” Endpoint
zip_code Zip code associated with the location Mandatory
of the customer
street1 Street of the customer Not
street2 Street of the customer, assuming its Not
more than one
city City associated with the customer Not
location
state State assocaiated with the customer Not
location
zip Zip associated with the customer Not
location
US Change Plan
This endpoint is used to change plan on a US based MVNO sim. This requires authorization type
called bearer token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/mvno/us_change_plan
Method POST
Content/Type application/json
JSON Object {
"phone_number": "string",
"plan_id": "string",
"street1": "string",
"street2": "string",
"city": "string",
52 | P a g e
"state": "string",
"zip": "string",
"imei": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
phone_number Phone number requiring the change of Mandatory
plan
plan_id MVNO plan with can be gotten from Mandatory
“Get US MVNO Plan” Endpoint
street1 Street of the customer Not
street2 Street of the customer, assuming its Not
more than one
city City associated with the customer Not
location
state State assocaiated with the customer Not
location
zip Zip associated with the customer Not
location
imei Imei number associated with the Not
phone number
US ESN Status
This endpoint is used to check ESN status on a US based MVNO sim. While passing these
credentials to the end point, there’s no form of authentication.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/mvno/us_esn_status
Method POST
Content/Type application/json
53 | P a g e
JSON Object {
"esn": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
esn This is the ESN requiring status check Mandatory
US Purchase
This endpoint is used to make a purchase on a US based MVNO sim. This requires authorization
type called bearer token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/mvno/us_purchase
Method POST
Content/Type application/json
JSON Object {
"phone_number": "string",
"plan_id": "string",
"street1": "string",
"street2": "string",
"city": "string",
"state": "string",
"zip": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
54 | P a g e
phone_number Phone number requiring the purchase Mandatory
of plan
plan_id MVNO plan with can be gotten from Mandatory
“Get US MVNO Plan” Endpoint
street1 Street of the customer Not
street2 Street of the customer, assuming its Not
more than one
city City associated with the customer Not
location
state State assocaiated with the customer Not
location
zip Zip associated with the customer Not
location
ORDER PROCESSING
Airtime Processing
This endpoint is used to process payment associated with VAS airtime transaction(s). This requires
authorization type called bearer token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/order_process/airtime
Method POST
Content/Type application/json
JSON Object {
"product_name": "string",
"amount": 0,
"gsm_number": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
55 | P a g e
product_name This is the name associated with Mandatory
airtime transaction gotten from the
product API.
amount This is the amount that is about to be Mandatory
vend to a customer.
gsm_number This is the phone number that is about Mandatory
to receive the vending.
56 | P a g e
Content/Type application/json
JSON Object {
"transactionItems": [
{
"creditAccount": "string",
"creditAccountName": "string",
"creditBankCode": "string",
"narration": "string",
"amount": 0
},
{
"creditAccount": "string",
"creditAccountName": "string",
"creditBankCode": "string",
"narration": "string",
"amount": 0
},……….
]
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
creditAccount This the customer bank account Mandatory
number receiving the transaction.
creditAccountName This is the customer bank account Mandatory
name, gotten from account name
enquiry API.
creditBankCode This is the bank account sort code Mandatory
associated with the customer’s bank
57 | P a g e
and it can be gotten from the bank
code lookup API.
narration This is the narration associated with Mandatory
transaction.
amount The amount to be sent to the Mandatory
customer’s account number.
Data Processing
This endpoint is used to process payment associated with VAS data vending transaction(s). This
requires authorization type called bearer token. This token to be inputted is gotten from the login
endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/order_process/data
58 | P a g e
Method POST
Content/Type application/json
JSON Object {
"product_name": "string",
"gsm_number": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
product_name This is the name associated with the Mandatory
particular data product gotten from the
product API.
gsm_number This is the phone number that is about Mandatory
to receive the vending.
59 | P a g e
(e.g. meter number), should be consulted before using this endpoint. This requires authorization
type called bearer token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/order_process/electricity
Method POST
Content/Type application/json
JSON Object {
"customer_id": "string",
"product_name": "string",
"description": "string",
"amount": 0
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
customer_id This the unique identifier of the bill Mandatory
item associated with customer e.g
meter number
product_name This is the name of the product Mandatory
associated the electricity vendor a
customer uses which can be gotten
from product API
description This is the description of product Mandatory
found in the output of the product
API.
amount This is the amount of credit a Mandatory
customer wishes to top up.
60 | P a g e
Paid TV Bill Processing
This endpoint is used to process payment associated with VAS paid TV bill vending transaction(s).
The Value Added Services (VAS) Customer Lookup API to verify customer item (e.g. DStv smart
card), should be consulted before using this endpoint. This requires authorization type called bearer
token. This token to be inputted is gotten from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/order_process/paid_tv
Method POST
Content/Type application/json
JSON Object {
"customer_id": "string",
"product_name": "string",
"description": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
61 | P a g e
customer_id This the unique identifier of the bill Mandatory
item associated with customer e.g.
DSTV smart card number
product_name This is the name of the product Mandatory
associated the paid tv a customer uses
which can be gotten from product API
description This is the description of product Mandatory
found in the output of the product API.
62 | P a g e
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
amount Amount to be shared Mandatory
id Email or phone number to receive the Mandatory
shared amount
narration Description of the transaction. Mandatory
63 | P a g e
URL https://api.univasa.com/api:fEuwbnkZ/order_process/single_fund_transfer
Method POST
Content/Type application/json
JSON Object {
"product_name": "string",
"amount": 0,
"account_name": "string",
"account_number": "string",
"bank_name": "string",
"bank_code": "string",
"narration": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
product_name This is the product name associated Mandatory
with single funds transfer that is gotten
from product API
amount The amount to be sent Mandatory
account_name The name of the account receiving the Mandatory
money that is gotten from name
enquiry API
account_number The account number associated with Mandatory
the account receiving the funds
bank_name The name of the bank hosting the Mandatory
account number gotten from bank
lookup API
bank_code The sort code associated with the bank Mandatory
hosting the account number
64 | P a g e
narration The description a customer attaches to Mandatory
a transaction
65 | P a g e
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
product_name This is the name of the product Mandatory
associated the virtual number
purchase which can be gotten from
product API
phone_number This is the virtual number to be Mandatory
purchased
66 | P a g e
"phone_number": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
product_name This is the name of the product Mandatory
associated the virtual number renewal
which can be gotten from product API
phone_number This is the virtual number to be Mandatory
renewed
67 | P a g e
JSON Object {
"product_name": "string",
"amount": 0,
"phone_number": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
product_name This is the name of the product Mandatory
associated the virtual number renewal
which can be gotten from product API
amount The amount that is to be topped up on Mandatory
the virtual number
phone_number This is the virtual number to be Mandatory
renewed
Field Description
Value Description Mandatory/Not
product_name This is the name of the product Mandatory
associated the voice OTP which can be
gotten from product API
gsm_number The mobile you need to receive the Mandatory
OTP message
voice_otp This is the OTP to be sent across Mandatory
69 | P a g e
ORDER PAYMENT
Bulk Fund Transfer Payment
This endpoint is used to complete payment associated with bulk funds transaction(s), after such
has been processed, by passing the reference number gotten from the API that process the
transaction. This requires authorization type called bearer token. This token to be inputted is gotten
from the login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/order_payment/bulk_fund_transfer
Method POST
Content/Type application/json
JSON Object {
"reference": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
reference_number This is the reference number Mandatory
associated with bulk funds transaction
gotten from the API that process the
70 | P a g e
transaction, that is seen as a unique
identifier for the query.
71 | P a g e
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
reference_number This is the reference number Mandatory
associated with single fund transaction
gotten from the API that process the
transaction, that is seen as a unique
identifier for the query.
72 | P a g e
JSON Object {
"reference": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
reference_number This is the reference number Mandatory
associated with VAS transaction(s)
gotten from the API that process the
transaction, that is seen as a unique
identifier for the query.
73 | P a g e
URL https://api.univasa.com/api:fEuwbnkZ/order_payment/virtual_number/purchas
e
Method POST
Content/Typ application/json
e
JSON Object {
"reference": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
reference_number This is the reference number Mandatory
associated with virtual number
purchase gotten from the API that
process the transaction, that is seen as
a unique identifier for the query.
74 | P a g e
This requires authorization type called bearer token. This token to be inputted is gotten from the
login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/order_payment/virtual_number/renew
Method POST
Content/Type application/json
JSON Object {
"reference": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
reference_number This is the reference number Mandatory
associated with virtual number
renewal gotten from the API that
process the transaction, that is seen as
a unique identifier for the query.
75 | P a g e
Virtual Number Top-up Payment
This endpoint is used to complete payment associated with virtual number top up, after such has
been processed, by passing the reference number gotten from the API that process the transaction.
This requires authorization type called bearer token. This token to be inputted is gotten from the
login endpoint.
API structure can be examined in the table below;
URL https://api.univasa.com/api:fEuwbnkZ/order_payment/virtual_number/topup
Method POST
Content/Type application/json
JSON Object {
"reference": "string"
}
Request JSON Object
Object
Field Description
Value Description Mandatory/Not
reference_number This is the reference number Mandatory
associated with virtual number top up
gotten from the API that process the
transaction, that is seen as a unique
identifier for the query.
76 | P a g e
77 | P a g e