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

# Lookup Bank / Provider

> Retrieve available banks or mobile money providers for a given country, and verify account or wallet details before initiating a transaction.

## Overview

Before sending a payout, you'll typically want to:

1. **Fetch the list of available banks or mobile money providers** for the destination country.
2. **Verify the recipient's account or momo number** to confirm the account name before proceeding.

Both steps use a simple two-endpoint flow described below.

***

## Step 1 — Fetch Providers

Use this endpoint to retrieve all supported banks or mobile money networks for a given transfer method and country.

```text theme={null}
GET /v1/transaction/{method}/providers
```

### Path Parameter

| Parameter | Description                                         |
| --------- | --------------------------------------------------- |
| `method`  | Transfer method — `BANK_TRANSFER` or `MOBILE_MONEY` |

### Query Parameters

| Parameter  | Type   | Required | Description                                       |
| ---------- | ------ | -------- | ------------------------------------------------- |
| `currency` | string | Yes      | ISO 4217 currency code (e.g. `NGN`, `GHS`)        |
| `iso2`     | string | Yes      | ISO 3166-1 alpha-2 country code (e.g. `NG`, `GH`) |

### Examples

<CodeGroup>
  ```bash Bank Transfer (NGN · NG) theme={null}
  curl --request GET \
    --url "https://dev.interface.monirates.com/v1/transaction/BANK_TRANSFER/providers?currency=NGN&iso2=NG" \
    --header "x-api-key: <YOUR_API_KEY>"
  ```

  ```bash Mobile Money (GHS · GH) theme={null}
  curl --request GET \
    --url "https://dev.interface.monirates.com/v1/transaction/MOBILE_MONEY/providers?currency=GHS&iso2=GH" \
    --header "x-api-key: <YOUR_API_KEY>"
  ```
</CodeGroup>

### Responses

<CodeGroup>
  ```json Bank Transfer theme={null}
  {
    "success": true,
    "data": [
      { "name": "SOSA MFB", "bankCode": "090836" },
      { "name": "CEVIANT FINANCE LIMITED", "bankCode": "050043" }
    ]
  }
  ```

  ```json Mobile Money theme={null}
  {
    "success": true,
    "message": "Banks fetched successfully",
    "data": [
      {
        "network": "MTN",
        "name": "MTN",
        "code": "MTN",
        "logo": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/momo/mtn.png",
        "hasGateway": true
      },
      {
        "network": "AIRTELTIGO",
        "name": "AIRTELTIGO",
        "code": "AIRTEL",
        "logo": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/momo/airteltigo.png",
        "hasGateway": true
      },
      {
        "network": "VODAFONE",
        "name": "VODAFONE",
        "code": "VODAFONE",
        "logo": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/momo/vodafone.jpeg",
        "hasGateway": true
      },
      {
        "network": "TELECEL",
        "name": "TELECEL",
        "code": "TELECEL",
        "logo": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/momo/telecel.png",
        "hasGateway": false
      }
    ]
  }
  ```
</CodeGroup>

<Note>
  For **Bank Transfer**, hold on to the `bankCode` field — you'll need it in the next step.\
  For **Mobile Money**, hold on to the `code` field — this is what you pass as `network` when verifying.
</Note>

***

## Step 2 — Verify Account

Once you have the provider details, verify the recipient's account name before submitting a payout.

```text theme={null}
POST /v1/transaction/verify-bank-account
```

<Note>
  Account lookup is currently supported for **NGN** and **GHS** only. Support for additional currencies will be available soon.
</Note>

### Request Body

| Field           | Type   | Required for  | Description                                                          |
| --------------- | ------ | ------------- | -------------------------------------------------------------------- |
| `currency`      | string | Both          | ISO 4217 currency code (e.g. `NGN`, `GHS`)                           |
| `iso2`          | string | Mobile Money  | ISO 3166-1 alpha-2 country code (e.g. `GH`)                          |
| `accountNumber` | string | Bank Transfer | The recipient's bank account number                                  |
| `bankCode`      | string | Bank Transfer | The bank code from the providers list                                |
| `phoneNumber`   | string | Mobile Money  | The recipient's phone number in international format (e.g. `233...`) |
| `network`       | string | Mobile Money  | The provider `code` returned from the providers endpoint             |

### Examples

<CodeGroup>
  ```bash Bank Transfer (NGN) theme={null}
  curl --request POST \
    --url https://dev.interface.monirates.com/v1/transaction/verify-bank-account \
    --header "Content-Type: application/json" \
    --header "x-api-key: <YOUR_API_KEY>" \
    --data '{
      "currency": "NGN",
      "accountNumber": "5010480782",
      "bankCode": "999240"
    }'
  ```

  ```bash Mobile Money (GHS) theme={null}
  curl --request POST \
    --url https://dev.interface.monirates.com/v1/transaction/verify-bank-account \
    --header "Content-Type: application/json" \
    --header "x-api-key: <YOUR_API_KEY>" \
    --data '{
      "currency": "GHS",
      "phoneNumber": "233123456789",
      "network": "MTN",
      "iso2": "GH"
    }'
  ```
</CodeGroup>

### Responses

<CodeGroup>
  ```json Bank Transfer theme={null}
  {
    "success": true,
    "message": "Account name resolved successfully!",
    "data": {
      "accountName": "MONIRATES LIMITED / JOHN DOE",
      "accountNumber": "5010480782"
    }
  }
  ```

  ```json Mobile Money theme={null}
  {
    "success": true,
    "message": "Account name resolved successfully!",
    "data": {
      "accountName": "Monirates Limited",
      "accountNumber": "233123456789"
    }
  }
  ```
</CodeGroup>

***

## Sandbox Testing

<Accordion title="NGN — Bank Transfer">
  On the **development environment**, you can test NGN lookup with **ANY OF THE FOLLOWING** accounts provided below:

  | Field           | Value                                    |
  | --------------- | ---------------------------------------- |
  | `accountNumber` | `8028582375`, `5010480782`, `5010755577` |
  | `bankCode`      | `999240`                                 |

  On **production**, any valid Nigerian bank account number and bank code will resolve correctly.
</Accordion>

<Accordion title="GHS — Mobile Money">
  For GHS, you can use a **real phone number and network** to test verification on both the development and production environments — no special sandbox credentials are required.
</Accordion>
