Nubapi Login / Signup

Real-time Nigeria Bank Account validation API.

You can lookup any bank account details in Nigeria using our free bank API in few seconds to build applications faster and easy.

Documentation Blog

Free integration

Built by Developer, for Developers

Experience the power of real-time validation and unlock a new level of trust and confidence in your financial transactions with our advanced API.

How do I get started?

Sign up to access our API. Click "Sign up" or visit our documentation page. It takes less than 30 seconds to begin!

API cost

As a small team of developers, you can use our service at absolutely no cost. It's completely free. No charges. Nada.

 
require_once 'vendor/autoload.php';
 
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
 
try {
$client = new Client();
$queryParams = [
'account_number' => '12345678910',
'bank_code' => '999992'
];
 
$response = $client->get('https://nubapi.com/api/verify', [
'query' => $queryParams,
'headers' => [
'Authorization' => 'Bearer Your_Bearer_Token'
]
]);
 
$data = json_decode($response->getBody(), true);
 
$accountName = $data['account_name'];
$firstName = $data['first_name'];
$lastName = $data['last_name'];
 ...
$otherName = $data['other_name'];
$accountNumber = $data['account_number'];
$bankCode = $data['bank_code'];
$bankName = $data['Bank_name'];
 
 
}
 
import requests
 
class BankAPI:
BASE_URL = 'https://nubapi.com/api/verify'
 
def __init__(self, bearer_token):
self.headers = {
'Authorization': f'Bearer {bearer_token}',
}
 
def get_account_details(self, account_number, bank_code):
params = {
'account_number': account_number,
'bank_code': bank_code,
}
response = requests.get(self.BASE_URL, headers=self.headers, params=params)
return response.json()
 
@staticmethod
def display_account_details(data):
print(f"Account Name: {data['account_name']}")
print(f"First Name: {data['first_name']}")
print(f"Last Name: {data['last_name']}")
print(f"Other Name: {data['other_name']}")
print(f"Account Number: {data['account_number']}")
print(f"Bank Code: {data['bank_code']}")
print(f"Bank Name: {data['Bank_name']}")
 
if __name__ == "__main__":
BEARER_TOKEN = 'Your_Bearer_Token' # Replace with your actual Bearer token
ACCOUNT_NUMBER = '12345678910'
BANK_CODE = '999992'
 
api = BankAPI(BEARER_TOKEN)
account_data = api.get_account_details(ACCOUNT_NUMBER, BANK_CODE)
api.display_account_details(account_data)
import axios from 'axios';
 
axios.get('https://nubapi.com/api/verify?account_number={#}&bank_code={#}',
{
headers: {
'Authorization': 'Bearer token',
'Content-Type': 'application/json'
}
})
.then((response) => {
console.log(response.data.account_name);
console.log(response.data.account_number);
console.log(response.data.bank_code);
console.log(response.data.Bank_name);
console.log(response.data.status);
console.log(response.data.execution_time);
})
.catch((error) => {
console.error(error);
});
<?php
 
use Donejeh\Nuban\Nubapi;
use Illuminate\Support\Facades\Route;
 ...
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
 
Route::get('/', function () {
return view('welcome');
});
 
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified'])->name('dashboard');
 
 
Route::get('/verify', function () {
 
return app(Nubapi::class)
->getAccountDetails('7038804001', '999992');
 
});
 
require __DIR__.'/auth.php';

Unlimited Account Lookups

You can lookup unlimited number of bank accounts without limitation

Website / App Integration

Let your websites users trust you like a bank as you verify their account number

Anybody or websites can use our API. We do not restrict access.
Our API is highly secure, and our system does not store any bank records.