---
title: "Modify merchant accounts"
method: PUT
path: "/accounts"
tags: ["Accounts"]
---

# Modify merchant accounts

`PUT /accounts`

Supports updating of one or more accounts. The account(s) to be updated is identified by the internalAccountNumber.

If a particular account type and currency combination is not yet defined for the merchant, use POST to create the merchant account

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

- MerchantAccountUpdate[]
  - `internalAccountNumber` string, required — This is the internal account number that is auto-generated by bankworks when an account is created. The combination of institution number and this fields makes a unique key that identifies an account.
  - `accountStatus` 'ACTIVE' | 'CLOSED' | 'SUSPENDED' | 'COLLECT_EPS' | 'SUSPENSE_ACCT' — Status of the account, the main values can be Active or Closed
  - `receiverCountryCode` string — ISO-3166 alpha country code for the merchant's bank country. Mandatory if billing level is set to true. If not provided while adding a merchant account then system will default to null.
  - `paymentReference` string — For institutions using IFS funding file this field should contain the direct debit contract number (required for merchant debits). For others it is a reference text to display on merchant's bank statement if supported on the funding file.
  - `statementTypeIndex` string — Statement type to be generated. Allowed to provide valid value if the institution level configuration enabled to override at merchant level. If no value provided while adding a merchant account, then system will default to "900". For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter clasification equal to statementTypeIndex.
  - `statementGenerationCode` 'SUPPRESS' | 'GENERATE' | 'GENERATE_IF_ACTIVITY' | 'GENERATE_IF_NO_ACTIVITY' — Option for statement generation.
  - `annualFeeDueDate` string — YYYYMMDD Date which the annual fee for this account should be generated
  - `calendarTypeIndex` string — Defines the scheme exception days when calculating the funding date of merchant payments as per the institution configuration. If not provided while adding an account, then system will default to null value. For a list of valid codes use Acquirer Profile API get reference-data endpoint with query parameter classification equal calendarTypeIndex.
  - `liabilityAccount` string — ISO 4217 currency of the account selected, possible values are restricted based on the institution configuration. For a list of valid codes use Acquirer Profile API GET /service-contracts/serviceContractIndex/account-settlement.
  - `sepaDirectDebitSeq` 'FRST' | 'RCUR' — Identifies the direct debit sequence i.e. transaction details attached to the payment information block such as first (FRST) or recurring (RCUR).
  - `payable` MerchantAccountUpdatePayable
    - `bankName` string — Merchant's bank name, When Billing Level set to true Bank Name must be populated. 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.
    - `accountName` string — Merchant's bank account name. Mandatory if billing level 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.
    - `counterBankNumber` string — Clearing number of the merchant's bank i.e. the sort code or BSB number (Australia).
    - `accountNumber` string — Merchant's bank account number. This is considered PII data; the value will be encrypted prior to storing.
    - `bankTelephone` string — The telephone number of the merchant bank. Mandatory if billing level is set to true.
    - `bankContactName` string — Name of contact at the merchant's bank. Mandatory if billing level 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.
    - `correspondentBankNo` string — For institutions using IFS funding file this field should contain the swift code of the receiving bank (mapped to international bank code field on the IFS file). Default to zeros if not applicable for the merchant being set up.
    - `iban` string — International Bank Account Number (IBAN) is a series of alphanumeric characters that uniquely identifies a customer's account held at a bank anywhere in the world. this is considered PII data; the value will be encrypted prior to storing
    - `customerPaymentText` string — Additional text that may be used to identify a payment item on the merchants statement. Only valid for institutions using IFS funding solution.
    - `bankCity` string — Credit account bank city optional 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.
    - `paymentFormatIndex` string — Format to be used to present payments to the clearing entity. Only applicable to institutions using the IFS file for funding merchants. If not provided while adding a merchant account, then system will default to the first occurrence (ordered by Index) defined for an institution. For a list of valid codes use Acquirer Profile API get reference-data endpoint with query parameter classification equal paymentFormatIndex
    - `clearingEntityIndex` string — The financial institution that will receive the payment. Only applicable to institutions using the IFS file for funding merchants. If institution level flag enabled to make this field as mandatory for an institution, then valid value must be provided. If institution level flag NOT enabled to make this field as mandatory for an institution and this field is not provided in payload while adding an account, then system will default to the first occurrence (ordered by Index) defined for an institution. For a list of valid codes use Acquirer Profile API get reference-data endpoint with query parameter classification equal clearingEntityIndex.
    - `correspondentBankAccount` string — Bank account for the correspondent bank. Note that this field is not allowed to modify if ceiling limit functionality is enabled for an institution.
    - `calendarDays` string — Number of days to be added to the posting date to calculate the payment/collection funding date
    - `paymentDelayDays` string — Number of days to hold payment to the merchant
    - `ceilingLimit` string — Indicates maximum ceiling amount limit for the merchant payment that is allowed at merchant's billing level account. Provide this field only if merchant account level ceiling limit functionality is enabled for an institution, otherwise omit it. If ceiling limit provided in the payload, then correspondentBankAccount should not be provided in the payload and vice versa. Merchant account currency represents the currency of this amount. Format is NNNNNNNNNNN.NNNN
  - `receivable` MerchantAccountUpdateReceivable
    - `bankName` string — Debit account merchant's bank name. When Billing Level set to true then bank name must be populated. 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.
    - `accountName` string — Debit account merchant's bank account name. Mandatory if billing level 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.
    - `counterBankNumber` string — Clearing number of the merchant's bank i.e. the sort code or BSB number (Australia).
    - `accountNumber` string — Debit account clearing number of the merchant's bank. Mandatory if billing level is set to true. This is considered PII data; the value will be encrypted prior to storing.
    - `bankTelephone` string — Debit account bank telephone number.
    - `bankContactName` string — Name of contact at the merchant's bank. Mandatory if billing level 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.
    - `correspondentBankNo` string — Debit account bank swift code.
    - `iban` string — Debit account International Bank Account Number (IBAN) is a series of alphanumeric characters that uniquely identifies a customer's account held at a bank anywhere in the world. It typically contains a two-character ISO country code, two check digits for validation purposes followed by the domestic bank code and account number. This is considered PII data; the value will be encrypted prior to storing.
    - `customerPaymentText` string — Debit account additional text that may be used to identify a payment item on the merchants statement
    - `bankCity` string — Debit account bank city optional 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.
    - `paymentFormatIndex` string — Debit account format to be used to present payments to the clearing entity. Only applicable to institutions using the IFS file for funding merchants. If not provided while adding a merchant account, then system will default to the first occurrence (ordered by Index) defined for an institution. For a list of valid codes use Acquirer Profile API get reference-data endpoint with query parameter classification equal paymentFormatIndex.
    - `clearingEntityIndex` string — Debit account financial institution that will receive the collection. Only applicable to institutions using the IFS file for funding merchants. If institution level flag enabled to make this field as mandatory for an institution, then valid value must be provided. If institution level flag NOT enabled to make this field as mandatory for an institution and this field is not provided in payload while adding an account, then system will default to the first occurrence (ordered by Index) defined for an institution. For a list of valid codes use Acquirer Profile API get reference-data endpoint with query parameter classification equal clearingEntityIndex.
    - `correspondentBankAccount` string — Bank account for the correspondent bank. Note that this field is not allowed to modify if ceiling limit functionality is enabled for an institution.
    - `calendarDays` string — Number of days to be added to the posting date to calculate the payment/collection funding date
    - `collectionDelayDays` string — dDaysDr = Delay days debit. This field indicates the number of days to hold collection
    - `ddMandateReference` string — A Direct Debit Mandate is a unique reference used for SEPA and BACS collections that authorizes the biller to collect payments from the payer at any time. This field is mandatory for certain payment formats or settlement methods, depending on the configuration of the institution. Currently, certain validations are applied only for the BACS payment format, while validations for SEPA are not supported. It is consumer responsibility to provide this field only for applicable merchant accounts that has been setup for BACS collections into funding file. 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.

## 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/versions/dd7ef6ce81a1/schema)
