identitybank codesnigeria

Nigerian bank codes: the complete reference for developers

Every Nigerian bank code, SWIFT/BIC, and USSD shortcode in one place — plus how to query them programmatically via the Mansa API.

2026-05-29·8 min read

Every Nigerian bank transfer, direct debit, and payment routing instruction depends on a three-to-six-digit bank code assigned by the Central Bank of Nigeria (CBN) and administered through the Nigeria Inter-Bank Settlement System (NIBSS). These codes are sometimes called sort codes, bank codes, or NIBSS codes — they all refer to the same thing.

This guide covers every Nigerian bank code in one place, explains the difference between NIBSS codes and SWIFT/BIC codes, and shows you how to query them programmatically using the Mansa API.

What is a Nigerian bank code?

A Nigerian bank code is a numeric identifier assigned to each licensed financial institution operating in Nigeria. It is used by the NIBSS Instant Payment (NIP) system — the rails that power virtually all interbank transfers in Nigeria — to route money to the correct institution.

When you initiate a transfer on any Nigerian banking app and select "GTBank", the app translates that selection into bank code 058. NIBSS uses that code to route the transaction. Without it, the transfer cannot be processed.

Nigerian bank codes are not the same as SWIFT/BIC codes. A bank code routes domestic NIBSS transfers. A SWIFT code routes international wire transfers. Most Nigerian banks have both; some neobanks only have a bank code.

Complete list of Nigerian bank codes

The following table covers all licensed commercial banks, microfinance banks, and digital financial institutions currently operating in Nigeria. Data is sourced from NIBSS and kept current via the Mansa API identity suite.

BankNIBSS CodeSWIFT / BICUSSDType
Access Bank044ABNGNGLA*901#commercial
Citibank Nigeria023CITINGLAcommercial
Ecobank Nigeria050ECOCNGLA*326#commercial
Fidelity Bank070FIDTNGLA*770#commercial
First Bank of Nigeria011FBNINGLA*894#commercial
First City Monument Bank (FCMB)214FCMBNGLA*329#commercial
Guaranty Trust Bank (GTBank)058GTBINGLA*737#commercial
Heritage Bank030HBCLNGLA*322#commercial
Jaiz Bank301JAIZNGLE*389*301#non_interest
Keystone Bank082PLNINGLA*7111#commercial
Kuda Microfinance Bank50211microfinance
OPay Digital Services999992*955#fintech
PalmPay999991fintech
Polaris Bank076SKYNGLA*833#commercial
Providus Bank101commercial
Stanbic IBTC Bank221SBICNGLA*909#commercial
Standard Chartered Bank068SCBLNGLAcommercial
Sterling Bank232NAMENGLA*822#commercial
SunTrust Bank100commercial
Union Bank of Nigeria032UBNINGLA*826#commercial
United Bank for Africa (UBA)033UNAFNGLA*919#commercial
Unity Bank215ICITNGLA*7799#commercial
VFD Microfinance Bank566microfinance
Wema Bank035WEMANGLA*945#commercial
Zenith Bank057ZEIBNGLA*966#commercial
Coronation Bank559commercial
Parallex Bank526commercial
Globus Bank00103commercial
Lotus Bank303non_interest
Moniepoint Microfinance Bank50515*5573#microfinance

NIBSS codes vs SWIFT/BIC codes

The distinction matters when you are building payment flows or KYC integrations:

NIBSS Bank CodeSWIFT / BIC Code
Used forDomestic NIP transfersInternational wire transfers
Format3–6 digits8 or 11 characters (XXXXNGLA)
Example (GTBank)058GTBINGLA
Required byAll Nigerian apps, fintechsForeign bank transfers
Who assigns itCBN / NIBSSSWIFT network

For Nigerian retail fintech — transfer apps, wallet providers, payment gateways — you almost always need the NIBSS code. The SWIFT code becomes relevant when your product touches international remittance or cross-border B2B payments.

Neobank and fintech codes

The codes for neobanks and mobile money providers are the ones developers most frequently search for because they are newer, not in old reference lists, and have higher transaction volumes among younger demographics.

BankNIBSS CodeUSSDNote
OPay Digital Services999992*955#Highest mobile money volume in Nigeria
PalmPay999991Second-largest mobile money provider
Moniepoint MFB50515*5573#Unicorn — fastest-growing agent banking network
Kuda MFB50211Digital-only microfinance bank

Querying bank codes via API

Hard-coding a bank code list in your app is a maintenance problem. Banks get acquired, codes change, new institutions launch. The Mansa API identity suite gives you a live, maintained bank code reference you can query at runtime.

Get all Nigerian banks

curl
curl "https://mansaapi.com/api/v1/identity/banks?country=NG" \
  -H "Authorization: Bearer YOUR_API_KEY"
Response (truncated)
{
  "success": true,
  "data": [
    {
      "name": "Access Bank",
      "code": "044",
      "swift_code": "ABNGNGLA",
      "type": "commercial",
      "country": "NG",
      "mobile_money": false,
      "ussd": "*901#"
    },
    {
      "name": "Guaranty Trust Bank (GTBank)",
      "code": "058",
      "swift_code": "GTBINGLA",
      "type": "commercial",
      "country": "NG",
      "mobile_money": false,
      "ussd": "*737#"
    }
  ]
}

Get a single bank by code

curl
curl https://mansaapi.com/api/v1/identity/banks/058 \
  -H "Authorization: Bearer YOUR_API_KEY"

Using the Node.js SDK

Node.js
import { MansaAPI } from "mansaapi";

const mansa = new MansaAPI({ apiKey: "mansa_live_sk_..." });

// All Nigerian banks
const { data: banks } = await mansa.identity.getBanks({ country: "NG" });

// Single bank by code
const { data: gtbank } = await mansa.identity.getBank("058");
console.log(gtbank.name);       // "Guaranty Trust Bank (GTBank)"
console.log(gtbank.swift_code); // "GTBINGLA"
console.log(gtbank.ussd);       // "*737#"

Install the SDK

terminal
npm install mansaapi

Validating the bank code in a transfer flow

A common use case: a user enters a destination account number and selects a bank. Before sending the transfer, validate that the bank code exists and is active.

Node.js — validate bank before transfer
import { MansaAPI, MansaAPIError } from "mansaapi";

const mansa = new MansaAPI({ apiKey: process.env.MANSA_API_KEY });

async function validateBank(bankCode: string) {
  try {
    const { data: bank } = await mansa.identity.getBank(bankCode);
    return { valid: true, bank };
  } catch (err) {
    if (err instanceof MansaAPIError && err.status === 404) {
      return { valid: false, bank: null };
    }
    throw err;
  }
}

// Usage
const result = await validateBank("058");
if (result.valid) {
  console.log(`Routing to: ${result.bank.name}`); // "Guaranty Trust Bank"
}

Building a bank selector dropdown

For payment forms that need a bank dropdown, fetch the full list once at startup and cache it. Bank codes change infrequently — daily cache is sufficient.

Node.js — bank selector
const { data: banks } = await mansa.identity.getBanks({ country: "NG" });

const options = banks
  .filter(b => b.type !== "microfinance") // optional: exclude MFBs
  .map(b => ({
    label: b.name,
    value: b.code,
  }));

Free tool

Need to look up a bank code without writing code? Use the free bank code finder — search any African bank by name, code, or SWIFT, and get the exact API request back.

Try it now

Free API key — 100 requests/day, no credit card.

Read docs