Integrating Network Merchants NMI with Salesforce using Chargent
- Prior to setting up NMI in Salesforce
- Configuring NMI for Integration
- Setting up NMI in Salesforce
- Add a NMI Gateway record in Salesforce using Chargent’s Gateway Wizard
- Direct Debit Network (version 6.15 and higher)
- Testing using Chargent Anywhere
- Testing with Payment Console
- Testing using Payment Request
- Network Merchant Test Credit Cards
- Address Verification Testing
- CVV Codes
- Sending Live Transactions from a Salesforce Sandbox
- Understanding Transactions
- Confirming the transactions with NMI
- Search for transactions
- Field Mapping
- Going Live
Easily connect Network Merchants (NMI) and Salesforce with Chargent,the leading payments app on the Salesforce AppExchange. Control all Network Merchants Incorporated (NMI) transactions, manage refunds, send payment links, see reports and more, all inside Salesforce.
Contact us for a no-obligation 30 day trial, and see for yourself!
Network Merchants Incorporated (NMI) provides payments enablement technology that empowers ISOs, VARs, ISVs and payment facilitators to offer branded payment gateway services without building or maintaining their own technology. NMI software engineers have built a security-focused, feature-rich, omni-channel payment gateway platform that partners can brand—completely and transparently—so that NMI doesn’t appear in their customer views. With Headquarters in Roselle, Illinois, NMI is the operating trade name of Network Merchants, LLC.
Chargent Payment Processing for Salesforce already has a connection to NMI, giving you the ability to manage and send transactions to NMI from Salesforce. The integration connects the NMI payment gateway directly to your customer records in Salesforce.
Prior to setting up NMI in Salesforce
- Install both the Chargent Base Package and the Transaction Package (Chargent Orders) into your Salesforce org.
- Configure Chargent according to the Quick Start Guide.
For Chargent versions prior to 5.57 you may need to activate the Remote Site Settings in Salesforce if they aren’t already active for Network Merchants.
- Click the gear icon on the top right and select Settings
- Under Security select Remote Site Settings
- Locate Network Merchants (NMI) and click edit
- Check the Active box
- Click Save
Configuring NMI for Integration
In this section and the next, you’ll find the procedures for configuring the integrations for both NMI and Salesforce. It’s important to follow each of the steps carefully, and in the correct order.
As shown in the NMI documentation, credentials are available for testing your integration. You can get your own sandbox by requesting one, or use the general username and password:
- Test username: demo
- Test password: password
You’ll also want to contact NMI to obtain a merchant account and get credentials for a production account. Many payment companies resell NMI as their payment gateway, so you may also receive credentials from an NMI partner.
It’s essential that you get these credentials for the production account:
- Username, from your enrollment email message
- Password, from your enrollment email message
NOTE: You must obtain these gateway credentials from NMI before moving on to the steps in the next section, Setting Up Salesforce For Integration
Follow these instructions for configuring NMI for integration with Salesforce:
- If you don’t already have one, you can request an NMI sandbox account for their Direct Post eCommerce integration at the NMI Contact Form.
- You will receive email communications from NMI Support, and they will provide you with the credentials in the list above.
Setting up NMI in Salesforce
Add a NMI Gateway record in Salesforce using Chargent’s Gateway Wizard.
- Click on the App Launcher on the top left side in Salesforce.
- Select Chargent as the App
- Select the Chargent Settings Tab
- Choose Chargent Setup Wizard
- Do you have a Payment Gateway account - Select Yes
- Select Network Merchants as your Payment Gateway.
- Select Test Transactions for testing or Live Transactions if you are looking to process real payments.
- Follow the prompts to configure your gateway.
You will need the following information:
- Add your credentials based on your Sandbox (Test) or Production Live NMI account.
- Username: This is your Network Merchants Username
- Password: This will be your Network Merchants Password
Other information that will be asked:
- Use Tokenization? (Recommended)
- What currency will you be using? (USD, CAD, etc..)
- What payment methods will you be accepting?
- Credit cards and/or ACH (electronic check)
- What Credit Card types will you be accepting? (Visa, Mastercard, etc…)
- Payment Console Setup (Premium feature for Platform Edition)
- Show Charge Button
- Show / Create Update Token Button
- Show Authorize Button
Direct Debit Network (version 6.15 and higher)
Starting with Chargent version 6.15, you can now select the Bank Account network for your region during the gateway setup process. This will allow for the correct Direct Debit Network fields to be displayed on Payment Requests and Payment Console based on your region.
You have the following Direct Debit Networks to choose from based on your region.
- US - ACH (also known as echeck or electronic check)
- Canada - EFT (ACSS) Electronic Funds Transfer
- Australia - BECS
- Europe - SEPA
Once you have your Direct Debit Network set, you will see the appropriate field names on your Payment Request that are sent as well as your internal Payment Console.
Testing using Chargent Anywhere
Testing with Payment Console
To test using the Payment Console, you want to navigate to any record in your Sandbox that has the Chargent Anywhere Component enabled.
- Click the [PaymentConsole] button
- If you are using multiple gateways select your gateway from the dropdown otherwise continue to step 3
- Enter all the Billing Information and click [Next]
- Enter in a test credit card number, expiration date, and CVC code based on the NMI Test Credit Cards or ACH test bank numbers below.
- Click the [Charge] button.
You should receive a green box showing Approved.
Testing using Payment Request
To test using a Payment Request you want to be sure you have the Chargent Payment Request feature set up as outlined in our documentation.
- Click the [Send Payment Request] button
- If you have multiple Payment Request templates set up you will first choose what template you want to use.
- Enter an email address where you want to send the test Payment Request along with any amount.
- Enter a Contact name (Optional)
- Click the [Send Request] button
You should receive a green box confirmation
Network Merchant Test Credit Cards
|Credit Card Type||Credit Card Number|
|MasterCard (BIN 2)||2223000010089800|
|Maestro (19 Digit)||6771771771771771774|
|Diners (19 Digit)||3607050000000000065|
You can also submit ACH transaction with the test routing and account numbers:
|Routing Number||Account Number|
Address Verification Testing
The values table below can be used to test all possible NMI AVS responses. The combination of the Street Address and Zip Code in the request will generate the associated AVS Result Code in the response.
|AVS Result Code||AVS Result Definition|
|X||Exact match, 9-character numeric ZIP|
|Y||Exact match, 5-character numeric ZIP|
|D||Exact match, 5-character numeric ZIP|
|M||Exact match, 5-character numeric ZIP|
|A||Address match only|
|B||Address match only|
|W||9-character numeric ZIP match only|
|Z||5-character ZIP match only|
|P||5-character ZIP match only|
|L||5-character ZIP match only|
|N||No address or ZIP match only|
|C||No address or ZIP match onlytd>|
|G||Non-U.S. issuer does not participate|
|I||Non-U.S. issuer does not participate|
|R||Issuer system unavailable|
|E||Not a mail/phone order|
|S||Service not supported|
|O||AVS not available|
|B||AVS not available|
The table below lists the NMI responses codes for testing CVV, CVC, and CID-which is the 3- or 4-digit code printed on the back of a card. This security feature assists merchants in processing a Card-Not-Present transaction, and receiving a positive response improves the likelihood that the cardholder making the purchase is in physical possession of the card. Visa, MC, and Discover encode a 3-digit value on their cards, which American Express encodes either a 3- or 4-digit value. Sending one of the following CVV/CVC values will return the corresponding result code:
|AVS Result Code||AVS Result Definition|
|S||Merchant has indicated that CVV2/CVC2 is not present on card|
|U||Issuer is not certified and/or has not provided Visa encryption keys|
- To generate a declined transaction, pass an amount that is less than 1.00.
- To trigger a fatal error message, pass an invalid card number.
- To simulate an AVS match, pass 888 in the address1 field, 77777 for zip.
- See the figure below for the placement of these fields
- Click the Save button to commit the changes on the form. On the next page, click the Charge button (as shown below).
- Enter the CVV (Credit Card Verification Code)
Sending Live Transactions from a Salesforce Sandbox
When Chargent is installed in a Salesforce Sandbox, transactions are always sent to the payment gateway's test / sandbox / development environment, regardless of whether Chargent's Test Endpoint checkbox is checked. This is done as a security precaution, to prevent real transactions from being accidentally sent from a Salesforce Sandbox.
When Chargent is installed in a production or developer Salesforce org, the Test Endpoint checkbox on the Gateway record will select between sending to the payment gateway's live and test environments.
If you wish to send live transactions from a Salesforce Sandbox, as a final step in testing, simply use Chargent's Endpoint Override field on the Gateway record, and enter the production endpoint of your chosen gateway there.
Here is the production endpoint URL for Chargent's integration with NMI:
Note that the full endpoint URL must be entered in the Endpoint Override field, and the domain must be present in the Remote Site Settings (for standard Chargent integrations it should be already present).
When a transaction occurs between Chargent and the NMI gateway, a new transaction record is created. The listing of transactions can be found in the Transaction section near the bottom of the Chargent Order page in Salesforce. See the figure above.
Click a Transaction ID link to see the details of the transaction record, as shown in the figure below. This transaction record contains the entire set of data that NMI sends in its response, including transaction Type (Charge, Authorize, Refund or Void), the Response Status (Approved, Declined, Error).
The Gateway Date is the timestamp for the submission to NMI, and the Gateway ID field corresponds to the NMI Transaction ID for use in reconciliation between two systems.
Confirming the transactions with NMI
You can compare the transactions in Salesforce with your NMI administrative app to search for transactions and generate reports.
Access your NMI administrative test account information to view your test transactions and generate reports, if necessary.
Search for transactions
Login to your test account using the test username and password. Then, as shown in the figure, click the Reports item in the menu on the left
In the Reports page, choose a Group By category, then choose a Start Date and End Date, and then click the Submit button.
On the Transaction Snapshot page, you’ll find a listing of test transactions matching the date/group criteria from the previous step.
As shown in the figure above, click the small spyglass icon on the line containing the transaction you want to inspect, and then click View these Transactions.
Click the ID of the transaction you want to inspect to view its details, as shown in the figure below.
This table contains the mapping information between NMI and Salesforce fields.
|Salesforce field||Direction||NMI field|
|Invoice Number||>||Order ID|
This section contains the procedure for configuring the integration in a production system.
- First, obtain the production credentials for the NMI production gateway account (the productions credentials from Configuring NMI for Integration).
- As given previously, the credentials include the following:
- Username, from your enrollment email message
- Password, from your enrollment email message
NOTE: Remember to void the transaction after testing, if you are using a real credit card and want to prevent the charge from settling.
Chargent supports NMI Token Payments, which allows you to securely store your customer's account number and other cardholder data with NMI, and use an associated token in Salesforce for future payments.
PCI compliance scope is reduced since you are not storing the credit card numbers in Salesforce.
You can enable NMI Token Payments manually if you didn’t already select that option when you initially set up your NMI gateway.
- Go to the App Launcher and search for the Gateway Object.
- Select the Gateway Object and the NMI gateway.
- Click Edit and set the following.
- Click Advanced Settings
- Check the Use Tokenization checkbox in the Chargent Gateway record you have set up for Fat Zebra
- Set the Credit Card Handling field to Clear When Token is Present
The NMI token is stored in Chargent's Token field in Salesforce after your first successful transaction, and the credit card fields are handled as you specified in the preceding step.