Advanced Integration Method (AIM) Developer Guide



Similar documents
Advanced Integration Method (AIM) Developer Guide

Advanced Integration Method (AIM) Developer Guide

Advanced Integration Method (AIM) Developer Guide

Advanced Integration Method (AIM) Card-Not-Present Transactions

Merchant Web Services API

Card-Present Transactions

Merchant Web Services API Advanced Integration Method (AIM)

Server Integration Method (SIM) Card-Not-Present Transactions

Merchant Integration Guide

Merchant Integration Guide

Card-Present Transactions Implementation Guide Version 1.0

CFX_AIM_JAVA. A payment card gateway solutions for ColdFusion users of Authorize.Net s Advanced Integration Method (AIM)

Authorize.Net. Reference Guide

echeck.net Developer Guide

Merchant Web Services API

Merchant Web Services API

Response Code Details

echeck.net Developer Guide

Authorize.Net. Reference Guide

Transaction Details Guide

Authorize.Net Mobile Application

Authorize.Net Mobile Application

Merchant Web Services API

Merchant Web Services API

Merchant Web Services API

Getting Started with Apple Pay on the Authorize.Net Platform

Server Integration Method (SIM) Developer Guide

Volume PLANETAUTHORIZE PAYMENT GATEWAY. vtiger CRM Payment Module. User Guide

Upload Transaction. File Guide

SIMPLIFY SALEFORCE AND QUICKBOOKS INTEGRATION: Integrating ReceivePayment from QuickBooks to Salesforce.com

Merchant Web Services API

Merchant Web Services API

Fax Cover Sheet and Application Checklist Attention: Craig Storms Company: Authorize.Net

United Payment Services My Merchant Console Connect Virtual Terminal User Guide

Table of Contents. Revision

Fax Cover Sheet and Application Checklist Attention: Sarah Oldham Company: Authorize.Net

Merchant Interface Online Help Files

Your gateway to card acceptance.

CyberSource Business Center Simple Order API

User s Guide Simple Order API Version 1.14 May 2005

Merchant Administration

Title Page. Credit Card Services. User Guide. August CyberSource Corporation HQ P.O. Box 8999 San Francisco, CA Phone:

Merchant e-solutions Payment Gateway Back Office User Guide. Merchant e-solutions January 2011 Version 2.5

Electronic Check Services

PAYMENT GATEWAY AND OPTIONAL MERCHANT ACCOUNT SETUP FORM

Processor Setup Guide

Getting Started with CyberSource Advanced

Recurring Billing. Using the Simple Order API. October CyberSource Corporation HQ P.O. Box 8999 San Francisco, CA Phone:

Merchant Interface Online Help Files

Merchant Payment Solutions

Direct Post Method (DPM) Developer Guide

MKT Accounting Credit Card Processing For AccountMate SQL

Processor Setup Guide

Process Transaction API

Virtual Terminal User s Guide

Merchant Payment Solutions

MiGS Merchant Administration Guide. July 2013 Software version: MR 29

Virtual Terminal User s Guide

Testing Transactions

OnSite 7.0 Setting Up A Merchant Account

Global Transport Secure ecommerce Decision Tree

Credomatic Integration Resources. Browser Redirect API Documentation June 2007

a CyberSource solution Merchant Payment Solutions

a CyberSource solution Merchant Payment Solutions

Direct Post. Integration Guide

Payflow Link User s Guide

MasterCard In tern et Gateway Service (MIGS)

Getting Started Guide

Fax Cover Sheet and Application Checklist. Checklist for Submitting an Authorize.Net Payment Gateway and Optional Merchant Account Set-up Form

Virtual Terminal User Guide

Electronic Check Services

United Payment Services My Merchant Console Connect SecurePAY User Guide

Credit Card Processing

AliPay International Services

Network Merchants Inc (NMI) Integration Resources. Direct Post API Documentation April 2010

Merchant One Payment Systems Integration Resources. Direct Post API Documentation June 2007

VeriSign Payment Services

United Payment Services United Connect Invoices

Recurring Billing. Using the SCMP API. October CyberSource Corporation HQ P.O. Box 8999 San Francisco, CA Phone:

My Sage Pay User Manual

Order Processing Guide

DalPay Internet Billing. Technical Integration Overview

Security Best Practices

Using Your Terminal for UnionPay Cards (05/15)

PROCESS TRANSACTION API

Getting Started with Visa Checkout

ANZ egate Virtual Payment Client

Recurring Billing. Using the Business Center. May CyberSource Corporation HQ P.O. Box 8999 San Francisco, CA Phone:

Merchant Account Service

Gateway Direct Post API

PAYMENT GATEWAY ACCOUNT AND MERCHANT ACCOUNT SETUP FORMS

Gateway Developer Guide and Reference

Three Step Redirect API V2.0 Patent Pending

Credit Card Overview & Processing Guide entrée Version 3

MiGS Virtual Payment Client Integration Guide. July 2011 Software version: MR 27

Credit Card Processing

Realex Payments Integration Guide - Ecommerce Remote Integration. Version: v1.1

ANZ Secure Gateway Virtual Terminal QUICK REFERENCE GUIDE NOVEMBER 2015

DalPay Internet Billing. Checkout Integration Guide Recurring Billing

Transcription:

Advanced Integration Method (AIM) Developer Guide Card Not Present Transactions February 2014 Authorize.Net Developer Support http://developer.authorize.net Authorize.Net LLC 082007 Ver.2.0

Authorize.Net LLC ( Authorize.Net ) has made efforts to ensure the accuracy and completeness of the information in this document. However, Authorize.Net disclaims all representations, warranties and conditions, whether express or implied, arising by statute, operation of law, usage of trade, course of dealing or otherwise, with respect to the information contained herein. Authorize.Net assumes no liability to any party for any loss or damage, whether direct, indirect, incidental, consequential, special or exemplary, with respect to (a) the information; and/or (b) the evaluation, application or use of any product or service described herein. Authorize.Net disclaims any and all representation that its products or services infringe upon any existing or future intellectual property rights. Authorize.Net owns and retains all right, title and interest in and to the Authorize.Net intellectual property, including without limitation, its patents, marks, copyrights and technology associated with the Authorize.Net services. No title or ownership of any of the foregoing is granted or otherwise transferred hereunder. Authorize.Net reserves the right to make changes to any information herein without further notice. Authorize.Net Trademarks: Advanced Fraud Detection Suite Authorize.Net Authorize.Net Your Gateway to IP Transactions Authorize.Net Verified Merchant Seal Authorize.Net Where the World Transacts Automated Recurring Billing echeck.net FraudScreen.Net 2

Contents CONTENTS Recent Revisions to This Document 5 Chapter 1 Introduction 6 AIM Minimum Requirements 6 Payment Card Industry (PCI) Data Security Standard 7 Managing Integration Settings 7 Features of AIM 8 echeck.net 9 PayPal Express Checkout 9 Payment Processors 10 North American Payment Processors 10 Accepted Card Types 10 Accepted Currencies 10 European Payment Processors 10 Asia-Pacific Processor 11 Developer Support 12 Software Development Kits 12 Chapter 2 Submitting Transactions 13 Minimum Requirements 14 Credit Card Transaction Types 16 Authorization and Capture 17 Authorization Only 17 Prior Authorization and Capture 17 Capture Only 18 Credit (Refund) 18 Unlinked Credit 19 Void 19 Visa Verification Transactions 20 Partial Authorization Transactions 20 Using the Merchant Interface 22 AIM Developer Guide February 2014 3

Contents Chapter 3 Transaction Data Requirements 23 Transaction Post Location 23 AIM Transaction Submission API 23 Merchant Information 24 Transaction Information 25 Order Information 28 Itemized Order Information 29 Customer Information 30 Shipping Information 32 Additional Shipping Information (Level 2 Data) 33 x_tax 33 x_freight 34 x_duty 34 x_tax_exempt 34 x_po_num 35 Cardholder Authentication 35 Merchant-defined fields 37 Chapter 4 Transaction Response 39 Fields in the Payment Gateway Response 41 Response for Duplicate Transactions 46 AIM Transaction Response Types 47 Version 3.0 47 Version 3.1 47 Setting the Transaction Version 48 Response Code Details 48 Email Receipt 62 Chapter 5 Test Transactions 64 Testing to Generate Specific Transaction Results 65 Appendix A Fields by Transaction Type 67 Minimum Required Fields 67 Required Fields for Additional AIM Features 68 Best Practice Fields 69 Appendix B Alphabetized List of API Fields 70 AIM Developer Guide February 2014 4

Recent Revisions to This Document REVISIONS Date Revision February 2014 Added x_market_type API field. See "Transaction Information," page 25. October 2013 May 2013 April 2013 February 2013 October 2012 Added a note recommending POST instead of GET. See "Transaction Post Location," page 23. Updated Developer Support section. See "Developer Support," page 12. Added a section on PayPal Express Checkout through AIM. See "PayPal Express Checkout," page 9. Added AUD and NZD to the, "x_currency_code" field. Updated the table of "Payment Processors." Added EUR to the, "x_currency_code" field. Updated the table of "Payment Processors." Updated the table of "Payment Processors." Updated the table of "Payment Processors." Added list of "Payment Processors." and currencies, along with associated required fields. Added the, "x_currency_code" field. AIM Developer Guide February 2014 5

Introduction CHAPTER 1 This guide describes the Web development required to connect an e-commerce website or other application to the Authorize.Net Payment Gateway in order to submit credit card transactions for authorization and settlement using the Advanced Integration Method (AIM). AIM is a customizable payment processing solution that gives the merchant control over all of the steps in processing a transaction, including: Collecting customer payment information through a custom application Generating a receipt to the customer Secure transmission of data to the payment gateway for transaction processing Securely storing cardholder information And more, depending on the merchant s business requirements The security of an AIM transaction is ensured through a 128-bit Secure Sockets Layer (SSL) connection between the merchant s Web server and the Authorize.Net Payment Gateway. AIM allows merchants the highest degree of customization and control over their customer checkout experience. Note For merchants who prefer a payment solution that collects, transmits, and stores cardholder data, Authorize.Net recommends the Server Integration Method (SIM). See the SIM Developer Guide at: http://www.authorize.net/support/sim_guide.pdf. SIM does not require merchants to purchase and install an SSL digital certificate, which reduces the complexity of securely handling and storing cardholder information, simplifying compliance with the Payment Card Industry (PCI) Data Security Standard. AIM Minimum Requirements Before you begin, check with the merchant to make sure that the following AIM requirements have been met. It is strongly recommended that you work closely with the merchant to ensure that any other business and Web site requirements (for example, AIM Developer Guide February 2014 6

Chapter 1 Introduction bank or processor requirements, Web site design preferences) are included in their AIM integration. The merchant must have a merchant bank account that allows Internet transactions. The merchant must have an e-commerce (Card Not Present) Authorize.Net Payment Gateway account. The merchant must have a valid Secure Sockets Layer (SSL) certificate and their Web site must be capable of initiating both client- and server-side SSL connections. The merchant s website must have server-side scripting or CGI capabilities such as ASP Classic, C#, Cold Fusion, Java, Perl, PHP or VB.Net. The merchant must be able to store payment gateway account data securely (for example, API Login ID, or Transaction Key). Payment Card Industry (PCI) Data Security Standard Important AIM involves transmitting sensitive cardholder data using the merchant s Web server. Therefore, if the merchant stores cardholder information, it must be stored securely and in accordance with the Payment Card Industry (PCI) Data Security Standard. For more information about PCI and other industry standard processing practices, see the Developer Security Best Practices White Paper. If merchants need a solution that collects, transmits, and stores cardholder data, they should use the Server Implementation Method (SIM). For more information about SIM, see the SIM Developer Guide. Managing Integration Settings When integrating to the payment gateway, you should be aware that most settings for a merchant s integration can be configured and managed in one of two ways: Included in the transaction request on a per-transaction basis using the application programming interface (API), as described in this guide. AIM Developer Guide February 2014 7

Chapter 1 Introduction Configured in the Merchant Interface and applied to all transactions. Important The Merchant Interface at https://account.authorize.net is a secure website on which merchants can manage their payment gateway account settings, including their Web site integration settings. Review the Merchant Integration Guide at http://www.authorize.net/support/merchant/ for information on managing the merchant s payment gateway integration using the Merchant Interface. Transaction settings submitted in the transaction request will override transaction settings configured in the Merchant Interface. However, be aware that some integration settings must be configured in the Merchant Interface. To help the merchant maintain a robust integration, review with the merchant the integration settings that can be configured in the Merchant Interface and determine which settings can be posted on a per-transaction basis and which should be configured in the Merchant Interface. See Appendix A, "Fields by Transaction Type," on page 67 for a list of fields that can be submitted on a pertransaction basis. Features of AIM In addition to basic transaction processing, AIM provides merchants with several features for configuring transaction security options and further customizing their customers checkout experience. These features are listed in the AIM feature selection table below. Take a few moments to discuss these features with your merchant and select the appropriate features for their integration. Table 1 Features of AIM Features Description Requirements Address Verification Service (AVS) Filter This feature enables merchants to compare the billing address submitted by the customer for the transaction with the address on file at the card issuing bank. Filter settings in the Merchant Interface allow the merchant to reject transactions based on the AVS response received. To implement AVS, the merchant must require the Address and ZIP Code fields on their custom payment form. For more information about AVS, see the Merchant Integration Guide at http://www.authorize.net/support/ merchant/. AIM Developer Guide February 2014 8

Chapter 1 Introduction Table 1 Features of AIM (Continued) Features Description Requirements Card Code Verification (CCV) Filter Itemized Order Information Email Receipt This feature enables merchants to compare the card code submitted by the customer for the transaction with the card code on file at the card issuing bank. Filter settings in the Merchant Interface allow the merchant to reject transactions based on the CCV response received. This feature enables merchants to submit details for items purchased. This information is included in the customer s confirmation email, in the Transaction Details for the transaction, and in QuickBooks download reports in the Merchant Interface. This feature enables merchants to have the payment gateway send an automatic email receipt to their customers. To implement CCV, the merchant must require the Card Code on their custom payment form. For more information about CCV, see the Merchant Integration Guide at http://www.authorize.net/support/ merchant/. To implement Itemized Order Information, the line item field must be submitted for each transaction. See "Itemized Order Information," page 29 for details. To configure the payment gateway email receipt, merchants must require the customer email addresses on their custom payment form, and settings must be configured in the Email Receipts section of the Settings menu in the Merchant Interface or submitted for each transaction. See "Email Receipt," page 62 for details. echeck.net In addition to processing credit card transactions, the payment gateway also supports electronic check transactions with our exclusive echeck.net product.contact the merchant to determine whether echeck.net is enabled for their payment gateway account or whether they would like to have it enabled. If echeck.net is enabled, you must ensure that the merchant s Web site integration supports all echeck.net field requirements. See the echeck.net Developer Guide for more information. PayPal Express Checkout You can use AIM to implement PayPal Express Checkout as an alternative payment. PayPal Express Checkout for AIM is currently in beta. Contact your Authorize.Net sales representative for more information. AIM Developer Guide February 2014 9

Chapter 1 Introduction Payment Processors The currencies that a merchant can accept through Authorize.Net are determined by their payment processor. North American Payment Processors Accepted Card Types All North American payment processors supported by Authorize.Net accept the following card types: American Express Diners Club Discover JCB Mastercard Visa Accepted Currencies Table 2 North American Payment Processors and Accepted Currencies Payment Processor Chase Paymentech Tampa Processing Platform Elavon First Data Merchant Services (FDMS) Omaha, Nashville, and EFSNet Processing Platforms Global Payments Heartland Payment Systems TSYS Acquiring Solutions WorldPay Atlanta Processing Platform Accepted Currencies United States Dollar (USD) Canadian Dollar (CAD) United States Dollar (USD) Canadian Dollar (CAD) United States Dollar (USD) United States Dollar (USD) Canadian Dollar (CAD) United States Dollar (USD) United States Dollar (USD) United States Dollar (USD) European Payment Processors The following European payment processors are supported by Authorize.Net for Card Not AIM Developer Guide February 2014 10

Chapter 1 Introduction Present (CNP) transactions. Table 3 European Payment Processors, Accepted Card Types, and Accepted Currencies Payment Processor Accepted Card Types Accepted Currencies AIB Merchant Services Mastercard Visa Barclaycard JCB Mastercard Visa First Data Merchant Solutions (MSIP platform) Mastercard Visa HSBC Merchant Services Mastercard Visa Lloyds Bank Cardnet Mastercard Visa Streamline JCB Mastercard Visa British Pounds (GBP) Euro (EUR) United States Dollar (USD) British Pounds (GBP) Euro (EUR) British Pounds (GBP) British Pounds (GBP) Euro (EUR) British Pounds (GBP) British Pounds (GBP) Euro (EUR) United States Dollar (USD) Asia-Pacific Processor The following Asia-Pacific payment processor is supported by Authorize.Net for Card Not Present (CNP) transactions. Table 4 Asia-Pacific Payment Processor, Accepted Card Types, and Accepted Currencies Payment Processor Accepted Card Types Accepted Currencies FDI Australia Mastercard Visa Westpac Mastercard Visa Australian Dollar (AUD) New Zealand Dollar (NZD) United States Dollar (USD) Australian Dollar (AUD) For information on setting the currency using the AIM API, see "x_currency_code". AIM Developer Guide February 2014 11

Chapter 1 Introduction Developer Support Several resources are available to help you successfully integrate a merchant Web site or other application to the Authorize.Net payment gateway. The Developer Center at http://developer.authorize.net provides sandbox accounts, sample code, FAQs, and troubleshooting tools. Developer Training Videos are available at http://developer.authorize.net/training. The Developer Community at http://community.developer.authorize.net provides answers to questions from other Authorize.Net developers. Developer Support is available at http://developer.authorize.net/support. If you have suggestions for improving or correcting this guide, send email to documentation@authorize.net. Software Development Kits Authorize.Net offers software development kits (SDKs) that present an alternate objectoriented model, in several popular languages. To use these SDKs, the merchant s transaction version must be set to 3.1. The SDK performs the core payment activities (such as error handling and parsing, network communication, and data encoding) behind the scenes. The SDK provides utilities to help developers build payment flows for each of the integration methods. You can download the SDKs at http://developer.authorize.net/ downloads/. AIM Developer Guide February 2014 12

Submitting Transactions CHAPTER 2 The payment gateway supports several credit card transaction types for transactions submitted by AIM. To implement AIM for a merchant s Web site or proprietary business application, you will need to develop an application that: Securely obtains all of the information required to process a transaction (including data requirements specified by the merchant). Initiates an SSL connection from the merchant s Web server to the payment gateway transaction post location to pass transaction data in name/value pairs. Receives and parses the transaction response from the payment gateway and displays the results to the customer. You can develop the application in one of two ways: by yourself using the information provided in this document use Authorize.Net sample code available for free from our Developer Center. If you choose to use sample code, be aware that to achieve a successful implementation, the code must be modified with the merchant s specific payment gateway account information. Be sure to carefully review the readme.txt files and comments included in each file of sample code in order to achieve a faster, successful integration. Developer test accounts with API Login IDs and Transaction Keys are also available to test your integration methods to the Authorize.Net Payment Gateway at http://developer.authorize.net/testaccount. AIM Developer Guide February 2014 13

Chapter 2 Submitting Transactions Minimum Requirements The following table represents the minimum fields required for submitting a credit card transaction request to the payment gateway using AIM. The data fields are name/value pairs with the following syntax: x_name_of_field=value of field Table 5 Minimum AIM Fields Field Name x_login x_tran_key x_type x_amount Description Value: The merchant s unique API Login ID Format; Up to 20 characters Notes: The merchant API Login ID is provided in the Merchant Interface and must be stored securely. The API Login ID and Transaction Key together provide the merchant the authentication required for access to the payment gateway. See the Merchant Integration Guide at http://www.authorize.net/support/ merchant/ for more information. Value: The merchant s unique Transaction Key Format; 16 characters Notes: The merchant Transaction Key is provided in the Merchant Interface and must be stored securely. The API Login ID and Transaction Key together provide the merchant the authentication required for access to the payment gateway. See the Merchant Integration Guide at http://www.authorize.net/support/ merchant/ for more information. Value: The type of credit card transaction Format; AUTH_CAPTURE (default), AUTH_ONLY, CAPTURE_ONLY, CREDIT, PRIOR_AUTH_CAPTURE, VOID Notes: If the value submitted does not match a supported value, the transaction is rejected. If this field is not submitted or the value is blank, the payment gateway will process the transaction as an AUTH_ CAPTURE. Value: The amount of the transaction Format; Up to 15 digits with a decimal point (no dollar symbol). For example, 8.95. Notes: This is the total amount and must include tax, shipping, and any other charges. AIM Developer Guide February 2014 14

Chapter 2 Submitting Transactions Table 5 Minimum AIM Fields (Continued) Field Name x_card_num x_exp_date x_trans_id x_split_tender_id x_auth_code x_relay_response Description Value: The customer s credit card number Format; Between 13 and 16 digits without spaces. When x_type=credit, only the last four digits are required. Notes: This is sensitive cardholder information and must be stored securely and in accordance with the Payment Card Industry (PCI) Data Security Standard. For more information about PCI, see the Developer Security Best Practices White Paper. Value: The customer s credit card expiration date. Format; MMYY, MM/YY,MM-YY, MMYYYY, MM/YYYY, MM-YYYY Notes: This is sensitive cardholder information and must be stored securely and in accordance with the Payment Card Industry (PCI) Data Security Standard. For more information about PCI, see the Developer Security Best Practices White Paper. Value: The payment gateway-assigned transaction ID of an original transaction Notes: Required only for CREDIT, PRIOR_AUTH_CAPTURE, and VOID transactions. Do not include this field if you are providing the x_split_ tender_id field. For more information about transaction types, see "Credit Card Transaction Types," page 16. Value: The payment gateway-assigned ID that links the current authorization request to the original authorization request. Format; Numeric Notes: This value applies only to partial authorization transactions, and is returned in the reply message from the original authorization request. For more information, see "Partial Authorization Transactions," page 20. Value: The authorization code of an original transaction not authorized on the payment gateway Format; 6 characters Notes: Required only for CAPTURE_ONLY transactions. See "Credit Card Transaction Types," page 16. Value: FALSE Format; FALSE, F, NO, N Notes: SIM applications use relay response. Set this to false if you are using AIM. AIM Developer Guide February 2014 15

Chapter 2 Submitting Transactions Table 5 Minimum AIM Fields (Continued) Field Name x_delim_data Description Value: Indicates whether a delimited transaction response is required Format; TRUE, T, YES, Y Notes: A value of TRUE indicates a request for delimited response from the payment gateway. Since all AIM transactions are direct response, a value of TRUE is required. Submit this field for each transaction to be sure that transaction responses are returned in the correct format. See Chapter 4, "Transaction Response," on page 39 for more about delimited response. Note When using a European Payment Processor, additional fields are required. For more information, see "Customer Information". Credit Card Transaction Types This section describes the credit card transaction types supported by the payment gateway and their specific field requirements. It s a good idea to talk to your merchant about how their business plans to submit transaction so that you can properly integrate their payment gateway account to support their business processes. For example, are they submitting transactions mainly through an e-commerce Web site? Do they need to integrate a custom application to allow call center representatives to enter mail order/telephone order (MOTO) transactions? Would they like the ability to verify the availability of funds on a customer s credit card account at the time of purchase and then charge the credit card at the time they ship the order? The payment gateway supports the following credit card transaction types. Note Some of the field requirements listed in this section for each credit card transaction type are in addition to the minimum field requirements already set forth above for ALL transactions submitted to the payment gateway. For a list of all fields that are required for each credit card transaction type, see Appendix A, "Fields by Transaction Type," on page 67. AIM Developer Guide February 2014 16

Chapter 2 Submitting Transactions Authorization and Capture This is the most common type of credit card transaction and is the default payment gateway transaction type. The amount is sent for authorization, and if approved, is automatically submitted for settlement. The unique field requirement for an Authorization and Capture transaction is: x_type=auth_capture Authorization Only This transaction type is sent for authorization only. The transaction will not be sent for settlement until the credit card transaction type Prior Authorization and Capture (see definition below) is submitted, or the transaction is submitted for capture manually in the Merchant Interface. For more information about capturing Authorization Only transactions in the Merchant Interface, see the Merchant Integration Guide at http://www.authorize.net/ support/merchant/. If action for the Authorization Only transaction is not taken on the payment gateway within 30 days, the authorization expires and is no longer available for capture. A new Authorization Only transaction would then have to be submitted to obtain a new authorization code. The unique field requirement for an Authorization Only transaction is: x_type=auth_only Merchants can submit Authorization Only transactions if they want to verify the availability of funds on the customer s credit card before finalizing the transaction. This transaction type can also be submitted if the merchant does not currently have an item in stock or wants to review orders before shipping goods. Prior Authorization and Capture This transaction type is used to complete an Authorization Only transaction that was successfully authorized through the payment gateway. Note An Authorization Only and a Prior Authorization and Capture together are considered one complete transaction. After the Prior Authorization and Capture is submitted, the transaction will be sent for settlement. AIM Developer Guide February 2014 17

Chapter 2 Submitting Transactions The payment gateway accepts this transaction type and initiates settlement if the following conditions are met: The original Authorization Only transaction was submitted within the previous 30 days (Authorization Only transactions expire on the payment gateway after 30 days). The transaction is submitted with the valid transaction ID (x_trans_id) of an original, successfully authorized, Authorization Only transaction. The original transaction is not yet captured, expired or generated an error. The amount being requested for capture is less than or equal to the original authorized amount. Only a single Prior Authorization and Capture transaction can be submitted against an Authorization Only. The unique field requirements for a Prior Authorization and Capture are: x_type=prior_auth_capture x_trans_id=transaction ID here For this transaction type, the amount field (x_amount) is required only if a Prior Authorization and Capture is submitted for an amount that is less than the amount of the original Authorization Only transaction. If no amount is submitted, the payment gateway will initiate settlement for the amount of the original authorized transaction. Capture Only This transaction type is used to complete a previously authorized transaction that was not originally submitted through the payment gateway or that requires voice authorization. The payment gateway accepts this transaction type and initiates settlement if the following conditions are met: The transaction is submitted with the valid authorization code issued to the merchant to complete the transaction. The unique field requirements for a Capture Only transaction are: x_type=capture_only x_auth_code=authorization Code here For instructions on how to perform a Capture Only transaction in the Merchant Interface, see the Merchant Integration Guide at http://www.authorize.net/support/merchant/. Credit (Refund) This transaction type is used to refund a customer for a transaction that was originally processed and successfully settled through the payment gateway. AIM Developer Guide February 2014 18

Chapter 2 Submitting Transactions The payment gateway accepts Credits if the following conditions are met: The transaction is submitted with the valid transaction ID (x_trans_id) of an original, successfully settled transaction. The amount being requested for refund is less than or equal to the original settled amount. The sum of multiple Credit transactions submitted against the original transaction is less than or equal to the original settled amount. At least the last four digits of the credit card number (x_card_num) used for the original, successfully settled transaction are submitted. An expiration date is not required. The transaction is submitted within 120 days of the settlement date of the original transaction. The unique field requirements for a Credit transaction are: x_type=credit x_trans_id=transaction ID here x_card_num=full credit card number or last four digits only here Unlinked Credit This transaction type is used to issue a refund for a transaction that was not originally submitted through the payment gateway. It also enables the merchant to override restrictions for submitting refunds for payment gateway transactions, for example, if the merchant is beyond the 120-day period for submitting a refund or would like to refund an amount that is greater than the original transaction amount. The ability to submit unlinked credits is not a standard feature of a merchant s payment gateway account. To be enabled for expanded credits capability (ECC), the merchant must submit an application, which can be found at http://www.authorize.net/files/ecc.pdf. Important A transaction ID must not be submitted with an Unlinked Credit. If ECC is enabled for the merchant s account, and a transaction ID is submitted with the Unlinked Credit transaction, then the payment gateway will attempt to apply the credit to an original transaction with the transaction ID submitted. The unique field requirement for an Unlinked Credit is: x_type=credit Void This transaction type can be used to cancel either an original transaction that is not yet settled, or an entire order composed of more than one transactions. A Void prevents the AIM Developer Guide February 2014 19

Chapter 2 Submitting Transactions transaction or the order from being sent for settlement. A Void can be submitted against any other transaction type. Note If you are not sure whether a transaction is settled, you can attempt to submit a Void first. If the Void transaction results in an error, the original transaction is likely settled and you can submit a Credit for the transaction. The payment gateway accepts Voids if the following conditions are met: The transaction is submitted with the valid transaction ID (x_trans_id) of an original, successfully authorized transaction. To void an entire order, submit the split tender ID (x_split_tender_id). The original transaction is not already settled, expired or generated an error. The unique field requirements for a Void transaction are: x_type=void x_trans_id=transaction ID, or x_split_tender_id=split Tender ID. Note Typically, Authorization Only or Authorization and Capture are the primary transaction types submitted by an e-commerce Web site or other application. Although they most likely will not be used for the merchant s website integration, all other transaction types listed above can be integrated for automatic submission into an internal or enterprise application, like those used in a call center, or they can also be submitted by the merchant manually using the Virtual Terminal in the Merchant Interface. Visa Verification Transactions The following are required for $0 Visa verification calls: The transaction type must be AUTH_ONLY. All other transaction types will be rejected. Bill To address (x_address) and zip code (x_zip) are required in order to perform the AVS check. Not all processors accept zero dollar amount. Partial Authorization Transactions A split tender order is an order in which two or more transactions are used to cover the total amount of the order. AIM Developer Guide February 2014 20

Chapter 2 Submitting Transactions Merchants must indicate that they are able to handle the extra processing either by selecting the Partial Authorization option in the Account settings of the Merchant Interface, or by sending x_allow_partial_auth=true with an individual transaction. Without this flag, the transaction would be handled as any other, and would be either fully authorized or declined due to lack of funds on the card. When the first transaction is successfully approved for a partial amount of the total order, a split tender ID is generated and returned to the merchant in the response. This ID must be passed back with each of the remaining transactions of the group, using x_split_ tender_id=<value>. If you include both a split tender ID and a transaction ID on the same request, an error results. If successfully authorized, all transactions in the group are held until the final transaction of the group is successfully authorized. If the merchant needs to release the group of transactions before the final one is approved (if the balance is paid by cash, for example), send a prior auth capture request and include the split tender ID instead of a transaction ID. If the merchant needs to void the group before completion, send a void request, using the split tender ID instead of a transaction ID. This action will void all the transactions in the group. The following rules apply to partial authorization transactions: The merchant can choose to accept partial authorization transactions by selecting an option in the Merchant Interface. Alternatively, partial authorization transactions can be submitted by including a new API field (x_allow_partial_auth) in the initial request that enables partial authorization for that specific request. When an authorization is granted for an amount less than the purchase amount, a split tender ID is provided, in addition to the Transaction ID. The split tender ID is used on subsequent payments for that purchase. The transaction is not submitted for settlement until either the merchant submits payments adding up to the full requested amount, or until the merchant indicates that the transaction has been completed (when all or part of the remaining balance is paid in cash). You can void all transactions in an order using a split tender ID, or you can void individual transactions using a transaction ID. The split tender ID cannot be submitted together with a transaction ID; only one or the other can be submitted. Unique field requirements for Partial Authorization Transactions are: x_allow_partial_auth=true (input, optional) The default value is set in the Merchant Interface; you can use this parameter to authorize individual transactions if the option is set to False in the Merchant Interface. Including this field in the transaction request overrides the merchant s account configuration. AIM Developer Guide February 2014 21

Chapter 2 Submitting Transactions x_prepaid_balance_on_card (output) this is the authorized amount remaining on the card. x_prepaid_requested_amount (output) this is the amount requested. x_split_tender_id (output) this is the split tender ID provided when the first partial authorization transaction was issued. Use this ID when submitting subsequent transactions related to the same group order. x_split_tender_status (output) indicates whether or not the transaction is complete. This parameter is sent to the merchant during relay response processing. It is not included in the delimited response. x_card_type (output) the card type. Using the Merchant Interface The Merchant Interface enables merchants to manage transactions, capture Authorization Only transactions, void transactions, and issue refunds. These transaction types can also be managed automatically using the API if you are integrating a custom application to the payment gateway. However, for most integrations, these transaction types can be more conveniently and easily managed in the Merchant Interface. For more information on submitting transactions in the Merchant Interface, see the Merchant Integration Guide at http://www.authorize.net/support/merchant/ or click Help in the top right corner of the Merchant Interface. AIM Developer Guide February 2014 22

Transaction Data Requirements CHAPTER 3 The standard payment gateway Application Programming Interface (API) consists of required information fields (introduced in the previous section) and additional optional fields that can be submitted to the payment gateway for real-time transaction processing. Transaction Post Location The merchant s Web site should POST transaction requests to the following payment gateway URL: https://secure.authorize.net/gateway/transact.dll Note If you are using an Authorize.Net developer test account, test transactions are posted to a staging environment at https://test.authorize.net/gateway/ transact.dll. If you do not have a developer test account, you can sign up for one at http://developer.authorize.net. Note Transactions should be sent using HTTP POST, not HTTP GET. HTTP GET sends information in clear text and is therefore not secure. For more information, see RFC 2616, section 15.1.3. AIM Transaction Submission API The following tables list the transaction data fields that can be submitted using the transaction request string. Some of these fields can also be configured in the Merchant Interface. For more information about configuring these settings in the Merchant Interface, see the Merchant Integration Guide at http://www.authorize.net/support/merchant/. Fields are name/value pairs with the syntax: x_name_of_field = value of the field AIM Developer Guide February 2014 23

Chapter 3 Transaction Data Requirements Merchant Information Table 6 Merchant Information Field Name x_login x_tran_key x_allow_partial_auth Description Required Value: The merchant s unique API Login ID Format: Up to 20 characters Notes: The merchant API Login ID is provided in the Merchant Interface and must be stored securely. The API Login ID and Transaction Key together provide the merchant authentication required for access to the payment gateway. See the Merchant Integration Guide at http://www.authorize.net/support/ merchant/ for more information. Required Value: The merchant s unique Transaction Key Format: 16 characters Notes: The merchant Transaction Key is provided in the Merchant Interface and must be stored securely. The API Login ID and Transaction Key together provide the merchant authentication required for access to the payment gateway. See the Merchant Integration Guide at http://www.authorize.net/support/ merchant/ for more information. Value: True, False Notes: Indicates if the transaction is enabled for partial authorization. Including this field in the transaction request overrides your account configuration. For more information, see "Partial Authorization Transactions," page 20. AIM Developer Guide February 2014 24

Chapter 3 Transaction Data Requirements Transaction Information Table 7 Transaction Information Field Name x_version x_type x_method x_market_type Description Required Value: The merchant s transaction version Format: 3.0, 3.1 Notes: Indicates to the system the set of fields that will be included in the response: 3.0 is the default version. 3.1 allows the merchant to utilize the Card Code feature and the Partial Authorization feature, and is the current standard version. It is highly recommended that you submit this field on a pertransaction basis to be sure that the formats of transaction requests and the responses you receive are consistent. For more information, see Appendix A, "Fields by Transaction Type," on page 67 of this document. Value: The type of credit card transaction Format: AUTH_CAPTURE (default), AUTH_ONLY, CAPTURE_ ONLY, CREDIT, PRIOR_AUTH_CAPTURE, VOID Notes: If the value submitted does not match a supported value, the transaction is rejected. If this field is not submitted or the value is blank, the payment gateway will process the transaction as an AUTH_CAPTURE. Value: The payment method Format: CC or ECHECK Notes: The method of payment for the transaction, CC (credit card) or ECHECK (electronic check). If this field is not submitted or is blank, the value will default to CC. For more information about echeck.net transaction requirements, see the echeck.net Developer Guide. Value: One of the following. 0 for e-commerce 1 for moto 2 for retail. Notes: If your account type is Card Present, the default is 2 and only 2 can be used. If your account type is blended, the default is 0, but x_market_type can be overridden. AIM Developer Guide February 2014 25

Chapter 3 Transaction Data Requirements Table 7 Transaction Information (Continued) Field Name x_recurring_billing x_amount x_currency_code x_card_num x_exp_date Description Value: The recurring billing status Format: TRUE, FALSE,T, F, YES, NO,Y, N,1, 0 Notes: Indicating marker used by merchant account providers to identify transactions which originate from merchant hosted recurring billing applications. This value is not affiliated with Automated Recurring Billing. Required Value: The amount of the transaction Format: Up to 15 digits with a decimal point (no dollar symbol). For example, 8.95 Notes: This is the total amount and must include tax, shipping, and any other charges. The amount can either be hard coded or posted to a script. Value: AUD, USD, CAD, EUR, GBP, or NZD. Format: 3 character string. Notes: If this field is not submitted, the default is the currency selected by the merchant s payment processor. Setting this field to a currency that is not supported by the payment processor will result in an error. Required Value: The customer s credit card number Format: Between 13 and 16 digits without spaces. When x_ type=credit, only the last four digits are required. Notes: This is sensitive cardholder information and must be stored securely and in accordance with the Payment Card Industry (PCI) Data Security Standard. For more information about PCI, see the Developer Security Best Practices White Paper. Required Value: The customer s credit card expiration date Format: MMYY, MM/YY, MM-YY, MMYYYY, MM/YYYY, MM- YYYY Notes: This is sensitive cardholder information and must be stored securely and in accordance with the Payment Card Industry (PCI) Data Security Standard. For more information about PCI, see the Developer Security Best Practices White Paper. AIM Developer Guide February 2014 26

Chapter 3 Transaction Data Requirements Table 7 Transaction Information (Continued) Field Name x_card_code x_trans_id x_split_tender_id x_auth_code Description Value: The three- or four-digit number on the back of a credit card (on the front for American Express). Format: Numeric Notes: This field is required if the merchant would like to use the Card Code Verification (CCV) security feature. For more information, see the Merchant Integration Guide at http:// www.authorize.net/support/merchant. Cardholder information must be stored securely and in accordance with the Payment Card Industry (PCI) Data Security Standard. See the Developer Security Best Practices White Paper for more information. Conditional Required only for CREDIT, PRIOR_ AUTH_ CAPTURE, and VOID transactions Value: The payment gateway assigned transaction ID of an original transaction For more information about transaction types, see the "Credit Card Transaction Types," page 16 section of this document. Conditional Value: The payment gateway-assisted ID assigned when the original transaction includes two or more partial payments. This is the identifier that is used to group transactions that are part of a split tender order. Notes: If the first transaction results in a partial authorization, the payment gateway returns this ID to the merchant. The merchant must pass this ID back with each subsequent transaction that will be part of the group of transactions sent to obtain the entire amount of the order. The payment gateway does not calculate new amounts, that is up to the merchant s software. For more information about partial authorization transactions, see the "Partial Authorization Transactions," page 20 topic. Conditional Required only for CAPTURE_ ONLY transactions Value: The authorization code of an original transaction not authorized on the payment gateway Format: 6 characters Notes: See the "Credit Card Transaction Types," page 16 section of this document. AIM Developer Guide February 2014 27

Chapter 3 Transaction Data Requirements Table 7 Transaction Information (Continued) Field Name x_test_request x_duplicate_window Description Value: The request to process test transactions Format: TRUE, FALSE, T, F, YES, NO, Y, N, 1, 0 Notes: Indicates if the transaction should be processed as a test transaction. See Chapter 5, "Test Transactions," on page 64 of this guide for more information. Value: The window of time after the submission of a transaction that a duplicate transaction can not be submitted Format: Any value between 0 and 28800 (no comma) Notes: Indicates in seconds the window of time after a transaction is submitted during which the payment gateway will check for a duplicate transaction. The maximum time allowed is 8 hours (28800 seconds). If a value less than 0 is sent, the payment gateway will default to 0 seconds. If a value greater than 28800 is sent, the payment gateway will default to 28800. If no value is sent, the payment gateway will default to 2 minutes (120 seconds). If this field is present in the request with or without a value, an enhanced duplicate transaction response is sent. See the "Response for Duplicate Transactions," page 46 section of this guide for more information. Order Information Table 8 Order Information Field Name x_invoice_num Description Value: The merchant-assigned invoice number for the transaction Format: Up to 20 characters (no symbols) Notes: The invoice number must be created dynamically on the merchant server or provided on a per-transaction basis. The payment gateway does not perform this function. AIM Developer Guide February 2014 28

Chapter 3 Transaction Data Requirements Table 8 Order Information (Continued) Field Name x_description Description Value: The transaction description Format: Up to 255 characters (no symbols) Notes: The description must be created dynamically on the merchant server or provided on a per-transaction basis. The payment gateway does not perform this function. Itemized Order Information Based on their business requirements, merchants can choose to submit itemized order information with a transaction, using the optional x_line_item field. Itemized order information is not submitted to the processor and is not currently returned with the transaction response. This information is displayed on the Transaction Detail page and in QuickBooks download file reports in the Merchant Interface. The value for the x_line_item field is capable of including delimited item information. Item Information must be delimited by a bracketed pipe< >. Line item values must be included in the order listed below. The following table describes the Item Information elements of the x_line_item field. A code example is presented after the table. Table 9 Delimited x_line_item Information Item Information Elements Item ID< > Item Name< > Item Description< > Item Quantity< > Description Required Value: The ID assigned to an item. Format: Up to 31 characters Required Value: The name of an item. Format: Up to 31 characters Value: A detailed description of an item. Format: Up to 255 characters Required Value: The quantity of the item on this order. Format: Up to two decimal places. Must be a positive number AIM Developer Guide February 2014 29

Chapter 3 Transaction Data Requirements Table 9 Delimited x_line_item Information (Continued) Item Information Elements Item Price (unit cost)< > Item Taxable Description Required Value: Cost of an item per unit, excluding tax, freight, and duty. Format: Up to two decimal places. Must be a positive number. The dollar sign ($) is not allowed when submitting delimited information. (FALSE by default) Value: Indicates whether the item is subject to tax. Format: TRUE, FALSE, T, F, YES, NO, Y, N, 1, 0 The merchant can submit up to 30 distinct line items containing itemized order information per transaction. All field separators are required whether there the field has a value a value. In the example below, the Item Description field after golf balls< > has no value, yet the bracketed pipe remains. Example Submitting itemized order information x_line_item=item1< >golf balls< >< >2< >18.95< >Y x_line_item=item2< >golf bag< >Wilson golf carry bag, red< >1< >39.99< >Y x_line_item=item3< >book< >Golf for Dummies< >1< >21.99< >Y Note For Prior Authorization and Capture transactions, if line item information was submitted with the original transaction, adjusted information can be submitted if the transaction changed. If no adjusted line item information is submitted, the information submitted with the original transaction applies. Customer Information Table 10 Customer Information Field Name x_first_name x_last_name Description Required only when using a European Payment Processor. Value: The first name associated with the customer s billing address Format: Up to 50 characters (no symbols) Required only when using a European Payment Processor. Value: The last name associated with the customer s billing address Format: Up to 50 characters (no symbols) AIM Developer Guide February 2014 30

Chapter 3 Transaction Data Requirements Table 10 Customer Information (Continued) Field Name x_company x_address x_city x_state x_zip x_country x_phone x_fax Description Value: The company associated with the customer s billing address Format: Up to 50 characters (no symbols) Required only when using a European Payment Processor. Value: The customer s billing address Format: Up to 60 characters (no symbols) Required if the merchant would like to use the Address Verification Service security feature. For more information on AVS, see the Merchant Integration Guide at http://www.authorize.net/support/merchant/. Required only when using a European Payment Processor. Value: The city of the customer s billing address Format: Up to 40 characters (no symbols) Required only when using a European Payment Processor. Value: The state of the customer s billing address Format: Up to 40 characters (no symbols) or a valid two-character state code Required only when using a European Payment Processor. Value: The ZIP code of the customer s billing address Format: Up to 20 characters (no symbols) Required if the merchant would like to use the Address Verification Service security feature. For more information on AVS, see the Merchant Integration Guide at http://www.authorize.net/support/merchant/. Required only when using a European Payment Processor. Value: The country of the customer s billing address Format: Up to 60 characters (no symbols) Value: The phone number associated with the customer s billing address Format: Up to 25 digits (no letters). For example, (123)123-1234 Value: The fax number associated with the customer s billing address Format: Up to 25 digits (no letters). For example, (123)123-1234 AIM Developer Guide February 2014 31