WooCommerceCollect.js

NMI Payment Gateway for WooCommerce

Accept credit and debit cards in WooCommerce with your NMI merchant account.

Free version coming soon to WordPress.org

Take credit and debit card payments in WooCommerce with your NMI merchant account.

Customers type their card into secure fields served by NMI (Collect.js). The card number goes straight to NMI and comes back as a one-time token, so it never reaches your server. That keeps your PCI compliance work small, instead of the long SAQ D questionnaire that comes with forms that post card numbers to your site.

It works with the block checkout that new WooCommerce stores use, and with the classic shortcode checkout.

Free and Pro

FeatureFreePro
Works with the block checkout and the classic checkout✓✓
Card numbers go from the customer's browser straight to NMI, never through your server✓✓
Charge when the order is placed, or authorize and capture later. Capture can happen automatically when you mark the order Processing or Completed, and the hold is released if you cancel it✓✓
Full and partial refunds from the order screen. A charge that hasn't settled yet is voided instead✓✓
Choose which card brands you accept✓✓
Address and security code check results saved in the order notes✓✓
Sends line items, the shipping address and your statement descriptor with each charge✓✓
Optional NMI email receipts✓✓
Debug log with keys and card data removed✓✓
Saved cards: returning customers pay with a card stored in your NMI account, not on your site–✓
WooCommerce Subscriptions: automatic renewals, free trials and card updates–✓
Customers can add a card from My Account–✓
Priority email support–✓

Pro uses the same settings as the free version, so upgrading keeps your setup.

Pro pricing

Pro licenses renew yearly and you can cancel any time. If a license lapses, payments keep working; you just stop getting updates and support.

5 sites

$179 / year

Use on up to 5 sites

Available soon

25 sites

$349 / year

Use on up to 25 sites

Available soon

What you need

  • A merchant account with NMI.
  • Two keys from your NMI account, under Settings > Security Keys: a private key with API access, and a public key with Tokenization access.
  • WooCommerce 10.9 or newer and PHP 8.1 or newer.

Setup

  1. Install and activate the plugin.
  2. Go to WooCommerce > Settings > Payments and open NMI.
  3. Paste in your private security key and public tokenization key.
  4. Choose whether to charge right away or authorize and capture later, then save.
  5. Place a test order. If your account is live, turn on Test mode first so no real charge is made.

Questions

Where do I find my keys?

Log in to your NMI account and open Settings > Security Keys. Add a private key with API permission, and a public key with Tokenization permission. If your account only has a username and password, you can use those instead of the private key, but a key is safer.

Can I test without charging a real card?

Yes. With a sandbox account, check “Sandbox account”. With a live account, check “Test mode” and use test card numbers such as 4111 1111 1111 1111.

Do card numbers touch my server?

No. The card fields are hosted by NMI. Your site only receives a one-time token, the card brand and the last four digits.

How do refunds work?

Refund from the order screen as usual, in full or in part. A charge that has not settled yet can only be voided, so a full refund of an unsettled charge is sent as a void automatically.

My gateway gave me a different web address. Can I use it?

Yes. Many payment companies run on the same platform under their own name. Enter the address they gave you under Troubleshooting > Gateway address.

Can I run two of these gateways on one store?

Only one gateway that uses Collect.js can be active on a checkout page. If you enable two, the first one is used and the other shows a notice in your dashboard.