Skip to main content

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

{
  "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

FieldDescription
_idThe rate offer ID. Pass this as offerId when creating an exchange.
rateThe exchange rate for this currency pair.
minimumAmountThe minimum amount allowed for this exchange, denominated in minimumAmountCurrency.
statusThe current status of the rate offer. Only OPEN offers can be used.
acceptedPaymentMethodThe payment methods available for sending funds. See below.
payoutPaymentMethodThe payment methods available for receiving funds. See below.
paymentDetailsMonirates’ receiving account details. The shape of each object varies by payment method.
allowedMomoProvidersOnly 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.
"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.
{
  "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.
"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.
{
  "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

ScenarioWhat to look forWhat to do
Standard exchangeacceptedPaymentMethod, payoutPaymentMethodUse only listed methods for debit and credit
Stable currency (e.g. USDT)acceptedPaymentMethod includes STABLE_CURRENCYPick a network from paymentDetails and pass it in buyerDebitPaymentDetails
Mobile money payoutpayoutPaymentMethod includes MOBILE_MONEYPick 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.