---
title: "Assign Fee Schedule to Merchant / Complete and Send Welcome Email / Agree to TOS and Fees for a Merchant"
method: PATCH
path: "/v4/merchants/{gateway_id}"
tags: ["Gateway Features", "Merchants"]
---

# Assign Fee Schedule to Merchant / Complete and Send Welcome Email / Agree to TOS and Fees for a Merchant

`PATCH /v4/merchants/{gateway_id}`

## Request

- Base URL: `https://sandbox.nmi.com/api`
- URL: `https://sandbox.nmi.com/api/v4/merchants/{gateway_id}`
- Auth: none required

<details>
<summary>Assign a Fee Schedule to the Merchant</summary>

This can be done when creating the merchant in the first place <a href="createmerchant">(1. Create a Merchant)</a> but you can also add it whenever you’d like using the request below.

### Assign Fee Schedule Request
Please note this is a `PATCH` request. Attempting a `POST` will result in an error.<br />
As noted above, the `costPlan` value can be passed in the initial merchant boarding step if you know what it will be at that point.
</details>

<details>
<summary>Complete & Send the Welcome Email</summary>

This request will complete the merchant creation and send the welcome email to the merchant. `activatePendingServices` is optional, and is the equivalent of checking the “activate pending services immediately” box in the partner portal.

### Complete and Send Welcome Email Request
This is a `PATCH` request, not a `POST`.<br />
`activatePendingServices` is optional and defaults to false.<br />
Note - `agreementTextId` is based on the agreement that is needed to be agreed to. You can pull the correct agreement language with a `/merchants/{id}/agreement_text` request. This will return the id and language that you are agreeing to.
</details>

<details>
<summary>Agree to TOS and Fees for Merchant Request</summary>

### Agree to TOS and Fees for Merchant Request
This is a `PATCH` request, not a `POST`.<br />
This request will activate any and all pending service on a merchant account. This is the equivalent of checking the “Activate pending services immediately” box in the partner portal.<br>
`agreementTextId` is based on the agreement that is needed to be agreed to. You can pull the correct agreement language with a `/merchants/{id}/agreement_text` request. This will return the id and language that you are agreeing to.
</details>

## Path parameters

- `gateway_id` string, required

## Headers

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

## Request body

- union
  - AssignFeeScheduleToMerchantRequest
    - `costPlan` string, required: Id of the fee schedule.
  - CompleteAndSendWelcomeEmailRequest
    - `status` string, required: Status of the merchant
    - `activatePendingServices` boolean: Whether to activate the pending services or not.
    - `agreementTextId` string, required: Id of the agreement text.
  - AgreeTosAndFeesForMerchantRequest
    - `activatePendingServices` boolean, required: Boolean representing if the pending services should be activated.
    - `agreementTextId` string, required: String representing the ID of agreement that is needed to be agreeded to.

## Response `200`

Success

- AssignFeeScheduleToMerchantResponse
  - `objectType` 'merchant': The type of object that was returned as a result of the request.
  - `id` integer: The unique identifier of the processor or service instance added.
  - `type` string: The type of the merchant account which the fee scheduled was added to.
  - `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` boolean: Whether or not the merchant is allowed to add alternative post data with tsys.
    - `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.dev/nmi/apis/payments-api.md) - [All operations](https://skmtc.dev/nmi/apis/payments-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nmi/apis/payments-api/revisions/c03727f27e27?raw)
