NMI Direct Post API
NMI Direct Post API
NMI Direct Post API
Integration Resources
Direct Post API Documentation
June 2007
Table of Contents
Methodology........................................................................................................ 2 Direct Post Method (Server to Server) FIG. 1 ................................................................ 2 Transaction Types .............................................................................................. 3 Sale (sale) ........................................................................................................................ 3 Authorization (auth) ........................................................................................................ 3 Capture (capture) ............................................................................................................ 3 Void (void) ...................................................................................................................... 3 Refund (refund) ............................................................................................................... 3 Credit (credit) .................................................................................................................. 3 Update (update) ............................................................................................................... 3 Transaction Variables ......................................................................................... 4 Sale/Authorization/Credit ............................................................................................... 4 Capture ............................................................................................................................ 5 Void................................................................................................................................. 5 Refund ............................................................................................................................. 5 Update ............................................................................................................................. 5 Transaction Response Variables....................................................................... 6 Standard Response .......................................................................................................... 6 Retail Data ........................................................................................................... 6 Passing Retail Magnetic Stripe Data............................................................................... 6 Testing Information ............................................................................................ 7 Transaction Testing Account .......................................................................................... 7 Transaction POST URL .................................................................................................. 7 Test Transaction Information .......................................................................................... 7 Triggering Errors in Test Mode ...................................................................................... 7 Examples ............................................................................................................. 8 Direct Post Format .......................................................................................................... 8 Changelog ........................................................................................................... 8 Appendix 1 AVS Response Codes ................................................................. 9 Appendix 2 CVV Response Codes ................................................................. 9 Appendix 3 response_code Lookup Table .................................................. 10
Copyright 2001-2008
Page | 1
Methodology
There are two primary options in which transactions can be submitted through the Payment Gateway API. The simplest, most direct, and transparent method is our Direct Post Method. This document describes the Direct Post Method.
The communication method used to send messages to the Payment Gateways server is the standard HTTP protocol over an SSL connection. In the Direct Post method, the communications with the cardholder (Steps 1 and 4) are developed completely by the merchant and therefore are not defined by the Payment Gateway. Step 1 should simply collect the payment data from the cardholder and Step 4 should display the appropriate transaction receipt or declined message. In Step 2, transaction details should be delivered to the Payment Gateway using the POST method with the appropriate variables defined below posted along with the request. In Step 3, the transaction responses are returned in the body of the HTTP response in a query string name/value format delimited by ampersands. For example: variable1=value1&variable2=value2&variable3=value3
Copyright 2001-2008
Page | 2
Transaction Types
Sale (sale)
Transaction sales are submitted and immediately flagged for settlement. These transactions will automatically be settled.
Authorization (auth)
Transaction authorizations are authorized immediately but are not flagged for settlement. These transactions must be flagged for settlement using the capture transaction type. Authorizations typically remain activate for three to seven business days.
Capture (capture)
Transaction captures flag existing authorizations for settlement. Only authorizations can be captured. Captures can be submitted for an amount equal to or less than the original authorization.
Void (void)
Transaction voids will cancel an existing sale or captured authorization. In addition, non-captured authorizations can be voided to prevent any future capture. Voids can only occur if the transaction has not been settled.
Refund (refund)
Transaction refunds will reverse a previously settled transaction. If the transaction has not been settled, it must be voided instead of refunded.
Credit (credit)
Transaction credits apply a negative amount to the cardholders card. In most situations credits are disabled as transaction refunds should be used instead.
Update (update)
Transaction updates can be used to update previous transactions with specific order information, such as a tracking number and shipping carrier.
Copyright 2001-2008
Page | 3
Transaction Variables
Sale/Authorization/Credit
Variable Name type Required* Required Format sale / auth / credit Description sale = Transaction Sale auth = Transaction Auth credit = Transaction Credit Username assigned to merchant account Password for the specified username Credit card number Credit card expiration (ie. 0711 = 7/2011) The name on the customers ACH Account. The customers bank routing number The customers bank account number The customers type of ACH account The customers ACH account entity ACH Standard Entry Class codes Total amount to be charged (i.e. 10.00) Card security code Set Payment Type to ACH or Credit Card If using Multiple MIDs, route to this processor. processor_id is obtained under
Options->Load Balancing in the Control Panel
username password ccnumber ccexp checkname checkaba checkaccount account_holder_type account_type sec_code amount cvv payment processor_id dup_seconds descriptor descriptor_phone product_sku_# orderdescription orderid ipaddress tax shipping ponumber firstname lastname company address1 address2 city state zip country phone fax email validation shipping_firstname shipping_lastname
Required Required Required** Required** Required** Required** Required** Required** Required** Optional** Required Recommended Optional ** Optional Optional Optional Optional Optional Optional Optional Recommended Level II Level II Level II Recommended Recommended Optional Recommended Optional Recommended Recommended Recommended Recommended Recommended Optional Recommended Optional Optional Optional
MMYY
product_sku_1
CC CC (ISO-3166)
Associate API call with Recurring SKU Order description Order Id IP address of the cardholder Total tax amount Total shipping amount Original Purchase Order Cardholders first name Cardholders last name Cardholders company Card billing address Card billing address line 2 Card billing city Card billing state (2 character abbrev.) Card billing zip code Card billing country (ie. US) Billing phone number Billing fax number Billing email address Specify which Validation processors to use. If
variable is passed blank, use none.
Copyright 2001-2008
Page | 4
CC (ISO-3166)
Shipping company Shipping address Shipping address line 2 Shipping city Shipping state Shipping zip code Shipping country (ie. US) Shipping email address
*These fields are required by default. Level II fields are required for Level II processing. Recommended fields help provide additional address and cardholder verification. Please Note, Certain banks may require some optional fields. **You can pass only Credit Card or E-Check transaction variables in a request not both in the same request.
Capture
Variable Name type username password transactionid amount Required Required Required Required Required Required Format capture Description capture = Transaction Capture Username assigned to merchant account Password for the specified username Original Payment Gateway transaction id Total amount to be settled (i.e. 10.00) This amount must be equal to or less than the original authorized amount. Shipping Tracking Number Shipping Carrier Order Id
x.xx
ups/fedex/dhl/usps
Void
Variable Name type username password transactionid Required Required Required Required Required Format void Description void = Cancel unsettled Transaction Username assigned to merchant account Password for the specified username Original Payment Gateway transaction id
Refund
Variable Name type username password transactionid amount Required Required Required Required Required Optional Format refund Description refund = Refund Transaction Username assigned to merchant account Password for the specified username Original Payment Gateway transaction id Total amount to be refunded (i.e. 10.00) This amount may be equal to or less than the settled amount.
x.xx
Update
Variable Name type username password transactionid Required Required Required Required Required Format update Description update = Update an un-captured Transaction Username assigned to merchant account Password for the specified username Original Payment Gateway transaction id
Copyright 2001-2008
Page | 5
ups/fedex/dhl/usps
C C C
Retail Data
Passing Retail Magnetic Stripe Data
The payment gateway supports passing of magnetic strip data collected from a card reader.
Variable Name track_1 track_2 track_3 Format raw raw raw Description Raw Magnetic Stripe Data Raw Magnetic Stripe Data Raw Magnetic Stripe Data
Copyright 2001-2008
Page | 6
Testing Information
Transaction Testing Account
Transactions can be tested using one of two methods. First, transactions can be submitted to any merchant account that is in test mode. Keep in mind that if an account is in test mode, all valid credit cards will be approved but no charges will actually be processed. The Payment Gateway demo account can also be used for testing at any time. Please use the following username and password for testing with this account: Username: Password: demo password
Copyright 2001-2008
Page | 7
Examples
Direct Post Format
username=demo&password=password&type=sale&ccnumber=4111111111 111111&ccexp=0711&cvv=999&amount=10.00
Response data returned to merchants web site in HTML body
response=1&responsetext=SUCCESS&authcode=123456&transactionid=2 81719471&avsresponse=&cvvresponse=M&orderid=&type=sale&response_code=100
Changelog
June 2007 January 2007 July 2006 April 2006 February 2006 Documented product_sku_x Variable Documented processor_id Variable Added Transaction Type Update Added Response Code Appendix Documented Browser Redirect Capability
Copyright 2001-2008
Page | 8
Copyright 2001-2008
Page | 9
Copyright 2001-2008
Page | 10