> ## Documentation Index
> Fetch the complete documentation index at: https://developer.nomba.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Fetch bank codes

> Retrieve bank codes and names for all supported Nigerian banks

<CardGroup cols={2}>
  <Card title="Fetch bank codes and names" icon="money-bill" href="/nomba-api-reference/transfers/fetch-bank-codes-and-names">
    Fetch the bank codes and names tied to all banks
  </Card>
</CardGroup>

<Note>
  You need the `bankCode` when performing [bank account lookups](/docs/products/transfers/bank-account-lookup) and [bank transfers](/docs/products/transfers/transfer-to-banks). Call this endpoint once and cache the result — bank codes rarely change.
</Note>

# `GET /v1/transfers/banks`

<CodeGroup>
  ```bash cURL theme={null}
  curl --request GET \
    --url https://api.nomba.com/v1/transfers/banks \
    --header 'Authorization: Bearer <token>' \
    --header 'accountId: <accountid>'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.nomba.com/v1/transfers/banks', {
    headers: {
      'Authorization': `Bearer ${accessToken}`,
      'accountId': accountId,
    },
  });

  const { code, data } = await response.json();
  if (code !== '00') throw new Error('Failed to fetch bank codes');

  const banks = data;
  // Example: find GTBank
  const gtbank = banks.find(b => b.code === '058');
  console.log(gtbank); // { name: 'GTBank', code: '058', nipCode: null, logo: 'https://...' }
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.nomba.com/v1/transfers/banks',
      headers={
          'Authorization': f'Bearer {access_token}',
          'accountId': account_id,
      },
  )

  result = response.json()
  if result['code'] != '00':
      raise Exception('Failed to fetch bank codes')

  banks = result['data']
  # Example: build a lookup dict
  bank_map = {b['name']: b['code'] for b in banks}
  ```

  ```json Response theme={null}
  {
    "code": "00",
    "description": "SUCCESS",
    "message": "SUCCESS",
    "status": true,
    "data": [
      {
        "name": "GTBank",
        "code": "058",
        "nipCode": null,
        "logo": "https://firebasestorage.googleapis.com/v0/b/business-banking-93cc1.appspot.com/o/bankLogos%2FGroup%209.png?alt=media&token=98bde9e8-1862-495d-9046-bd3d96465970"
      },
      {
        "name": "First Bank of Nigeria",
        "code": "011",
        "nipCode": null,
        "logo": "https://firebasestorage.googleapis.com/v0/b/business-banking-93cc1.appspot.com/o/bankLogos%2FGroup%201.png?alt=media&token=06a3a300-dafe-49db-b3d3-049371bf1173"
      },
      {
        "name": "United Bank for Africa",
        "code": "033",
        "nipCode": null,
        "logo": "https://firebasestorage.googleapis.com/v0/b/business-banking-93cc1.appspot.com/o/bankLogos%2FGroup%2025.png?alt=media&token=a2a144de-9c8b-4811-8278-7666746486ee"
      },
      {
        "name": "Addosser Microfinance Bank",
        "code": "090160",
        "nipCode": null,
        "logo": ""
      }
    ]
  }
  ```
</CodeGroup>

#### Response body

<ResponseField name="code" type="string" required>
  Response code. `"00"` indicates success.
</ResponseField>

<ResponseField name="description" type="string" required>
  Response description.
</ResponseField>

<ResponseField name="data" type="object[]">
  List of all supported banks.

  <Expandable title="object" defaultOpen="true">
    <ResponseField name="code" type="string">
      The bank's code. Use this as `bankCode` in transfer and lookup requests.
    </ResponseField>

    <ResponseField name="name" type="string">
      The bank's display name.
    </ResponseField>

    <ResponseField name="nipCode" type="string | null">
      The bank's NIP institution code. May be `null`.
    </ResponseField>

    <ResponseField name="logo" type="string">
      URL of the bank's logo image. An empty string when no logo is available.
    </ResponseField>
  </Expandable>
</ResponseField>
