> ## 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.

# Get Rate

> How to fetch rate

# Get Rate

Before initiating any exchange, you must first fetch a rate offer. The `_id` from the response is required as the `offerId` parameter when creating an exchange.

**Endpoint:** `GET /utility/exchange-rate`

***

## Response Overview

```json theme={null}
{
  "success": true,
  "data": {
    "_id": "68b5a636793705d3cc1578e7",
    "globalId": "8e3d5610-873b-11f0-9d44-2773f87a83fc",
    "fromCurrency": {
      "name": "British Pound",
      "abbr": "GBP",
      "symbol": "£",
      "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/countries/flag/250x250/gb.png",
      "displayRate": 1
    },
    "toCurrency": {
      "name": "Naira",
      "abbr": "NGN",
      "symbol": "₦",
      "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/countries/flag/250x250/ng.png",
      "displayRate": 1966.5
    },
    "fromCurrencyIso2": "GB",
    "toCurrencyIso2": "NG",
    "rate": 1966.5,
    "status": "OPEN",
    "minimumAmount": 4.57,
    "minimumAmountCurrency": "GBP",
    "acceptedPaymentMethod": ["ZELLE", "BANK_TRANSFER", "INTERAC"],
    "payoutPaymentMethod": ["BANK_TRANSFER", "WALLET"],
    "paymentDetails": [
      {
        "accountName": "Monirates LTD",
        "email": "John@gmail.com",
        "paymentMethod": "ZELLE",
        "iso2": "GB",
        "currency": {
          "name": "British Pound",
          "abbr": "GBP",
          "symbol": "£",
          "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/countries/flag/250x250/gb.png",
          "bankCodeLabel": "Sort code"
        },
        "_id": "69a1470e4e63f3c7a557465c"
      },
      {
        "accountName": "Monirates Ltd",
        "accountNumber": "66558888",
        "providerName": "TESTING BANK",
        "bankCode": "777888600",
        "paymentMethod": "BANK_TRANSFER",
        "iso2": "GB",
        "currency": {
          "name": "British Pound",
          "abbr": "GBP",
          "symbol": "£",
          "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/countries/flag/250x250/gb.png",
          "bankCodeLabel": "Sort code"
        },
        "holderCity": "London",
        "holderStreet": "Walton",
        "holderPostalCode": "997678",
        "_id": "69c17fdaff4b48ac3c66a484"
      },
      {
        "accountName": "Monirate Limited",
        "email": "monirate@gmail.com",
        "paymentMethod": "INTERAC",
        "iso2": "GB",
        "currency": {
          "name": "British Pound",
          "abbr": "GBP",
          "symbol": "£",
          "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/countries/flag/250x250/gb.png",
          "bankCodeLabel": "Sort code"
        },
        "_id": "69e1225780c3e59664e4cde0"
      }
    ]
  },
  "message": "Rate fetched successfully"
}
```

***

## Key Response Fields

| Field                   | Description                                                                              |
| ----------------------- | ---------------------------------------------------------------------------------------- |
| `_id`                   | The rate offer ID. Pass this as `offerId` when creating an exchange.                     |
| `rate`                  | The exchange rate for this currency pair.                                                |
| `minimumAmount`         | The minimum amount allowed for this exchange, denominated in `minimumAmountCurrency`.    |
| `status`                | The current status of the rate offer. Only `OPEN` offers can be used.                    |
| `acceptedPaymentMethod` | The payment methods available for sending funds. See below.                              |
| `payoutPaymentMethod`   | The payment methods available for receiving funds. See below.                            |
| `paymentDetails`        | Monirates' receiving account details. The shape of each object varies by payment method. |
| `allowedMomoProviders`  | Only present when `payoutPaymentMethod` includes `MOBILE_MONEY`. See below.              |

***

## Working with `acceptedPaymentMethod`

`acceptedPaymentMethod` is an array of payment methods the user can use to send funds for this currency pair. The value you pass as `buyerDebitPaymentMethod` when creating an exchange **must** be one of the methods listed here. Passing any other value will result in a validation error.

```json theme={null}
"acceptedPaymentMethod": ["ZELLE", "BANK_TRANSFER", "INTERAC"]
```

### Special case: `STABLE_CURRENCY`

When `acceptedPaymentMethod` includes `STABLE_CURRENCY`, the `paymentDetails` array will contain one object per supported network (e.g. `TRC20`, `ERC20`, `TON`). Each object includes a `walletAddress` and a `network` field.

You must present these network options to the user and pass the selected `network` as part of `buyerDebitPaymentDetails` when creating the exchange.

```json theme={null}
{
  "success": true,
  "data": {
    "_id": "68d52eb2e21ccf7c9cd1ea3b",
    "acceptedPaymentMethod": ["STABLE_CURRENCY"],
    "payoutPaymentMethod": ["BANK_TRANSFER", "WALLET"],
    "paymentDetails": [
      {
        "network": "TRC20",
        "paymentMethod": "STABLE_CURRENCY",
        "walletAddress": "TXLAQ63Xg1NAzckPwKHvzw7CSEmLMEqcdj",
        "iso2": "USDT",
        "currency": {
          "name": "Tether (USDT)",
          "abbr": "USDT",
          "symbol": "₮",
          "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/stablecoins/usdt.png",
          "bankCodeLabel": ""
        },
        "_id": "6969008bb66f152dbf8f4a82"
      },
      {
        "network": "TON",
        "paymentMethod": "STABLE_CURRENCY",
        "walletAddress": "rf537gydu393763g",
        "iso2": "USDT",
        "currency": {
          "name": "Tether (USDT)",
          "abbr": "USDT",
          "symbol": "₮",
          "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/stablecoins/usdt.png",
          "bankCodeLabel": ""
        },
        "_id": "69a957866604a233314a2035"
      },
      {
        "network": "ERC20",
        "paymentMethod": "STABLE_CURRENCY",
        "walletAddress": "DY7eryfcfghuiuu3566tfty",
        "iso2": "USDT",
        "currency": {
          "name": "Tether (USDT)",
          "abbr": "USDT",
          "symbol": "₮",
          "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/stablecoins/usdt.png",
          "bankCodeLabel": ""
        },
        "_id": "69fa027bd41790be78f29807"
      }
    ]
  },
  "message": "Rate fetched successfully"
}
```

***

## Working with `payoutPaymentMethod`

`payoutPaymentMethod` is an array of payment methods the user can use to receive funds. The value you pass as `buyerCreditPaymentMethod` when creating an exchange **must** be one of the methods listed here. Passing any other value will result in a validation error.

```json theme={null}
"payoutPaymentMethod": ["BANK_TRANSFER", "WALLET"]
```

### Special case: `MOBILE_MONEY`

When `payoutPaymentMethod` includes `MOBILE_MONEY`, the response will also contain an `allowedMomoProviders` array. If the user selects `MOBILE_MONEY` as their payout method, they must also select one of the providers from this array and pass it as part of `buyerCreditPaymentDetails`.

```json theme={null}
{
  "success": true,
  "data": {
    "_id": "68b5b515793705d3cc1579d3",
    "acceptedPaymentMethod": ["BANK_TRANSFER", "WALLET"],
    "payoutPaymentMethod": ["MOBILE_MONEY"],
    "allowedMomoProviders": ["VODAFONE", "MTN"],
    "paymentDetails": [
      {
        "accountName": "MONIRATESLIMITE / JOHN DOE",
        "accountNumber": "8029869754",
        "providerName": "SAFE HAVEN SANDBOX BANK",
        "bankCode": "999240",
        "paymentMethod": "BANK_TRANSFER",
        "iso2": "NG",
        "currency": {
          "name": "Naira",
          "abbr": "NGN",
          "symbol": "₦",
          "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/countries/flag/250x250/ng.png",
          "bankCodeLabel": null
        },
        "_id": "6a01913a7a6ab126310a083b"
      },
      {
        "paymentMethod": "WALLET",
        "iso2": "NG",
        "currency": {
          "name": "Naira",
          "abbr": "NGN",
          "symbol": "₦",
          "flag": "https://monirate-product-design.s3.eu-west-2.amazonaws.com/countries/flag/250x250/ng.png",
          "bankCodeLabel": null
        },
        "_id": "6a10ab975999f3497421206e"
      }
    ]
  },
  "message": "Rate fetched successfully"
}
```

***

## Summary

| Scenario                    | What to look for                                   | What to do                                                                             |
| --------------------------- | -------------------------------------------------- | -------------------------------------------------------------------------------------- |
| Standard exchange           | `acceptedPaymentMethod`, `payoutPaymentMethod`     | Use only listed methods for debit and credit                                           |
| Stable currency (e.g. USDT) | `acceptedPaymentMethod` includes `STABLE_CURRENCY` | Pick a network from `paymentDetails` and pass it in `buyerDebitPaymentDetails`         |
| Mobile money payout         | `payoutPaymentMethod` includes `MOBILE_MONEY`      | Pick a provider from `allowedMomoProviders` and pass it in `buyerCreditPaymentDetails` |

Once you have the `_id` and have identified the payment methods for your exchange, proceed to [create an exchange](guides/index).
