---
title: "On-board a new merchant"
method: POST
path: "/merchants"
tags: ["Endpoint"]
---

# On-board a new merchant

`POST /merchants`

By default it creates a merchant application with status Approved and processes the application so that a merchant is created in the OmniPay platform. Once the merchant is created they platform will accept transactions for the merchant as well as send the funding instructions for the merchant to be paid. The default create option can be overridden using the intent query param.

## Query parameters

- `intent` 'CREATE' | 'BATCH' | 'VALIDATE', required

## Headers

- `Content-Type` 'application/json' | 'application/json;charset=UTF-8', required
- `Correlation-Id` string, required
- `Environment` string, required
- `institutionNumber` string, required

## Request body

- Merchant
  - `detail` MerchantDetail, required — Merchant Information
    - `hierarchy` Hierarchy, required — Position of the merchant within the instituiton hierachy
      - `internalMerchantId` string, required — Unique merchant number to assign to the new merchant, this field will be validated to be unique within the institution.
      - `merchantLevelCode` 'MEMBER' | 'GROUP' | 'SUB_GROUP', required — The hierarchy level at which the merchant will be boarded.
      - `parentInternalMerchantId` string — The internal OmniPay MID to which the merchant needs to be linked to as a child merchant. When populated should be an existing group /sub group merchant MID, if omitted the default is the institution number.
    - `requiredDetails` RequiredDetails, required — This is the mandatory information to board a merchant.
      - `externalMerchantId` string, required — Merchant number to be used throughout the authorization and clearing cycle.
      - `tradeName` string, required — Merchant Trade Name. 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.
      - `companyName` string, required — Merchant's legal company name. 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.
      - `legalFormIndex` string, required — Company entity type for information purposes only, no impact to transaction processing. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to legalFormIndex.
      - `languageIndex` string, required — Merchant language for information purposes only, no impact to transaction processing. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to languageIndex.
      - `mcciso` string, required — Merchant category code (ISO 18245 ), depending on the client region setting this value may be used for clearing transactions to the scheme.
      - `eCommerceIndCode` 'TRADITIONAL_ONLY' | 'ECOMMERCE_ONLY' | 'BOTH', required — Field is used for the quarterly stats which are sent to the schemes.
      - `residentStatusCode` 'NA' | 'RESIDENT' | 'NON_RESIDENT', required — The residency status of the merchant. Indicates whether the merchant is a resident or non-resident for information purposes only, no impact to transaction processing.
      - `accountOfficerIndex` string, required — Merchant account officer; the possible values can be customized per institution, use 000=N/A if not relevant for the institution. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to accountOfficerIndex.
      - `residencyFeeLevelCode` 'NA' | 'GROUP_CLIENT' | 'SUB_GROUP_CLIENT' | 'MEMBER_CLIENT', required — Indicator only applicable to institutions that charge a residency fee.
      - `retailerClassificationCode` string, required — An RCC identifies the type of business performed within a merchant outlet. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal retailerClassificationCode.
      - `branchIndex` string, required — Merchant branch; the possible values can be customized per institution, use 000=N/A if not relevant for the institution. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to branchIndex.
    - `optionalDetails` OptionalDetails — This information is optional when boarding a new merchant.
      - `registrationNo` string — The merchant registration number is a field that is conditional based on the configuration setup of an institution. By default, this field is mandatory, but it can be made optional at the institution level. If the field is provided in the payload, it must have a minimum length of 5 characters. Note that this value will be encrypted before storage, as it is considered PII data. To ensure proper encryption, a minimum length of 5 characters is required.
      - `vatRegNo` string — Merchant registered value added tax number (VAT) . Note this value will be encrypted prior to be stored as this is considered PII data.
      - `contractReference` string — Application contract reference number. This is a free format field for information purpose only.
      - `bankReference` string — Merchant bank reference number. This is a free format field, where the value can be defined by the merchant/acquirer, information purposes only, no impact to transaction processing
      - `floorLimitCurrencyCode` string — Merchant floor limit ISO 4217 currency code. This field contains the merchant floor limit currency for information purposes only, no impact to transaction processing. If not populated while adding a merchant, the currency will default to the institution local currency.
      - `dynamicPricing` boolean — Indicate if the merchant uses dynamic pricing
      - `paymentAdviceGenerationIndex` string — Frequency of payment advice for information only, it does not affect the processing of the payment. Valid values are configured per institution. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to paymentAdviceGenerationIndex.
      - `paymentDeliveryMethodCode` 'EMAIL' | 'FAX' | 'POST' | 'COLLECT' | 'HAND_DELIVER' | 'COURIER' | 'ONLINE' | 'MY_02_FAX' | 'MY_03_COURIE' | 'MY_04_HAND_KL' | 'MY_05_HAND_PJ' | 'MY_06_SPECIAL_DELIVE' | 'MY_07_EMAIL' | 'MY_01_EMAIL' | 'NA' — Payment advice delivery method. This is for information only, it does not affect the processing of the payment.
      - `merchantGradeIndex` string — Merchant grouping by business type and volume. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to merchantGradeIndex.
      - `secondaryTaxID` string — Additional tax ID used by Canadian based merchants with provinces supporting two separate taxes (federal and provincial tax). If provided, then the value must be Upper Case Alphanumeric and minimum of 5 character length. Note this value will be encrypted prior to be stored as this is considered PII data. To suppport encryption process, minimum of 5 character length must be provided. If a user want to delete the value for this field as part of merchant maintenance API i.e. null value, then it is allowed to pass the empty string.
      - `prosaDeterminant` string — Unique identifier of the business by the Internetwork, used by PROSA to process transactions. If a merchant have PROSA acquiring service assigned, then this field is mandatory. Spaces allowed only if a merchant does not have the PROSA acquiring service assigned.
      - `prosaBDUNumber` string — Local number to identify Mexican merchant regulated by Mexican authorities, handled by PROSA. If a merchant have PROSA acquiring service assigned, then this field is mandatory. Zeroes allowed only if a merchant does not have PROSA acquiring service assigned.
      - `signerDateOfBirth` string — Indicates Date of Birth of the Seller's Authorized Signer. The Seller is a legal representative of the business from merchant side. The format is YYYYMMDD. If a merchant have AMEX Optblue acquiring service assigned, then this field is mandatory. Zeroes allowed only if merchant does not have AMEX Optblue acquiring service assigned.
      - `merchantLongName` string — Merchant's legal company name. If consumer wants to store more than 35 characters of the company name, then it can be stored in this field. 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.
      - `mcpRateType` string — This field indicates the type of rate to be used for Multi-Currency Pricing transactions. The value in this field influences the currency conversion applied to merchant funding, especially when OpenFX functionality is enabled for an institution with the necessary FX rate rule setup. If the field not populated in merchant boarding payload, then OmniPay default the value to 'E'(default). For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to mcpRateType.
      - `domesticMcc` string — A domestic MCC in Spain identifies a business's type of goods or services within the country and influences interchange fees, data analysis, and overall payment processing for card transactions. In OmniPay, this data is stored exclusively for reporting purposes and is required only for member-level merchants (Country code as Spain) of specific institutions if the institution's configuration is set up accordingly.
    - `contract` Contract, required — Set of indicators that defines how the merchant is funded, applicable fees and how transactions are cleared.
      - `serviceContractIndex` string, required — The service contract defines the processing rules for a merchant. The service contract for a new member of an existing group has to be the same as the service contract for a parent client. For a list of valid codes use Acquirer Profile API end-point get /service-contracts.
      - `clientTariffIndex` string, required — The client tariff determines the set of account fees applicable to the merchant. For a list of valid codes use Acquirer Profile API end-point get service-contracts/{serviceContractIndex}/tariff the valid values will have the tariffType:CLIENT_TARIFF.
      - `postingTariffIndex` string, required — The posting tariff determines how transactions and fees are posted to the merchant accounts. For a list of valid codes use Acquirer Profile API end-point get service-contracts/{serviceContractIndex}/account-settlement.
      - `settlementMethodIndex` string, required — The settlement method defines the frequency and grouping of transactions posted to makeup a payment as well as the funding channel. For a list of valid codes use Acquirer profile API get service-contracts/{serviceContractIndex}/account-settlement end-point.
      - `paymentMethodIndex` string — Institution defined value related to a specific payment interface. Default to spaces when no values provided. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to paymentMethodIndex.
      - `protectAgainstFXChange` boolean, required — Flag to indicate if the merchant is protected against currency fluctuations on the event the transaction is disputed and the transaction currency is different to the merchant funding currency.
      - `clientRegionIndex` string, required — The selected client region will determine how the transactions are settled to the scheme. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to clientRegionIndex.
      - `tierStructureIndex` string — If tier pricing is active on the institutions this field indicates which is the Tier Structure assigned to the merchant, if not in use for the institution use 000=N/A for this field. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to tierStructureIndex.
      - `reclassBillbackIndicatorCode` 'NA' | 'NO_BILLBACK' | 'AUT_BILLBACK_DR' | 'AUT_BILLBACK_ALL' | 'MANUAL_BILLBACK' — Indicator to pass the Reclass fee to the merchant. Reclass Fees can only be passed to the merchant when configured for the Institution.
      - `withholdIncomeTariffIndex` string — The withhold income tariff id for the institution. For a list of valid codes use Acquirer Profile API end-point get service-contracts/{serviceContractIndex}/tariff the valid values on the result will have tariffType= WITHHOLD_INCOME_TARIFF.
      - `withholdVatTariffIndex` string — The withhold vat tariff id for the institution. For a list of valid codes use Acquirer Profile API end-point get service-contracts/{serviceContractIndex}/tariff the valid values on the result will have tariffType=WITHHOLD_VAT_TARIFF .
      - `regionalTaxIndex` string — Indicator if regional tax to be generated or not
      - `tierPricingFlag` string — Indicates whether tiered pricing is enabled and at which level. "002"(S) = sub-group level enabled, "001"(M) = member level enabled, "000"(N/A) = not enabled. If set to "S" or "M", tierStructureIndex must be populated with a valid tier group; if set to "N/A", tierStructureIndex must be populated with "000". If a parent merchant is marked "S", all child merchants must also be set to "S" and have the same tierStructureIndex as the parent. If a parent merchant is marked either "M" or "NA", child merchants can be set to either "M" or "NA". For sub-group merchant boarding, supplying "001" (M) has no effect because it permits child merchants to be either member-level or not tiered. Consequently, the API sets the sub-group merchant value to "000" (N/A), and tierStructureIndex should be "000". For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to tierPricingFlag.
    - `location` Location, required — Main merchant location, depending on the client region these values could used when clearing transactions to the scheme.
      - `countryCode` string, required — ISO-3166 alpha country code representing the country the merchant is located in, the values are restricted based on institutions configuration. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to countryCode.
      - `state` string — Code representing the state the merchant is located in. If the country selected is United States, Canada or Italy, this field is mandatory. 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.
      - `cityUrl` string, required — Merchant city for physical merchants, URL for ecommerce merchants. 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.
      - `zip` string — Merchant zip/postcode. If a visa-related "serviceIndex" is assigned to a merchant and the merchant country is the USA, the allowed value should be a 5-digit number, except for 00000. If a Mastercard/Europay-related "serviceIndex" is assigned to a merchant, the allowed value should match the pattern "[a-zA-Z0-9 ]", except for 99999. If all of these scheme-related "serviceIndex" values are assigned to the merchant, the provided value must satisfy all of these validation criteria.
      - `street` string — Merchant street. 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.
      - `serviceTelNo` string — Merchant service telephone number
      - `countyIndex` string — County id where the merchant is located. As per Institution configuration. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to countyIndex.
      - `municipalityIndex` string — Municipality id where the merchant is located. As per Institution configuration. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to municipalityIndex.
      - `telephone` string — Merchant telephone number. The format should be 'Country code' (numeric value) followed by '-' followed by actual phone number (numeric value). For Merchant Maintenance API, empty string can be passed if a user wants to delete the value.
      - `regionOverrideFlag` boolean — Flag relevant to institutions processing Payment Facilitator Single MID Model for user defined regions. If the value passed as empty string, then default value 'false' is considered.
      - `url` string — A valid URL/website address of the e-commerce merchant. Applicable for MasterCard e-commerce transactions. If not provided at the transaction level, OmniPay will retrieve it from the merchant profile and include it in the scheme clearing file and respective merchant profile reporting. However, if this optional field is provided, it cannot consist solely of spaces or zeros.
    - `schemeDetails` SchemeDetails — Additional data for for specific schemes
      - `crossBorderFeeCode` 'NONE' | 'MASTERCARD' | 'VISA' | 'BOTH' — Indicates whether a merchant is liable for corss boder fees for MasterCard, Visa both.
      - `masterCardIPQualificationCode` 'NA' | 'CHARITY' | 'MASTERCARD_AID' | 'GAMBLING' — The MasterCard interchange program qualification lists the interchange programs for MasterCard.
      - `masterCardIPValue` string — The MasterCard interchange program value field assigned by MasterCard for the corresponding interchange program.
      - `visaIPQualificationCode` 'NA' | 'CHARITY' | 'SG_EZ_LINKS' | 'TRANCHE_2' | 'TRANCHE_3' | 'VAU_VALIDATED' | 'VISA_EPS' | 'VISA_MVV_PROGRAM' | 'LOW_VALUE_PAYMENTS' | 'SMALL_MERCHANT' | 'VISA_SPEND_QUALF_IND' | 'SG_STRATGC_SUPERMRKT' | 'SG_STRATGC_GOVERNMNT' | 'BILL_PAY' | 'VISA_INDIAN_FUND_TXN' | 'HK_STRATGC_GOV' | 'SG_STRATGC_ULITITIES' | 'SG_STRATGC_VISA_BPAY' | 'TH_STRATGC_4' | 'TH_STRATGC_5' | 'TH_STRATGC_8' | 'CPS_RETAIL' | 'VISA_MVV_PROGRAM_CLR' | 'INDIA_PM_CARES' — The Visa interchange program qualification lists the possible interchange program for Visa.
      - `visaIPValue` string — This Visa interchange program value field is assigned by Visa for the corresponding interchange program.
      - `paymentLowValue` boolean — Flag to determine if the merchant is eligible to qualify for UK domestic low value E-Commerce.
      - `cbdipVisaSmiCode` string — Single merchant identifier (SMI) provided by Visa when merchant is registered with cross border interchange program CBDIP
      - `mcPaymentFacilitatorId` string — MasterCard registered payment facilitator id for merchants processing PF transactions
      - `mcIndependentSalesOrgId` string — MasterCard registered ISO for merchants processing ISO transactions
      - `visaCanIasfFee` boolean — Indicator if Visa international acquirer service Fee (IASF) cross border fee applies on all transactions assessed in Canada for non canadian issued cards.
      - `viLacFeeCode` 'NA' | 'VISA_LAC_IA_FEE' | 'VISA_LAC_ISA_FEE' | 'BOTH_LAC_FEES' — Indicator for which VISA cross border fees (ISA, IA or both) in the Latin America and Caribbean (LAC) to be applied.
      - `mcLacFeeCode` 'NA' | 'MC_LAC_CB' | 'MC_LAC_CB_REBATE' | 'MC_LAC_BOTH' — Indicator for which MC cross border fees (CB , CB Rebate or both) in the Latin America and Caribbean (LAC) to be applied.
      - `mcAbvFeeInd` boolean — Indicator if MasterCard acquirer brand volume fee is applicable for the merchant
      - `visaEuFeeIndCode` 'NEITHER' | 'VISA_IA_FEE' | 'VISA_ECOM_FEE' | 'BOTH_VISA_EU_FEES' — Indicator for which EU fee to be charged for the merchant located in Europe. VISA_IA_FEE indicates fee to be charged for international non-Ecommerce transactions and VISA_ECOM_FEE indicates fee to be charged for international Ecommerce transactions.
      - `mcIntlEcomFee` boolean — Indicates the enabling of the MasterCard International Ecommerce Fee, available options depends on the institution configuration.
      - `viUsApIafFee` string — Indicator for which VISA fees (AP IAF, US IAF, both or neither) to be enabled, available options depends on the institution configuration. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal viUsApIafFee.
      - `pagobancomatIndex` string — Indicates when Pagobancomat transactions are flagged as bill payment. Available options depends on the institution configuration. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal epagobancomatIndex.
      - `visaPaymentFacilitatorId` string — Visa registered payment facilitator id for merchants processing PF transactions
      - `globalTravelB2BFeeInd` string — Indicates whether the MasterCard Global Wholesale Travel Transaction Program B2B Fee should be charged to the merchant. For a list of valid codes use Acquirer Profile API get reference-data endpoint with query parameter classification equal globalTravelB2BFeeInd when creating or editing an existing merchant profile.
      - `mcCnpMotoFee` 'NO_FEE' | 'MC_CNP_FEE_ONLY' | 'MC_MOTO_FEE_ONLY' | 'BOTH_MC_CNP_&_MOTO_FEE' — It supports the activation of the MC scheme fee.
      - `mcPifFeeInd` boolean — Indicator whether the MasterCard Processing Integrity Fee is applicable for the merchant. If the value passed as empty string, then default value 'false' is considered.
      - `dinersIntesCode` string — Unique identifier assigned by Diners to merchants who have agreement for preferred interchange rates. This field is cleared to scheme. (Value can be same across multiple MIDs). If provided, then it must be minimum of 3-digit numeric value and Maximum of 4-digit numeric value. The field is defined as alphanumeric because to allow user to pass empty string in Merchant Maintenance API only to delete the value when in case merchant come out of registration with Diners for this special interchange program.
      - `amexModelIndex` string — Flag to determine which AMEX clearing model to be applied for AMEX transactions. For merchant boarding API, if the object is not provided or provided with value '000', then CAPN AMEX clearing model is defaulted if AMEX acquiring service is enabled. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal amexModelIndex. Note that if a value '001' (AMEX GNS) provided for this field, then there will be a cross validation applied against valid Client reference Type '201---Amex' assigned to the merchant with 10-digit AMEX SE number populated as client reference value.
      - `merchantCountryOfOrigin` string — Alpha country code representing the merchant country of origin for government controlled merchants. For eg. Merchant (Indian Embassy) located in Ireland should have value populated as "IND" (India) in this field. If the field is provided with 3 spaces then default value N/A will be assigned. This is conditional field i.e. list of merchant category codes (ISO numeric codes) for government-controlled merchants are added to the configuration of certain institutions. Merchants boarded under these institutions and falling under these merchant category codes (value in 'mcciso' field within the 'requiredDetails' object) must ensure that the 'merchantCountryOfOrigin' field contains a valid value.
      - `merchantSizeIndex` string — Flag to determine volume of transactions for the merchant. Depending on the region this information can be used for assessing the interchange. For merchant boarding API, if the object is not provided, then system will default to index '003' (null value).
      - `globalFees` GlobalFees[] — Provide list of scheme fees to be enabled for a merchant. These fees must be pre-defined as platform level fees and enabled for an institution on OmniPay.
        - `feeIndex` string, required — Index value of the platform level fee. Valid values are depends on the institution configuration. For a list of valid values use Acquirer Profile API get global_fees endpoint.
        - `feeMode` boolean, required — Flag to indicate if the fee is applicable for a merchant.
        - `cardOrganization` string, required — The index value indicating the card scheme to which the platform level fee is associated. Valid values are depends on the institution configuration. For a list of valid values use Acquirer Profile API get global_fees endpoint.
      - `upiIPQualificationCode` string — Indicates the code that qualifies merchant transactions for the preferred interchange rates established between UPI and the merchants. The valid codes are predefined in OmniPay for each type of interchange rate that OmniPay supports. This code is not cleared to UPI and can be used across multiple merchants.
      - `marketPlaceId` string — Unique identifier assigned to a merchant or business within the Visa MarketPlace platform. It helps in identifying specific merchants for various purposes, including reporting, analytics, and promotional activities associated with Visa's offerings. This field value is included in the scheme clearing file if no override is provided during the presentment transaction.
      - `stagedDigitalWalletId` string — The Staged Digital Wallet ID is a unique identifier assigned by the Visa Network to digital wallet transactions that involve multiple stages to complete the transaction. It is used to track and manage these transactions, ensuring accurate processing once the wallet is activated. This field value is included in the scheme clearing file if no override is provided during the presentment transaction.
      - `rampProviderId` string — The Ramp Provider ID is a unique identifier assigned by the Visa Network to third-party agents that facilitate the conversion of fiat currencies to non-fiat currencies (such as cryptocurrency) and vice versa. This field value is included in the scheme clearing file if no override is provided during the presentment transaction.
      - `acquirerBusinessId` string — The Acquirer Business ID is a unique identifier assigned to the acquiring entity associated with the merchant. This field value is included in the scheme clearing file if no override is provided during the presentment transaction.
      - `mcStagedDigitalWalletId` string — The Staged Digital Wallet ID is a unique identifier assigned by the MasterCard Network to digital wallet transactions that involve multiple stages to complete the transaction. It is used to track and manage these transactions, ensuring accurate processing once the wallet is activated. This field value is included in the scheme clearing file if no override is provided during the presentment transaction.
    - `salesDetails` SalesDetails — Information on how the merchant was boared
      - `accSignedDate` string, required — Date merchant was signed up. Format YYYYMMDD
      - `accCreationDate` string, required — Date merchant was created in the system. Format YYYYMMDD
      - `accApprovalDate` string, required — Date merchant application was approved. Format YYYYMMDD
      - `salesAgentId` string, required — Code of sales agent associated with the sales process. Available options depends on the institution configuration. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to salesAgentId.
      - `businessOwnerId` string, required — Code of the business owner associated with the sales process. Available options depends on the institution configuration. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to businessOwnerId.
      - `salesChannelIndex` string, required — Institution specific user defined list of potential sales channels. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to 'salesChannelIndex'.
      - `salesCurrencyCode` string, required — ISO 4217 Apha Currency code of amount fields displayed.
      - `signedSalesValue` string — Contracted sales value for the merchant. Whether this value is per week, per month, per year, etc. is defined at institution level. Format NNN.NN
      - `signedAverageTicketValue` string — Contracted average ticket value for the merchant. Whether this value is per week, per month, per year, etc. is defined at institution level.
      - `salesLead` string — Name or description of the sales lead
      - `signedNumberSales` string — Contracted number of sales for the merchant. Whether this value is per week, per month, per year, etc. is defined at institution level.
      - `priorityMemo` string — Free text for additonal note.
  - `addresses` MerchantAddress[], required — List of addresses per category.
    - `category` OPYAddressCategoryObj — The category of the address to be added. It can be a mandatory or optional category, defined per Institution.
      - `categoryIndex` string — Numeric Code.
      - `categoryDescription` string — Contains description associated to a code in English.
    - `contactName` string — The contact name at the address location. Any extended ASCII characters contains 2 bytes. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `groupSpecific` boolean — Only applicable if a merchant is in a hierarchy. Indicates if the address is to be used for all merchants within the group.
    - `line1` string — Merchant address line 1 for the specified address category. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `line2` string — Merchant address line 2 for the specified address category. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `line3` string — Merchant address line 3 for the specified address category. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `line4` string — Merchant address line 4 for the specified address category. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `line5` string — Merchant address line 5 for the specified address category. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `postCode` string — Merchant address post code or zip code for the specified address category. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `city` string — Merchant city for the specified address category. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `state` string — Merchant state for the specified address category. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `countryCode` string — ISO-3166 alpha country code representing the country the address category is located in, the values are restricted based on institutions configuration. For a list of valid codes use Acquirer Profile API get reference-data endpoint with query parameter classification equal countryCode.
    - `telephone` string — Telephone at the specified address category
    - `fax` string — Fax at the specified address category
    - `email` string — Email address (with extended length capacity) for the specified address category
    - `deliveryMethodIndex` OPYAddressDeliveryMethodObj — Delivery method code of correspondence to this address; however, it is dependent on the delivery solutions in place for the given institution.
      - `deliveryMethodIndex` string — Numeric Code.
      - `deliveryMethodDescription` string — Contains description associated to a code in English.
    - `effectiveDate` string — Effective date of the address. When selecting address information on the Omnipay platform, the system will automatically choose the most recently effective address. To maintain accurate audit records, merchant addresses cannot be deleted after they become effective. Therefore, effective dates in the format of YYYYMMDD are used for all addresses. When adding address in merchant maintenance, the effective date must be on or after the current institution posting date. If no effective date is provided, the default will be the current institution posting date.
    - `lastUpdatedBy` string — Contact name of the person or system description that last updated the record.
    - `lastUpdated` string — Date when the record was last updated. Format YYYYMMDD.
  - `accounts` MerchantAccount[], required — List of accounts to be created. At least 1 account needs to be submitted.
    - `internalAccountNumber` string — 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.
    - `accountType` OPYAccountAccountTypeObj — Index of the account type to be assigned to the merchant.
      - `accountTypeIndex` string — Numeric Code.
      - `accountTypeDescription` string — Contains description associated to a code in English.
    - `accountCurrencyCode` 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.
    - `billingLevel` boolean — Indicates if the account will be settled to on a funding. Billing accounts should have the Bank Account details filled.
    - `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.
    - `statementType` OPYAccountStatementTypeObj — 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".
      - `statementTypeIndex` string — Numeric Code.
      - `statementTypeDescription` string — Contains description associated to a code in English.
    - `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` OPYAccountCalendarTypeObj — Defines the scheme exception days when calculating the funding date of merchant payments as per the institution configuration. If not populated, will default to "NA"
      - `calendarTypeIndex` string — Numeric Code.
      - `calendarTypeDescription` string — Contains description associated to a code in English.
    - `liabilityAccount` string — TBC
    - `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).
    - `parentInternalMerchantId` string — The internal OmniPay MID to which the merchant needs to be linked to as a child merchant. When populated should be an existing group /sub group merchant MID
    - `parentTradeName` string — Merchant Trade Name. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `payable` MerchantAccountPayable
      - `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.
      - `paymentFormat` OPYAccountPayablePaymentFormatObj — Format to be used to present payments to the clearing entity. Only appliable to institutions using the IFS file for funding merchants.
        - `paymentFormatIndex` string — Numeric Code.
        - `paymentFormatDescription` string — Contains description associated to a code in English.
      - `clearingEntity` OPYAccountPayableClearingEntityObj — The financial institution that will receive the payment. Only applicable to institutions using the IFS file for funding merchants.
        - `clearingEntityIndex` string — Numeric Code.
        - `clearingEntityDescription` string — Contains description associated to a code in English.
      - `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` MerchantAccountReceivable
      - `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.
      - `paymentFormat` OPYAccountReceivablePaymentFormatObj — Debit account format to be used to present payments to the clearing entity. Only applicable to institutions using the IFS file for funding merchants.
        - `paymentFormatIndex` string — Numeric Code.
        - `paymentFormatDescription` string — Contains description associated to a code in English.
      - `clearingEntity` OPYAccountReceivableClearingEntityObj — Debit account financial institution that will receive the collection. Only applicable to institutions using the IFS file for funding merchants.
        - `clearingEntityIndex` string — Numeric Code.
        - `clearingEntityDescription` string — Contains description associated to a code in English.
      - `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.
  - `services` MerchantServices[] — List of acquiring services. The acquirer services indicates what card brands the merchant can accept.
    - `serviceId` OPYTransactionChargesServiceIDObjV11 — The acquiring service against which the charge will apply.
      - `serviceIndex` string — Numeric Code.
      - `serviceDescription` string — Contains description associated to a code in English.
    - `status` 'ACTIVE' | 'CLOSED' — Status of the services, the main values can be Active or Closed
    - `serviceMerchantTariffs` OPYServicesTariffObj — Merchant tariff determines a set of transaction fees to be generated for the merchant per service, the object provides numerical code and description for each tariff.
      - `tariffIndex` string — Numeric Code.
      - `tariffDescription` string — Contains description associated to a code in English.
    - `floorLimit` string — Floor limit for merchant service selected; for information purpose only
    - `limitCurrency` string — The ISO 4217 currency code for the floor limit.
    - `dinersCode` 'CONVEYANCE_CLEARING' | 'DINERS_AND_DISCOVER' | 'NA' — Processing model to be applied for the merchant for Diners and Discover. Required if the service id corresponds to a Diners/Discover service.
    - `jcbStateCodeIndex` string — State code required to process and clear JCB transaction. Only required for JCB services. Value depends on the institution configuration. For a list of valid status codes use Acquirer Profile API GET reference-data endpoint with query parameter clasifications equal jcbStateCodeIndex.
    - `jcbAreaCode1Index` string — Area code 1 required to process and clear JCB transaction. Only required for JCB services. State and selected area codes should be as per institution specific list of values. For a list of valid status codes use Acquirer Profile API GET reference-data endpoint with query parameter clasifications equal jcbAreaCode1Index.
    - `jcbArea2Index` string — Area code 2 required to process and clear JCB transaction. Only required for JCB services. State and selected area codes should be as per institution specific list of values. For a list of valid status codes use Acquirer Profile API GET reference-data endpoint with query parameter clasifications equal jcbArea2Index.
    - `merchantSubId` string — Merchant sub id required to process and clear Ideal transaction. Required for Ideal service. Must not exist on an already boarded merchant under same institution.
    - `acquirerNoOfInstallment` integer — Indicates the maximum allowed number of acquirer installments per presentment per acquiring service (serviceIndex) for a merchant.
    - `lastUpdatedBy` string — Contact name of the person or system description that last updated the record.
    - `lastUpdated` string — Date when the record was last updated. Format YYYYMMDD.
  - `references` MerchantReferences[] — The merchants references are used to add additional information to a merchant or to flag a merchant to be included in certain reports or files. The applicable references are agreed between the institution and Fiserv. Depending on the institution setup some client references are mandatory at a member level or at billing level.
    - `merchantReference` OPYReferencesObj — Predefined reference index and value to tag merchant with additional information.
      - `referenceIndex` string — Numeric Code.
      - `referenceDescription` string — Contains description associated to a code in English.
    - `referenceValue` string — Value to be associated with the client reference. The value to be placed in this field is dependent on the client reference type. Note some values may be validated against a list of predefined values depending on the setup of the client reference, if the client reference values are pre-defined. Refer merchant-references endpoint in Acquirer Profile API to get the possible values for the client reference. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `lastUpdatedBy` string — Contact name of the person or system description that last updated the record.
    - `lastUpdated` string — Date when the record was last updated. Format YYYYMMDD.
  - `merchantDevices` MerchantDevices[] — Acquirers can add details of the terminals associated with the merchant.
    - `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.
    - `telephone` string — Connection id or phone number for the terminal.
    - `schemeId` 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.
    - `feeEffeciveDate` string — Date the terminal fee is effective from. Format YYYYMMDD. If ommited the default will be the current institution posting date.
    - `lastFeeDate` string — Last terminal fee date. Format YYYYMMDD.
    - `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".
    - `feeExpiryDate` string — Terminal fee expiry 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'.
    - `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.
    - `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'.
    - `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.
    - `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'.
    - `emv` boolean — Indicate if the terminal is EMV capable terminal.
    - `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.
    - `amex` boolean — Indicates if the terminal supports Amex transactions, if true additional fields are required.
    - `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.
    - `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.
    - `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.
    - `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.
    - `setupFee` string — Terminal setup fee amount.
    - `gprsRentalAmount` string — Indicates the GPRS rental amount.
    - `gprsRental` string — Frequency of the GPRS rental (Monthly/Annual).
    - `installed` string — Status of the Installation i.e. Installed/Uninstalled.
    - `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.
  - `merchantAccountFees` MerchantAccountFees[] — List of default account fees to be overwritten to make it merchant specific.
    - `feeModel` 'INDIVIDUAL' | 'DEFAULT' — Indicates if it is a merchant individual fee or default fee. Default fees are a set of fees that apply to a group of merchants falling under the same service contract. Individual fees are fees forming part of the default set that are customised for a particular merchant.
    - `recordIdNumber` string, required — Record id of the client account fee to be overwritten. The corresponding id should belong to the client tariff id selected on the merchant contract details and the merchant accounts with account currency assigned to the merchant. For a list of valid codes use account-fees GET endpoint in merchant maintenance API.
    - `status` 'ACTIVE' | 'FUTURE' | 'INACTIVE' — Active - returns currently active merchant fees ( having effective date smaller than current posting date and fee mode true ). Future - returns merchant fees not yet effective ( having effective date later than current posting date ). Inactive - returns merchant fees that are not active anymore ( having expiry date smaller than current effective date ).
    - `accountType` OPYAccountAccountTypeObj — Index of the account type to be assigned to the merchant.
      - `accountTypeIndex` string — Numeric Code.
      - `accountTypeDescription` string — Contains description associated to a code in English.
    - `accountCurrencyCode` 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.
    - `effectiveDate` string — The date the FX Mergin rate becomes effective. Format YYYYMMDD.
    - `expiryDate` string — Expiry date for fee if defined or set to or future date 99991231. Format YYYYMMDD. The date should be in future
    - `triggerSource` OPYAccountFeesTriggerSourceObj — The condition that triggers the fee.
      - `triggerSourceIndex` string — Numeric Code.
      - `triggerSourceDescription` string — Contains description associated to a code in English.
    - `rule` OPYAccountFeesRuleIDObj — 
      - `ruleIDIndex` string — Numeric Code.
      - `ruleIDDescription` string — Contains description associated to a code in English.
    - `feeBaseCurrencyCode` string — The ISO 4217 currency code for the fee base, minimum and maximun amounts. Values are restricted by institution configuration.
    - `feePercentage` string — Fee percentage to be applied. Valid value as per the Format NNNNNN.NNNN
    - `feeBase` string — Fee base to be applied. Valid value as per the Format NNNNNN.NNNN
    - `feeMinimum` string — Fee minimum to be applied. Valid value as per the Format NNNNNN.NNNN
    - `feeMaximum` string — Fee minimum to be applied. Valid value as per the Format NNNNNN.NNNN
    - `feeMode` boolean — Indicates if the fee is being generated (true) or suppressed (false). Suppressing a fee in effect is the same as setting the fee's pricing to zero, i.e. no fee will be charged.
    - `triggerHighValue` string — Indicates the upper threshold limit set in terms of value of transaction that is used as a trigger for fee calculation. If populated, it will override current active value to the merchant specific value submitted on payload. This field is allowed to be overridden as merchant specific only for certain account fees.
    - `triggerLowValue` string — Indicates the lower threshold limit set in terms of value of transaction that is used as a trigger for fee calculation. If populated, it will override current active value to the merchant specific value submitted on payload. This field is allowed to be overridden as merchant specific only for certain account fees.
    - `triggerVolumeHigh` string — Indicates the upper threshold limit set in terms of volume of transactions that is used as a trigger for fee calculation. If populated, it will override current active volume to the merchant specific volume submitted on payload. This field is allowed to be overridden as merchant specific only for certain account fees.
    - `triggerVolumeLow` string — Indicates the lower threshold limit set in terms of volume of transactions that is used as a trigger for fee calculation. If populated, it will override current active volume to the merchant specific volume submitted on payload. This field is allowed to be overridden as merchant specific only for certain account fees.
    - `feeType` OPYAccountFeesFeeTypeObj — The posted account charges fee type, e.g. Merchant Retrieval Fee
      - `feeTypeIndex` string — Numeric Code.
      - `feeTypeDescription` string — Contains description associated to a code in English.
    - `rateCategory` OPYAccountFeesRateCategoryObj — Indicates the rate category assigned to the merchant account fee that will be used to convert the fee value into merchant funding amount.
      - `rateCategoryIndex` string — Numeric Code.
      - `rateCategoryDescription` string — Contains description associated to a code in English.
    - `feeId` OPYAccountFeesFeeIdObj — The description of the fee that will be posted to the merchant account.
      - `feeIdIndex` string — Numeric Code.
      - `feeIdDescription` string — Contains description associated to a code in English.
    - `feeLevel` OPYAccountFeesFeeLevelObj — The level at which the fee applies to the merchant.
      - `feeLevelIndex` string — Numeric Code.
      - `feeLevelDescription` string — Contains description associated to a code in English.
    - `triggerFrequency` OPYAccountFeesTriggerFrequencyObj — The frequency at which the fee is applied.
      - `triggerFrequencyIndex` string — Numeric Code.
      - `triggerFrequencyDescription` string — Contains description associated to a code in English.
    - `triggerCurrency` OPYAccountFeesTriggerCurrencyObj — For which transaction currency the fee is charged.
      - `triggerCurrencyIndex` string — Numeric Code.
      - `triggerCurrencyDescription` string — Contains description associated to a code in English.
    - `postToAccount` OPYAccountFeesPostToAccountObj — Indicates whether the generated fee should be applied to the merchant account specified in this configuration or not.
      - `postToAccountIndex` string — Numeric Code.
      - `postToAccountDescription` string — Contains description associated to a code in English.
    - `lastUpdated` string — Date when the record was last updated. Format YYYYMMDD.
    - `lastUpdatedBy` string — Contact name of the person or system description that last updated the record.
  - `transactionCharges` TransactionCharges[] — List of default transaction fees to be overwritten to make it merchant specific.
    - `chargeModel` 'INDIVIDUAL' | 'DEFAULT' — Default - Is part of a set of transaction charges that are not linked to any particular merchant, but linked to a client tariff. Individual - Is part of a set of transaction charges that are assigned directly to a merchant. Individual tariffs superceeds defaults. A merchant can either be on a set of default or individual transaction charges
    - `chargeStatus` 'ACTIVE' | 'FUTURE' | 'INACTIVE' — Active - Indicates currently processable transaction charges ( effective date smaller than current posting date, expiry date bigger than current posting date, fee mode true ) Future - Indicates charges becoming active in the future ( effective date bigger than current posting date, expiry date bigger than current posting date, fee mode true ).
    - `recordIdNumber` string, required — Record id of the transaction fee to be overwritten. For a list of valid record ids use transaction-charges GET endpoint in Merchant Maintenance API.
    - `cardType` OPYTransactionChargesCardServiceTypeObj — The card service type against which the charge will apply. Generally set to Credit, Debit or All.
      - `cardServiceTypeIndex` string — Numeric Code.
      - `cardServiceTypeDescription` string — Contains description associated to a code in English.
    - `chargeType` OPYTransactionChargesChargeTypeObj — The type of charge being generated e.g. Per Tran fee, Assessment fee, Commission etc.
      - `chargeTypeIndex` string — Numeric Code.
      - `chargeTypeIndexDescription` string — Contains description associated to a code in English.
    - `serviceId` OPYTransactionChargesServiceIDObjV11 — The acquiring service against which the charge will apply.
      - `serviceIndex` string — Numeric Code.
      - `serviceDescription` string — Contains description associated to a code in English.
    - `transactionType` OPYTransactionChargesTransactionTypeObj — The transaction type which would triggred transaction charge to be applied.
      - `transactionType` string — Numeric Code.
      - `transactionTypeDescription` string — Contains description associated to a code in English.
    - `captureMethod` OPYTransactionChargesCaptureMethodObj — The means by which the transaction was accepted.
      - `captureMethodIndex` string — Numeric Code.
      - `captureMethodDescription` string — Contains description associated to a code in English.
    - `areaOfEvent` OPYTransactionChargesAreaOfEventObj — Area Of Event against the charge applied.
      - `areaOfEventIndex` string — Numeric Code.
      - `areaOfEventDescription` string — Contains description associated to a code in English.
    - `feeCategory` OPYTransactionChargesFeeCategoryObj — The pricing mechanism to be used e.g. Interchange Plus, Pricing Plus Fees.
      - `feeCategoryIndex` string — Numeric Code.
      - `feeCategoryIndexDescription` string — Contains description associated to a code in English.
    - `effectiveDate` string — Effective date assigned to transaction charge. Format YYYYMMDD
    - `expiryDate` string — Expiry date for fee if defined or set to or future date 99991231. Format YYYYMMDD. The date should be in future
    - `feeMode` boolean — Indicates if the fee is being generated (true) or suppressed (false). Suppressing a fee in effect is the same as setting the fee's pricing to zero, i.e. no fee will be charged.
    - `feePercentage` string — Fee percentage to be applied. Valid value as per the Format NNNNNN.NNNN
    - `feeBase` string — Charge base amount to be applied.
    - `feeMinimum` string — Minimum charge amount.
    - `feeMaximum` string — Maximum charge amount.
    - `chargeCurrencyCode` string — The ISO 4217 currency code for the charge base, minimum and maximun amounts. Values are restricted by institution configuration. For a list of valid codes refer accountCurrency classification in reference-data endpoint in Acquirer Profile API.
    - `chargeTierLevel` string — The tier assigned which will drive the merchant tiered pricing. The tier level that is assigned to the merchant. This will be N/A (Default) if the transaction charge record is not tiered.
    - `feeType` OPYTransactionChargesFeeTypeObj — The posted transaction charges fee type, e.g. Assessment Fee
      - `feeTypeIndex` string — Numeric Code.
      - `feeTypeDescription` string — Contains description associated to a code in English.
    - `transactionCurrency` OPYTransactionChargesTransactionCurrencyObj — The transaction fees applicable to the currency of the transaction.
      - `transactionCurrencyIndex` string — Numeric Code.
      - `transactionCurrencyDescription` string — Contains description associated to a code in English.
    - `lastUpdatedBy` string — Contact name of the person or system description that last updated the record.
    - `lastUpdated` string — Date when the record was last updated. Format YYYYMMDD.
  - `merchantRequest` MerchantRequests[] — Requests to be triggered once the merchant is boarded.
    - `requestIndex` string, required — Indicates the user defined physical device or Information to be sent. Configured per pnstitution. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to requestIdIndex.
    - `quantity` number, required — Number of items being requested
  - `paymentInstructions` PaymentInstruction[] — Acquires using the reserve, rolling reserve and/or factoring functionally can setup the instruction to reserve a portion of the high risk merchant's payment. Payment instructions can only be setup against billing level accounts.
    - `accountTypeIndex` string, required — This is the source account type index (billing level merchant account) for which the reserve, rolling reserve and/or factoring need to be set up. The portion of the payment from this source account type will be transferred to another account type based on the payment instruction setup. Source account type will always work along with source account currency code selected.
    - `accountCurrencyCode` string, required — Indicates source account currency code corresponding to the selected source account type. ISO 4217.
    - `instructionTypeIndex` string, required — Indicates the type of payment instruction to be set for the selected source account type and source account currency code. The valid values are depends on the configured payment instruction types for the Institution. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to instructionTypeIndex.
    - `deductionStartDate` string, required — Date when the payment instruction starts. The date must be greater than or equal to the current posting date. Format YYYYMMDD.
    - `deductionEndDate` string, required — Date when the payment instruction ends. The date must be greater than or equal to the current posting date. Format YYYYMMDD.
    - `deductionPercentage` string — The percentage of the payment that should be deducted from the merchant source account type. This cannot be used in conjunction with Payment Base. Either Payment Base or Payment Percent to be setup. Maximum 4 decimal digits allowed.
    - `deductionMinAmount` string — The minimum value to be deducted from the payment. Maximum 4 decimal digits allowed.
    - `deductionMaxAmount` string — The maximum value to be deducted from the payment. Maximum 4 decimal digits allowed.
    - `deductionBaseAmount` string — The amount to be deducted from the calculated total amount, to be paid from the source account type selected. This cannot be used in conjunction with Payment Percent. Either Payment Base or Payment Percent to be setup. Maximum 4 decimal digits allowed.
    - `deductionTotalCnt` string — Indicates how many times this instruction should be executed.
    - `deductionTotalAmount` string — A limit to indicate the maximum amount to be collected during the instruction life cycle. Maximum 4 decimal digits allowed.
    - `factorAgent` string — Name of the factor agent
    - `note` string — Free Text for extra note
  - `merchantProperties` MerchantProperty[] — Merchant properties are used by cstomers to add additional information to a merchant. The list of properties are configured by the customer (institution) themselves.
    - `propertyIndex` string, required — Code for the institution defined property; as per the institution configuration. For a list of valid codes use Acquirer Profile API get reference_data end-point with query parameter classification equal to propertyIndex.
    - `propertyValue` string — The value of the property type selected

## Response `200`

The merchant successfully created.

- InlineResponse200 — 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."
    - `internalAccountNumber` string — 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.
    - `accountType` OPYAccountAccountTypeObj — Index of the account type to be assigned to the merchant.
      - `accountTypeIndex` string — Numeric Code.
      - `accountTypeDescription` string — Contains description associated to a code in English.
    - `accountCurrencyCode` 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.
    - `billingLevel` boolean — Indicates if the account will be settled to on a funding. Billing accounts should have the Bank Account details filled.
    - `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.
    - `statementType` OPYAccountStatementTypeObj — 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".
      - `statementTypeIndex` string — Numeric Code.
      - `statementTypeDescription` string — Contains description associated to a code in English.
    - `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` OPYAccountCalendarTypeObj — Defines the scheme exception days when calculating the funding date of merchant payments as per the institution configuration. If not populated, will default to "NA"
      - `calendarTypeIndex` string — Numeric Code.
      - `calendarTypeDescription` string — Contains description associated to a code in English.
    - `liabilityAccount` string — TBC
    - `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).
    - `parentInternalMerchantId` string — The internal OmniPay MID to which the merchant needs to be linked to as a child merchant. When populated should be an existing group /sub group merchant MID
    - `parentTradeName` string — Merchant Trade Name. There is no pattern defined for this field. UTF8 characters (extended ASCII characters) are supported for this field. Maximum length of this field is defined in bytes and special character of any extended ASCII character can be more than 1 byte for each character. Consumer should consider number of bytes for maximum length determination. For example, if consume wants to provide three 2-bytes ASCII character, then actual length of the provided data is 6, not 3.
    - `payable` MerchantAccountPayable
      - `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.
      - `paymentFormat` OPYAccountPayablePaymentFormatObj — Format to be used to present payments to the clearing entity. Only appliable to institutions using the IFS file for funding merchants.
        - `paymentFormatIndex` string — Numeric Code.
        - `paymentFormatDescription` string — Contains description associated to a code in English.
      - `clearingEntity` OPYAccountPayableClearingEntityObj — The financial institution that will receive the payment. Only applicable to institutions using the IFS file for funding merchants.
        - `clearingEntityIndex` string — Numeric Code.
        - `clearingEntityDescription` string — Contains description associated to a code in English.
      - `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` MerchantAccountReceivable
      - `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.
      - `paymentFormat` OPYAccountReceivablePaymentFormatObj — Debit account format to be used to present payments to the clearing entity. Only applicable to institutions using the IFS file for funding merchants.
        - `paymentFormatIndex` string — Numeric Code.
        - `paymentFormatDescription` string — Contains description associated to a code in English.
      - `clearingEntity` OPYAccountReceivableClearingEntityObj — Debit account financial institution that will receive the collection. Only applicable to institutions using the IFS file for funding merchants.
        - `clearingEntityIndex` string — Numeric Code.
        - `clearingEntityDescription` string — Contains description associated to a code in English.
      - `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.
  - `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

- `201` — The merchant application successfully created. The scheduled batch process will create the merchant in the platform.
- `202` — The payload successfully validated.
- `400` — Bad Request i.e. Data validation error.
- `401` — Unauthorized i.e. Provided token crendentials for the user is not valid.
- `403` — Forbidden Error i.e. Consumer token credentials are valid but lack of permissions to do this action.
- `409` — Conflict i.e. The application status has not changed from 'Approved' to 'Processed'. This indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates. Contact Fiserv OmniPay Customer Support to process application manually.
- `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)
