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

# Request MCP exchange rates

> Collect exchange rates for multi-currency pricing (MCP) to display prices in your customers' currencies.

The Rate Service Classic API
[`exchangerates`](https://docs.fexco.com/api-reference/v2--merchant--exchange-rate/lookup-exchange-rate)
endpoint returns a list of foreign exchange rates for every
currency a merchant supports. You cache these rates locally and
use them to display prices in multiple currencies on your website,
app, or kiosk.

For a conceptual overview of MCP and how it differs from DCC, see
[What is MCP?](https://docs.fexco.com/dcc/guides/getting-started/what-is-mcp.md).

## Before you start

You need the following to request MCP exchange rates:

* A DHS host URL provided by your Fexco project manager. See
  [Environments](https://docs.fexco.com/dcc/api-reference/environments.md) for the full
  list of base URLs and certificate endpoints.
* An acquirer ID (three-letter alphabetic code assigned by Fexco).
* A merchant ID (Merchant Originator Tag) for an MCP-enabled
  merchant. The merchant must be boarded with an MCP-enabled
  template. See
  [Templates](https://docs.fexco.com/dcc/guides/merchant-boarding/how-it-works.md#templates).

> [!NOTE]
>
> MCP is supported by Rate Service Classic and ISO. Rate Service Connect does not
> support MCP yet. See
> [Choose a rate API](https://docs.fexco.com/dcc/guides/rate-service/choose-rate-api.md)
> for a comparison.

## Request all exchange rates

The following steps walk through collecting MCP exchange rates,
caching them locally, and applying them to product prices.

**Step 1**

### Send the request

Send a `GET` request to the
[`exchangerates`](https://docs.fexco.com/api-reference/v2--merchant--exchange-rate/lookup-exchange-rate)
endpoint. In the URL, replace `YOUR_ACQUIRER_ID` with your
acquirer ID and `YOUR_MERCHANT_ID` with the merchant's
MCP-enabled merchant ID.

```bash title="Request" theme={null}
curl -X GET \
  "https://YOUR_DHS_HOST/dhsv2/acquirers/YOUR_ACQUIRER_ID/merchants/YOUR_MERCHANT_ID/exchangerates"
```

```json title="Response" theme={null}
[
  {
    "baseCurrency": {
      "alphaCode": "GBP",
      "minorUnits": 2
    },
    "rate": "2.0937",
    "foreignCurrency": {
      "alphaCode": "AUD",
      "minorUnits": 2
    },
    "marginPercentage": "3",
    "source": "REUTERS WHOLESALE INTERBANK",
    "sourceTimestamp": "2026-01-29T09:59:05.000+0000",
    "expiry": "2026-01-30T00:00:00.000+0000"
  },
  {
    "baseCurrency": {
      "alphaCode": "GBP",
      "minorUnits": 2
    },
    "rate": "2.0788",
    "foreignCurrency": {
      "alphaCode": "CAD",
      "minorUnits": 2
    },
    "marginPercentage": "3",
    "source": "REUTERS WHOLESALE INTERBANK",
    "sourceTimestamp": "2026-01-29T09:59:05.000+0000",
    "expiry": "2026-01-30T00:00:00.000+0000"
  }
]
```

The response returns an array of exchange rate objects, one
for each foreign currency configured on the merchant's
template. No BIN or base amount is needed because MCP rates
are not transaction-specific.

For the complete field reference, see the
[API reference](https://docs.fexco.com/api-reference/v2--merchant--exchange-rate/lookup-exchange-rate.md).

**Step 2**

### Store the rates locally

Cache the returned rates in your application. Use the `rate`
value to convert product prices from the merchant's base
currency to each foreign currency for display on your website
or app.

> [!NOTE]
>
> Each rate object includes an `expiry` timestamp. Do not use
> a rate after its expiry. See
> [Rate expiry](https://docs.fexco.com/dcc/guides/rate-service/rate-expiry.md) for how
> to handle expired rates.

**Step 3**

### Apply rates to product prices

Multiply each product price in the merchant's base currency
by the `rate` for the cardholder's chosen currency. Use the
`minorUnits` field from the `foreignCurrency` object to
determine the correct decimal precision for the converted
amount.

> [!TIP]
>
> Converted prices display correctly and use the right number
> of decimal places for each currency. If the response array
> is empty, no currencies are configured for the merchant.
> Contact your Fexco project manager to verify the merchant's
> MCP template.

## Request rates for specific currencies

If the merchant only needs rates for a subset of currencies, add
a `currency` query parameter with a comma-separated list of
[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency codes. You can use numeric codes, alphabetic
codes, or a mix of both.

```bash title="Request" theme={null}
curl -X GET \
  "https://YOUR_DHS_HOST/dhsv2/acquirers/YOUR_ACQUIRER_ID/merchants/YOUR_MERCHANT_ID/exchangerates?currency=EUR,JPY,USD"
```

```json title="Response" theme={null}
[
  {
    "baseCurrency": {
      "alphaCode": "GBP",
      "minorUnits": 2
    },
    "rate": "0.9200",
    "foreignCurrency": {
      "alphaCode": "EUR",
      "minorUnits": 2
    },
    "marginPercentage": "3",
    "source": "REUTERS WHOLESALE INTERBANK",
    "sourceTimestamp": "2026-07-12T11:20:13.000+0000",
    "expiry": "2026-07-14T11:20:13.000+0000"
  },
  {
    "baseCurrency": {
      "alphaCode": "GBP",
      "minorUnits": 2
    },
    "rate": "156.2600",
    "foreignCurrency": {
      "alphaCode": "JPY",
      "minorUnits": 0
    },
    "marginPercentage": "3",
    "source": "REUTERS WHOLESALE INTERBANK",
    "sourceTimestamp": "2026-07-12T11:20:13.000+0000",
    "expiry": "2026-07-14T11:20:13.000+0000"
  }
]
```

> [!WARNING]
>
> Do not add spaces before or after the commas separating currency
> codes in the `currency` parameter.

## Next steps

* [Rate expiry](https://docs.fexco.com/dcc/guides/rate-service/rate-expiry.md): understand
  how to handle expired rates and when to refresh.
* [What is MCP?](https://docs.fexco.com/dcc/guides/getting-started/what-is-mcp.md): review
  how MCP works, how it differs from DCC, and how often to
  refresh rates.
* [Choose a rate API](https://docs.fexco.com/dcc/guides/rate-service/choose-rate-api.md):
  compare Rate Service Classic, Rate Service Connect, and ISO.
* [Request a DCC offer (Rate Service Classic)](https://docs.fexco.com/dcc/guides/rate-service/dcc-offer-rate-service-classic.md):
  see how DCC rate requests work if your integration needs both
  DCC and MCP.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.