---
title: "Modify Merchant Devices"
method: PUT
path: "/merchant-devices"
tags: ["Merchant Devices"]
---

# Modify Merchant Devices

`PUT /merchant-devices`

This operation allows to update one or more merchant device setup for an existing merchant.

## Headers

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

## Request body

- ModifyMerchantDevices[]
  - `externalTerminalId` string, required — 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.
  - `terminalCountryCode` string — ISO-3166 alpha country code representing the country the terminal is located. There is a restriction on the allowed countries for the institution.
  - `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.
  - `serviceProviderIndex` string — Code associated with the company who takes care of the terminal. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to 'serviceProviderIndex'.
  - `acquiringProfileIndex` string — Code corresponding to the acquirer profile setup on the terminal. Used by some institutions to configure the terminal at the authorisation host. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to 'acquiringProfileIndex'.
  - `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.
  - `clientFeeIndex` string — If fees need to be applied to the device, this code will indicate which fee should be triggered. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to 'clientFeeIndex'.
  - `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.
  - `configOfTerminalIndex` string — Code corresponding to the configuration of the terminal. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to 'configOfTerminalIndex'.
  - `terminalTypeIndex` string — Code corresponding to the terminal type. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to 'terminalTypeIndex'.
  - `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` AddMerchantDevicesAmexDetails
    - `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` AddMerchantDevicesScheduleOfChargeDetails
    - `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.

## Response `200`

OK

- InlineResponse400 — 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."
  - `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` — Invalid request
- `401` — Authorization 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)
