NMI is a gateway rather than a payment processor. You bring your own merchant account and NMI moves the transactions through it, which is why it’s the usual choice for high-risk verticals. The merchant relationship is yours, so you aren’t exposed to a platform deciding your account is too risky to keep.
It connects with two API keys rather than an authorisation flow, so it takes slightly longer to set up than Stripe or Airwallex.
What connecting NMI gives you
Card payments. Unlike Stripe or Airwallex, NMI doesn’t unlock additional local payment methods in Funnelish: no Klarna, no iDEAL. If you need those alongside NMI, connect a second gateway for them.
Before you start
-
A payment form element is on your checkout step, with Funnelish Pay switched on. See Add payment methods to your checkout.
-
An NMI account with a merchant account attached, and access to its security keys.
Get your NMI keys
You need two, and they’re generated separately in your NMI portal:
-
Log in to your NMI account.
-
Go to Settings → Public Security Key / Private Security Key.
-
Click Create for each.
When NMI asks what the public key is for, choose checkout, not tokenization. Picking the wrong one gives you a key that saves without complaint and fails at the point of payment.
Keep both to hand. The private key is a secret: treat it like a password, and don’t paste it anywhere except the Funnelish gateway form.
Connect NMI
You can start this from either Account → Payments → Gateways or the page builder. These steps use the builder, so you can see the result on the form as you go.
-
Open your checkout step in the page builder and select the payment form element.
-
In the props panel, click Edit payment options.
-
Click Add a new payment method, then choose Credit Card.
-
On the Gateways tab, click Connect a new gateway and select NMI.
-
On the Configure your gateway screen, fill in:
-
Gateway name: internal only, so name it for the account behind it:
NMI — main merchant account -
Public Security Key and Private Security Key
-
Processor ID: optional, and worth understanding before you skip it. See below.
-
-
Click Create.
-
Select the new gateway on the payment form and save your changes.
Your private key is stored as a sensitive value and shown masked after saving, so you won’t be able to read it back out of Funnelish later. Keep your own copy somewhere safe.
Processor ID: choosing which merchant account gets paid
Leave this blank and NMI routes through your default processor. That’s the right choice for most people, and you can ignore the field entirely.
It matters when your NMI gateway has more than one merchant account behind it. NMI supports multiple merchant accounts under a single gateway login, and the Processor ID pins this Funnelish gateway to one of them, so you decide which merchant account a funnel’s sales actually land in.
That’s useful when you’re:
-
Running several brands or legal entities and want each one’s revenue in its own merchant account
-
Spreading volume across merchant accounts to keep any single one inside its processing limits
-
Keeping a higher-risk product line on one merchant account and everything else on another
The pattern that follows from this: create several NMI gateways using the same keys but different Processor IDs, name them so you can tell them apart, then combine them in a Gateway Pool to distribute or rotate volume between them.
Your processor IDs come from your NMI account. If you’re not sure which is which, your NMI provider can confirm them. Routing sales to the wrong merchant account is a tedious thing to unpick afterwards.
Paste the whole key, and don’t press Tab. A leading space, a trailing space, or a partial copy will produce a gateway that looks configured and fails at checkout. If the keys are rejected, clear both fields and paste them again rather than editing what’s there. Check too that you haven’t swapped them: public in the private field is an easy mistake and the error won’t say so.
Don’t skip step 7. The gateway exists once you click Create, but it isn’t attached to this payment form until you select it and save.
Testing your NMI setup
Funnelish has a funnel-level Test Mode toggle in the funnel’s top bar, which most gateways respond to. That’s the quickest way to run your checkout without moving money. Whichever route you take, turn Test Mode off before you launch; it’s the first item on the funnel launch checklist.
For deeper testing, NMI gives you three options of its own, and the right one depends on whether you already have a live gateway running.
The Payment Gateway Demo Account: always available, no setup, completely isolated from your own accounts. Best for a quick check that your funnel works.
Sandbox keys: get them from guide.nmi.com and set up a second Funnelish gateway with them. Best for proper integration testing without touching your live account.
Test Mode on your own gateway: toggled in your NMI Merchant Portal under Options → Settings → Transaction Options → Test Mode. You’ll need the ‘Access Administrative Options’ permission.
Don’t toggle Test Mode on a gateway that’s taking orders. While your NMI account is in Test Mode, real transactions stop processing, so your live funnels quietly stop earning. And transactions made in Test Mode can’t be converted to real ones afterwards; whatever came through during that window has to be taken again. If you have live funnels, use sandbox keys or the demo account instead.
Test cards
Use expiry 10/29. In a sandbox account, amounts must be between 0.25 and 130.00. Outside that range you’ll get a decline about the amount being too high or too low, which is easy to mistake for a real failure.
| Scenario | What to enter |
|---|---|
| Payment succeeds | 4111 1111 1111 1111 |
| Payment declined | Any test card, with an amount under 1.00 |
| Fatal error | Any invalid card number |
| AVS match | 888 as the billing address, 77777 as the postcode |
| CVV match | 999 as the CVV |
Don’t combine a special amount with a card number that’s meant to trigger something specific. The two mechanisms interfere and you’ll get a result neither of them promised.
For 3DS testing, NMI publishes a separate set of card numbers in their own developer documentation.
Test more than the happy path. A checkout that only ever sees a successful card looks finished and isn’t; the decline case is how you find out what your customer actually sees when their payment fails.
Then test on your live gateway
-
Temporarily reduce your product price to $1 or the local equivalent.
-
Complete a real purchase with a real card.
-
Check the order landed in Funnelish and in your NMI portal, with the right amount and currency.
-
Refund yourself.
-
Set the price back. Easy to forget, expensive to discover.
What to check beyond “the payment went through”
-
The order appears in Funnelish with the correct product, amount and currency
-
Any upsell or OTO step charges correctly, not just the first step
-
Your confirmation email and any automations actually fired
-
The checkout works on mobile, not only on desktop
See Test payments before launch for the full pre-launch process.
Where your gateways live
A gateway belongs to your account, not to a funnel. You connect NMI once and it’s available everywhere from then on: every funnel, existing or new, just selects it from the list.
You can see and manage every gateway on your account under Account → Payments → Gateways (app.funnelish.com/settings/payments/gateways). That’s also where you’d rename or remove one. Worth keeping tidy if you end up with a sandbox gateway and a live one side by side.
Video walkthrough
If something isn’t working
The keys are rejected. Whitespace, a partial copy, or the two keys swapped. Re-paste both cleanly.
NMI is connected but the checkout shows no card fields. Check the gateway is selected and saved on the payment form, and that Funnelish Pay is switched on in the payment options.
Sales are landing in the wrong merchant account. Check the gateway’s Processor ID. A blank field means NMI’s default processor, which may not be the one you meant.
Payments were working and now everything declines. Check whether your NMI account is still in Test Mode. This is the single most common cause, and nothing in Funnelish will tell you: the declines look like ordinary declines.
Every payment is declined in testing. Check the amount. Under 1.00 is a deliberate decline trigger, and outside 0.25–130.00 a sandbox account rejects it for being out of range.
Payment processing is the fiddliest part of building a funnel. Gateway credentials, currencies, country rules, the form itself: a lot of moving parts, and the one area where a mistake costs you orders rather than just looking wrong.
If your NMI connection isn’t behaving, start a topic in Ask the community. Someone will help. For anything tied to your account or a specific transaction, contact us on chat support.

