Financial institutions and states
Three read-only lists: every financial institution NIBSS knows, the subset that are deposit money banks, and the Nigerian states. You need the first two for destinationBankCode on an interbank transfer and for rendering beneficiaryBank and senderBank from webhooks; the third for address fields when you onboard an agent or merchant.
None of these routes has a scope rule. Any valid bearer token opens them. They are not legacy-shaped: each answers HTTP 200 with a bare JSON array, not a { code, desc } envelope, and a failure comes back as a real HTTP status with the standard error body. There are no query parameters and no pagination; cache the result and refresh it daily.
All institutions (CM1)
Section titled “All institutions (CM1)”Every active institution, ordered by name: commercial banks, microfinance banks, mobile money operators, payment service banks and the rest. Around five hundred rows.
curl https://api.bankcore.ng/api/legacy/common/institutions \ -H "Authorization: Bearer $TOKEN"[ { "id": "0f6a2d8e-3b1c-4e9f-8a7d-6c5b4a3f2e1d", "nibssCode": "000014", "name": "Access Bank", "shortName": "ACCESS", "cbnCode": "044", "category": 2, "active": true, "lastSyncedAt": "2026-10-01T02:00:00Z", "createdAt": "2026-03-01T09:12:44Z", "updatedAt": "2026-10-01T02:00:00Z", "version": 3 }]| Field | Description |
|---|---|
nibssCode |
The 6-digit NIBSS institution code. This is the value to send as destinationBankCode, and the value you receive as beneficiaryBank and senderBank on webhooks and statements. Unique. |
name, shortName |
Display name and abbreviation. shortName may be null for institutions added by hand. |
cbnCode |
The 3-digit CBN code, where one exists. Transfers also accept it as destinationBankCode; BankCore canonicalises to the NIBSS code on the way through. Null for many non-bank institutions. |
category |
NIBSS institution category as the raw number NIBSS publishes. See the table below. Null for institutions added outside the NIBSS load. |
active |
Always true in this list; inactive institutions are not returned. |
lastSyncedAt |
When the row was last refreshed from the NIBSS list. |
id, createdAt, updatedAt, version |
Record housekeeping. Not meaningful to you. |
Category codes
Section titled “Category codes”category |
Kind |
|---|---|
2 |
Commercial bank (deposit money bank) |
3 |
Development bank |
5 |
Finance company |
6 |
Merchant bank |
7 |
Mortgage bank |
9 |
Microfinance bank |
10 |
Mobile money operator |
11 |
Other payment service provider |
12 |
Payment service bank |
Codes 1, 4 and 8 are absent from the NIBSS edition loaded; the list is numbered by NIBSS and may grow, so treat unknown values as “other”.
Deposit money banks only (CM2)
Section titled “Deposit money banks only (CM2)”The same shape, filtered to category 2: the commercial banks, around thirty rows. Use it when a picker of five hundred entries would bury the bank your customer is looking for. A beneficiary at a microfinance bank or a mobile money operator is still reachable by NIP; use the full list for that.
curl https://api.bankcore.ng/api/legacy/common/institutions/bank \ -H "Authorization: Bearer $TOKEN"States (CM3)
Section titled “States (CM3)”Active Nigerian states ordered by name. Use the name as state when onboarding an agent or merchant.
curl https://api.bankcore.ng/api/legacy/common/states \ -H "Authorization: Bearer $TOKEN"[ { "id": 25, "countryCode": "NG", "name": "Lagos", "code": "LA", "isActive": true, "createdAt": "2026-03-01T09:12:44Z" }]| Field | Description |
|---|---|
id |
Integer id. Stable, but send the name on forms, not the id. |
countryCode |
Always NG. |
name |
State name as it should be stored on a customer. |
code |
Short code, may be null. |
isActive |
Always true in this list. |
In the portal
Section titled “In the portal”The portal has no reference-data page; bank names are rendered from these lists on the Transfers and Payments received pages.