NMI integration guide
NMI is a gateway that allows you to collect card and eCheck payments. This guide is intended to help you implement NMI based on your preferred integration workflow.
Services and compatibility
Supported payment types |
|
Supported transaction types | |
Supported processing currencies | AUD, CAD, EUR, GBP, HKD, JPY, MYR, PLN, THB, TWD, USD |
3D Secure 1.x supported | Yes |
3D Secure 2.x supported | Yes |
Installments supported | No |
Configuration
Work with Integrations Support to add NMI as a connection. You will need the following credentials from NMI:
- username
- password
- processor ID
OR
- security key
- processor ID
Required and optional fields
The following table shows the optional fields for NMI transactions in the Create one-time-use token or Run card transaction request.
Field | Required? | Description |
---|---|---|
data.descriptor.name | No | For NMI card transactions, include this parameter to dynamically change the descriptor on the customer's statement. If this parameter is not included, the system uses the default descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.address | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the street address of the merchant. If this parameter is not included, the system uses the default street address descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.city | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the city of the merchant. If this parameter is not included, the system uses the default city descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.state | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the state of the merchant. If this parameter is not included, the system uses the default state descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.postal | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the postal code of the merchant. If this parameter is not included, the system uses the default postal code descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.country | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the country of the merchant. If this parameter is not included, the system uses the default country descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.phone | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the phone number of the merchant. If this parameter is not included, the system uses the default phone number descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.url | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the website URL of the merchant. If this parameter is not included, the system uses the default URL descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.merchantId | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the NMI ID of the merchant. If this parameter is not included, the system uses the default ID descriptor (as set up on the merchant account that is originating the transactions). |
data.descriptor.mcc | No | For NMI card transactions only, include this parameter to dynamically change the descriptor on the customer's statement for the merchant category code (MCC). If this parameter is not included, the system uses the default MCC descriptor (as set up on the merchant account that is originating the transactions). |
Example requests
The following is an example run card transaction request for NMI.
Example Card Request for NMI
curl -X POST https://api.nexiopaysandbox.com/pay/v3/process \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Basic [Base64_encoded_login]'
-d '{
"data": {
"amount": 4.00,
"descriptor": {
"name": "Our Company Name",
"address": "123 Main St.",
"city": "New York City",
"state": "NY",
"postal": "10001",
"country": "US",
"phone": "1555555555",
"url": "https://your-ecommerce-website.example.com",
"merchantId": "1234",
"mcc": "5964"
}
},
"paymentMethod": "card",
"tokenex": {
"token": "eb50a022-d6de-4244-a1e6-dcb8522b2d19"
}
}'
The following is an example run echeck transaction request for NMI.
Example eCheck Request for USAePay
curl -X POST https://api.nexiopaysandbox.com/pay/v3/processECheck \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Basic [Base64_encoded_login]'
-d '{
"data": {
"amount": 4.00,
"currency": "USD"
},
"tokenex": {
"token": "eb50a022-d6de-4244-a1e6-dcb8522b2d19"
}
}'
Testing data
If you do not have Advanced Testing Triggers enabled on your account, use the following test cards to test your NMI configuration.
Brand | Card number | Exp date | Security code | Cardholder name | 3DS | Transaction result |
---|---|---|---|---|---|---|
Visa | 4111111111111111 | Any future date | Any | Any | N/A | Success |
Mastercard | 5431111111111111 | Any future date | Any | Any | N/A | Success |
American Express | 341111111111111 | Any future date | Any (ex: 1234) | Any | N/A | Success |
Discover | 6011601160116611 | Any future date | Any | Any | N/A | Success |
If you do have Advanced Testing Triggers enabled on your account, use the following test cards to test your NMI configuration.
Brand | Card number | Exp date | Security code | Cardholder name | 3DS | Transaction result |
---|---|---|---|---|---|---|
Visa | 4111110208009428 | Any future date | Any | Any | N/A | Success |
Mastercard | 5412750109056250 | Any future date | Any | Any | N/A | Success |
American Express | 375987004003245 | Any future date | Any (ex: 1234) | Any | N/A | Success |
Discover | 6011000011020538 | Any future date | Any | Any | N/A | Success |
Status workflows
The status of a successful transaction with NMI varies, depending on the options you choose.
Sale | When isAuthOnly is false , successful sale transactions will have the following statuses:
|
Auth only | When isAuthOnly is true , successful sale transactions will have the following status:
|
Capture | Successful capture transactions will have the following statuses:
|
Void | Successful void transactions will have the following status:
|
Refund | Successful refund transactions will have the following statuses:
|
*Pending status displays as "authorized" or "AUTHORIZED" in the Nexio Dashboard; it displays as 10
, meaning "authorized", in the response when querying transactions (for more information about transactionStatus
, see the appropriate transactionStatus
table).
If you have any additional questions or feedback, contact us.
Updated about 1 month ago