• Dashboard
  • Dashboard
  • Welcome
  • Introduction
  • API Access Key and Authentication
  • Nairagram Response Codes
  • Test Data
    • Test Bank Account Numbers
    • Test Data for Mobile Wallet Transfer
  • Implementing Nairagram Services
    • Bank Account Transfer Services
      • Submitting a transfer via Nairagram Payout API
      • Submitting a transfer via dashboard
      • Cancel Pending Request
    • Mobile Wallet Transfer
      • Submit Mobile Wallet Transaction
    • Cash Pick-up
      • Submit Cash Pick Up Transaction
      • Get Cash Pick-up locations
    • Client Support
      • Get Wallet by Country
      • Bank List
      • Operator Wallet Code
      • Cash Pick-up Locations
      • Webhook/Call back
      • Get Beneficiary Name
      • Get Bank List
      • Get Security Questions
      • Get Currency Rate
      • Get Country List
      • Get Balance
      • Get Transaction Status
  • User Acceptance Complete Testing (UAT)

Welcome#

Welcome to Nairagram Documentation. The Nairagram Payout REST API helps you instantly transfer money, airtime, and mobile wallet money to African countries with real-time exchange rates. The Payout API is light, fast, and easy to integrate.

Introduction#

Nairagram offers a range of services that make it possible for you to send and receive money across the world in minutes.

API Access Key and Authentication#

This topic explains how to authorize API calls.

With Nairagram, you can authorize your API calls by including your username, password, and secret key in your request body.

Secret keys should be kept private and only stored on your own servers. Your account’s secret API key can perform any API request to Nairagram without restriction.

Use your test Secret key for testing and development API calls.

Nairagram Response Codes#

The API endpoint requests return appropriate response codes that state the success or failure of the request.

Response Codes

The following table lists the success codes that the endpoint request returns.

Code Title Content Description Example
200 Successful The request has been processed successfully This response code is generated when the request is processed successfully.  The transaction is complete NGNC211462007
201 Processing This response code indicates that the transaction has been submitted and is being processed.
202 Cancelled This response code is generated when the transaction gets cancelled. You may go ahead and retry.
203 Declined This response code is generated when the transaction gets Declined. You may go ahead and retry
440 Pending This response code is generated when the transaction is pending and under review. Usually when the Finance team is perfoming or yet to perfom a review.

Error Messages

The following table lists the error codes and messages that the endpoint request returns.

Code Title Content Description
400 Invalid Request {error: “###”} This response code is generated when all of the required parameters are not passed.
401 Unauthorized {error: “Invalid Token”} This response code is generated when the API access_token is expired or invalid.
403 Forbidden {error: “You are not allowed to use this service”} This response code is generated when you are not authorized to use this service.
503 Bank Offline or Service Unavailable {error: “Server undergoing maintenance”} This response code occurs when the server is unavailable.

Test Data#

To successfully build your implementations, Nairagram provides a test environment that you can use before making your site available to the public.

Niaragram provides a list of test data for each of the supported services.

After successfully completing the testing stage, reach out to support@nairagram.com to get the credentials for the live account.

Test Bank Account Numbers#

The following table lists the bank account numbers that you can use for your testing.

Bank Account Number Country Bank Code
Any Nigerian Bank Any 10 digit number Nigeria 044
Any Ghanaian Bank Any 12-14 digits Ghana 004
Any Tanzanian Bank Any 8 digits Tanzania 0044
Any Indian Bank Any 12-14 digits India 0004
Any Swedish Bank Any 12-17 digits Sweden 5000
Any Kenyan bank Any 10-16 digits Kenya 49003
Any Norway Bank Any 12-17 digits Norway 8601
Any Czech Republic Any 12-17 digits Czech Republic 0800
XOF and XAF banks 5-17 digits number Burkina Faso
Guinea Bissau
Ivory Coast
Mali
Senegal
Togo
Niger
Guinea Conakry
Congo Brazza
Gabon
Cameroon
00444

Test Data for Mobile Wallet Transfer#

While testing, to get a 200 response, you can use the wallet number 9876543210 with any operator and country from our list.

Implementing Nairagram Services#

The Nairagram Payout REST API provides several services that you can use to transfer money, airtime, and mobile wallet money.

Partner IDs are used to identify each transaction during the testing phase. After successfully testing and integrating with Nairagram API, the partners will be seamlessly transited to a live environment retaining their unique transaction ID.

Base URL: https://nairagrambasket.com/api

  • Bank Account Transfer Services
  • Mobile Wallet Transfer
  • Cash Pick-up
  • Client Support

Bank Account Transfer Services#

Use the following services of the Nairagram Payout REST API to instantly transfer money to bank accounts:

Submitting a transfer via Nairagram Payout API#

Use the submitTransaction endpoint to make an international transaction to bank accounts and get a transaction PIN.

Ensure that you pass the exchange rates with less than two decimal places. Also, pass only the exchange rate and destination amount for accuracy.

Provide a call-back URL that can be used to timely notify you of any change in the transaction status.

The transaction status should be queried using getTransactionStatus to get the correct status of a transaction.
All transactions return a transaction PIN regardless of the status of the transaction. Always check the message and its content for status.

If the response message states “Limit Exceeded or Company Limit Exceeded,” do not re-submit or re-process the transaction as such transaction would already have been queued up on the Nairagram basket platform.

For the error “201- Awaiting bank response”, perform the Get Transaction Status operation to get the most current status on the transaction.

If you receive an error message and the content says “do not initiate this transaction again,” perform the Get Transaction Status operation before reinitiating the transaction.

Ensure that you add the mandatory “tocurrency” field for making USD bank deposits for the countries that accept USD bank deposits.

Before submitting any transaction, verify that the account provided by the customer is a USD bank account and not a local currency account. For example, Nigerian Naira).

Syntax

POST https://nairagrambasket.com/api/submitTransaction

Response Codes

The following table lists the status codes that are returned in response to the submitTransaction request.

Code Description
200 Success
201 Under Process
202 Cancelled
203 Decline
400 Validation Error and Failed
401 Unauthorized error | “Invalid Token”
403 Forbidden – “You are not allowed to use this service”
440 Pending and Under Review

Input Parameter

The following table lists the parameters that you need to provide in the submitTransaction request.

Field Value Format Required/Optional Description
username mail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSerectKey Required Input the API key provided to you by your Partner Company.
senderfirstname firstName Required Input the first name of the sender. For example, Jane.
senderlastname lastName Required Input the last name of the sender. For example, Doe.
senderemail sendermail@mail.com Required Input the email address of the sender.
senderphone 07011111111 Required Input the valid phone number of the sender. When unavailable, use the default phone number: 11111111111.
senderaddress No 5, Address street Required Input the valid address of the sender.
sendercountry US Required Input the code for the sender’s country in ISO ALPHA-2 format. For example, US, GB, CA.
sendercity Dallas Required Input the name of the sender’s city.
sendfromstate TX Required Input a 2-letter abbreviation of the sender’s state. For example, TX, NY, WA. Non-US default: 01.
senderpostalcode 178980 Required Input the sender’s postal code.
dateofbirth 1968-02-05 Required Input the date of birth of the sender in the valid format: YYYY-MM-DD.
tofirstname beneficiaryFirstName Required Input the beneficiary’s first name. For example, John.
tolastname beneficiaryLastName Required Input the beneficiary’s last name. For example, Doe.
tocountry NG Required Input the code for the beneficiary’s country in ISO ALPHA-2 format. For example, NG, GH, KE.
tobankaccountname AccountFullName Required Input the valid bank account name of the beneficiary’. For example, Jane Doe.
tobankaccountnumber 0690000004 Required Input the valid account number of the beneficiary. Please use the test bank details provided in the description. For SEPA payment, please input the IBAN number.
tobankname Access Bank Plc Required Input the valid bank name of the beneficiary. Please use the test bank details provided in the description.
Note: For SEPA and Europe payment, replace with “iban”
tobankcode 044 Required Input the valid bank code of the beneficiary’s bank. Please use the test bank details provided in the description.
Note: For SEPA and Europe payment, replace with “bic” or bank number for the countries requiring one.
fromamount 300 Required Input an amount to send. The minimum value is $10 USD.
exchangerate 454 Required Input the exchange rate.
fees 10 Optional Input the fees. The default fee is 0 unless specified.
transaction_number 123456784568 Required Indicates the transaction number that can be of 10 to 25 characters.
fromcurrency USD Required It can also be the settlement currency per your agreement. For example, USD, GBP, CAD, EUR.
tocurrency USD Optional The settlement currency in eIther USD, GBP, CAD, or EUR based on your agreement.
customerid Assigned sender’s unique number Optional This is required for SEPA payment.
Note: This is not a transaction reference but is unique for each sender.
partytype “PERSON” or “ORGANISATION” Optional Indicates the sender type – a “PERSON” or “ORGANISATION”

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/submitTransaction' \
--form 'username="youremail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSecretKey"' \
--form 'senderfirstname="NameOne"' \
--form 'senderlastname="NameTwo"' \
--form 'senderemail="senderemail@mail.com"' \
--form 'senderphone="11111111010"' \
--form 'senderaddress="No 1 on Sender Address"' \
--form 'sendercountry="US"' \
--form 'sendercity="City"' \
--form 'sendfromstate="TX"' \
--form 'senderpostalcode="33321"' \
--form 'dateofbirth="1990-01-30"' \
--form 'tofirstname="FirstName"' \
--form 'tolastname="LastName"' \
--form 'tocountry="NG"' \
--form 'tobankaccountname="AccountName"' \
--form 'tobankaccountnumber="0690000005"' \
--form 'tobankname="Access Bank"' \
--form 'tobankcode="044"' \
--form 'fromamount="60"' \
--form 'exchangerate="300.00"' \
--form 'fees="0"' \
--form 'transaction_number="1122000088"' \
--form 'fromcurrency="USD"' \
--form 'settlement_currency="USD"'

Sample Response 1

{
  "Code": "200",
  "Message": "Success",
  "Content": {
    transaction_pin: NGN1234567890
  }
}

Sample Response 2

{
  "Code": "201",
  "Message": "Success, Pending payout to beneficiary",
  "Content": {
    transaction_pin: NGN1234567890
  }
}

Submitting a transfer via dashboard#

Start by navigating to the Home section on your dashboard. You need to ensure your available balance is funded, reach out to the business team.

  1. Select the option to create a Add New.
  2. Select the currency you want to transfer in and enter the amount.
  3. Enter an account detail.
  4. Click on proceed to complete your transfer.

Cancel Pending Request#

Use the CancelRequest endpoint to send request to cancel pending transaction.

You can only request cancellation for a pending transaction that has the following in the description:

  • Wrong bank account/wallet.
  • Restricted/Dormant account: Account cannot receive payment.

Syntax

POST https://nairagrambasket.com/api/cancelRequest

Response Codes

The following table lists the status codes that are returned in response to the CancelRequest.

Code Status
200 Completed
201 Your cancellation request has been Submitted and is Pending. We will update you status shortly.
202 The transaction is already canceled
203 Cancel request is less than the time specified

Input Parameters

The following table lists the parameters that you need to provide in the CancelTransaction request.

Field Value Format Required/Optional Description
username yourmail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSecretKey Required Input the API key provided to you by your Partner Company.
transaction_pin NGN########### Required Input the transaction PIN returned from the SubmitTransaction or SubmitWalletTransaction or SubmitCashPickupTransaction request.
description Optional Reason for cancelling the Request.

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/cancelRequest' \
--form 'username="yourmail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSecretKey"' \
--form 'transaction_pin="NGN###########"'
--form 'description="OPTIONAL"'

Sample Response

Code: 200
Message: Canceled
Content:{
	transaction_pin: NGN##########,
	transaction_status: “Transaction is canceled”
}

Code: 201,
"Message": "Your cancelation request has been Submitted and is Pending. We will update you status shortly.",
"Content": {
        "transaction_pin": "XOF##########",
        "transaction_ref": "pt1##########",
        "cancelation_request_code": "cancel########",
        "transaction_status": "pending",
        "description": "your cancellation request has been sent successfully"
}

Code: 202
Message: Transaction is already canceled
Content:{
	transaction_pin: NGN##########,
	transaction_status: “Transaction is already canceled”
}

Code: 203
Message: Cancel request is less than the time specified
Content:{
	transaction_pin: NGN##########,
	transaction_status: “Cancel request is less than the time specified”
}

Mobile Wallet Transfer#

Submit Mobile Wallet Transaction#

Use the submitWalletTransaction endpoint to make an international transaction associated with the mobile number and get a transaction PIN.

A mobile wallet is a virtual wallet that can receive a limited amount of cash—for example, Mpesa is available in Ghana, Uganda, and Kenya. Make a request from the business team for any new countries added to the list.

Please provide a call-back URL that can be used to timely notify you of any change in the transaction status.

If the response message states “Limit Exceeded or Company Limit Exceeded,” do not re-submit or re-process the transaction as such transaction would already have been queued up on your Partner Company platform. This happens because your company limit may have been exhausted and needs the client’s funding (not your Partner Company).

If the response message states “Wallet holding Limit Exceeded,” the beneficiary wallet cannot accept the funds at this moment as its holding limit has been exhausted. The sender would need to inform the beneficiary to reduce the balance in the wallet before the transaction can be completed. Do not re-submit or re-process the transaction as such transaction would already have been queued up on the Nairagram basket platform.

Syntax

POST https://nairagrambasket.com/api/submitWalletTransaction

Test Numbers

The following table lists the mobile wallet numbers used for testing.

Number Carrier Country
7086543211 — Nigeria
577916900 Tigo Ghana
265543343 Airtel Ghana
552645758 MTN Ghana
508224845 Vodafone Ghana
722000000 Safaricom Kenya
763555496 Equitel Kenya
779000000 MTN Uganda

Input Parameters

The following table lists the parameters that you need to provide in the submitWalletTransaction request.

Field Value Format Required/Optional Description
username mail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSerectKey Required Input the API key provided to you by your Partner Company.
senderfirstname firstName Required Input the first name of the sender. For example, Jane.
senderlastname lastName Required Input the last name of the sender. For example, Doe.
senderemail sendermail@mail.com Required Input the email address of the sender.
senderphone 07011111111 Required Input the valid phone number of the sender. When unavailable, use the default phone number: 11111111111.
senderaddress No 5, Address street Required Input the valid address of the sender.
sendercountry US Required Input the code for the sender’s country in ISO ALPHA-2 format. For example, US, GB, CA.
sendercity Dallas Required Input the name of the sender’s city.
sendfromstate TX Required Input a 2-letter abbreviation of the sender’s state. For example, TX, NY, WA. Non-US default: 01.
senderpostalcode 178980 Required Input the sender’s postal code.
dateofbirth 1968-02-05 Required Input the date of birth of the sender in the valid format: YYYY-MM-DD.
tofirstname beneficiaryFirstName Required Input the beneficiary’s first name. For example, John.
tolastname beneficiaryLastName Required Input the beneficiary’s last name. For example, Doe.
tocountry UG Required Input the code for the beneficiary’s country in ISO ALPHA-2 format. For example, NG, GH, KE.
tophone 7086543211 Required Please do not include the country code. For example, +221
wallet MTN Required Input the valid name of the wallet operator. For example, MTN, Airtel, etc.
fromamount 300 Required Input an amount to send. The minimum value is $10 USD.
exchangerate 454 Optional Input the exchange rate.
fees 10 Optional Input the fees. The default fee is 0 unless specified.
transaction_number 123456784568 Required Indicates the transaction number that can be of 10 to 25 characters.
fromcurrency USD Required It can also be the settlement currency, For example, USD, GBP, CAD, EUR.

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/submitWalletTransaction' \
--form 'username="mail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSerectKey"' \
--form 'senderfirstname="firstName"' \
--form 'senderlastname="lastName"' \
--form 'senderemail="sendermail@mail.com"' \
--form 'senderphone="07011111111"' \
--form 'senderaddress="No 5, Address street"' \
--form 'sendercountry="US"' \
--form 'sendercity="Dallas"' \
--form 'sendfromstate="TX"' \
--form 'senderpostalcode="178980"' \
--form 'dateofbirth="1968-02-05"' \
--form 'tofirstname="beneficiaryFirstName"' \
--form 'tolastname="beneficiaryLastName"' \
--form 'tocountry="NG"' \
--form 'tophone="7086543211"' \
--form 'wallet="MTN"' \
--form 'fromamount="300"' \
--form 'exchangerate="454"' \
--form 'fees="10"' \
--form 'transaction_number="123456784568"' \
--form 'fromcurrency="USD"' \
--form 'settlement_currency="USD"'

Sample Response

{
  "Code": "200",
  "Message": "Success",
  "Content": {
    	transaction_pin: NGN1234567890
  }
}

Cash Pick-up#

Submit Cash Pick Up Transaction#

Use the submitCashpickupTransaction endpoint to make an international transaction and get a transaction PIN. Send this PIN to the beneficiary, who then shares it with the bank in Nigeria. Provide a call-back URL that can be used to notify you of any change in the transaction status timely.

Syntax

POST https://nairagrambasket.com/api/submitCashpickupTransaction

Response Codes

The following table lists the status codes that are returned in response to the submitCashpickupTransaction request.

Code Status
200 Success
Note: You will receive the error code 200 when the beneficiary picks up the cash.
201 Success pending payout to beneficiation (Do not try again)
400 Invalid Request
401 Unauthorized error: “Invalid Token”
403 Forbidden “You are not allowed to use this service”
440 Failed – Invalid Data”
Note: Before re-initiating, editing, or canceling any transaction with the error “440, please do Get Transaction Status to confirm the updated status.”

The beneficiary’s valid phone number is needed because the beneficiary will receive a One True Pairing Code via SMS while at the bank to cash the money. An invalid number may affect the ability to cash the funds.

Please ensure that the beneficiary’s first, middle, and last name agrees to the beneficiary’s Government-issued ID.

The Cash Pick up locations may not be the same banks included in the Bank List API.

Input Parameters

The following table lists the parameters that you need to provide in the submitCashpickupTransaction request.

Field Value Format Required/Optional Description
username MAIL@MAIL.l.com Required Input the valid email address that you submitted to your Partner Company.
password Your Password Required Input your secure password.
secretKey YourKey Required Input the API key provided to you by your Partner Company.
senderfirstname firstName Required Input the first name of the sender. For example, Jane.
senderlastname LastName Required Input the last name of the sender. For example, Doe.
sendercity London Required Input the name of the sender’s city.
sendercountry US Required Input the code for the sender’s country in ISO ALPHA-2 format. For example, US, GB, CA.
senderaddress No 5, Address street Required Input the valid address of the sender.
senderpostalcode 178980 Required Input the sender’s postal code.
senderemail sendermail@mail.com Required Input the email address of the sender.
toaddress Lagos Optional Input the valid address of the beneficiary. 
security_question_id 2 Required Input the security question ID.
security_answer test Required Input the answer to the security question.
source_of_funds salary Required This can also include pensions and savings.
purpose_of_funds family support Required This can also include medication, housing, etc.
tophone 12345678 Required The beneficiary phone number is significant as this is used to deliver the OTP code to receive payments at the bank. Please Remove the country code and the leading zero from the number.
tofirstname Beneficiary First Name Required Please ensure the beneficiary’s first, middle, and last name agrees to the beneficiary’s Government-issued ID.
tomiddlename Beneficiary Middle Name Optional Please ensure the beneficiary’s first, middle, and last name agrees to the beneficiary’s Government-issued ID.
tolastname Beneficiary Last Name Required Please ensure the beneficiary’s first, middle, and last name agrees to the beneficiary’s Government-issued ID.
dateofbirth 1985-12-29 Required Input the date of birth of the sender in the valid format: YYYY-MM-DD.
fromamount 200 Required Input an amount to send. The minimum value is USD 10.
fromcurrency USD Required It can also be a settlement currency per your agreement. For example, USD, GBP, CAD, EUR.
transaction_number 022111712000060271266 Required This is your internal reference that could be used to query the transaction. It must have a minimum of 10 digits and a maximum of 25 digits.
sendfromstate 1 Required Input a 2-letter abbreviation of the sender’s state. For example, TX, NY, WA. Non-US default: 01.
fees 0 Optional Input the fees. The default fee is 0 unless specified.
exchangerate 1.3 Optional Input the exchange rate.
toemail a@gmail.com Required This is used to confirm the pickup and delivery.
tocurrency USD Optional Input the currency for the beneficiary. 
senderphone 7654533231 Required Input the valid phone number of the sender. When unavailable, use the default phone number: 11111111111.
tocountry NG Optional Input the country code in ISO ALPHA-2 format. For example, NG, GH, KE. It is required for Nigeria only.
cashpickuplocation 002 Required Please call the API GetUSD Cash pick-up location for the correct code.
Indicates the cash pickup location. For example, 002- Fidelity Bank or 001- Zenith Bank

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/submitCashpickupTransaction' \
--form 'username="ankur.garg1311@gmail.com"' \
--form 'password="@Password12"' \
--form 'secretKey="XkxTvJ3banMiCT3Kzgg3"' \
--form 'senderfirstname="firstName"' \
--form 'senderlastname="LastName"' \
--form 'sendercity="London"' \
--form 'sendercountry="US"' \
--form 'senderaddress="No 5, Address street"' \
--form 'senderpostalcode="178980"' \
--form 'senderemail="sendermail@mail.com"' \
--form 'toaddress="Lagos"' \
--form 'security_question_id="2"' \
--form 'security_answer="test"' \
--form 'source_of_funds="salary"' \
--form 'purpose_of_funds="family support"' \
--form 'tophone="12345678"' \
--form 'tofirstname="Benificiary FIrst Name"' \
--form 'tomiddlename="Beneficiary Middle Name"' \
--form 'tolastname="Beneficiary Last Name"' \
--form 'dateofbirth="1985-12-29"' \
--form 'fromamount="200"' \
--form 'fromcurrency="USD"' \
--form 'transaction_number="022111712000060271266"' \
--form 'sendfromstate="1"' \
--form 'fees="0"' \
--form 'exchangerate="1.3"' \
--form 'toemail="a@gmail.com"' \
--form 'tocurrency="USD"' \
--form 'senderphone="7654533231"' \
--form 'tocountry="NG"' \
--form 'settlement_currency="USD"'

Sample Response

{
  "Code": "201",
  "Message": "Success without payout, do not initiate this transaction again",
  "Content": {
    "transaction_pin": "NGN9040150837USD"
  }
}

Get Cash Pick-up locations#

Use the getCashPickupLocation endpoint to get the local pickup bank locations.

Syntax

POST https://nairagrambasket.com/api/getCashPickupLocation

Response Codes

The following table lists the status codes that are returned in response to the getCashPickupLocation request.

Code Status
200 Success
401 Unauthorized or Invalid Token

The cash pick-up locations may not be the same banks included in the Bank List API.

Input Parameters

The following table lists the parameters that you need to provide in the getCashPickupLocation request.

Field Value Format Required/Optional Description
username username Required Input the valid email address that you submitted to your Partner Company.
password password Required Input your secure password.
secretKey SecretKey Required Input the API key provided to you by your Partner Company.
country NG Optional Input the code of the country.

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getCashPickupLocation' \
--form 'username="your username"' \
--form 'password="Your password"' \
--form 'secretKey="Your SecretKey"' \
--form 'country="NG"'

Sample Response

{
  "Code": 200,
  "Message": "Successfully",
  "Content": [
    {
      "code": "001",
      "location": "Zenith Bank",
      "country": "NG"
    },
    {
      "code": "002",
      "location": "Fidelity Bank",
      "country": "NG"
    }
  ]
}

Client Support#

Get Wallet by Country#

Get wallet information for singular country.

Syntax

POST https://nairagrambasket.com/api/getPayoutWallet

Input Parameter

Field Value Format Required/Optional Description
username mail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSerectKey Required Input the API key provided to you by your Partner Company.
country country_code Required Input the country code. eg, For Ghana, GH.

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getPayoutWallet' \
--form 'username="youremail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secreteKey="yourSecreteKey"' \
--form 'country="GH"'

Sample Response

{
    "Code": 200,
    "Message": "Wallet list",
    "Content": [
        {
            "country_iso_code": "GHA",
            "wallet": "ScanCom Ltd (MTN)",
            "walletname": "ScanCom Ltd (MTN)"
        },
        {
            "country_iso_code": "GHA",
            "wallet": "Airtel",
            "walletname": "Airtel /Zain Communications (Ghana) Ltd"
        },
        {
            "country_iso_code": "GHA",
            "wallet": "AirtelTigo Ghana",
            "walletname": "AirtelTigo Ghana"
        },
        {
            "country_iso_code": "GHA",
            "wallet": "Vodafone Money",
            "walletname": "Ghana Telecom / Vodafone (Ghana)"
        }
    ]
}

Bank List#

Confirm with the business teams for the list of supported countries as the bank list gets updated from time to time.

Syntax

POST https://nairagrambasket.com/api/getBankList

Input Parameters

The following table lists the parameters that you need to provide in the getBankListByCountry request.

Field Value Format Required/Optional Description
username Yes Required Input the valid email address that you submitted to your Partner Company.
password Yes Required Input your secure password.
secretKey Yes Required Input the API key provided to you by your Partner Company.
country Yes Required Input the country code.
page Yes Required input the page number of returned list.(50 per page)
currency Yes Optional Currency is optional

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getBankList' \
--form 'username="Yes"' \
--form 'secretKey="Yes"' \
--form 'password="Yes"' \
--form 'country="NG"' \
--form 'page="1"' \
--form 'currency="USD"'

Sample Response

{
    "Code": "200",
    "Message": "Success",
    "Content": [ ]
}

OR

{
    "Code": "401",
    "Message": "Unauthorized",
    "Content": {
        "error": "Invalid Token"
    }
}

NIGERIA

The following table lists the supported banks in Nigeria.

Bank Name Bank Code
ACCESS BANK PLC 044
ASO SAVINGS AND LOANS 90001
ASSETMATRIX MFB 90287
CELLULANT 100005
CITI BANK 023
CONTEC GLOBAL 100032
CORONATION MERCHANT BANK 559
DIAMOND BANK (OLD DIAMOND ACCOUNT NO) 063
EARTHOLEUM 100021
ECOBANK NIGERIA 050
ENTERPRISE BANK 084
FBNQUEST MERCHANT BANK 911
FCMB 214
FIDELITY BANK 070
FIRST BANK 011
FSDH MERCHANT BANK 601
GLOBUS BANK 027
GUARANTY TRUST BANK 058
HEDONMARK 100017
HERITAGE BANK 030
IMPERIAL HOMES MORTGAGE BANK 415
INNOVECTIVESKESH 100029
INTELLIFIN 100027
JAIZ BANK 301
KEYSTONE BANK 082
KUDA MICROFINANCE BANK 90267
MONEYBOX AFRICA LIMITED 100020
NEW PRUDENTIAL BANK 561
NOVA MERCHANT BANK 637
PROVIDUS BANK 101
RAND MERCHANT BANK 502
SKYE BANK (POLARIS) 076
STANBIC – IBTC BANK 039
STANDARD CHARTERED BANK 068
STERLING BANK 232
TAJ BANK 026
TITAN TRUST BANK 025
UBA 033
UNION BANK 032
UNITY BANK 215
VFD MICROFINANCE BANK 566
WEMA 035
ZENITH BANK 057

GHANA

The following table lists the supported banks in Ghana.

Bank Name Bank Code
ACCESS BANK LTD 025
ADOM SAVINGS AND LOANS 300360
AGRICULTURAL DEVELOPMENT BANK 300307
BARCLAYS BANK 300303
CAL BANK 300313
ECOBANK GHANA LIMITED 300312
ENERGY BANK 029
FIDELITY BANK LIMITED 300323
FIRST ALLIED SAVINGS AND LOANS 300351
FIRST ATLANTIC BANK 017
GCB BANK LTD 004
GUARANTY TRUST BANK GHANA LIMITED 300322
HERITAGE BANK 300359
HFC BANK GHANA LIMITED 300310
NATIONAL INVESTMENT BANK 300305
PRUDENTIAL BANK 300317
STANBIC BANK 300318
THE ROYAL BANK LIMITED-GHANA 300331
UNITED BANK OF AFRICA 006
UNIVERSAL MERCHANT BANK LTD 300309
ZENITH BANK GHANA LIMITED 012

UNITED STATES OF AMERICA

All Banks (All banks mean that all the banks in the specified region apply).

CANADA

All Banks

UNITED KINGDOM

All Banks

EUROPE

All banks

OTHER COUNTRIES

All banks apply in the following countries:

  • Australia
  • Bahrain
  • China
  • United Arab Emirates
  • Japan
  • Mexico
  • New Zealand
  • Qatar
  • Singapore
  • South Africa
  • Thailand

Operator Wallet Code#

The following table lists the supported operator wallet codes.

Country Operator Name Operator Code(wallet)
Senegal YUP YUP
Senegal UBA prepaid Visa UBA
Senegal Express Union EU
Senegal MOOV MOOV
Senegal MTN MTN
Senegal Tigo Cash TC
Senegal E-Money EM
Senegal Orange Senegal (Sonatel) OM
Ivory Coast E-Money EM
Ivory Coast UBA prepaid Visa UBA
Ivory Coast Express Union EU
Ivory Coast Tigo Cash TC
Ivory Coast MOOV MOOV
Ivory Coast Orange Money OM
Ivory Coast MTN MTN
Cameroon E-Money EM
Cameroon UBA prepaid Visa UBA
Cameroon Express Union EU
Cameroon Tigo Cash TC
Cameroon MOOV MOOV
Cameroon Orange Cameroon OM
Cameroon Nextel NEXTEL
Cameroon MTN MTN
Benin E-Money EM
Benin UBA prepaid Visa UBA
Benin Express Union EU
Benin Tigo Cash TC
Benin Orange Money OM
Benin MOOV MOOV
Benin MTN MTN
Uganda MTN (Uganda) Ltd MTN
Uganda Airtel Uganda LTD Airtel
Uganda Orange OM
Rwanda TIGO TC
Rwanda MTN MTN
Tanzania Zanzibar Telecom Ltd (Zantel) ZANTEL
Tanzania Vodacom (T) Ltd VODACOM
Tanzania AIRTEL Money AIRTEL
Tanzania Tigo Cash TC
Kenya MPESA MPESA
Kenya Equitel (Finserve) EQUITEL
Kenya Airtel Networks Kenya (Essar Telecom) AIRTEL
Kenya Safaricom (GSM) GSM
Zambia Airtel AIRTEL
Zambia MTN MTN
Mali Orange OM
Ghana Ghana Telcom / Vodafone (Ghana) VODAFONE
Ghana Tigo Cash TC
Ghana Airtel / Zain Communications (Ghana) Ltd AIRTEL
Ghana ScanCom Ltd (MTN) MTN
Congo Brazza Airtel AIRTEL
Congo Brazza MTN MTN
Burkina Faso ORANGE OM
Burkina Faso AIRTEL AIRTEL
Zimbabwe Econet ECONET
Zimbabwe Telecel TELECEL
Niger ORANGE OM
Niger MTN MTN

Cash Pick-up Locations#

The following table lists the supported cash pick-up locations.

Country Payout Partner Network Size Currency
Cote d’Ivoire Quick Cash 553 XOF
Gambia Nafa Financial 88 GMD
Guinea Bissau Monamon 101 XOF
Guinea Conakry Nafa Financial 50 GNF
Senegal ATPS 5412 XOF
Senegal WIZALL (Total) 1279 XOF
Sierra Leona Nafa Financial 23 SLL

To view more detailed information about the cash pickup services, click here.

Webhook/Call back#

We use webhooks to get notified about transaction status changes that happen in your Nairagram account.

Theoretically, a webhook URL is like a transport medium you specified on your server to receive details about a transaction event that occurred on your Nairagram account.

The event details we send to you contain information about that particular transaction, we send information, like status code, your company reference number, Nairagram account reference number, and transaction comments.

To add your  URL:

  1. On the Nairgram interface, go to Settings.
  2. In the text field, enter your URL and click on Save.

Sample URL

POST https://www.your_service_url.com

Sample Request

curl –location –request POST ‘https://www.your_service_url.com‘

Sample Response

pinnum=NGN123456789&status=success&ref=ref123456&code=200&comment=transaction_comments.

Get Beneficiary Name#

Use the getBeneficiaryName endpoint to get the beneficiary’s name associated with the specified account number.

To reduce the failed transactions, please use this API to confirm if the account number and the Nigerian bank name provided by a customer are accurate before submitting a transaction.

Syntax

POST https://nairagrambasket.com/api/getBeneficiaryName

Input Parameters

The following table lists the parameters that you need to provide in the getBeneficiaryName request.

Field Value Format Required/Optional Description
username mail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSecretKey Required Input the API key provided to you by your Partner Company.
account_number 0690000004 Optional Input the valid bank account number.
bank_code 044 Optional Input the valid bank code.
For bank names and bank codes refer to the Bank Codes section

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getBeneficiaryName' \
--form 'username="mail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSecretKey"' \
--form 'account_number="0690000004"' \
--form 'bank_code="044"'

Sample Response

{
  "Code": "200",
  "Message": "Success",
  "Content": {
    account_name: ###########
  }
}

Get Bank List#

Use the getBankList endpoint to get a list of banks with their respective code for the Nairagram destination countries based on the country list. For information on Bank Codes refer to the Bank Codes section.

Syntax

POST https://nairagrambasket.com/api/getBankList

Input Parameters

The following table lists the parameters that you need to provide in the getBankList request.

Field Value Format Required/Optional Description
username yourmail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSerectKey Required Input the API key provided to you by your Partner Company.
country KE Optional In ISO ALPHA-2 format. For example, KE, RW, UG

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getBankList' \
--form 'username="yourmail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSerectKey"' \
--form 'country=" KE"'

Sample Response

{
  "Code": "200",
  "Message": "Success",
  "Content": [
    {
      "Name": "AFRICAN BANKING CORPORATION",
      "Code": "035"
    },
    {
      "Name": "BANK OF AFRICA",
      "Code": "019"
    },
    {
      "Name": "BANK OF BARODA",
      "Code": "006"
    },
    {
      "Name": "BANK OF INDIA",
      "Code": "005"
    },
    {
      "Name": "BARCLAYS BANK OF KENYA LTD",
      "Code": "003"
    },
    {
      "Name": "CENTRAL BANK OF KENYA",
      "Code": "009"
    },
    {
      "Name": "CFC STANBIC BANK LIMITED",
      "Code": "031"
    },
    {
      "Name": "CHASE BANK LIMITED",
      "Code": "030"
    },
    {
      "Name": "CITIBANK N.A",
      "Code": "016"
    },
    {
      "Name": "CO-OPERATIVE BANK OF KENYA",
      "Code": "011"
    },
    {
      "Name": "COMMERCIAL BANK OF AFRICA",
      "Code": "007"
    },
    {
      "Name": "CONSOLIDATED BANK KENYA LTD",
      "Code": "023"
    },
    {
      "Name": "CREDIT BANK LIMITED",
      "Code": "025"
    },
    {
      "Name": "DEVELOPMENT BANK OF KENYA LTD",
      "Code": "059"
    },
    {
      "Name": "DIAMOND TRUST BANK KENYA LTD",
      "Code": "063"
    },
    {
      "Name": "DUBAI BANK LTD",
      "Code": "020"
    },
    {
      "Name": "ECO BANK",
      "Code": "043"
    },
    {
      "Name": "EQUATORIAL COMM.BANK LTD.",
      "Code": "049"
    },
    {
      "Name": "Equity Bank",
      "Code": "068"
    },
    {
      "Name": "FAMILY BANK LIMITED",
      "Code": "070"
    },
    {
      "Name": "FIDELITY COMMERCIAL BANK LTD",
      "Code": "060"
    },
    {
      "Name": "FINA BANK LIMITED",
      "Code": "053"
    },
    {
      "Name": "FIRST COMMUNITY BANK LIMITED",
      "Code": "074"
    },
    {
      "Name": "GIRO BANK LIMITED",
      "Code": "042"
    },
    {
      "Name": "GUARDIAN BANK LIMITED",
      "Code": "055"
    },
    {
      "Name": "GULF AFRICAN BANK LTD",
      "Code": "072"
    },
    {
      "Name": "HABIB BANK A.G. ZURICH",
      "Code": "017"
    },
    {
      "Name": "HABIB BANK LTD",
      "Code": "008"
    },
    {
      "Name": "IMPERIAL BANK LIMITED",
      "Code": "039"
    },
    {
      "Name": "INVESTMENT & MORGAGES BANK",
      "Code": "057"
    },
    {
      "Name": "K-REP LTD",
      "Code": "066"
    },
    {
      "Name": "KENYA COMMERCIAL BANK",
      "Code": "001"
    },
    {
      "Name": "MIDDLE EAST BANK KENYA LTD",
      "Code": "018"
    },
    {
      "Name": "NATIONAL BANK OF KENYA",
      "Code": "012"
    },
    {
      "Name": "NATIONAL IND.CREDIT BANK LTD",
      "Code": "041"
    },
    {
      "Name": "ORIENTAL COMMERCIAL BANK",
      "Code": "014"
    },
    {
      "Name": "PARAMOUNT UNIVERSAL BANK LIMITED",
      "Code": "050"
    },
    {
      "Name": "PRIME BANK LTD",
      "Code": "010"
    },
    {
      "Name": "SOUTHERN CREDIT BANKING CORP.",
      "Code": "058"
    },
    {
      "Name": "STANDARD CHARTERED BANK",
      "Code": "002"
    },
    {
      "Name": "TRANSNATIONAL BANK LIMITED",
      "Code": "026"
    },
    {
      "Name": "UNITED BANK OF AFRICA",
      "Code": "076"
    },
    {
      "Name": "VICTORIA COMMERCIAL BANK LTD",
      "Code": "054"
    }
  ]
}

Get State List#

Use the getStateList endpoint to get a list of states with their respective code for the Nairagram destination countries based on the country list.

Syntax

POST https://nairagrambasket.com/api/getStateList

Input Parameters

The following table lists the parameters that you need to provide in the getStateList request.

Field Value Format Required/Optional Description
username yourmail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSerectKey Required Input the API key provided to you by your Partner Company.
country US Required In ISO ALPHA-2 format. For example, KE, RW, UG

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getStateList \
--form 'username="yourmail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSerectKey"' \
--form 'country="US"'

Sample Response

{
  "Code": "200",
  "Message": "Success",
  "Content":[
        {
            "state_id": "11",
            "state_code": "AL",
            "state_name": "Alabama"
        },
        {
            "state_id": "12",
            "state_code": "AK",
            "state_name": "Alaska"
        },
        {
            "state_id": "13",
            "state_code": "AS",
            "state_name": "American Samoa"
        },
        {
            "state_id": "14",
            "state_code": "AZ",
            "state_name": "Arizona"
        }
]
}

Get Security Questions#

Use the getSecurityQuestions endpoint to get all security questions that the Nairagram currently uses for Submit Cash Transactions.

Syntax

POST https://nairagrambasket.com/api/getSecurityQuestions

Input Parameters

The following table lists the parameters that you need to provide in the getSecurityQuestions request.

Field Value Format Required/Optional Description
username yourmail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSecretKey Required Input the API key provided to you by your Partner Company.

Sample Request

curl --location --request POST '' \
--form 'username="yourmail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSecretKey"'

Sample Response

Code: 200
	Message: Success
	Content:[
		{
			id: ###,
			question: “###”,
		},
		{
			id: ###,
			question: “###”,
		}
	]

Get Currency Rate#

Use the getCurrencyRate endpoint to get the partner or wholesale rates at a specific time where the rates are rounded to 2 decimal places. These rates are based on the source country (US, GB, CA, etc.) and vary based on market rates and timing. In addition to this API, emails are received by the key personnel at your partner company.

Syntax

POST https://nairagrambasket.com/api/getCurrencyRate

Input Parameters

The following table lists the parameters that you need to provide in the getCurrencyRate request.

Field Value Format Required/Optional Description
username yourmail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSecretKey Required Input the API key provided to you by your Partner Company.
source_currency USD(country code) Required Input the country code of the source country.
The default country code is the USD.
destination_currency NGN(country code) Required Input the country code of the destination country.

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getCurrencyRate' \
--form 'username="yourmail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSecretKey"' \
--form 'source_currency="USD"' \
--form 'destination_currency="NGN"'

Sample Response

Successful

Code: 200
    Message: " Success"
    Content: {
         source_country: "###",
         destination_country: "####",
         bb_rates: "####"
    }

Get Country List#

Use the getCountryList endpoint to get a list of all countries where the Nairagram has been created and currently operates. Please contact your onboarding Partner Company for a list of the supported countries.

Syntax

POST https://nairagrambasket.com/api/getCountryList

Input Parameters

The following table lists the parameters that you need to provide in the getCountryList request.

Field Description
username Input the valid email address that you sent to your Onboarding Company or Nairagram.
password Input your secure password.
secretKey Input the API key provided to you by Nairagram.

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getCountryList' \
--form 'username="yourmail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSecretKey"'

Sample Response

{
    "Code": "200",
    "Message": "Success",
    "Content": [
        {
            "name": "Nigeria",
            "code": "NGN"
        },
        {
            "name": "Ghana",
            "code": "GHS"
        },
        {
            "name": "Austria",
            "code": "EUR"
        },
        {
            "name": "Switzerland",
            "code": "CHF"
        },
        {
            "name": "Croatia",
            "code": "HRK"
        },
        {
            "name": "Kenya",
            "code": "KES"
        },
        {
            "name": "Poland",
            "code": "PLN"
        },
        {
            "name": "Sweden",
            "code": "SEK"
        },
        {
            "name": "Sierra Leone",
            "code": "SLE"
        },
        {
            "name": "Finland",
            "code": "EUR"
        },
        {
            "name": "Uganda",
            "code": "UGX"
        },
        {
            "name": "Czech Republic",
            "code": "CZK"
        },
        {
            "name": "Norway",
            "code": "NOK"
        },
        {
            "name": "Benin",
            "code": "XOF"
        },
        {
            "name": "Burkina Faso",
            "code": "XOF"
        },
        {
            "name": "Cameroon",
            "code": "XAF"
        },
        {
            "name": "Guinea Bissau",
            "code": "XOF"
        },
        {
            "name": "Ivory Coast",
            "code": "XOF"
        },
        {
            "name": "Mali",
            "code": "XOF"
        },
        {
            "name": "Senegal",
            "code": "XOF"
        },
        {
            "name": "Togo",
            "code": "XOF"
        },
        {
            "name": "India",
            "code": "INR"
        },
        {
            "name": "Niger",
            "code": "XOF"
        },
        {
            "name": "Rwanda",
            "code": "RWF"
        },
        {
            "name": "Guinea Conakry",
            "code": "XOF"
        },
        {
            "name": "Tanzania",
            "code": "TZS"
        },
        {
            "name": "Sweden",
            "code": "SEK"
        },
        {
            "name": "Guinea Conakry",
            "code": "XOF"
        },
        {
            "name": "Czech Republic",
            "code": "CZK"
        },
        {
            "name": "Congo Brazza",
            "code": "XAF"
        },
        {
            "name": "Gabon",
            "code": "XAF"
        }
    ]
}

Get Balance#

Use the getBalance endpoint to display the available balance for a company. Please discuss with your Partner Technical team for any queries.

Syntax

POST https://nairagrambasket.com/api/getBalance

Input Parameters

The following table lists the parameters that you need to provide in the getBalance request.

Field Value Format Required/Optional Description
username Yes Required Input the valid email address that you submitted to your Partner Company.
password Yes Required Input your secure password.
secretKey Yes Required Input the API key provided to you by your Partner Company.

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getBalance' \
--form 'username="Yes"' \
--form 'secretKey="Yes"' \
--form 'password="Yes"'

Sample Response

{
    "Code": "200",
    "Message": "Success",
    "Content": [ ]
}

OR

{
    "Code": "401",
    "Message": "Unauthorized",
    "Content": {
        "error": "Invalid Token"
    }
}

Get Transaction Status#

Use the getTransactionStatus endpoint to get the status of the submitted transaction.

Please provide a call-back URL that can be used to notify you of any change in the transaction status timely.

For example, from complete to pending, from pending to complete, or from pending to canceled.

Syntax

POST https://nairagrambasket.com/api/getTransactionStatus

Response Codes

The following table lists the status codes that are returned in response to the getTransactionStatus request.

Code Status
200 Completed
201 Pending
The Pending status can show any of the following descriptions:
• Awaiting bank confirmation
• Company limit exceeded
• Wallet holding limit exceeded
• Wrong bank account/wallet
• Restricted/Dormant account: Account cannot receive payment
Note: For Company limit exceeded and Wallet holding limit exceeded in the description, please reach out to the business team or the finance team.
202 Canceled
203 Declined

Input Parameters

The following table lists the parameters that you need to provide in the getTransactionStatus request.

Field Value Format Required/Optional Description
username yourmail@mail.com Required Input the valid email address that you submitted to your Partner Company.
password yourPassword Required Input your secure password.
secretKey yourSerectKey Required Input the API key provided to you by your Partner Company.
transaction_pin 123456789098 — The transaction PIN would be returned from the submitTransaction or transaction_number request.

Sample Request

curl --location --request POST 'https://nairagrambasket.com/api/getTransactionStatus' \
--form 'username="yourmail@mail.com"' \
--form 'password="yourPassword"' \
--form 'secretKey="yourSerectKey"' \
--form 'transaction_pin="1234567890"'

Sample Response

{
  "Code": "200",
  "Message": "Success",
  "Content": {
    transaction_pin: NGN1234567890
    transaction_status: "Completed"
  }
}

OR

{
  "Code": "201",
  "Message": "Pending"
  "Content": {
    transaction_pin: NGN1234567890
    transaction_status: "Pending"
    description:"Wrong bank account/wallet"
  }
}

User Acceptance Complete Testing (UAT)#

User Acceptance – Confirmation of integration and completion phase

When you complete the integration with Nairagram API, ensure that you complete the User Acceptance form while referencing each transaction PIN and the results.

Complete the UAT certification form below and email the completed form to the business team.

©2022 - Nairagram Ltd. All rights reserved.