Introduction!

The Eazy-verif RESTFUL API is a very important part of the Eazymobile platform. The API is built using restful endpoints, standard HTTP verbs which uses standard HTTP response codes to indicate if an API request is successful or not. This allows you to verify the identities of other individuals all over the country. This could be for hiring, Background checks, etc


Get started!

start integrating our restful API's into your beautiful products by following the steps below:


Step 1

Register an account with us on Eazymobile, complete the necessary KYC VERIFICATION process, and upgrade to the MERCHANT LEVEL. Doing these automatically generates an API token (a dedicated Secret Key and Public Key) for you. Register an account


Step 2

Log in to your account, and on your Dashboard, Navigate to Account Settings, select 'Profile' and click on 'API settings' to get your API Keys. Copy your dedicated API Keys ( sk_live_xxxxx or pk_live_xxxxx ) to your desire workspace.


Base url: https://app.eazymobile.ng
Sandbox: https://sandbox.eazymobile.ng coming soon

Fetch Available Kyc Type

This endpoint allows you to query all the kyc type that we have. It returns json array for kyc types.

/v2/seamless/allkyc/typePOST

Parameter Type Field Description
Authorization Bearer Required Your bearer key might be your sk_live_xxxxx or pk_live_xxxxx
accessToken String Required This is a unique identifier which gives you access to our API, contact us for provision

Sample Request Code

We have made things easier for you, through our step-by-step procedures.

    { "accessToken" : "02505b8b0db740a7b221f177599f6c6d" }

                        {
                        "accessToken" : "02505b8b0db740a7b221f177599f6c6d"
                        }
					
				

Sample Response Code

We have made things easier for you, through our step-by-step procedures.

    { "status": true, "response": { "code": 200, "kycList": [ { "kycName": "BANK VERIFICATION NUMBER", "kycType": "BVN_V", "kycAmount": "70.00" }, { "kycName": "NATIONAL IDENTIFICATION NUMBER", "kycType": "NIN_V", "kycAmount": "70.00" }, { "kycName": "VOTER'S CARD NUMBER", "kycType": "VIN_V", "kycAmount": "70.00" }, { "kycName": "DRIVERS LICENSE", "kycType": "DLICENSE_VERIF", "kycAmount": "70.00" }, { "kycName": "INTERNATIONAL PASSPORT", "kycType": "INTL_V", "kycAmount": "70.00" } ] } }

                        {
                            "status": true,
                            "response": {
                                "code": 200,
                                "kycList": [
                                    {
                                        "kycName": "BANK VERIFICATION NUMBER",
                                        "kycType": "BVN_V",
                                        "kycAmount": "70.00"
                                    },
                                    {
                                        "kycName": "NATIONAL IDENTITY NUMBER",
                                        "kycType": "NIN_V",
                                        "kycAmount": "70.00"
                                    },
                                    {
                                        "kycName": "VOTER'S CARD NUMBER",
                                        "kycType": "VIN_V",
                                        "kycAmount": "70.00"
                                    },
                                    {
                                        "kycName": "DRIVERS LICENSE",
                                        "kycType": "DLICENSE_VERIF",
                                        "kycAmount": "70.00"
                                    },
                                    {
                                        "kycName": "INTERNATIONAL PASSPORT",
                                        "kycType": "INTL_V",
                                        "kycAmount": "70.00"
                                    }
                                ]
                            }
                        }
					
				

Bank Verification Number (BVN)

This endpoint allows you to shoot your 'bvn verification' request to our system. It returns json array for 'BVN'.

/api/v2/seamless/bvn/verify POST

Parameter Type Field Description
Authorization Bearer Required Your bearer key might be your sk_live_xxxxx or pk_live_xxxxx
accessToken String Required This is a unique identifier which gives you access to our API, contact us for provision
merchantUrl String Required This is a unique identifier which allows us to verify your request server against our record
kycType String Required You're required to send us the kycType, check the 'Fetch Available Kyc Type' documentaion for more info
bvnNo String Required This is the bank verification number (BVN).
firstName String Required This is the BVN firstname
lastName String Required This is the BVN lastname (known as Surname).

Sample Request Code

We have made things easier for you, through our step-by-step procedures



                        {
                        "accessToken" : "02505b8b0db740a7b221f177599f6c6d",
                        "merchantUrl" : "www.eazymobile.ng",
                        "kycType" : "BVN_V",
                        "bvnNo" : "00000000000",
                        "firstName" : "MNENA",
                        "lastName" : "AWE"
                        }

                 
				

Sample Response Code

We have made things easier for you, through our step-by-step procedures

    { "status": true, "response": { "code": 200, "data": { "verified": "SUCCESS", "bvn": "2200000000", "firstname": "MNUNI", "lastname": "AWE", "birthdate": "07-01-1982", "middlename": "", "phone": "08000000000", "gender": "Female", "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2/9k=", "nationality": "Nigeria", "type": "BVN" }, "queryID": "E-KYCB-LR4DALWV0T325" }, "requestTime": "2022-24-04 01:57:30" }

                        {
                            "status": true,
                            "response": {
                                "code": 200,
                                "data": {
                                    "verified": "SUCCESS",
                                    "bvn": "2200000000",
                                    "firstname": "MNUNI",
                                    "lastname": "AWE",
                                    "birthdate": "07-01-1982",
                                    "middlename": "",
                                    "phone": "08000000000",
                                    "gender": "Female",
                                    "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2/9k=",
                                    "nationality": "Nigeria",
                                    "type": "BVN"
                                },
                                "queryID": "E-KYCB-LR4DALWV0T325"
                            },
                            "requestTime": "2022-24-04 01:57:30"
                        }
					
				

National Identification Number (NIN)

This endpoint allows you to shoot your 'NIN verification' request to our system. It returns json array for 'NIN'.

/api/v2/seamless/nin/verify POST

Parameter Type Field Description
Authorization Bearer Required Your bearer key might be your sk_live_xxxxx or pk_live_xxxxx
accessToken String Required This is a unique identifier which gives you access to our API, contact us for provision
kycType String Required You're required to send us the kycType, check the 'Fetch Available Kyc Type' documentaion for more info
ninNo String Required This is the National Identification number (NIN).
firstName String Required This is the NIN firstname
lastName String Required This is the NIN lastname (known as Surname).

Sample Request Code

We have made things easier for you, through our step-by-step procedures



                        {
                        "accessToken" : "02505b8b0db740a7b221f177599f6c6d",
                        "merchantUrl" : "www.eazymobile.ng",
                        "kycType" : "NIN_V",
                        "ninNo" : "00000000000",
                        "firstName" : "MNENA",
                        "lastName" : "AWE"
                        }

                 
				

Sample Response Code

We have made things easier for you, through our step-by-step procedures

    { "status": true, "response": { "code": 200, "data": { "verified": "SUCCESS", "nin": "2200000000", "firstname": "MNUNI", "lastname": "AWE", "birthdate": "07-01-1982", "middlename": "", "phone": "08000000000", "gender": "Female", "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2/9k=", "nationality": "Nigeria", "type": "NIN" }, "queryID": "E-KYCN-LR4DALWV0T325" }, "requestTime": "2022-24-04 01:57:30" }

                        {
                            "status": true,
                            "response": {
                                "code": 200,
                                "data": {
                                    "verified": "SUCCESS",
                                    "nin": "2200000000",
                                    "firstname": "MNUNI",
                                    "lastname": "AWE",
                                    "birthdate": "07-01-1982",
                                    "middlename": "",
                                    "phone": "08000000000",
                                    "gender": "Female",
                                    "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2/9k=",
                                    "nationality": "Nigeria",
                                    "type": "NIN"
                                },
                                "queryID": "E-KYCN-LR4DALWV0T325"
                            },
                            "requestTime": "2022-24-04 01:57:30"
                        }
					
				

Voter's Identification Number (VIN)

This endpoint allows you to shoot your 'VIN verification' request to our system. It returns json array for 'VIN'.

/api/v2/seamless/vin/verify POST

Parameter Type Field Description
Authorization Bearer Required Your bearer key might be your sk_live_xxxxx or pk_live_xxxxx
accessToken String Required This is a unique identifier which gives you access to our API, contact us for provision
kycType String Required You're required to send us the kycType, check the 'Fetch Available Kyc Type' documentaion for more info
vinNo String Required This is the Voter's Identification number (VIN).
state String Required This is the Voter's Identification number State.
dob String Required This is the VIN bearer Date of Birth. Format: YYYY-MM-DD
firstName String Required This is the VIN firstname
lastName String Required This is the VIN lastname (known as Surname).

Sample Request Code

We have made things easier for you, through our step-by-step procedures



                    {
                    "accessToken" : "02505b8b0db740a7b221f177599f6c6d",
                    "merchantUrl" : "www.eazymobile.ng",
                    "kycType" : "VIN_V",
                    "vinNo" : "00000000000",
                    "state" : "OYO",
                    "dob" : "1997-11-21",
                    "firstName" : "MNENA",
                    "lastName" : "AWE"
                    }

                    
                    

Sample Response Code

We have made things easier for you, through our step-by-step procedures

    { "status": true, "response": { "code": 200, "data": { "verified": "SUCCESS", "lastname": "MNANU", "firstname": "WILLIAM", "birthdate": "27/06/1974", "vinno": "90F5000000000000", "pollingunit": "CARPENTER'S HALL", "pollingunitcode": "", "stateofIssue": "", "lga": "", "gender": "Male", "type": "VIN" }, "queryID": "E-KYCV-X8TXN6RU7SY44" }, "requestTime": "2022-24-04 02:20:48" }

                    {
                            "status": true,
                            "response": {
                                "code": 200,
                                "data": {
                                    "verified": "SUCCESS",
                                    "lastname": "MNANU",
                                    "firstname": "WILLIAM",
                                    "birthdate": "27/06/1974",
                                    "vinno": "90F5000000000000",
                                    "pollingunit": "CARPENTER'S HALL",
                                    "pollingunitcode": "",
                                    "stateofIssue": "",
                                    "lga": "",
                                    "gender": "Male",
                                    "type": "VIN"
                                },
                                "queryID": "E-KYCV-X8TXN6RU7SY44"
                            },
                            "requestTime": "2022-24-04 02:20:48"
                        }
                    
                    

Driver's License Number (DLICENSE)

This endpoint allows you to shoot your 'DLICENSE verification' request to our system. It returns json array for 'DLICENSE'.

/api/v2/seamless/dlicense/verify POST

Parameter Type Field Description
Authorization Bearer Required Your bearer key might be your sk_live_xxxxx or pk_live_xxxxx
accessToken String Required This is a unique identifier which gives you access to our API, contact us for provision
kycType String Required You're required to send us the kycType, check the 'Fetch Available Kyc Type' documentaion for more info
dlicenseNo String Required This is the Driver's License Number (DLICENSE).
firstName String Required This is the DLICENSE firstname
lastName String Required This is the DLICENSE lastname (known as Surname).

Sample Request Code

We have made things easier for you, through our step-by-step procedures



                    {
                    "accessToken" : "02505b8b0db740a7b221f177599f6c6d",
                    "merchantUrl" : "www.eazymobile.ng",
                    "kycType" : "DLICENSE_V",
                    "dlicenseNo" : "00000000000",
                    "firstName" : "MNENA",
                    "lastName" : "AWE"
                    }

                    
                    

Sample Response Code

We have made things easier for you, through our step-by-step procedures

    { "status": true, "response": { "code": 200, "data": { "verified": "SUCCESS", "license": "CEN00000000000", "firstname": "SAMUEL", "lastname": "NNA", "birthdate": "07-08-1992", "middlename": null, "issuedate": "11-01-2015", "expirydate": "01-08-2020", "stateofIssue": "EDO", "gender": "Male", "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2/9k=", "type": "DLICENSE" }, "queryID": "E-KYCDL-83JRR8OF6RA45" }, "requestTime": "2022-24-04 02:37:48" }

                    {
                            "status": true,
                            "response": {
                                "code": 200,
                                "data": {
                                    "verified": "SUCCESS",
                                    "license": "CEN00000000000",
                                    "firstname": "SAMUEL",
                                    "lastname": "NNA",
                                    "birthdate": "07-08-1992",
                                    "middlename": null,
                                    "issuedate": "11-01-2015",
                                    "expirydate": "01-08-2020",
                                    "stateofIssue": "EDO",
                                    "gender": "Male",
                                    "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2/9k=",
                                    "type": "DLICENSE"
                                },
                                "queryID": "E-KYCDL-83JRR8OF6RA45"
                            },
                            "requestTime": "2022-24-04 02:37:48"
                        }
                    
                    

International Verification Number (INTLNO)

This endpoint allows you to shoot your 'INTLNO verification' request to our system. It returns json array for 'INTLNO'.

/api/v2/seamless/intl/verify POST

Parameter Type Field Description
Authorization Bearer Required Your bearer key might be your sk_live_xxxxx or pk_live_xxxxx
accessToken String Required This is a unique identifier which gives you access to our API, contact us for provision
kycType String Required You're required to send us the kycType, check the 'Fetch Available Kyc Type' documentaion for more info
intlNo String Required This is the International Passport Number (INTLNO).
dob String Required This is the INTLNO bearer Date of Birth. Format: YYYY-MM-DD
firstName String Required This is the INTLNO firstname
lastName String Required This is the INTLNO lastname (known as Surname).

Sample Request Code

We have made things easier for you, through our step-by-step procedures



                {
                "accessToken" : "02505b8b0db740a7b221f177599f6c6d",
                "merchantUrl" : "www.eazymobile.ng",
                "kycType" : "INTL_V",
                "intlNo" : "00000000000",
                "dob" : "1975-06-11",
                "firstName" : "MNENA",
                "lastName" : "AWE"
                }

                
                

Sample Response Code

We have made things easier for you, through our step-by-step procedures

    { "status": true, "response": { "code": 200, "data": { "verified": "SUCCESS", "intlno": "A0000000000", "lastname": "OLOPE", "firstname": "ANTHONY", "middlename": "KAYODE", "birthdate": "1965-05-22", "phone": "090000000000", "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2/9k=", "issuedate": "2018-04-30", "expirydate": "2023-04-29", "gender": "Male", "type": "INTL" }, "queryID": "E-KYCINT-5BZ3DPCOIQJ07" }, "requestTime": "2022-24-04 02:50:11" }

                {
                        "status": true,
                        "response": {
                            "code": 200,
                            "data": {
                                "verified": "SUCCESS",
                                "intlno": "A0000000000",
                                "lastname": "OLOPE",
                                "firstname": "ANTHONY",
                                "middlename": "KAYODE",
                                "birthdate": "1965-05-22",
                                "phone": "090000000000",
                                "photo": "/9j/4AAQSkZJRgABAgAAAQABAAD/2/9k=",
                                "issuedate": "2018-04-30",
                                "expirydate": "2023-04-29",
                                "gender": "Male",
                                "type": "INTL"
                            },
                            "queryID": "E-KYCINT-5BZ3DPCOIQJ07"
                        },
                        "requestTime": "2022-24-04 02:50:11"
                    }
                
                

About Webhooks 🚀

User's webhook gets notified about transaction events that happen in their Eazymobile account.


What is a webhook?

Webhooks are events we send to your pre-set endpoints via HTTP POST requests. They serve as a means of notification for when transaction(s) has been completed. For example, if you implement webhook, once a transaction status changes, we will immediately notify your pre-set endpoints.


Which Transactions require webhooks?

At the moment the following Transactions require webhooks to be set:

  1. Airtime to Cash
  2. Airtime to Swap
  3. Kyc Verification


How do I add my webhook?

How to setup webhooks on yourEazymobile dashboard

eazymobile-webhook-img

Login to your Eazymobile dashboard then click on Account settings, select profile on the profile page navigate to webhook URL to add a webhook.


Here are some things to note when setting up a webhook URL:

  1. If using .htaccess, remember to add the trailing / to the url you set.
  2. Do a test post to your URL and ensure the script gets the post body.
  3. Ensure your webhook URL is publicly available (localhost URLs cannot receive events)


Receiving an event

All you have to do to receive the event is to create an unauthenticated POST route on your application. The event object is sent as JSON in the request body.

    <?php

    // Retrieve the request's body and parse it as JSON

    $input = @file_get_contents("php://input");

    $event = json_decode($input);

    // Do something with $event

    http_response_code(200); // PHP 5.4 or greater

    ?>

Sample Response Code


	           			
						{
							"status":true,
							"data":{
								"mobileNumber" => "08100730073"
								"valueRecieved" => "1000.00"
								"valueConverted" => "800.00"
								"type" => "Airtime Exchange"
								"transactionStatus" => "Success"
								"reason" => "This transaction was well received. Thank you."
								"transactionRef" => "E-A2C-API-S0ST2XVFW7D07"
								"refNo" => "e-Gb9j4sdo8JiXgLsXojjnwvg3Vcdcb3QF9887bh8l"
								"token" => "a2c_Hb87u4sdo9JiGgJsX88gHThdgjd7tGDggahw"
								"createdAt" => "2021-11-09 22:47:07"
							}
						}
						
					
				

Response and Error Codes

The Eazymobile API returns HTTP status codes in addition to JSON-based error codes and messages. The Eazymobile API attempts to return appropriate HTTP status codes for every request. Every response will be mapped to an appropriate HTTP Status Code.
The JSON-based response have been grouped, so as to ease identification.

Error Group Error Description HTTP Status Code
Authorization Errors like "Unauthorized" or client error 401
Bad Method (s) Errors related to the method used, like using "POST" for "GET" request 405
Billing Billing and Payment related errors like "Insufficient funds" 407
Parameters Errors related to "fields" or "parameters" used 403
Request Error Errors like unable to determine this plan 406
Customer Error Errors related to "Invalid" Phone number 402
Customer Error Errors related to "duplicate reference" 409
Unavailable Errors like Service "Unavailable" 503
Request Pending Errors like "Pending" request 400
Network Errors Errors related to network 300
Success Completed transactions 200