---
title: "Create Merchant"
method: POST
path: "/v4/merchants"
tags: ["Gateway Features", "Merchants"]
---

# Create Merchant

`POST /v4/merchants`

> ❗️ Never Use Real API Keys
>
> Never use real API Keys when testing. The gateway allows Partners to create Test Merchant Accounts. Testing should always use keys from the Test Accounts and never keys from a Standard Account.
<details>
<summary>Usage</summary>
This step simply creates the merchant account, getting their basic information into the gateway. After this step, you can add processors and value-added services before sending the welcome email to the merchant.

Note - you can board merchants under an existing sub-affiliate by providing a `parentAffiliateId` in the create request. This will add the merchant under the specified affiliate instead of the account making the request.
</details>

## Headers

- `Content-Type` string, required
- `Authorization` string, required

## Request body

- CreateMerchantRequest
  - `type` string, required — The type of merchant account being created.
  - `company` string, required — The merchant's company name.
  - `externalIdentifier` string — A description to further describe or identify the merchant
  - `country` string, required — The country associated with the merchant's address
  - `address1` string, required — The first line of the merchant's address
  - `address2` string — The second line of the merchant's address
  - `city` string, required — The city associated with the merchant's address
  - `state` string, required — The state associated with the merchant's address
  - `zip` string, required — The postal code associated with the merchant's address
  - `url` string — The merchant's website URL
  - `timezone` string, required — The merchant's timezone
  - `firstName` string, required — The first name of the merchant's company contact
  - `lastName` string, required — The last name of the merchant's company contact
  - `email` string, required — The email of the merchant's company contact
  - `phone` string, required — The phone number of the merchant's company contact
  - `fax` string — The fax number of the merchant's company contact
  - `language` string, required — The merchant's language
  - `username` string, required — The username to be assigned to the primary user account on the merchant
  - `accountInfo` object, required — Banking information for merchant billing
    - `checkAccount` string, required — The account number used to bill the merchant
    - `checkAba` string, required — The routing/ABA number used to bill the merchant
    - `accountHolderType` string, required — The type of holder for the bank account being used
    - `accountType` string, required — The type of bank account being used

## Response `200`

Success

- CreateMerchantResponse
  - `objectType` 'merchant' — The type of object that was created as a result of the request.
  - `id` string — The gateway ID of the merchant that was created.
  - `type` string — The type of merchant account being created.
  - `created` string — The date and time that the merchant was created.
  - `updated` string — The date and time of the last update to the merchant.
  - `firstName` string — The first name of the merchant's company contact.
  - `lastName` string — The last name of the merchant's company contact.
  - `company` string — The merchant's company name.
  - `email` string — The email of the merchant's company contact.
  - `phone` string — The phone number of the merchant's company contact.
  - `fax` string — The fax number of the merchant's company contact.
  - `url` string — The merchant's website URL.
  - `address1` string — The first line of the merchant's address.
  - `address2` string — The second line of the merchant's address.
  - `city` string — The city associated with the merchant's address.
  - `state` string — The state associated with the merchant's address.
  - `zip` string — The postal code associated with the merchant's address.
  - `country` string — The country associated with the merchant's address.
  - `timezone` string — The merchant's timezone.
  - `costPlan` string — The cost plan assigned to the merchant.
  - `status` string — The status of the merchant.
  - `externalIdentifier` string — A description to further describe or identify the merchant.
  - `lastTransactionDate` string — The date of the last transaction on the merchant.
  - `parentAffiliateId` string — The ID of the affiliate directly above the merchant.
  - `accountInfo` object — Banking information for merchant billing.
    - `checkAba` string — The routing/ABA number used to bill the merchant.
    - `checkAccount` string — The account number used to bill the merchant.
    - `accountType` string — The type of bank account being used.
    - `accountHolderType` string — The type of holder for the bank account being used.
  - `features` object — A collection of various merchant feature flags.
    - `forceTos` boolean — Whether or not the merchant is forced to accept the Terms of Service.
    - `forceBillingAuth` boolean — Whether or not the merchant is forced to accept the Billing Auth.
    - `allowBlindCredits` boolean — Whether or not the merchant is allowed to issue blind credits for Credit Cards.
    - `allowBlindCheckCredits` boolean — Whether or not the merchant is allowed to issue blind credits for Checks.
    - `advancedTransactionRouting` boolean — Whether or not the merchant has advanced transaction routing enabled.
    - `sendBillingEmail` boolean — Whether or not the merchant receives an email for their billing.
    - `braspag` object — Feature flags specifically related to the braspag processor.
      - `advancedTransactionRouting` boolean — Whether or not the braspag processor has advanced transaction routing enabled.
    - `verifi` object — Feature flags specifically related to the verifi service.
      - `enabled` boolean — Whether or not the verifi service is enabled for the merchant.
    - `viewBillingStatement` boolean — Whether or not the merchant can view their billing statement.
    - `litle` object — Feature flags specifically related to the litle processor.
      - `reportGroup` string — The merchant's litle report group. Returns false if not configured.
      - `prePaidIndicator` string — The merchant's litle prepaid indicator. Returns false if not configured.
      - `affluentIndicator` string — The merchant's litle affluent indicator. Returns false if not configured.
      - `recycleAdvice` string — The merchant's litle recycle advice. Returns false if not configured.
      - `campaign` string — The merchant's litle campaign. Returns false if not configured.
      - `affiliate` string — The merchant's litle affiliate. Returns false if not configured.
      - `merchantGroupId` string — The merchant's litle group ID. Returns false if not configured.
    - `allowEmptyCcExp` boolean — Whether or not the merchant is allowed to pass empty Credit Card Expiration Dates.
    - `pastDue` boolean — Whether or not the merchant's bill is past due.
    - `apiReceipt` boolean — Whether or not the merchant's API transactions send receipts.
    - `batchReceipt` boolean — Whether or not the merchant can batch receipts.
    - `delinquent` boolean — Whether or not the merchant is in a delinquent state.
    - `commercialCardIndicator` string — The merchant's commercial card indicator. Returns false if not configured.
    - `customDescription` string — The merchant's custom description. Returns false if not configured.
    - `apiAllowOnlyUsername` boolean — Whether or not the merchant can authenticate with the APIs using only a username.
    - `orderIdDuplicateCheck` boolean — Whether or not the merchant has duplicate checking for the Order ID field.
    - `cardLevelResult` string — The merchant's card level result. Returns false if not configured.
    - `pmsalem` object — Feature flags specifically related to the pmsalem processor.
      - `ignoreAmexCvv` boolean — Whether or not the merchant's pmsalem processor ignores the Amex CVV field.
      - `allowNovusVerify` boolean — Whether or not the merchant's pmsalem processor can verify Novus cards schemes.
      - `idInMdf11` boolean — Whether or not the merchant's pmsalem processor can pass the ID in MDF11.
    - `credorax` object — Feature flags specifically related to the credorax processor.
      - `bankNet` string — The merchant's bank net value for credorax. Returns false if not configured.
      - `z5Risk` string — The merchant's z5 risk value for credorax. Returns false if not configured.
    - `vantiv` object — Feature flags specifically related to the vantiv processor.
      - `remainingBalance` string — The merchant's remaining balance for vantiv. Returns false if not configured.
    - `prosa` object — Feature flags specifically related to the prosa processor.
      - `deferredPayment` boolean — Whether or not the merchant has deferred payments enabled for the prosa processor.
    - `cronopay` object — Feature flags specifically related to the cronopay processor.
      - `customerId` string — The merchant's cronopay customer ID. Returns false if not configured.
    - `captureHigher` boolean — Whether or not the merchant is allowed to capture higher than the preceding auth.
    - `moneris` object — Feature flags related specifically to the moneris processor.
      - `orderId` string — The merchant's order ID for moneris transactions. Returns false if not configured.
    - `extendedFileBatchResponse` boolean — Whether or not the merchant receives and extended file batch response.
    - `credov3` object — Feature flags related specifically to the credov3 processor.
      - `ignoreAmexCvv` boolean — Whether or not the merchant's credov3 processor ignores the Amex CVV field.
    - `enforceRequiredFieldsForSwiped` boolean — Whether or not the merchant must continue to pass required fields when using Swipe.
    - `preventDuplicateCvRecords` boolean — Whether or not the merchant is prevented from making duplicate Customer Vault records.
    - `preventConfiguringSurcharge` boolean — Whether or not the merchant is prevented from configuring settings for surcharge.
    - `tsys` object — Feature flags related specifically to the tsys processor.
      - `paymentFacilitatorFields` string — The merchant's tsys payment facilitator fields. Returns false if not configured.
      - `allowCustomReport` boolean — Whether or not the merchant is allowed to do a custom report with tsys.
      - `alternativePostData` unknown
    - `requireProcessorFieldOnVt` string — Require a processor be specified on all transactions in the Virtual Terminal.
    - `isCardTesting` string — Is merchant's card testing.
    - `allowTipOnVtKeyedTransactions` string — Allow merchant to enter tips in the virtual terminal on keyed transactions.
    - `transitForceAcceptance` string — Merchant is approved for Force Acceptance.
    - `level3` object — Merchant's level III template data.
      - `autoLoadTemplate` boolean — Automatically add my Level III template data to the merchant's credit card transactions.
    - `emvPartialApprovals` string — Allow Merchant to accept Partial Approvals for EMV transactions.
    - `allowOfflineAuths` string — Allow merchant to issue Offline/Voice Authorizations.
    - `supportsGooglePay` string — Merchant supports Google Pay.
    - `supportsApplePay` string — Merchant supports Apple Pay.
    - `isApplePayEnabled` string — Is Apple Pay enabled.
    - `useDeviceRecognition` string — Enable device recognition for all merchant users when logging into the control panel (users with two-factor enabled are exempt).
  - `needsPendingServicesActivated` string — Merchant needs pending services activated.
  - `payFacBillingPeriod` string — Payment Facilitator Billing Period.
  - `rejectedCertificates` string — Number of rejected certificates.

---

[API](https://skmtc.net/nmi/apis/embedded-components-api.md) · [All operations](https://skmtc.net/nmi/apis/embedded-components-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/nmi/embedded-components-api/versions/45c2ecda3685/schema)
