NMI Gateway
Support avatar
Written by Support
Updated over a week ago

November 02, 2010

UPDATED January 7, 2022

To configure  NMI Gateway into your sticky.io CRM, you will go to Payments>Gateways, under ACTIONS select Add New Provider Profile.Select the type = Payment/Gateway and select NMI from the drop down.Fill out the gateway parameters which are outlined below and click “Save”.

For more information on this Gateway click here https://www.nmi.com/

Instructions on how to add APPLE Pay and GOOGLE Pay to your NMI gateway are at the end of this document.

These parameters are briefly described here for your reference:

Alias: Name that you will assign to the gateway. This is for internal purposes only; it helps you identify a specific gateway account among several of them in your CRM.

Username: This will be provided to you by Paysafe.

Password: This will be provided to you by Paysafe.

Currency: The NMI Paysafe Processing Continuity Gateway currently supports AED, ARS, AUD, BOB, BRL, CAD, CHF, CLP, CNY, COP, DKK, EUR, GBP, HKD, IDR, ILS, INR, JPY, KRW, MXN, MYR, NOK, NZD, PEN, PHP, PLN, PYG, RUB, SEC, SGD, THB, TRY, TWD, USD & ZARcurrencies. You can select one currency per gateway account.

Test Mode: Set to YES if you would like to use this gateway in Test Mode.

Capture On Shipment?: Set to Yes if you want to capture an authorization once an order is marked a shipped in the CRM. Also, an order will remain as pending in the system until the authorization is captured upon shipment. Set to No if you want the standard authorization and capture process for your orders. Optional.

CIT/MIT Parameters: CIT/MIT Parameters: Set to Yes to introduce Merchant Initiated Transaction/Customer Initiated Transaction parameters to the request to NMI. This is necessary to comply to recent Visa regulations.

Please refer to the Visa document located here containing additional detailed level information regarding these requirements in support of the mandate for updating merchant systems and processes.

Post Descriptor?: Set to Yes to post the descriptor in the sale request. Optional.

Use Campaign Descriptor?: Set to Yes to post the campaign descriptor in the sale request. If set to Yes, the 'Post Descriptor' must also be set to Yes, and the campaign descriptor must be configured within the campaign directly.

Post Phone: Set to Yes to post the customer phone number in the sale request. Optional.

Post processor ID: Set to Yes to post the processor ID in the sale request. This is used for when your gateway account has more than one MID configured. Optional.

Post Product Description?: Set to Yes to post the product description in the sale request. Optional.

Required SSN: Set to Yes if the social security number is required. Optional

Use Pre-Auth Filter?: Set to Yes only if using the Pre-Auth Filter* service through this gateway account functionality described below. Optional.

Send IP Address: Set to YES if you would like to post the IP address to NMI.

Enable Delayed Capture: allows you to authorize the payment on day 1 and capture it in “x” number of days. Applies to initials and recurring orders, it creates the orders in a “Pending” status and they won’t be sent to fulfillment until the charge is captured and the status is updated to “Approved”.
Delayed Capture Days: number of days in which you wish to capture the charge, this is to be used with Enable Delayed Capture.

MDF1 - MDF20: Merchant Defined Fields* are described below. These are optional fields.

To send a copy of the MasterCard consent notifications to an additional email address you must use both of theses fields SMTP ID and BCC

SMTP ID -Select the SMTP ID that you would like to use for these emails

BCC - This will send a BCC copy of the consent email to the email listed in the test box


There are 2 Required Fields on the Merchant Account Details tab. *Descriptor - This will be the MID Descriptor *Customer Service Number - The customer service number assigned to the MID

There is 1 Required Field on the Limits and Fees tab *Global Monthly Cap - This will be the sales amount allowed monthly on this MID 

To maximize the efficiency of sticky.io Reporting Analytics we suggest you take a moment and fill out the rest of the fields. These will all be used in sticky.io’s profitability reports.

For field definitions on all of the fields on the Merchant Account Details Tab and the Limits & Fees Tab - click here- overview of gateway providers

Once your gateway profile has been created, then you will go through your campaigns and assign the gateway to the corresponding campaign(s).

*Pre-Auth Filter:

This service applies to initials orders only. It allows you to pre-authorize a higher dollar amount on the customer’s credit card before approving the current order to verify if extra funds are available. This is of great benefit when doing Free Trials as it helps you increase your chances of a successful rebill.

Once you enable this feature, the Void Pre-Auth? Field will appear and automatically be set to.

Void Pre-Auth? set to Yes: if the pre-auth is successful, it gets voided immediately and the current order is approved.

Void Pre-Auth? set to No: if the pre-auth is successful it may remain active for up to 30 days and you can use this pre-auth amount to capture with the next recurring order, some exceptions may apply. However, please keep in mind that this feature is intended to be used only when the next recurring order is a rebill charge and not a shippable product.

In both cases if the pre-auth fails, the current order gets declined and the system will keep log of the decline reason under the declined order details.

To enable the Pre-Auth feature: you will set the pre-auth filter to Yes in the gateway profile within your CRM, as indicated in the above parameters description. Also, in the gateway profile you will specify whether you want to void this pre-auth or not. Next, you will assign the gateway to the campaign where you would like to use the filter, and you will set the amount that you want to pre-auth at the campaign level. This will be disabled by default with a $0.00 amount in it, and it gets enabled as soon as you enter a valid dollar amount to pre-auth.

 Optional Services:

Payment Routing with Sticky Processing: This service will be available if you are doing any type of Payment Routing within the gateway account. It allows you to process all your recurring orders through the exact same processor that processed the initial transaction for each one of your customers; therefore, you will be using the same processor for the lifetime of your customer subscription.

When you use this service, you must enable one more field within the gateway account. In order to enable this field, you will login to your gateway account, go to Options>API Configuration, select the customized variables returned in your API responses as shown below, from the list on the left side select “Processor ID” to be added as one of the fields returned, and click Save:

*Merchant Defined fields:

Network Merchants Inc. contains several Merchant Defined Fields (MDF1-MDF20) that allow you to customize the transactions that you will be processing through this gateway. These MDFs will append certain information to these transactions based on the order details. Please be aware that these fields are optional.

To ease the process of using the MDFs, at sticky.io we have created various Tokens that you can use to dynamically insert certain values into these Merchant Defined Fields depending on what values you want to send over to the gateway.

These are the tokens** you can use and a brief description of the values that each one will insert in your MDF:


Passes to the gateway the date of the original parent order on rebills in MM/DD/YYYY format.


Inserts the affiliate id from the order. It will obtain this value from the AFFID, AFID or AID field, whichever is populated; if none of them have data, it will not include it on the post.


Inserts the campaign description of the campaign from where the order is generated.


Inserts the campaign id from where the order is generated.


Inserts the category name that the main product sold belongs to.


This is populated with the coupon discount on the order, i.e. 1.00.


Provides the customer id of the order being billed. Please be aware that this is only valid on rebills; on new initial orders, the customer id will be 0 because a new customer will not have a customer id until after he has a successful order in your system.


This will return the transaction id for the initial order.


Inserts the product id of the main product sold.


Inserts the product name of the main product sold.


Inserts the product SKU number of the main product sold.


This will insert the current rebill depth of the order. For example, if the order is the first rebill for a customer, this would be 1, if it was the second rebill, it would be 2, and so on. For initial new orders, this will be 0.


This is populated with the current reprocessing attempt for the order, which will be populated with 0 if the order is not being reprocessed.


Inserts what retry count the order is at. For example, if a rebill has declined two times, then this would be 3, meaning it is the third attempt to get an approval.


Inserts the shipping id of the order.


Inserts the shipping method of the order.


Inserts the sub affiliate id. It will post all the sub id's based on the affiliate id of that order. For example, for AFFID, it will post the value of C1, C2 and C3 as a concatenated string separated by commas: C1value,C2value,C3value For AFID and AID it will just be the value of SID or OPT respectively.


Passes a session Id to the gateway. In order to set the value received from Threat Matrix after they give you a session ID on the webforms, use a javascript to set the value of a hidden Lime Light field that is in the HTML form on your credit card payment page.


document.getElementById("thm_session_id").value = threatMatrixID;

To use with our API, submit the value that Threat Matrix responds back in an example like this where the threat matrix session id is 12345:


The {THM_SESSION_ID} token canonly be used in the MDF17 field. 

**These tokens can be placed in any of the 20 Merchant Defined Fields. For an explanation of what each MDF is actually used for, please look at your gateway API documentation, as this will vary per gateway.

Additional Network Merchants Inc Gateway Notes

If a subscription rebill attempt fails for one of the reasons or codes listed below, the subscription will not proceed through decline salvage. Instead, the subscription order will be placed on an immediate hold. This also applies to cascade, any orders that decline with the reasons or codes below will not be eligible to cascade as they are considered hard declines.

251 Lost card 252 Stolen card 253 Fraudulent card


  1. Add the Apple Pay Payment type to your NMI gateway underneath Campaigns.

  2. Follow the instructions for APPLE Pay js collect on the NMI Website - click HERE to go to the NMI APPLE Pay article


  1. Add the Google Pay Payment Type to your NMI Gateway under Campaigns

  2. Follow the instructions for Google Pay js collect on the NMI website - click HERE to go to the NMI GOOGLE PAY article

  3. Within the NewOrder request to sticky, you'll need to make sure to include the creditCardType as either 'applepay' or 'googlepay' and also include the wallet_token.

NOTE: NMI's integration with Apple Pay and Google Pay are straight-sale only and do not support subscription billing.

Did this answer your question?