Connecting NMI

Connecting to NMI requires an NMI username and password. We highly recommend you create a dedicated user on NMI for this purpose rather than reusing a personal login.

  1. Log in to NMI and go to My Settings → User Accounts → Add A New User.

    NMI User Accounts list with Add A New User highlighted

  2. Create the user account. Enable all permissions, and note the username — you will need it when connecting.

    📘

    Tip

    Use an email address you have access to. You can usually append +api to your existing address — for example [email protected] — to get a unique address that still reaches your inbox.

    NMI Add Account form showing user information and permissions

    You will receive an email with a link to create a password for the new user.

    NMI user creation notification email

  3. In the NMI connection screen, enter your username and password and select Save.

    Shuttle New Gateway setup screen for NMI

  4. The connection is tested and you are shown a green "Connected to NMI" message. If there is an error, check that the account details are correct and that the user has been granted all permissions.

    Shuttle showing Connected to NMI with webhook unverified

  5. You will then be prompted to set up webhooks. See Enabling webhooks below.

Connection options

Our integration with NMI offers several options:

  • Enable 3DS: Enables 3D Secure support for ecommerce transactions that require it. When selected, a Public Key field appears.

    Enable 3DS checkbox with Public Key field

    To get your public key, in NMI go to My Settings → Security Keys → Add a New Public Key.

    NMI Security Keys page with Add a New Public Key highlighted

    Enter a key name (for example 3DS), select the username you created in step 2, and set Key Permission to Checkout.

    NMI New Public Key dialog

    Then copy the value of Key from your Public Security Keys list into the Public Key field in Shuttle.

    NMI Public Security Keys list with the new key highlighted

  • Enable ACH: Enables ACH as a payment method. You must also have ACH enabled on your NMI account.

  • Require address (AVS): Requires the customer to enter their billing address.

  • Enable Multiple MIDs: Lets you configure a different MID for ecommerce and MOTO transactions. Some acquirers issue separate accounts for these.

    Enable Multiple MIDs with Ecommerce and MOTO processor ID fields

    You can check your processor IDs in NMI under My Settings → Transaction Routing.

    NMI Transaction Routing page

Enabling webhooks

To ensure the NMI integration operates correctly, you need to set up webhooks. This is how NMI notifies us of transaction and settlement updates.

  1. In NMI, go to Settings → Webhooks.

    NMI Gateway Options overview with Webhooks highlighted

  2. Add a new webhook pointing to the URL shown in Shuttle, and select All available events.

    NMI Webhooks page with Create highlighted

    NMI Webhooks endpoint editor subscribing to all events

  3. You will be shown a Signing Key. Copy it back into the Webhook Signing Key field in Shuttle and save.

    NMI Webhooks page showing the Signing Key revealed

  4. We test the webhook. This takes about two minutes and displays one of the following statuses:

    • UNVERIFIED: We have not received anything. Double-check your NMI setup.
    • UNSIGNED: We received a webhook but the signing key was missing or incorrect.
    • VERIFIED: It is set up correctly.

    Shuttle showing Connected to NMI with webhook verified