---
title: "Retrieve FX Rates"
method: GET
path: "/fx-rate"
tags: ["Generic Acquirer Setup"]
---

# Retrieve FX Rates

`GET /fx-rate`

"This endpoint provides the FX Rate details for an institution that are available on the Fiserv OmniPay database."

## Query parameters

- `effectiveDateAfter` string — Effective date from when the rates applied. Format YYYYMMDD. To extract FX rates for a specific time period, consumers must provide both 'effectiveDateAfter' and 'effectiveDateBefore'. The allowed range is a maximum of 1 month. Dates older than 13 months from the current system date are not permitted. Future date from the current system date are not permitted. If either 'effectiveDateAfter' or 'effectiveDateBefore' is provided, the system will return FX rates for the specified effective date only. If both 'effectiveDateAfter' and 'effectiveDateBefore' are provided then 'effectiveDateAfter' should be less than or equal to 'effectiveDateBefore'.
- `effectiveDateBefore` string — Effective date to when the rates applied. Format YYYYMMDD. To extract FX rates for a specific time period, consumers must provide both 'effectiveDateAfter' and 'effectiveDateBefore'. The allowed range is a maximum of 1 month. Dates older than 13 months from the current system date are not permitted. Future date from the current system date are not permitted. If either 'effectiveDateAfter' or 'effectiveDateBefore' is provided, the system will return FX rates for the specified effective date only. If both 'effectiveDateAfter' and 'effectiveDateBefore' are provided then 'effectiveDateAfter' should be less than or equal to 'effectiveDateBefore'.
- `fxCategoryIndex` string — Index of the FX Category belongs to the Scheme. If not populated, all Scheme's related FX rates defined for the institution will be returned in the response. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to 'fxCategory'.
- `counterCurrencyCode` string — The ISO 4217 alpha currency code defined for the counter currency. The ISO 4217 alpha currency code defined for the counter currency. To extract FX rates for a specific time period, consumers must provide this field along with 'effectiveDateAfter' and 'effectiveDateBefore'.
- `limit` integer — The number of items to return.
- `offset` integer

## Headers

- `Content-Type` 'application/json' | 'application/json;charset=UTF-8', required
- `FSV-Interaction-Id` string, required
- `Institution-Number` string, required
- `Environment` string, required

## Response `200`

OK

- InlineResponse20012 — An API response. The API response will be either a `SUCCESS` or an `ERROR`. A partial success or warning scenario will be treated as a Success with embedded messages in the meta data. A full success may not have messages. The API response will contain at least one of the following top level members."
  - `meta` MetaType — Supplementary information about the data.
    - `paging` PagingMetaType — Map containing pagination related information about data.
      - `count` integer — Total number of records present in system which can be retrieved.
      - `totalPages` integer — Total number of pages with maximum limit taken into account.
      - `currentOffset` integer — Current offset used in request.
      - `currentNumberOfRetrievedRecords` integer — Current number of retrieved records.
      - `maxLimit` integer — Maximum limit of records that can be retrieved.
      - `hasMoreRecords` boolean — Indicates if there are more records available.
      - `pageNumber` integer — Current page number.
    - `sorting` SortingMetaType — Map containing sorting related information about data.
      - `sort` string — Indicates the elements the current data is sorted with and the direction of sorting.
    - `messages` ErrorType[] — Messages related to request processing or response data - any additional information or warnings to be returned in the case of a successful API call.
      - `id` string — Generated message identifier for particular request, helping to locate server logs.
      - `code` string, required — Machine readable, unique code of the message related to particular case within operation execution. For complete list of codes please refer to API portal, messages page.
      - `title` string, required — Short description of the error. Not for displaying purposes.
      - `detail` string — Provides additional low-level details about the error to assist with troubleshooting. Not for displaying purposes.
      - `source` SourceType — Object containing references to the source of the message.
        - `pointer` string — Indicates the element in the request document which caused the error.
        - `parameter` string — Indicates which query parameter caused the error.
        - `header` string — Indicates which header caused the error.
  - `data` object[] — "Contains the primary data to be returned as the API response. Use this object only when respnse type is an array. It will not be returned in case of error."
    - `externalTerminalId` string — The unique id for the terminal. This value should be unique within the institution.
    - `serialNumber` string — The serial number of the terminal.
    - `contactName` string — Contact name at terminal location. There is no pattern defined for this field. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `terminalLocation` string — Location of the terminal. There is no pattern defined for this field. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `terminalCountry` OPYDevicesTerminalCountryObj — Country where terminal is located.
      - `countryCode` string — ISO-3166 alpha country code representing the country the terminal is located. There is a restriction on the allowed countries for the institution.
      - `countryName` string — Contains description associated to a code in English.
    - `city` string — This field indicates the city where the terminal is located. There is no pattern defined for this field. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `telephone` string — Connection id or phone number for the terminal.
    - `schemaId` string — The identity of the schema. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `accountCurrencyCode` string — ISO 4217 currency code. For Merchant Boarding, if the field not provided or populated with null, then "999-All Currencies" is defaulted. If Consumer does not want to set this currency, then value of 3 spaces needs to be passed.
    - `systemBatchId` string — Identity number of the system batch. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `serviceProvider` OPYDevicesServiceProviderObj — Service Provider of the terminal.
      - `serviceProviderIndex` string — Code associated with the company who takes care of the terminal.
      - `serviceProviderDescription` string — Contains description associated to a code in English.
    - `acquiringProfile` OPYDevicesAcquiringProfileObj — Acquirer Profile setup on the terminal.
      - `acquiringProfileIndex` string — Code corresponding to the acquirer profile setup on the terminal. Used by some institutions to configure the terminal at the authorisation host.
      - `acquiringProfileDescription` string — Contains description associated to a code in English.
    - `templateId` string — Template id for the terminal. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `amex` boolean — Indicates if the terminal supports Amex transactions, if true additional fields are required.
    - `clientFee` OPYDevicesClientFeeObj — Fee applied to the merchant for terminal service.
      - `clientFeeIndex` string — If fees need to be applied to the device, this code will indicate which fee should be triggered.
      - `clientFeeDescription` string — Contains description associated to a code in English.
    - `feeEffectiveDate` string — Date the terminal fee is effective from. Format YYYYMMDD. If ommited the default will be the current institution posting date.
    - `feeExpiryDate` string — Terminal fee expiry date. Format YYYYMMDD.
    - `lastFeeDate` string — Last terminal fee date. Format YYYYMMDD.
    - `configOfTerminal` OPYDevicesConfigOfTerminalObj — Configuration of the terminal.
      - `configOfTerminalIndex` string — Code corresponding to the configuration of the terminal.
      - `configOfTerminalDescription` string — Contains description associated to a code in English.
    - `terminalType` OPYDevicesTerminalTypeObj — Terminal type.
      - `terminalTypeIndex` string — Code corresponding to the terminal type.
      - `terminalTypeDescription` string — Contains description associated to a code in English.
    - `emv` boolean — Indicate if the terminal is EMV capable terminal.
    - `installDate` string — Date the terminal was installed. Format YYYYMMDD.
    - `activeDate` string — Date the terminal was activated. Format YYYYMMDD.
    - `terminationDate` string — Termination date of the terminal. Format YYYYMMDD.
    - `terminalPassword` string — The password of the terminal. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `workStation` string — Indicates Work Station number for the merchant terminal. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `amexDetails` ViewMerchantDevicesAmexDetails — Indicates the amex transaction terminal details; only available if amex is set to true.
      - `amexPhoneNo1` string — Amex phone number 1 is the mandatory field if the 'amex' field is set to true.
      - `amexPhoneNo2` string — Amex phone number 2 is the mandatory field if the 'amex' field is set to true.
      - `relatedTId` string — Related Terminal ID is the mandatory field if the 'amex' field is set to true. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
    - `scheduleOfChargeDetails` ViewMerchantDevicesScheduleOfChargeDetails — Indicates the schedule of charge details.
      - `socCode` string — Identifies the type of charge scheme used for the client. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
      - `waiver` string — Terminal fee waiver indicator text or amount. Any extended ASCII characters contain 2 bytes, and UTF8 characters (which include extended ASCII characters) are supported in this field. The maximum length of this field is defined in bytes, and special characters of any extended ASCII character can be more than 1 byte for each character. Consumers should take the number of bytes into consideration when determining the maximum length. For example, if a consumer wants to provide three 2-byte ASCII characters, the actual length of the provided data is 6, not 3.
      - `setupFee` string — Terminal setup fee amount.
      - `gprsRental` string — Frequency of the GPRS rental (Monthly/Annual).
      - `gprsRentalAmount` string — Indicates the GPRS rental amount.
      - `installed` string — Status of the Installation i.e. Installed/Uninstalled.
    - `lastUpdatedBy` string — Contact name of the person or system description that last updated the record.
    - `lastUpdatedDate` string — Date when the record was last updated. Format YYYYMMDD.
  - `errors` ErrorType[] — "Contains one or more error messages and is mutually exclusive with the data item. This will not be returned in success scenarios."
    - `id` string — Generated message identifier for particular request, helping to locate server logs.
    - `code` string, required — Machine readable, unique code of the message related to particular case within operation execution. For complete list of codes please refer to API portal, messages page.
    - `title` string, required — Short description of the error. Not for displaying purposes.
    - `detail` string — Provides additional low-level details about the error to assist with troubleshooting. Not for displaying purposes.
    - `source` SourceType — Object containing references to the source of the message.
      - `pointer` string — Indicates the element in the request document which caused the error.
      - `parameter` string — Indicates which query parameter caused the error.
      - `header` string — Indicates which header caused the error.
  - `links` LinksType — Contains the links to retrieve the resources exposed as part of this API.
    - `self` string — The link to the primary resource being retrieved in the request.
    - `first` string — This is to provide the link to retrieve the first record/page. This SHOULD be used in case server provides pagination of the resource.
    - `last` string — This is to provide the link to retrieve the last record/page. This SHOULD be used in case server provides pagination of the resource.
    - `prev` string — This is to provide the link to retrieve the previous record/page. This SHOULD be used in case server provides pagination of the resource.
    - `next` string — This is to provide the link to retrieve the last record. This SHOULD be used in case server provides pagination of the resource

## Other responses

- `400` — Bad Request - the request could not be interpreted by the server due to incorrect syntax. The client SHOULD NOT repeat the request without modifications.
- `401` — Authentication error
- `403` — Forbidden error i.e. Consumer token credentials are valid but lack of permissions to do this action.
- `404` — Record does not exist.
- `500` — Internal Server Error

---

[API](https://skmtc.net/fiserv/apis/acquirer-profile-in-design.md) · [All operations](https://skmtc.net/fiserv/apis/acquirer-profile-in-design/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fiserv/acquirer-profile-in-design/revisions/dd7ef6ce81a1/schema)
