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