@calistyle/nmi

Node SDK for Networking Merchants Inc's (NMI) Three Step Redirect API, Query API, Direct API

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
@calistyle/nmi
Minified + gzip package size for @calistyle/nmi in KB

Readme

NMI SDK

NPM version Build Status Test Coverage Dependency Status

Strongly typed Node SDK for Networking Merchants Inc's (NMI) Three Step Redirect API, Query API, and Direct API

Installation

npm install @calistyle/nmi

Documentation

Module documentation

NMI Three Step Redirect API docs

Notes

All attribute names received from NMI will be converted to camelCase for uniformity. Attribute names sent to NMI will be converted to the appropriate hypen-case and param_case where appropriate. Additionally, some fields are aliased (e.g, postalCode => postal) to provide consistent access between the Three Step and Query APIs.

You can disable this completely by specifying transform: false in the configuration options.

Dispatched XML is generated by xmlbuilder.

Usage

Setup

const NMI = require('@calistyle/nmi').NMI
const nmi = new NMI({
  apiKey: 'your-key-here',
  username: 'your-username',
  password: 'your-password'
})

Transaction

// create a sale
nmi.transaction.create('sale', {
  amount: 2.99,
  redirectUrl: 'http://127.0.0.1/example',
  billing: {
    firstName: 'John',
    lastName: 'Doe'
  }
});

// execute a token
nmi.transaction.execute('the-token');

Handling Errors

try {
  let txn = await nmi.transaction.execute('<some-token>');

  // success!

}
catch(err) {

  if (err.isNMI) {
    // payment or gateway error - see err.response
  }
  else {
    // connection or outside error
  }

}

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.