• 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.

Success Codes

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

CodeTitleContentDescriptionExample
200SuccessfulThe request has been processed successfullyThis response code is generated when the request is processed successfully. The transaction is complete NGNC211462007
201Success without payoutThis response code is generated when the transaction gets timed out. Do not retry the operation, instead, perform the getTransactionStatus operation for the status update or speak to your client success team.

Error Messages

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

CodeTitleContentDescription
400Invalid Request{error: “###”}This response code is generated when all of the required parameters are not passed.
401Unauthorized{error: “Invalid Token”}This response code is generated when the API access_token is expired or invalid.
403Forbidden{error: “You are not allowed to use this service”}This response code is generated when you are not authorized to use this service.
440Failed{error: “An error has occurred while processing the request. A corresponding error message is always sent back”}This response code is generated when the account is invalid. For example, a dormant account, a restricted account, a foreign denominated account rather than a local currency account. This response code is generated also occurs when excess or less than the required digits have been entered. For example, Nigerian bank accounts numbers have 10 digits.
503Bank 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.

BankAccount NumberCountryBank Code
Any Nigerian BankAny 10 digit numberNigeria044
Any Ghanaian BankAny 12-14 digitsGhana004
Any Tanzanian BankAny 8 digitsTanzania0044
Any Indian BankAny 12-14 digitsIndia0004
Any Swedish BankAny 12-17 digitsSweden5000
Any Kenyan bankAny 10-16 digitsKenya49003
Any Norway BankAny 12-17 digitsNorway8601
Any Czech RepublicAny 12-17 digitsCzech Republic0800
XOF and XAF banks5-17 digits numberBurkina 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.

CodeDescription
200Success
201Success – pending payout to beneficiation
Note: Do not retry the transaction.
400Invalid request
401Unauthorized error “Invalid Token”
403Forbidden – “You are not allowed to use this service”
440Failed – “Invalid bank account number”
Note: Before re-initiating, editing, or canceling any transaction with the error “440, please do Get Transaction Status to confirm the updated status.”

Input Parameter

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

FieldValue FormatRequired/OptionalDescription
usernamemail@mail.comRequiredInput the valid email address that you submitted to your Partner Company.
passwordyourPasswordRequiredInput your secure password.
secretKeyyourSerectKeyRequiredInput the API key provided to you by your Partner Company.
senderfirstnamefirstNameRequiredInput the first name of the sender. For example, Jane.
senderlastnamelastNameRequiredInput the last name of the sender. For example, Doe.
senderemailsendermail@mail.comRequiredInput the email address of the sender.
senderphone07011111111RequiredInput the valid phone number of the sender. When unavailable, use the default phone number: 11111111111.
senderaddressNo 5, Address streetRequiredInput the valid address of the sender.
sendercountryUSRequiredInput the code for the sender’s country in ISO ALPHA-2 format. For example, US, GB, CA.
sendercityDallasRequiredInput the name of the sender’s city.
sendfromstateTXRequiredInput a 2-letter abbreviation of the sender’s state. For example, TX, NY, WA. Non-US default: 01.
senderpostalcode178980RequiredInput the sender’s postal code.
dateofbirth1968-02-05RequiredInput the date of birth of the sender in the valid format: YYYY-MM-DD.
tofirstnamebeneficiaryFirstNameRequiredInput the beneficiary’s first name. For example, John.
tolastnamebeneficiaryLastNameRequiredInput the beneficiary’s last name. For example, Doe.
tocountryNGRequiredInput the code for the beneficiary’s country in ISO ALPHA-2 format. For example, NG, GH, KE.
tobankaccountnameAccountFullNameRequiredInput the valid bank account name of the beneficiary’. For example, Jane Doe.
tobankaccountnumber0690000004RequiredInput 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.
tobanknameAccess Bank PlcRequiredInput 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”
tobankcode044RequiredInput 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.
fromamount300RequiredInput an amount to send. The minimum value is $10 USD.
exchangerate454RequiredInput the exchange rate.
fees10Optional Input the fees. The default fee is 0 unless specified.
transaction_number123456784568RequiredIndicates the transaction number that can be of 10 to 25 characters.
fromcurrencyUSDRequiredIt can also be the settlement currency per your agreement. For example, USD, GBP, CAD, EUR.
tocurrencyUSDOptional The settlement currency in eIther USD, GBP, CAD, or EUR based on your agreement.
customeridAssigned sender’s unique numberOptional This is required for SEPA payment.
Note: This is not a transaction reference but is unique for each sender.
partytype“PERSON” or “ORGANISATION”OptionalIndicates 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.

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

Input Parameters

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

FieldValue FormatRequired/OptionalDescription
usernameyourmail@mail.com Required Input the valid email address that you submitted to your Partner Company.
passwordyourPassword Required Input your secure password.
secretKeyyourSecretKey Required Input the API key provided to you by your Partner Company.
transaction_pinNGN###########OptionalInput the transaction PIN returned from the SubmitTransaction or Submit WalletTransaction 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###########"'

Sample Response

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

Code: 201,
"Message": "Your cancelation request has been Submitted. 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.

NumberCarrierCountry
7086543211—Nigeria
577916900TigoGhana
265543343AirtelGhana
552645758MTNGhana
508224845VodafoneGhana
722000000SafaricomKenya
763555496EquitelKenya
779000000MTNUganda

Input Parameters

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

FieldValue FormatRequired/OptionalDescription
usernamemail@mail.comRequiredInput the valid email address that you submitted to your Partner Company.
passwordyourPasswordRequiredInput your secure password.
secretKeyyourSerectKeyRequiredInput the API key provided to you by your Partner Company.
senderfirstnamefirstNameRequiredInput the first name of the sender. For example, Jane.
senderlastnamelastNameRequiredInput the last name of the sender. For example, Doe.
senderemailsendermail@mail.comRequiredInput the email address of the sender.
senderphone07011111111RequiredInput the valid phone number of the sender. When unavailable, use the default phone number: 11111111111.
senderaddressNo 5, Address streetRequiredInput the valid address of the sender.
sendercountryUSRequiredInput the code for the sender’s country in ISO ALPHA-2 format. For example, US, GB, CA.
sendercityDallasRequiredInput the name of the sender’s city.
sendfromstateTXRequiredInput a 2-letter abbreviation of the sender’s state. For example, TX, NY, WA. Non-US default: 01.
senderpostalcode178980RequiredInput the sender’s postal code.
dateofbirth1968-02-05RequiredInput the date of birth of the sender in the valid format: YYYY-MM-DD.
tofirstnamebeneficiaryFirstNameRequiredInput the beneficiary’s first name. For example, John.
tolastnamebeneficiaryLastNameRequiredInput the beneficiary’s last name. For example, Doe.
tocountryUGRequiredInput the code for the beneficiary’s country in ISO ALPHA-2 format. For example, NG, GH, KE.
tophone7086543211RequiredPlease do not include the country code. For example, +221
walletMTNRequiredInput the valid name of the wallet operator. For example, MTN, Airtel, etc.
fromamount300RequiredInput an amount to send. The minimum value is $10 USD.
exchangerate454Optional Input the exchange rate.
fees10Optional Input the fees. The default fee is 0 unless specified.
transaction_number123456784568RequiredIndicates the transaction number that can be of 10 to 25 characters.
fromcurrencyUSDRequiredIt 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.

CodeStatus
200Success
Note: You will receive the error code 200 when the beneficiary picks up the cash.
201Success pending payout to beneficiation (Do not try again)
400Invalid Request
401Unauthorized error: “Invalid Token”
403Forbidden “You are not allowed to use this service”
440Failed – Invalid bank account number”
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.

FieldValue FormatRequired/OptionalDescription
usernameMAIL@MAIL.l.com Required Input the valid email address that you submitted to your Partner Company.
passwordYour Password Required Input your secure password.
secretKeyYourKey Required Input the API key provided to you by your Partner Company.
senderfirstnamefirstName Required Input the first name of the sender. For example, Jane.
senderlastnameLastName Required Input the last name of the sender. For example, Doe.
sendercityLondon Required Input the name of the sender’s city.
sendercountryUS Required Input the code for the sender’s country in ISO ALPHA-2 format. For example, US, GB, CA.
senderaddressNo 5, Address street Required Input the valid address of the sender.
senderpostalcode178980 Required Input the sender’s postal code.
senderemailsendermail@mail.com Required Input the email address of the sender.
toaddressLagosOptional Input the valid address of the beneficiary. 
security_question_id2RequiredInput the security question ID.
security_answertestRequiredInput the answer to the security question.
source_of_fundssalaryRequiredThis can also include pensions and savings.
purpose_of_fundsfamily supportRequired This can also include medication, housing, etc.
tophone12345678RequiredThe 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.
tofirstnameBeneficiary First NameRequiredPlease ensure the beneficiary’s first, middle, and last name agrees to the beneficiary’s Government-issued ID.
tomiddlenameBeneficiary Middle NameOptional Please ensure the beneficiary’s first, middle, and last name agrees to the beneficiary’s Government-issued ID.
tolastnameBeneficiary Last NameRequiredPlease ensure the beneficiary’s first, middle, and last name agrees to the beneficiary’s Government-issued ID.
dateofbirth1985-12-29Required Input the date of birth of the sender in the valid format: YYYY-MM-DD.
fromamount200RequiredInput an amount to send. The minimum value is USD 10.
fromcurrencyUSDRequired It can also be a settlement currency per your agreement. For example, USD, GBP, CAD, EUR.
transaction_number022111712000060271266Required 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.
sendfromstate1Required Input a 2-letter abbreviation of the sender’s state. For example, TX, NY, WA. Non-US default: 01.
fees0Optional Input the fees. The default fee is 0 unless specified.
exchangerate1.3Optional Input the exchange rate.
toemaila@gmail.comRequiredThis is used to confirm the pickup and delivery.
tocurrencyUSDOptionalInput the currency for the beneficiary. 
senderphone7654533231Required Input the valid phone number of the sender. When unavailable, use the default phone number: 11111111111.
tocountryNGOptionalInput the country code in ISO ALPHA-2 format. For example, NG, GH, KE. It is required for Nigeria only.
cashpickuplocation002RequiredPlease 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.

CodeStatus
200Success
401Unauthorized 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.

FieldValue FormatRequired/OptionalDescription
usernameusernameRequired Input the valid email address that you submitted to your Partner Company.
passwordpasswordRequired Input your secure password.
secretKeySecretKeyRequired Input the API key provided to you by your Partner Company.
countryNGOptionalInput 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

FieldValue FormatRequired/OptionalDescription
usernamemail@mail.comRequiredInput the valid email address that you submitted to your Partner Company.
passwordyourPasswordRequiredInput your secure password.
secretKeyyourSerectKeyRequiredInput the API key provided to you by your Partner Company.
countrycountry_codeRequiredInput 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.

FieldValue FormatRequired/OptionalDescription
usernameYes Required Input the valid email address that you submitted to your Partner Company.
passwordYes Required Input your secure password.
secretKeyYes Required Input the API key provided to you by your Partner Company.
countryYesRequiredInput the country code.
pageYesRequiredinput the page number of returned list.(50 per page)
currencyYesOptionalCurrency 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 NameBank Code
ACCESS BANK PLC044
ASO SAVINGS AND LOANS90001
ASSETMATRIX MFB90287
CELLULANT100005
CITI BANK023
CONTEC GLOBAL100032
CORONATION MERCHANT BANK559
DIAMOND BANK (OLD DIAMOND ACCOUNT NO)063
EARTHOLEUM100021
ECOBANK NIGERIA050
ENTERPRISE BANK084
FBNQUEST MERCHANT BANK911
FCMB214
FIDELITY BANK070
FIRST BANK011
FSDH MERCHANT BANK601
GLOBUS BANK027
GUARANTY TRUST BANK058
HEDONMARK100017
HERITAGE BANK030
IMPERIAL HOMES MORTGAGE BANK415
INNOVECTIVESKESH100029
INTELLIFIN100027
JAIZ BANK301
KEYSTONE BANK082
KUDA MICROFINANCE BANK90267
MONEYBOX AFRICA LIMITED100020
NEW PRUDENTIAL BANK561
NOVA MERCHANT BANK637
PROVIDUS BANK101
RAND MERCHANT BANK502
SKYE BANK (POLARIS)076
STANBIC – IBTC BANK039
STANDARD CHARTERED BANK068
STERLING BANK232
TAJ BANK026
TITAN TRUST BANK025
UBA033
UNION BANK032
UNITY BANK215
VFD MICROFINANCE BANK566
WEMA035
ZENITH BANK057

GHANA

The following table lists the supported banks in Ghana.

Bank NameBank Code
ACCESS BANK LTD025
ADOM SAVINGS AND LOANS300360
AGRICULTURAL DEVELOPMENT BANK300307
BARCLAYS BANK300303
CAL BANK300313
ECOBANK GHANA LIMITED300312
ENERGY BANK029
FIDELITY BANK LIMITED300323
FIRST ALLIED SAVINGS AND LOANS300351
FIRST ATLANTIC BANK017
GCB BANK LTD004
GUARANTY TRUST BANK GHANA LIMITED300322
HERITAGE BANK300359
HFC BANK GHANA LIMITED300310
NATIONAL INVESTMENT BANK300305
PRUDENTIAL BANK300317
STANBIC BANK300318
THE ROYAL BANK LIMITED-GHANA300331
UNITED BANK OF AFRICA006
UNIVERSAL MERCHANT BANK LTD300309
ZENITH BANK GHANA LIMITED012

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.

CountryOperator NameOperator Code(wallet)
SenegalYUPYUP
SenegalUBA prepaid VisaUBA
SenegalExpress UnionEU
SenegalMOOVMOOV
SenegalMTNMTN
SenegalTigo CashTC
SenegalE-MoneyEM
SenegalOrange Senegal (Sonatel)OM
Ivory CoastE-MoneyEM
Ivory CoastUBA prepaid VisaUBA
Ivory CoastExpress UnionEU
Ivory CoastTigo CashTC
Ivory CoastMOOVMOOV
Ivory CoastOrange MoneyOM
Ivory CoastMTNMTN
CameroonE-MoneyEM
CameroonUBA prepaid VisaUBA
CameroonExpress UnionEU
CameroonTigo CashTC
CameroonMOOVMOOV
CameroonOrange CameroonOM
CameroonNextelNEXTEL
CameroonMTNMTN
BeninE-MoneyEM
BeninUBA prepaid VisaUBA
BeninExpress UnionEU
BeninTigo CashTC
BeninOrange MoneyOM
BeninMOOVMOOV
BeninMTNMTN
UgandaMTN (Uganda) LtdMTN
UgandaAirtel Uganda LTDAirtel
UgandaOrangeOM
RwandaTIGOTC
RwandaMTNMTN
TanzaniaZanzibar Telecom Ltd (Zantel)ZANTEL
TanzaniaVodacom (T) LtdVODACOM
TanzaniaAIRTEL MoneyAIRTEL
TanzaniaTigo CashTC
KenyaMPESAMPESA
KenyaEquitel (Finserve)EQUITEL
KenyaAirtel Networks Kenya (Essar Telecom)AIRTEL
KenyaSafaricom (GSM)GSM
ZambiaAirtelAIRTEL
ZambiaMTNMTN
MaliOrangeOM
GhanaGhana Telcom / Vodafone (Ghana)VODAFONE
GhanaTigo CashTC
GhanaAirtel / Zain Communications (Ghana) LtdAIRTEL
GhanaScanCom Ltd (MTN)MTN
Congo BrazzaAirtelAIRTEL
Congo BrazzaMTNMTN
Burkina FasoORANGEOM
Burkina FasoAIRTELAIRTEL
ZimbabweEconetECONET
ZimbabweTelecelTELECEL
NigerORANGEOM
NigerMTNMTN

Cash Pick-up Locations#

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

CountryPayout PartnerNetwork SizeCurrency
Cote d’IvoireQuick Cash553XOF
GambiaNafa Financial88GMD
Guinea BissauMonamon101XOF
Guinea ConakryNafa Financial50GNF
SenegalATPS5412XOF
SenegalWIZALL (Total)1279XOF
Sierra LeonaNafa Financial23SLL

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

GET https://www.your_service_url.com

Sample Request

curl –location –request GET ‘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.

FieldValue FormatRequired/OptionalDescription
usernamemail@mail.com Required Input the valid email address that you submitted to your Partner Company.
passwordyourPassword Required Input your secure password.
secretKeyyourSecretKey Required Input the API key provided to you by your Partner Company.
account_number0690000004OptionalInput the valid bank account number.
bank_code044 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.

FieldValue FormatRequired/OptionalDescription
usernameyourmail@mail.comRequiredInput the valid email address that you submitted to your Partner Company.
passwordyourPasswordRequiredInput your secure password.
secretKeyyourSerectKeyRequiredInput the API key provided to you by your Partner Company.
countryKEOptionalIn 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 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.

FieldValue FormatRequired/OptionalDescription
usernameyourmail@mail.comRequired Input the valid email address that you submitted to your Partner Company.
passwordyourPasswordRequired Input your secure password.
secretKeyyourSecretKeyRequired 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.

FieldValue FormatRequired/OptionalDescription
usernameyourmail@mail.com Required Input the valid email address that you submitted to your Partner Company.
passwordyourPassword Required Input your secure password.
secretKeyyourSecretKey Required Input the API key provided to you by your Partner Company.
source_currencyUSD(country code) RequiredInput the country code of the source country.
The default country code is the USD.
destination_currencyNGN(country code) RequiredInput 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.

FieldDescription
usernameInput the valid email address that you sent to your Onboarding Company or Nairagram.
passwordInput your secure password.
secretKeyInput 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.

FieldValue FormatRequired/OptionalDescription
usernameYes Required Input the valid email address that you submitted to your Partner Company.
passwordYes Required Input your secure password.
secretKeyYes 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.

CodeStatus
200Completed
201Pending
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.
202Canceled
203Declined

Input Parameters

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

FieldValue FormatRequired/OptionalDescription
usernameyourmail@mail.comRequiredInput the valid email address that you submitted to your Partner Company.
passwordyourPasswordRequiredInput your secure password.
secretKeyyourSerectKeyRequiredInput the API key provided to you by your Partner Company.
transaction_pin123456789098—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": "Success"
  "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.