Skip to main content

NMI V2 Gateway

Written by Support

May 28, 2026

NMI V2 is our most up to date integration with Networks Merchants Inc. If you do not see this gateway as an available option within your account, please contact our Client Support team to enable it for you.

To configure NMI v2 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 v2 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/

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.

Security Key: you will need a Private Security Key with API permission. [NOTE: username/password for API authentication will be deprecated by Dec 31, 2026. ]

Currency: This gateway currently only supports USD currency.

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

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.

Use Customer Vault?: Select YES if you are using the Customer Vault within NMI. This will be required if you're planning to process subscriptions with ApplePay and/or GooglePay.

Capture On Shipment?: Set to Yes if you want to capture an authorization once an order is marked as 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.

*Merchant Defined fields:

NMI 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** available and a brief description of the values that each one will insert in your MDF:

{ACQUISITIONDATE}

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

{AFFILIATEID}

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.

{CAMPAIGNDESCRIP}

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

{CAMPAIGNID}

Inserts the campaign id from where the order is generated.

{CATEGORYNAME}

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

{COUPONDISCOUNTAMOUNT}

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

{CUSTOMERID}

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.

{INITIALTRANSID}

This will return the transaction id for the initial order.

{PRODUCTID}

Inserts the product id of the main product sold.

{PRODUCTNAME}

Inserts the product name of the main product sold.

{PRODUCTSKU}

Inserts the product SKU number of the main product sold.

{REBILLDEPTH}

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.

{REPROCESSINGATTEMPTS}

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

{RETRYCOUNT}

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.

{SHIPPINGID}

Inserts the shipping id of the order.

{SHIPPINGMETHOD}

Inserts the shipping method of the order.

{SUBAFFILIATEID}

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.

{THM_SESSION_ID}

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.

Example:

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:

&thm_session_id=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.

Enabling Apple Pay for NMI

  1. Enable Apple Pay for your merchant in the NMI merchant portal using NMI's guide https://docs.nmi.com/docs/digital-wallet-setup. You will need to accept terms of service, and also do these three things:

    1. List all domains that will use Apple Pay

    2. Download the verification file

    3. Upload the verification file to the .well-known directory on your web server

  2. Add the Apple Pay button to your checkout page. This page will use Collect.js to draw the Apple Pay button based on information on the page. You must also provide Collect.js price, country and currency values.

  3. Confirm Apple Pay is enabled for each MID in your NMI dashboard, with domain registration completed, before going live.

  4. If you intend to support recurring billing, you must make sure you have customer vault configured on your gateway portal, as well as in your Sticky.io NMI V2 profile. You may need to create a new Public Key with Tokenization permission if you don’t have one already. If you don’t enable vaulting, initial purchases using Apple Pay may succeed but recurring billing attempts will fail.

Once you have enabled Apple Pay, when a customer uses the Apple Pay button to make a purchase, you will receive an Apple Pay payment token. You will send that token in your new_order API call to Sticky.io.

For Apple Pay:

"creditCardType": "applepay",

"apple_pay_token": "<Apple Pay Token>" <-- Replace with your token

Enabling Google Pay on NMI

You do not need to modify your merchant configuration to enable Google Pay on NMI. You can simply add country and currency data values to Collect.js and create a Google Pay button as described at https://docs.nmi.com/docs/digital-wallet-setup. As with Apple Pay on NMI, be sure you have enabled Customer Vault in your gateway portal as well as in your gateway profile in Sticky.io if you will be using recurring billing. Failure to do this will result in recurring billing failures.

Once you have enabled Google Pay, when a customer uses the Google Pay button to make a purchase, you will receive a Google Pay payment token. You will send that token in your new_order API call.

"creditCardType": "googlepay",

"google_pay_token": "<Google Pay Token>" <-- Replace with your token

Did this answer your question?