Direct Payment Protocol Specification

October 2005 Version 1.1 This manual and accompanying electronic media are proprietary products of Optimal Payments Inc. They are to be used only by licensed users of the product. © 1999–2006 Optimal Payments Inc. All rights reserved. The information within this document is subject to change without notice. The software described in this document is provided under a license agreement, and may be used or copied only in accor- dance with this agreement. No part of this manual may be reproduced or transferred in any form or by any means without the express written consent of Optimal Payments Inc. FirePay and FireCash are registered trademarks of Optimal Payments Inc. All other names, trade- marks, and registered trademarks are the property of their respective owners. Optimal Payments Inc. makes no warranty, either express or implied, with respect to this product, its merchantability or fitness for a particular purpose, other than as expressly provided in the li- cense agreement of this product. For further information, please contact Optimal Payments Inc. International Head Office Optimal Payments Inc. 2 Place Alexis Nihon, Suite 700 Westmount, Quebec H3Z 3C1 Canada Tel.: (514) 380-2700 Fax: (514) 380-2760 Email: [email protected] Technical support: [email protected] Web: www.optimalpayments.com U.K. Office Optimal Payments Ltd. Quern House, Mill Court Hinton Way, Great Shelford Cambridge CB2 5LD United Kingdom Email: [email protected] Technical Support: [email protected] Web: www.optimalpayments.co.uk U.S. Office Optimal Payments Corp. 1800 West Loop South, #770 Houston, TX 77027 Hull Office Optimal Payments Inc. 75 Promenade du Portage Gatineau, Quebec J8X 2J9 Canada Contents

1Transaction Requests

The Optimal Payments account model ...... 1-1 Building transaction requests ...... 1-2 Decoding responses ...... 1-3 Example scenario ...... 1-4 Definitions and conventions ...... 1-5 Using this guide ...... 1-7 Audience ...... 1-7 Functionality ...... 1-7 Symbols ...... 1-8 Merchant transactions...... 1-8 Security features ...... 1-9 AVS ...... 1-9 CVD ...... 1-11 Negative database ...... 1-11 Purchase ...... 1-12 Purchase message format ...... 1-12 Purchase successful response ...... 1-20 Purchase error response ...... 1-22 AVS Check ...... 1-24 AVS Check message format ...... 1-24 AVS Check successful response ...... 1-26 AVS Check error response ...... 1-27 Risk Only ...... 1-29 Risk Only message format ...... 1-29 Risk Only successful response...... 1-32 Risk Only error response ...... 1-33 Authorization ...... 1-33 Authorization message format ...... 1-34 Authorization successful response...... 1-41 Authorization error response ...... 1-43 Settlement ...... 1-45 Settlement message format...... 1-46 Settlement successful response...... 1-48 Settlement error response ...... 1-49

Direct Payment Protocol Specification 1.1 III October 2005

Cancel Settlement ...... 1-50 Cancel Settlement message format ...... 1-50 Cancel Settlement successful response ...... 1-52 Cancel Settlement error response...... 1-52 Credit ...... 1-53 Credit message format ...... 1-54 Credit successful response ...... 1-56 Credit error response ...... 1-57 Cancel Credit ...... 1-58 Cancel Credit message format ...... 1-58 Cancel Credit successful response ...... 1-60 Cancel Credit error response ...... 1-60 Transaction recovery ...... 1-61 Transaction Lookup ...... 1-62 Transaction Lookup message format...... 1-62 Transaction Lookup successful response ...... 1-65 Transaction Lookup error response...... 1-65 Query ...... 1-66 Query message format ...... 1-67 Query successful response ...... 1-68 Query error response ...... 1-71

A Error Return Codes

Error message types ...... A-1 Payment service error messages ...... A-1 Action codes ...... A-2 Error codes and strings ...... A-2 Suberror codes and strings ...... A-12 Unmapped suberror codes and strings ...... A-15

B Geographical Codes

Province codes ...... B-1 State codes...... B-2 Country codes ...... B-3

IV October 2005

C Merchant SIC Codes

D Product Codes

Index

Direct Payment Protocol Specification 1.1 V October 2005

VI CHAPTER 1

Transaction Requests

The Optimal Payments account model Optimal Payments merchants are assigned one or more accounts upon registration. Each account may process transactions for one currency only. These accounts have an account number of up to eight digits, an account transaction processing ID, and a password, provided upon reg- istration, which must be included in all transaction processing requests. These three identifiers link each transaction to the account.

Direct Payment Protocol Specification 1.1 1-1 Transaction Requests October 2005

Building transaction requests All transaction requests are submitted to the Optimal Payments transac- tion-processing engine as URL-encoded data. The request message is built as follows: 1. Each field is created as a name=value pair. For example: “account=400021”. 2. All non-alphanumeric characters in the name and value compo- nents are replaced by “%” followed by the hex value associated with the character. For example, all spaces are replaced with “%20”. Thus “Thanks for the help!” would be modified to “Thanks%20for%20the%20help%21”. 3. The fields are concatenated together into a single string, with each field separated by the “&” character. For example: account=40021&amount=1000&operation=A&cardNumber=405025900504 0&cardExp=12%2f99&cardType=VI 4. Determine the length of the string. Build the message as the following header concatenated with a blank line and the string containing the fields. The value URL_FOR_Direct_Payment should be replaced by the URL provided to you when you registered with the service, and length should be replaced by the length you calculated in step 4 above. POST URL_FOR_Direct_Payment Content-type: application/x-www-form-urlencoded Content-length: length Upon testing, if the URL provided to you during registration were https://realtime.test.firepay.com an example of the complete message would be: POST /realtime.test.firepay.com HTTP/1.0 Content-type: application/x-www-form-urlencoded Content-length: 91 account=40021&amount=1000&operation=A&cardNumber=405025900504 0&cardExp=12%2f99&cardType=VI To submit this request, the merchant application then opens an SSL pro- tected socket connection to Optimal Payments’ transaction-processing engine and sends the request data.

1-2 October 2005 Decoding responses

Any tool that creates and submits a standard HTTP Post using SSL could be employed. One example is the Microsoft URL Control, which allows you to set the data to be posted and then to do a secure POST of that data.

Decoding responses The response to a request is returned as an HTTP header, a blank line and then a string containing a number of name=value pairs. The string is URL encoded so that all non-alphanumeric characters in the name or value components are replaced by “%” followed by the ASCII code in hex for that character. For example, “!” is replaced with “%21”. Spaces may also be replaced by the “+” character. In order to extract the fields from the response, the following steps should be followed: 1. Split the string after the blank line into name=value pairs at each “&” separator. 2. Split the name=value pairs into their name and value components based on the “=” separator. 3. Replace all “+” characters in the name and value components with a space character. 4. Replace all %XX occurrences in the name and value components with the ASCII character represented by the hex value XX. An example of a response message would be: HTTP/1.1 200 OK Server: Netscape-Enterprise/3.5.1 Date: Mon, 27 Nov 2000 15:58:03 GMT Content-type: text/plain Status=E&errCode=131&errString=Operation+not+supported+%28131 %29+-Please+check+request+parameters&subError=0 This response message would decode into the following values:

Response Parameter Value

status E

errCode 131

Table 1-1: Response Parameters

Direct Payment Protocol Specification 1.1 1-3 Transaction Requests October 2005

Response Parameter Value

errString Operation not supported (131) - Please check request parameters.

subError 0

Table 1-1: Response Parameters (Continued)

Example scenario The following presents a series of real-world scenarios that demonstrate the Optimal Payments account model. The following participants inter- act in the scenarios: • Store – an online bookstore • Smith – a consumer • Optimal Payments – the Optimal Payments transaction processor A) Smith buys 3 books 1. Smith purchases the following books at Store • Book a: $10 • Book b: $25 • Book c: $25 2. Store sends an Authorization request to Optimal Payments for the total amount ($60) 3. An Authorization transaction is created for $60 (Authorization TRID = 0020) B) Store ships the first two books 1. A Settlement is made: $35 ($10 + $25) against Authorization 0020 (Settlement TRID = 0123) 2. Remaining on Authorization 0020 = $25 3. Status of Authorization 0020 = partially settled C) Settlement batch run 1. State of Settlement 0123 = complete 2. State of Authorization 0020 = partially settled

1-4 October 2005 Definitions and conventions

D) Store ships the third book 1. A Settlement is made: $25 against Authorization 0020 (Settlement TRID = 0232) 2. Remaining on Authorization 0020 = $0 3. State of Settlement 0232 = pending 4. Status of Authorization 0020 = settled E) Settlement batch run 1. State of Settlement 0232 = complete 2. State of Authorization 0020 = settled F) Smith returns third book 1. A Credit is made: $25 against Settlement TRID= 0123 (Credit TRID = 0256) 2. Remaining on Settlement 0123 = $10 3. Remaining on Authorization 0020 = $0 4. State of Settlement 0232 = complete 5. State of Authorization 0020 = settled 6. State of Credit 0256 = pending G) Credit batch run 1. State of Settlement 0232 = complete 2. State of Authorization 0020 = settled

Definitions and conventions This section defines the message formats for merchant–transaction processor interactions. Messages are defined in terms of a set of fields. Each field has the following: •A name • A requirement setting, which may be: • (mandatory) – the transaction cannot be processed without this parameter.

Direct Payment Protocol Specification 1.1 1-5 Transaction Requests October 2005

• (optional) – the transaction can always be processed without this parameter. • (conditionally optional) – the transaction requires this param- eter in some instances, e.g., for a Purchase request, you must supply the cvdValue parameter only if you assign a value of 1 for the cvdIndicator parameter. When the field is conditionally optional, those conditions are defined in the field description. •A format •A textual description The details of how the message is constructed depends on the transport being used. For example, HTTP transport is text based and may either be name-value pair encoded or encoded by field position and length. Transport via some other technology (e.g., CORBA) levies different implementation requirements. The following conventions are used in the specification of the format of message fields:

Abbreviation Description

aAlphabetic A-Z, a-z

n Numeric digits, 0–9

p Pad character, space

s Special characters

an Alphabetic and numeric characters

as Alphabetic and special characters

ns Numeric and special characters

anp Alphabetic, numeric, and space (pad) characters

ans Alphabetic, numeric, and special characters

MM Month, 01 through 12

YY Year, 00–99 where 00=2000, 01=2001, etc.

Table 1-2: Message Field Conventions

1-6 October 2005 Using this guide

hh Hour, 00 through 23

mm Minute, 00 through 59

ss Second, 00 through 59

3 Fixed length of 3 characters

..17 Variable length up to a maximum of 17 characters. All variable length fields in addition contain two or three positions at the beginning of the data element to identify the number of positions following to the end of that data element

Table 1-2: Message Field Conventions (Continued)

The parameter names are case sensitive. If you use your own ASP script or application (e.g., VB/VC++), ensure that the names and spellings of your parameters are identi- cal to those given in the following transaction descriptions.

Using this guide This user guide details major system functions. Each section provides an overview of functions, which are then broken down into procedures with steps to be followed.

Audience This user’s guide is intended for Optimal Payments merchants using our protocol to process transaction requests with Optimal Payments.

Functionality This guide may document some features to which you do not have access. Access to such functionality is allotted on a merchant-by-mer- chant basis. If you have any questions, contact your account manager.

Direct Payment Protocol Specification 1.1 1-7 Transaction Requests October 2005

Symbols This user guide uses the following symbols to bring important items to your attention:

Symbol Description

This note icon denotes a hint or tip to help you use the transaction processing application more efficiently.

This warning icon alerts you about actions you might take that could have important consequences.

Table 1-3: Symbols

Merchant transactions The Optimal Payments transaction processor supports the following transactions:

Transaction Name Transaction Parameter

Purchase P

AVS Check V

Authorization A

Settlement S

Cancel Settlement X

Credit CR

Cancel Credit Z

Transaction Lookup FT

Query Q

Table 1-4: Supported Transactions

1-8 October 2005 Security features

Security features For some transaction processes (e.g., Purchase) the Optimal Payments transaction processor provides additional features to protect the mer- chant from fraudulent card usage: • Address verification system (AVS) • Card validation data (CVD) • Negative database

AVS The Optimal Payments transaction processor supports address verifica- tion checks (AVS) wherever the issuing bank supports this feature. AVS goes beyond simply verifying the availability of funds and card sta- tus. AVS verifies whether the address supplied by the customer using a card matches the billing address associated with that card at the issuing bank. This makes it more difficult to use the card fraudulently, since in order to use a stolen card someone must also know the billing address associated with it. In addition, if goods are to be shipped, the merchant can require that they be shipped to the billing address associated with the card. Within Optimal Payments, each payment method is configured with the acceptable set of AVS return codes. If the bank returns a code that is not acceptable for the payment method, then the request is rejected with an Authorization Failed error. If you get an Authorization Failed error in response to a transaction request, and an Authorization number is returned in the response, then the failure was caused by the AVS check. You can look at the AVS code returned to determine exactly why the AVS check failed. The Optimal Payments transaction processor returns the following codes, in the avsInfo field, to the merchant appli- cation in response to a transaction request, with A, N, and E indicating AVS failure:

Code letter Explanation

A Address matches, but code does not.

Table 1-5: AVS Codes

Direct Payment Protocol Specification 1.1 1-9 Transaction Requests October 2005

Code letter Explanation

B AVS not performed for international transaction. Either the postal code has invalid format or address informa- tion not provided.

C For international transaction, either the address or the postal code not verified due to invalid format.

D For international transaction, address and postal code match.

E AVS not supported for this industry.

G For international credit card, address information not available.

I For international transaction, address information not verified.

M For international transaction, address and postal code match.

N No part of the address matches.

P AVS not applicable for international transaction. Postal code matches but address not verified due to incom- patible format.

Q Unknown response from issuer/banknet switch.

R Retry. System unable to process.

S AVS not supported.

U Address information is unavailable.

W Nine-digit zip code matches, but address does not.

X Exact. Nine-digit zip code and address match.

Y Yes. Five-digit zip code and address match.

Z Five-digit zip code matches, but address does not.

Table 1-5: AVS Codes (Continued)

1-10 October 2005 Security features

When you registered with Optimal Payments, your account was set up to automatically apply AVS checks. The Optimal Payments transaction processor accepts only transactions for which the allowable AVS return codes are returned. AVS has three limitations, which may affect the decisions you make with regard to failed AVS checks: • AVS is not always reliable. Bad results can be returned if someone has moved, for instance, or because some people report five-digit zip codes and some report nine-digit zip codes. • AVS does not function for addresses outside the U.S. If you decide, therefore, to ship only to addresses that return good AVS results, you exclude all non-U.S. transactions. • AVS is supported by many U.S. issuing banks, but not all. So even if you only serve U.S. customers, you may not always be able to depend on AVS being available.

CVD The CVD value is a 3- or 4-digit number printed on the back of a card, but it is not present on the magnetic strip. Therefore, the value is not printed on receipts or statements, reducing the probability of fraud from imprint information. The CVD feature, intended specifically for transac- tions where a card is not present, is a requirement of the Optimal Pay- ments transaction processor. We support the CVD feature wherever the issuing banks do. When customers enter their card and cardholder information, the CVD value is requested at the same time. One of four indicators flag the status of a CVD request: • Not provided – The customer did not provide the CVD value. • Provided – The customer provided the CVD value. When this indi- cator is selected, the CVD value is entered in a field. • Illegible – The customer claims the CVD value is illegible. • Not present – The customer claims the CVD value is not on the card.

Negative database Optimal Payments administers a negative database that provides addi- tional protection against misuse of cards and inappropriate transaction

Direct Payment Protocol Specification 1.1 1-11 Transaction Requests October 2005

requests. Card numbers and email addresses are entered into the nega- tive database for the following reasons: • A chargeback associated with the card number or email address has occurred. • The card number or email address was involved in, or suspected to have been involved in, fraudulent activity. Your account is configured to automatically implement this security fea- ture, and any transaction request that attempts to use either a card number or email address that is in the negative database will not be processed.

Purchase A Purchase request both authorizes and settles (see Authorization on page 1-33 and Settlement on page 1-45) the requested amount against the card indicated. Through authorizing, the Purchase request confirms that the card exists and that funds are available at the time of Authorization to cover the purchase amount. The funds are not credited at this time but the Authorization reduces the available credit limit for that card, so in a sense the funds are “reserved” for the Purchase. Through Settle- ment, the Purchase request completes the transaction – the issuing financial institution credits the merchant’s bank account with the funds for the transaction and updates the cardholder’s statement.

Purchase message format The Purchase request may contain the following request parameters (see Definitions and conventions on page 1-5 for explanation of symbols in the Mandatory/Optional column):

1-12 October 2005 Purchase

Purchase Mandatory/ Data Type Description Parameter Optional

account n ..10 The merchant account against which the request is made. NOTE: The currency of the transac- tion is inferred from the account specified. The currency of each account is assigned when it is cre- ated.

amount n ..10 The integer amount, without deci- mals, for which a Purchase is requested. (e.g., $10.00 would be “1000”)

cardNumber n ..19 The card number against which the Purchase is made.

cardExp MM/YY The expiry date for the card against which the Purchase will be made. Format must be “MM/YY” e.g., September 2005 = 09/05

cvdIndicator n 1 The status of CVD value informa- tion. Possible values are: • 0 – The customer did not provide a value. • 1 – The customer provided a value. • 2 – The value is illegible. • 3 – The value is not on the card.

Table 1-6: Purchase Request Parameters

Direct Payment Protocol Specification 1.1 1-13 Transaction Requests October 2005

Purchase Mandatory/ Data Type Description Parameter Optional

cvdValue n ..4 The 3- or 4-digit security code that appears on the back of a card fol- lowing the card number. This code does not appear on imprints. NOTE: The cvdValue parameter is mandatory when the cvdIndicator parameter value = 1.

issueNumber n ..2 The 1- or 2-digit number located on the front of the card, following the card number. NOTE: The issueNumber parameter can be used only when the cardType is SO (Solo) or SW (Switch).

Table 1-6: Purchase Request Parameters (Continued)

1-14 October 2005 Purchase

Purchase Mandatory/ Data Type Description Parameter Optional

cardType a ..6 The type of card against which the Purchase is made. Possible values are: • AM = American Express • DC = Diners Club •DI = Discover •FP = FirePay •JC = JCB •LA = Laser • MC = MasterCard •MD = Maestro •SO = Solo •SW = Switch •VD = Visa Delta • VE = Visa Electron •VI = Visa NOTE: If you need to use other card types, please contact technical sup- port.

operation a 1 Signifies the transaction requested. Must be set to P for Purchase.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current functionality.

custName1 an ..255 The customer’s first name.

custName2 an ..255 The customer’s second name.

streetAddr an ..255 The first line of the customer’s street address.

streetAddr2 an ..255 The second line of the customer’s street address.

Table 1-6: Purchase Request Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-15 Transaction Requests October 2005

Purchase Mandatory/ Data Type Description Parameter Optional

phone an ..255 The customer’s phone number.

email an ..255 The customer’s email address.

city an ..255 The city associated with the customer’s card.

province a 2 The province or state associated with the customer’s card. See Appendix B: Geographical Codes for a list of province and state codes.

zip an ..10 The postal code associated with the customer’s card.

country a 2 The country associated with the customer’s card. See Country codes on page B-3 for a list of country codes.

merchantTxn an ..255 A unique ID number associated with each request. The value is cre- ated by the merchant and submit- ted as part of the request.

merchantId an ..80 The account transaction processing ID associated with the merchant.

merchantPwd ans ..20 The account transaction processing password associated with the mer- chant ID specified.

merchantData an ..255 Data that the merchant wants to associate with the request (e.g., notes).

Table 1-6: Purchase Request Parameters (Continued)

1-16 October 2005 Purchase

Purchase Mandatory/ Data Type Description Parameter Optional

Do not use parameters below unless instructed by Optimal Payments personnel.

merchantSIC n 4 The ISO Standard Industry Code (SIC) for the merchant. See Appendix C: Merchant SIC Codes for a complete list of SIC codes.

payMethod a 1 The method used to make the pay- ment. Possible values are: • O = Card Number Provided Online • P = Card present • V = Card Number Provided by Phone

productType a 1 The type of product ordered. Possi- ble values are: • P = Physical Goods • D = Digital Goods (e.g., software) • C = Digital Content (e.g., images and/or text) • G = Gift Certificate/Digital Cash • S = Shareware • M = Both Digital and Physical (e.g., software downloaded fol- lowed by media shipment) • R = Account Replenish (subscrip- tion renewal)

Table 1-6: Purchase Request Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-17 Transaction Requests October 2005

Purchase Mandatory/ Data Type Description Parameter Optional

carrier a 1 The shipment carrier. Possible val- ues are: •F = Fedex •P = USPS •U = UPS • L = Purolator • G = Greyhound •D = DHL •O = Other

customerId an 64 The customer’s ID at the mer- chant’s site.

customerIP an 255 The customer’s IP address.

custWorkPhone an 255 The customer’s daytime or work phone number.

merchantCountry a 2 The merchant’s country. See Country codes on page B-3 for a list of country codes.

merchantZip an ..10 The merchant’s postal/zip code.

custAcctOpenDate YYYYMMDD Date the customer account was opened with the merchant.

previousCustomer a 1 Indicates whether the customer has previously shopped online with this merchant. Possible values are: •Y = Yes •N = No

productCode an ..18 The product code of the ordered item. See Appendix D: Product Codes for a complete list of product codes.

Table 1-6: Purchase Request Parameters (Continued)

1-18 October 2005 Purchase

Purchase Mandatory/ Data Type Description Parameter Optional

shipCity an ..255 The city to which an item is to be shipped.

shipCountry a 2 The country to which an item is to be shipped. See Country codes on page B-3 for a list of country codes.

shipEmail an ..255 The recipient’s email address.

shipCustName1 an ..255 The recipient’s first name.

shipCustName2 an ..255 The recipient’s last name.

shipMethod a 1 The method of shipment. Possible values are: •N = Next Day/Overnight •T = Two-Day Service •C = Lowest Cost •O = Other

shipProvince a 2 The province or state to which an item is to be shipped. See Appendix B: Geographical Codes for a list of province and state codes.

shipStreetAddr an ..255 The street address to which an item is to be shipped.

shipZip an ..10 The postal/zip code to which an item is to be shipped.

txnCategory a 1 The method used to place the order. Possible values are: •I = Internet • P = Card Present •T = MOTO

Table 1-6: Purchase Request Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-19 Transaction Requests October 2005

Purchase Mandatory/ Data Type Description Parameter Optional

userData04 an ..255 User-defined order field.

userData05 an ..255 User-defined order field.

userData06 an ..255 User-defined order field.

Table 1-6: Purchase Request Parameters (Continued)

Purchase successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a 2 SP indicates a successful Purchase.

authCode an 20 The Authorization code assigned by the issuing bank and returned by the transaction proces- sor.

authTime n ..10 The time at which the Authorization was com- pleted. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970).

avsInfo a 6 The AVS code associated with the request. Format is X + information, where X is an AVS code (see the appropriate SDK) and informa- tion is any additional information provided by Direct Payment. NOTE: The request will only be successful if the AVS code was one of the values acceptable for the brand used. Therefore, the AVS infor- mation returned simply indicates how the request matched the set that was acceptable.

Table 1-7: Purchase Successful Response Parameters

1-20 October 2005 Purchase

Parameter Data Type Description

cvdInfo a 1 The response to the cvdValue submitted with the Purchase request. Possible values are: • M (Match) – The CVD value provided matches the CVD value associated with the card. • N (No Match) – The CVD value provided does not match the CVD value associated with the card. • P (Not Processed) – The CVD value was not processed. • Q (Unknown Response) – No results were received concerning the CVD value. • S (Not Present) – CVD should be on the card. However, the cardholder indicated it was not present. • U – Issuer is not certified and/or has not pro- vided Visa encryption keys.

curAmount n ..10 Indicates the amount, in cents, available for Settlement. It will always be equal to the amount of the Authorization requested.

amount n ..10 The original amount that was requested.

txnNumber n ..10 The transaction number the transaction pro- cessor assigns to this request. The txnNumber identifies this transaction throughout its lifecycle, and it must be speci- fied for any subsequent Query and/or Settle- ment and/or Credit requests related to this request.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-7: Purchase Successful Response Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-21 Transaction Requests October 2005

Purchase error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Parameter Data Type Description

status a 1 E indicates that an error occurred.

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subError n 6 Lower level error that occurred. This value is only used when trying to resolve issues in co- operation with technical support.

subErrorString a ..255 String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

actionCode a ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more infor- mation.

clientVersion an ..4 The protocol version included with the original transaction.

authCode an ..20 The Authorization code assigned by the issuing bank and returned by the transaction proces- sor. This parameter is usually only returned if the Authorization failed due to AVS.

Table 1-8: Purchase Error Response Parameters

1-22 October 2005 Purchase

Parameter Data Type Description

authTime n ..10 The time at which the Authorization was com- pleted. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970). This parameter is usually only returned if the Authorization failed due to AVS.

avsInfo an 6 The AVS code associated with the request. Format is X + information, where X is an AVS code (see the appropriate SDK) and informa- tion is any additional information provided by Direct Payment. This parameter is usually only returned if the Authorization failed due to AVS. It may indi- cate why the transaction could not be pro- cessed. If this value is returned and the code is not one of the values acceptable for the brand used, the transaction was refused due to the AVS check.

cvdInfo a 1 The response to the cvdValue submitted with the Purchase request. Possible values are: • M (Match) – The CVD value provided matches the CVD value associated with the card. • N (No Match) – The CVD value provided does not match the CVD value associated with the card. • P (Not Processed) – The CVD value was not processed. Q (Unknown response) – Received no results concerning the CVD value. • S (Not Present) – CVD should be on the card. However, the cardholder indicated it was not present. • U – Issuer is not certified and/or has not pro- vided Visa encryption keys.

Table 1-8: Purchase Error Response Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-23 Transaction Requests October 2005

Parameter Data Type Description

pmtError a 1 Returned only if the request can be retried. It can be one of the following: • I - kPmtErrorUserRetry A minor error occurred (e.g., the user mistyped a card number). The user should re-enter their Authorization credentials. • M - kPmtErrorOperatorRetry User intervention is required to resolve the error. Please contact technical support. • S - kPmtErrorSystemRetry The system may be able to retry the request. If multiple failures occur, please contact tech- nical support.

Table 1-8: Purchase Error Response Parameters (Continued)

AVS Check The AVS Check transaction allows merchants to run an AVS check on a cardholder’s transaction information, but without attempting to author- ize and settle an amount on the card number provided. When an AVS Check request is submitted, the transaction processor returns an AVS response code from the clearing network to the merchant in real time. Again, AVS Check transactions are not settled (i.e., no money is trans- ferred from the cardholder’s account to the merchant’s account) – they serve only to inform the merchant about the AVS legitimacy of the card- holder. This transaction is separate from the AVS checks that can be done automatically, for example, when a Purchase transaction is sent (see AVS on page 1-9 for more information).

AVS Check message format The AVS Check request may contain the following parameters (see Defi- nitions and conventions on page 1-5 for explanation of symbols in the Mandatory/Optional column):

1-24 October 2005 AVS Check

AVS Check Mandatory/ Data Type Description Parameter Optional

account n ..10 The merchant account against which the request is made.

cardNumber n ..19 The card number against which the AVS Check is made.

cardExp MM/YY The expiry date for the card against which the AVS Check is made. Format must be “MM/YY” e.g., September 2005 = 09/05

cardType a ..6 The type of card against which the AVS Check is made. Possible values are: • MC = MasterCard •VI = Visa

operation a 1 Signifies the transaction requested. Must be set to V for AVS Check.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current func- tionality.

custName1 an ..255 The customer’s first name.

custName2 an ..255 The customer’s second name.

streetAddr an ..255 The first line of the customer’s street address.

streetAddr2 an ..255 The second line of the customer’s street address.

phone an ..255 The customer’s phone number.

email an ..255 The customer’s email address.

city an ..255 The city associated with the cus- tomer’s card.

Table 1-9: AVS Check Request Parameters

Direct Payment Protocol Specification 1.1 1-25 Transaction Requests October 2005

AVS Check Mandatory/ Data Type Description Parameter Optional

province a 2 The province or state associated with the customer’s card. See Appendix B: Geographical Codes for a list of province and state codes.

zip an ..10 The postal code associated with the customer’s card.

country a 2 The country associated with the cus- tomer’s card. See Country codes on page B-3 for a list of country codes.

merchantTxn a ..255 A unique ID number associated with each request. This value is created by the merchant and submitted as part of the request.

merchantId an ..80 The account transaction processing ID associated with the merchant.

merchantPwd ans ..20 The account transaction processing password associated with the mer- chant ID specified.

merchantData an ..255 Data that the merchant wants to asso- ciate with the request (e.g., notes).

Table 1-9: AVS Check Request Parameters (Continued)

AVS Check successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a 2 AV indicates successful AVS Check.

Table 1-10: AVS Check Successful Response Parameters

1-26 October 2005 AVS Check

Parameter Data Type Description

authTime n ..10 The time at which the AVS Check was com- pleted. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970).

avsInfo a ..6 The AVS code associated with the request. Format is X + information, where X is an AVS code (see the appropriate SDK) and informa- tion is any additional information provided by Direct Payment. NOTE: The request will only be successful if the AVS code returned was one of the values acceptable for the card brand used. Therefore, the AVS information returned simply indicates how the request matched the set that was acceptable.

txnNumber n ..10 The transaction number the transaction pro- cessor assigns to this request. The txnNumber identifies this transaction throughout its lifecycle, and it must be speci- fied for any subsequent Settlement, Credit, and Query requests related to this request. These numbers are sequential for each mer- chant account – if the first AVS Check transac- tion processed is 100, the next will be 101, then 102, etc.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-10: AVS Check Successful Response Parameters (Continued)

AVS Check error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Direct Payment Protocol Specification 1.1 1-27 Transaction Requests October 2005

Parameter Data Type Description

status a 1 E indicates that an error occurred.

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subError n ..3 Lower level error that occurred. This value is only used when trying to resolve issues in co- operation with technical support.

subErrorString a ..255 String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

actionCode an ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more information.

clientVersion an ..4 The protocol version included with the original transaction.

authTime n..10 The time at which the AVS Check was com- pleted. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970).

Table 1-11: AVS Check Error Response Parameters

1-28 October 2005 Risk Only

Parameter Data Type Description

pmtError a 1 Returned only if the request can be retried. It can be one of the following: • I - kPmtErrorUserRetry A minor error occurred (e.g., the user mistyped a card number). The user should re-enter their AVS Check credentials. • M - kPmtErrorOperatorRetry User intervention is required to resolve the error. Please contact technical support. • S - kPmtErrorSystemRetry The system may be able to retry the request. If multiple failures occur, please contact technical support.

Table 1-11: AVS Check Error Response Parameters (Continued)

Risk Only The Risk Only transaction allows merchants to run a risk check on a cardholder’s transaction information, but without attempting to authorize and settle an amount on the card number provided. When a Risk Only request is submitted, the transaction processor returns a risk response to the merchant in real time, notifying the merchant that the transaction has either passed or failed Optimal Payments’ risk criteria. Again, Risk Only transactions are not settled (i.e., no money is trans- ferred from the cardholder’s account to the merchant’s account) – they serve only to inform the merchant about the fraud probability of the cardholder.

Risk Only message format The Risk Only request may contain the following parameters (see Defi- nitions and conventions on page 1-5 for explanation of symbols in the Mandatory/Optional column):

Direct Payment Protocol Specification 1.1 1-29 Transaction Requests October 2005

Risk Only Mandatory/ Data Type Description Parameter Optional

account n ..10 The merchant account against which the request is made.

amount n ..10 The integer amount, without deci- mals, for which the transaction is requested. (e.g., $10.00 would be “1000”)

cardNumber n ..19 The card number against which the transaction is made.

cardExp MM/YY The expiry date for the card against which the transaction is made. Format must be “MM/YY” e.g., September 2005 = 09/05

cardType a ..6 The type of card against which the transaction is made. Possible values are: • AM = American Express • DC = Diners Club •DI = Discover •FP = FirePay •JC = JCB •LA = Laser • MC = MasterCard •MD = Maestro •SO = Solo •SW = Switch • VD = Visa Delta • VE = Visa Electron •VI = Visa

operation a 1 Signifies the transaction requested. Must be set to R for Risk Only.

Table 1-12: Risk Only Request Parameters

1-30 October 2005 Risk Only

Risk Only Mandatory/ Data Type Description Parameter Optional

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current func- tionality.

custName1 an ..255 The customer’s first name.

custName2 an ..255 The customer’s second name.

streetAddr an ..255 The first line of the customer’s street address.

streetAddr2 an ..255 The second line of the customer’s street address.

phone an ..255 The customer’s phone number.

email an ..255 The customer’s email address.

city an ..255 The city associated with the cus- tomer’s card.

province a 2 The province or state associated with the customer’s card. See Appendix B: Geographical Codes for a list of province and state codes.

zip an ..10 The postal code associated with the customer’s card.

country a 2 The country associated with the cus- tomer’s card. See Country codes on page B-3 for a list of country codes.

merchantTxn a ..255 A unique ID number associated with each request. This value is created by the merchant and submitted as part of the request.

Table 1-12: Risk Only Request Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-31 Transaction Requests October 2005

Risk Only Mandatory/ Data Type Description Parameter Optional

merchantId an ..80 The account transaction processing ID associated with the merchant.

merchantPwd ans ..20 The account transaction processing password associated with the mer- chant ID specified.

merchantData an ..255 Data that the merchant wants to asso- ciate with the request (e.g., notes).

Table 1-12: Risk Only Request Parameters (Continued)

Risk Only successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a 2 This indicates the risk status of the transaction. • RP = transaction Passed the risk check • RF = transaction Failed the risk check

authTime n ..10 The time at which the Risk Only transaction was completed. This time is represented as the number of seconds since 00:00:00 UTC (1 Jan- uary 1970).

guid an 32 This is an internal unique identifier.

txnNumber n ..10 The transaction number the transaction pro- cessor assigns to this request. These numbers are sequential for each mer- chant account – if the first Risk Only transac- tion processed is 100, the next will be 101, then 102, etc.

Table 1-13: Risk Only Successful Response Parameters

1-32 October 2005 Authorization

Parameter Data Type Description

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-13: Risk Only Successful Response Parameters (Continued)

Risk Only error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Parameter Data Type Description

status a 1 E indicates that an error occurred.

authTime n ..10 The time at which the Risk Only transaction was completed. This time is represented as the number of seconds since 00:00:00 UTC (1 Jan- uary 1970).

guid an 32 This is an internal unique identifier.

Table 1-14: Risk Only Error Response Parameters

Authorization There is a certain risk inherent in accepting card payments when the card is not present. In a card Authorization, the transaction information is sent to the card processor, which in turn sends the information to the cardholder’s issuing financial institution. An Authorization is not a guarantee of payment. It only confirms that the card exists and that funds are available at the time of Authorization to cover the Purchase amount. The funds are not credited at this time but the Authorization reduces the available credit limit for that card, so in a sense the funds are “reserved” for the Purchase. Every card Authorization request has a time limit set by the card pro- vider. Typically, the limit is between three to twenty-one days, but you should check with the card provider for their policy. If a card Authorization expires before the Settlement request is sent, you could be denied the Settlement if the cardholder’s credit limit is reached, or you might be charged a higher rate for the transaction, as

Direct Payment Protocol Specification 1.1 1-33 Transaction Requests October 2005

determined by the regulations of the card company. Visa may also charge you a higher rate if a Settlement request is received more than seven days after an Authorization request. In most cases, it is safe to assume that an Authorization will remain valid for a period of seven days. Many merchants try to limit the time between Authorization and Settlement to seven days, in order to minimize Settle- ment problems. While this is a good policy, it is not a definitive rule. Pol- icies and rates vary between cards and financial institutions, and this information is not included in the Authorization response. It is up to you to be aware of the possible consequences and decide how to handle them.

Authorization message format The Authorization request may contain the following parameters (see Definitions and conventions on page 1-5 for explanation of symbols in the Mandatory/Optional column):

Authorization Mandatory/ Data Type Description Parameter Optional

account n ..10 The merchant account against which the request is made. NOTE: The currency of the transac- tion is inferred from the account specified. The currency of each account is assigned when it is cre- ated.

amount n ..10 The integer amount, without deci- mals, for which an Authorization is requested. (e.g., $10.00 would be “1000”)

cardNumber n ..19 The card number against which the Authorization is made.

Table 1-15: Authorization Request Parameters

1-34 October 2005 Authorization

Authorization Mandatory/ Data Type Description Parameter Optional

cardExp MM/YY The expiry date for the card against which the Authorization is made. Format must be “MM/YY” e.g., September 2005 = 09/05

cvdIndicator n 1 The status of CVD value informa- tion. Possible values are: • 0 – The customer did not provide a value. • 1 – The customer provided a value. • 2 – The value is illegible. • 3 – The value is not on the card.

cvdValue n ..4 The 3- or 4-digit security code that appears on the back of a card fol- lowing the card number. This code does not appear on imprints. NOTE: The cvdValue parameter is mandatory when the cvdIndicator parameter value = 1.

issueNumber n ..2 The 1- or 2-digit number located on the front of the card, following the card number. NOTE: The issueNumber parameter can be used only when the cardType is SO (Solo) or SW (Switch).

Table 1-15: Authorization Request Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-35 Transaction Requests October 2005

Authorization Mandatory/ Data Type Description Parameter Optional

cardType a ..6 The type of card against which the Authorization is made. Possible values are: • AM = American Express • DC = Diners Club •DI = Discover •FP = FirePay •JC = JCB •LA = Laser • MC = MasterCard •MD = Maestro •SO = Solo •SW = Switch •VD = Visa Delta • VE = Visa Electron •VI = Visa NOTE: If you need to use other card types, please contact technical sup- port.

operation a 1 Signifies the transaction requested. Must be set to A for Authorization.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current functionality.

custName1 an ..255 The customer’s first name.

custName2 an ..255 The customer’s second name.

streetAddr an ..255 The first line of the customer’s street address.

streetAddr2 an ..255 The second line of the customer’s street address.

Table 1-15: Authorization Request Parameters (Continued)

1-36 October 2005 Authorization

Authorization Mandatory/ Data Type Description Parameter Optional

phone an ..255 The customer’s phone number.

email an ..255 The customer’s email address.

city an ..255 The city associated with the cus- tomer’s card.

province a 2 The province or state associated with the customer’s card. See Appendix B: Geographical Codes for a list of province and state codes.

zip an ..10 The postal code associated with the customer’s card.

country a 2 The country associated with the customer’s card. See Country codes on page B-3 for a list of country codes.

merchantTxn a ..255 A unique ID number associated with each request. This value is cre- ated by the merchant and submit- ted as part of the request.

merchantId an ..80 The account transaction processing ID associated with the merchant.

merchantPwd ans ..20 The account transaction processing password associated with the mer- chant ID specified.

merchantData an ..255 Data that the merchant wants to associate with the request (e.g., notes).

Table 1-15: Authorization Request Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-37 Transaction Requests October 2005

Authorization Mandatory/ Data Type Description Parameter Optional

Do not use parameters below unless instructed by Optimal Payments personnel.

merchantSIC n 4 The ISO Standard Industry Code (SIC) for the merchant. See Appendix C: Merchant SIC Codes for a complete list of SIC codes.

payMethod a 1 The method used to make the pay- ment. Possible values are: • O = Card Number Provided Online • P = Card present • V = Card Number Provided by Phone

productType a 1 The type of product ordered. Possi- ble values are: • P = Physical Goods • D = Digital Goods (e.g., software) • C = Digital Content (e.g., images and/or text) • G = Gift Certificate/Digital Cash • S = Shareware • M = Both Digital and Physical (e.g., software downloaded fol- lowed by media shipment) • R = Account Replenish (subscrip- tion renewal)

Table 1-15: Authorization Request Parameters (Continued)

1-38 October 2005 Authorization

Authorization Mandatory/ Data Type Description Parameter Optional

carrier a 1 The shipment carrier. Possible val- ues are: • F = Fedex •P = USPS •U = UPS • L = Purolator • G = Greyhound •D = DHL •O = Other

customerId an 64 The customer’s ID at the mer- chant’s site.

customerIP an 255 The customer’s IP address.

custWorkPhone an 255 The customer’s daytime or work phone number.

merchantCountry a 2 The merchant’s country. See Country codes on page B-3 for a list of country codes.

merchantZip an ..10 The merchant’s postal/zip code.

custAcctOpenDate YYYYMMDD Date the customer account was opened with the merchant.

previousCustomer a 1 Indicates whether the customer has previously shopped online with this merchant. Possible values are: •Y = Yes •N = No

productCode an ..18 The product code of the ordered item. See Appendix D: Product Codes for a complete list of product codes.

Table 1-15: Authorization Request Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-39 Transaction Requests October 2005

Authorization Mandatory/ Data Type Description Parameter Optional

shipCity an ..255 The city to which an item is to be shipped.

shipCountry a 2 The country to which an item is to be shipped. See Country codes on page B-3 for a list of country codes.

shipEmail an ..255 The recipient’s email address.

shipCustName1 an ..255 The recipient’s first name.

shipCustName2 an ..255 The recipient’s last name.

shipMethod a 1 The method of shipment. Possible values are: •N = Next Day/Overnight •T = Two-Day Service •C = Lowest Cost •O = Other

shipProvince a 2 The province or state to which an item is to be shipped. See Appendix B: Geographical Codes for a list of province and state codes.

shipStreetAddr an ..255 The street address to which an item is to be shipped.

shipZip an ..10 The postal/zip code to which an item is to be shipped.

txnCategory a 1 The method used to place the order. Possible values are: •I = Internet • P = Card Present •T = MOTO

Table 1-15: Authorization Request Parameters (Continued)

1-40 October 2005 Authorization

Authorization Mandatory/ Data Type Description Parameter Optional

userData04 an ..255 User-defined order field.

userData05 an ..255 User-defined order field.

userData06 an ..255 User-defined order field.

Table 1-15: Authorization Request Parameters (Continued)

Authorization successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a 1 A indicates successful Authorization.

authCode an ..20 The Authorization code assigned by the issuing bank and returned by the transaction proces- sor.

authTime n ..10 The time at which the Authorization was com- pleted. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970).

avsInfo a ..6 The AVS code associated with the request. Format is X + information, where X is an AVS code (see the appropriate SDK) and informa- tion is any additional information provided by Direct Payment. NOTE: The request will only be successful if the AVS code returned was one of the values acceptable for the card brand used. Therefore, the AVS information returned simply indicates how the request matched the set that was acceptable.

Table 1-16: Authorization Successful Response Parameters

Direct Payment Protocol Specification 1.1 1-41 Transaction Requests October 2005

Parameter Data Type Description

cvdInfo a 1 The response to the cvdValue submitted with the Authorization request. Possible values are: • M (Match) – The CVD value provided matches the CVD value associated with the card. • N (No Match) – The CVD value provided does not match the CVD value associated with the card. • P (Not Processed) – The CVD value was not processed. • S – Merchant indicated that CVV2 was not present on card. • U – Issuer is not certified and/or has not pro- vided Visa encryption keys.

curAmount n ..10 Indicates the amount, in cents, available for Settlement. It will always be equal to the amount of the Authorization requested.

amount n ..10 The original amount that was requested.

txnNumber n ..10 The transaction number the transaction pro- cessor assigns to this request. The txnNumber identifies this transaction throughout its lifecycle, and it must be speci- fied for any subsequent Settlement, Credit, and Query requests related to this request. These numbers are sequential for each mer- chant account – if the first Authorization trans- action processed is 100, the next will be 101, then 102, etc.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-16: Authorization Successful Response Parameters (Continued)

1-42 October 2005 Authorization

Authorization error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Parameter Data Type Description

status a 1 E indicates that an error occurred.

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subError n ..3 Lower level error that occurred. This value is only used when trying to resolve issues in co- operation with technical support.

subErrorString a ..255 String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

actionCode an ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more infor- mation.

clientVersion an ..4 The protocol version included with the original transaction.

authCode an ..20 The Authorization code assigned by the issuing bank and returned by the transaction proces- sor. This parameter is usually only returned if the Authorization failed due to AVS.

Table 1-17: Authorization Error Response Parameters

Direct Payment Protocol Specification 1.1 1-43 Transaction Requests October 2005

Parameter Data Type Description

authTime n..10 The time at which the Authorization was com- pleted. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970). This parameter is usually only returned if the Authorization failed due to AVS.

avsInfo an ..6 The AVS code associated with the request. Format is X + information, where X is an AVS code (see the appropriate SDK) and informa- tion is any additional information provided by Direct Payment. This parameter is usually only returned if the Authorization failed due to AVS. It may indi- cate why the transaction could not be pro- cessed. If this value is returned and the code is not one of the values acceptable for the brand used, the transaction was refused due to the AVS check.

cvdInfo a 1 The response to the cvdValue submitted with the Authorization request. Possible values are: • M (Match) – The CVD value provided matches the CVD value associated with the card. • N (No Match) – The CVD value provided does not match the CVD value associated with the card. • P (Not Processed) – The CVD value was not processed. • S – Merchant indicated that CVV2 was not present on card. • U – Issuer is not certified and/or has not pro- vided Visa encryption keys.

Table 1-17: Authorization Error Response Parameters (Continued)

1-44 October 2005 Settlement

Parameter Data Type Description

pmtError a 1 Returned only if the request can be retried. It can be one of the following: • I - kPmtErrorUserRetry A minor error occurred (e.g., the user mistyped a card number). The user should re-enter their Authorization credentials. • M - kPmtErrorOperatorRetry User intervention is required to resolve the error. Please contact technical support. • S - kPmtErrorSystemRetry The system may be able to retry the request. If multiple failures occur, please contact technical support.

Table 1-17: Authorization Error Response Parameters (Continued)

Settlement After an order is shipped, the transaction can be settled, a procedure that is also handled by the card processor. The Settlement process com- pletes the transaction: the issuing financial institution credits the mer- chant’s bank account with the funds for the transaction and updates the cardholder’s statement. Card regulations require a merchant to ship goods before settling the funds for an order. Because of this requirement, online card transactions are done in two parts: Authorization and Settlement. These are separate because it takes time to prepare goods for shipment. In contrast, a brick and mortar store gets the Authorization at the time of Purchase, the cus- tomer receives the goods, and the merchant can submit the sale for Set- tlement immediately. Settlement transactions are applied to the original Authorization (and so require the txnNumber of that original Authorization). A Settlement must be less than or equal to the original authorized amount. Multiple Settlements may be applied to an Authorization, representing portions of the original order being filled. Unlike Authorization transactions, Settlements do not take place imme- diately. Rather, they are gathered (“batched”) at a certain time during the day and sent to the clearing network for processing. Until the batch

Direct Payment Protocol Specification 1.1 1-45 Transaction Requests October 2005

has been processed, no money has changed hands. To reconcile bank statements with processed transactions, one should look at Settlement transactions that have a status of “complete” when running reports.

Settlement message format The Settlement request may contain the following parameters (see Defi- nitions and conventions on page 1-5 for explanation of symbols in the Mandatory/Optional column):

Settlement Mandatory/ Data Type Description Parameter Optional

account n ..10 The merchant account against which the request is made. NOTE: The currency of the transac- tion is inferred from the account specified. The currency of each account is assigned when it is cre- ated.

txnNumber n ..10 The transaction number that the transaction processor returned in response to the original Authoriza- tion request that is now being set- tled – this is the txnNumber found in the Authorization successful response on page 1-41.

Table 1-18: Settlement Request Transaction Parameters

1-46 October 2005 Settlement

Settlement Mandatory/ Data Type Description Parameter Optional

amount n ..10 The integer amount, without deci- mals, for which the Settlement is requested. (e.g., $10.00 would be “1000”) Multiple Settlements can be requested against the same Autho- rization, provided the total requested does not exceed the original Authorization. If this value is not specified, the full amount authorized will be settled.

operation a 1 Signifies the transaction requested. Must be set to S for Settle.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current functionality.

merchantTxn an ..255 A unique ID number associated with each request. This value is cre- ated by the merchant and submit- ted as part of the request.

merchantId an ..80 The account transaction processing ID associated with the merchant.

merchantPwd an ..20 The account transaction processing password associated with the mer- chant ID specified.

merchantData an ..255 Data that the merchant wants to associate with the request (e.g., notes).

Table 1-18: Settlement Request Transaction Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-47 Transaction Requests October 2005

Settlement successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a 2 SP indicates successful Settlement. The requested amount has been marked for Settle- ment the next time the batch Settlement job runs.

authCode an ..20 The Authorization code assigned by the issuing bank and returned by the transaction proces- sor.

authTime n ..10 The time at which the Authorization was com- pleted. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970).

avsInfo a ..6 The AVS code associated with the request. Format is X + information, where X is an AVS code (see the appropriate SDK) and informa- tion is any additional information provided by Direct Payment. NOTE: The request will only be successful if the AVS code was one of the values acceptable for the brand used. Therefore, the AVS infor- mation returned simply indicates how the request matched the set that was acceptable.

curAmount n ..10 This indicates the amount, in cents, that remains available for Settlement. For example, if an Authorization was made for 1000 and the first Settlement request was for 400, then the curAmount returned in response to that Settle- ment is 600.

Table 1-19: Settlement Successful Response Parameters

1-48 October 2005 Settlement

Parameter Data Type Description

amount n ..10 The original amount that was requested. This is only returned if the amount parameter was specified in the initial Settlement request.

txnNumber n ..10 The transaction number the transaction pro- cessor assigned to the original Authorization being settled, and which was specified in the Settlement request.

settleNumber n ..10 The transaction number the transaction pro- cessor assigns to this Settlement. NOTE: Since you can have multiple Settle- ments against a single Authorization, the settle- Number for the first Settlement is zero (0), and subsequent Settlements against the same Authorization are incremented by one each time. See Settlement on page 1-45 for more information.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-19: Settlement Successful Response Parameters (Continued)

Settlement error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Parameter Data Type Description

status a 1 E indicates that an error occurred.

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

Table 1-20: Settlement Error Response Parameters

Direct Payment Protocol Specification 1.1 1-49 Transaction Requests October 2005

Parameter Data Type Description

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subError n 6 Lower level error that occurred. This value is only used when trying to resolve issues in co- operation with technical support.

subErrorString a ..255 String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

actionCode an ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more infor- mation.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-20: Settlement Error Response Parameters (Continued)

Cancel Settlement During a Settlement, the issuing financial institution credits the mer- chant’s bank account with the funds for the transaction and updates the cardholder’s statement. This can only be done once the merchandise has been shipped or the service has been provided to the customer. When a Settlement transaction is processed, it is temporarily queued in a batch, which is sent once daily to the clearing networks. It is possible, while a Settlement is queued in the batch, to cancel that transaction. This might become necessary, for example, if a merchant discovers that an item thought to have been shipped has not in fact been sent to the customer, and a Settlement for that transaction is therefore not permissible.

Cancel Settlement message format The Cancel Settlement request may contain the following parameters (see Definitions and conventions on page 1-5 for explanation of symbols in the Mandatory/Optional column):

1-50 October 2005 Cancel Settlement

Cancel Mandatory/ Data Type Description Settlement Optional Parameter

account n ..10 The merchant account against which the request is made. NOTE: The currency of the transac- tion is inferred from the account specified. The currency of each account is assigned when it is cre- ated.

txnNumber n ..10 The transaction number that the transaction processor returned in response to the original Purchase or Authorization request that is now being settled – this is the txnNum- ber found in Purchase successful response on page 1-20 or in Authorization successful response on page 1-41.

operation a 1 Signifies the transaction requested. Must be set to X for Cancel Settle- ment.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current functionality.

settleNumber n ..10 The transaction number the trans- action processor assigned to the Settlement of the original transac- tion. This is the settleNumber found in Settlement successful response on page 1-48.

merchantId an ..80 The account transaction processing ID associated with the merchant.

Table 1-21: Cancel Settlement Request Transaction Parameters

Direct Payment Protocol Specification 1.1 1-51 Transaction Requests October 2005

Cancel Mandatory/ Data Type Description Settlement Optional Parameter

merchantPwd ans ..20 The account transaction processing password associated with the mer- chant ID specified.

Table 1-21: Cancel Settlement Request Transaction Parameters (Continued)

Cancel Settlement successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a 2 C indicates a successful Cancel Settlement.

txnNumber n ..10 The transaction number the transaction pro- cessor assigned to the initial Purchase or Authorization request. This is the txnNumber found in Purchase suc- cessful response on page 1-20 or in Settlement successful response on page 1-48.

settleNumber n ..10 The transaction number the transaction pro- cessor assigned to the Settlement of the original transaction. This is the settleNumber supplied in Cancel Settlement message format on page 1-50.

Table 1-22: Cancel Settlement Successful Response Parameters

Cancel Settlement error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

1-52 October 2005 Credit

Parameter Data Type Description

status a 1 E indicates that an error occurred.

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subErrorString a ..255 String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

actionCode an ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more infor- mation.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-23: Cancel Settlement Error Response Parameters

Credit In the event that you must refund a customer’s money, use the Credit request to credit back to a customer ’s card an amount previously settled against that card.

A Credit request can only be completed once settlement of the Purchase request is complete. This occurs the next time the batch job runs after the Purchase request is completed.

Credits do not take place immediately. Rather, they are gathered (“batched”) at a certain time during the day and sent to the clearing net- work for processing. Until the batch has been processed, no money has changed hands. To reconcile bank statements with processed transac-

Direct Payment Protocol Specification 1.1 1-53 Transaction Requests October 2005

tions, one should look at Credit transactions that have a status of “com- plete” when running reports. In special cases, a Credit may have already been applied by the card company due to a chargeback request from the cardholder. A charge- back is a refusal of the cardholder’s bank to accept a transaction pre- sented by the merchant’s processor. This occurs when a customer disputes a card purchase. The merchant may be asked for proof of Authorization. The end result may be that the merchant’s account is debited for the transaction. To reconcile this scenario, a Credit transac- tion is created using the backoffice transaction management user inter- face and flagged as a chargeback. This reflects the fact that the Credit occurred, but prevents that Credit from being processed in a batch.

Credit message format The Credit request may contain the following parameters (see Definitions and conventions on page 1-5 for explanation of symbols in the Manda- tory/Optional column):

Credit Parameter Mandatory/ Data Type Description Optional

account n ..10 The merchant account against which the request is made. NOTE: The currency of the trans- action is inferred from the account specified. The currency of each account is assigned when it is created.

txnNumber n ..10 The transaction number the trans- action processor returned in response to the original Purchase request. This is the txnNumber found in the Purchase successful response on page 1-20.

Table 1-24: Credit Request Transaction Parameters

1-54 October 2005 Credit

Credit Parameter Mandatory/ Data Type Description Optional

settleNumber n ..10 The transaction number the trans- action processor assigned to the settlement of the transaction against which the Credit request is being made.

origMerchantTxn a ..255 The merchant transaction number associated with the Purchase against which the Credit request is made.

amount n ..10 The integer amount, without dec- imals, for which the Credit is requested. (e.g., $10.00 would be “1000”) This can be at most the amount of the Purchase. If the amount is not specified, then the full amount settled is credited.

operation a 2 Signifies the transaction requested. Must be set to CR for Credit.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current functionality.

merchantTxn an ..255 A unique ID number associated with each request. This value is created by the merchant and sub- mitted as part of the request.

merchantId an ..80 The account transaction process- ing ID associated with the mer- chant.

Table 1-24: Credit Request Transaction Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-55 Transaction Requests October 2005

Credit Parameter Mandatory/ Data Type Description Optional

merchantPwd ans ..20 The account transaction process- ing password associated with the merchant ID specified.

merchantData an ..255 Data that the merchant wants to associate with the request (e.g., notes).

Table 1-24: Credit Request Transaction Parameters (Continued)

Credit successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a 2 SP indicates successful Credit. The requested amount has been marked for settlement the next time the batch settlement job runs.

curAmount n ..10 This indicates the amount, in cents, that remains available to be credited against the Settlement indicated by the transaction num- ber and the merchant transaction number. For example, if a Purchase was made for 1000 and the first Credit request was for 400, then the curAmount returned in response to that Settle- ment is 600.

amount n ..10 The amount for which the Credit was requested. This is only returned if an amount was specified in the Credit request.

txnNumber n ..10 The transaction number specified in the request.

Table 1-25: Credit Successful Response Parameters

1-56 October 2005 Credit

Parameter Data Type Description

creditNumber n ..10 The transaction number the transaction proces- sor assigns this Credit request. Possible values are 0 .. n, where 0 is the first Credit applied to the original transaction, 1 is the second Credit applied to that transaction, etcetera.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-25: Credit Successful Response Parameters (Continued)

Credit error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Parameter Data Type Description

status a 1 E indicates that an error occurred.

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subError n 6 Lower level error that occurred. This value is only used when trying to resolve issues in co- operation with technical support.

subErrorString a ..255 String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

Table 1-26: Credit Error Response Parameters

Direct Payment Protocol Specification 1.1 1-57 Transaction Requests October 2005

Parameter Data Type Description

actionCode a ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more infor- mation.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-26: Credit Error Response Parameters (Continued)

Cancel Credit The Credit request allows the merchant’s application to credit an amount as great as the sum of the Settlements that have been made against an Authorization. When a Credit transaction is processed, it is temporarily queued in a batch, which is sent once daily to the clearing networks. If necessary it is possible, while a Credit is queued in the batch, to cancel that transaction before it is processed.

Cancel Credit message format The Cancel Credit request may contain the following parameters (see Definitions and conventions on page 1-5 for explanation of symbols in the Mandatory/Optional column):

Cancel Credit Mandatory/ Data Type Description Parameter Optional

account n ..10 The merchant account against which the request is made. NOTE: The currency of the transac- tion is inferred from the account specified. The currency of each account is assigned when it is cre- ated.

Table 1-27: Cancel Credit Request Transaction Parameters

1-58 October 2005 Cancel Credit

Cancel Credit Mandatory/ Data Type Description Parameter Optional

txnNumber n ..10 The transaction number that the transaction processor returned in response to the original Authoriza- tion request that is now being set- tled – this is the txnNumber found in the Authorization successful response on page 1-41.

operation a 1 Signifies the transaction requested. Must be set to Z for Cancel Credit.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current functionality.

settleNumber n ..10 The transaction number the trans- action processor assigned to the Settlement of the original transac- tion. This is the settleNumber found in Settlement successful response on page 1-48. For Purchase requests, the settle- Number is set to 0 (zero) by default.

creditNumber n ..10 The transaction number assigned to the original Credit request. This is the value for creditNumber on page 1-57.

merchantId an ..80 The account transaction processing ID associated with the merchant.

merchantPwd ans ..20 The account transaction processing password associated with the mer- chant ID specified.

Table 1-27: Cancel Credit Request Transaction Parameters (Continued)

Direct Payment Protocol Specification 1.1 1-59 Transaction Requests October 2005

Cancel Credit successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a 2 C indicates a successful Cancel Credit.

txnNumber n ..10 The transaction number the transaction pro- cessor assigned to the initial Purchase or Authorization request. This is the txnNumber found in Purchase suc- cessful response on page 1-20 or in Settlement successful response on page 1-48.

settleNumber n ..10 The transaction number the transaction pro- cessor assigned to the original Settlement that was being credited. This is the settleNumber supplied in Cancel Credit message format on page 1-58.

creditNumber n ..10 The transaction number the transaction pro- cessor assigned to the original Credit request. This is the creditNumber supplied in Cancel Credit message format on page 1-58.

Table 1-28: Cancel Credit Successful Response Parameters

Cancel Credit error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Parameter Data Type Description

status a 1 E indicates that an error occurred.

Table 1-29: Cancel Credit Error Response Parameters

1-60 October 2005 Transaction recovery

Parameter Data Type Description

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subErrorString a ..255 String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

actionCode a ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more infor- mation.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-29: Cancel Credit Error Response Parameters (Continued)

Transaction recovery The type of transaction request to post for transaction recovery differs, depending on the type of transaction request that you want to recover.

Transaction Transaction Request to Execute

Authorization Transaction Lookup

Credit Query

Purchase Transaction Lookup

Settlement Query

Table 1-30: Transaction Recovery Types

Direct Payment Protocol Specification 1.1 1-61 Transaction Requests October 2005

Transaction Lookup If the merchant application makes an Authorization or Purchase request and does not receive a response, implement the following recovery process: 1. Execute a Transaction Lookup transaction, specifying the merchant transaction number you provided in the original request. 2. If the Transaction Lookup returns the transaction number, execute a Query request (see Query on page 1-66), specifying this transaction number as well as the merchant transaction number provided in the original Authorization or Purchase request. The response to this query will contain the Authorization code, the Authorization date, and AVS information that would have been returned in the response to the original request. At this point, the transaction has been corrected. 3. If the Transaction Lookup does not return a transaction number, then the transaction may have failed with a specific error code. Use the Activity Report tool to search for the transaction, using search criteria such as the amount, merchant transaction ID, and date. 4. If neither the Transaction Lookup nor the Activity Report locates your transaction, then retry the original request.

The Transaction Lookup transaction draws heavily on computing resources, because a number of transactions must be searched for the matching merchant transaction number. The request does allow, how- ever, the merchant to specify the searchStart and searchWindow param- eters, which reduces the number of transactions to search, thus accelerating the recovery of the information desired. Merchants should provide this information whenever possible.

Transaction Lookup message format The Transaction Lookup request may contain the following parameters (see Definitions and conventions on page 1-5 for explanation of symbols in the Mandatory/Optional column):

1-62 October 2005 Transaction Lookup

Transaction Mandatory/ Data Type Description Lookup Parameter Optional

account n ..10 The merchant account against which the request is made.

merchantTxn a ..255 A unique ID number associated with each request. This value is created by the merchant and sub- mitted as part of the request.

operation a 2 Signifies the transaction requested. Must be set to FT for Transaction Lookup.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the current functionality.

searchStart n ..10 The time from which transactions will be included in the search. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970). If this value is not specified, then it is set to the current time minus the number of seconds specified by the search window.

NOTE: The time that the Transaction Lookup begins equals the startSearch value minus the searchWindow value. Therefore, the Transaction Lookup in fact ends at the time you specify in the searchStart parameter. For this reason, if you do not want to use the default values, set the searchStart value to a time later than the time you attempted the transac- tion you are searching for, and set the searchWindow value to extend to before the time you attempted the transaction you are searching for. E.g., if you attempted a transaction at 9:05, set the searchStart parameter to 9:07 and the searchWindow parameter to 600. The Transaction Lookup will then search from 8:57 to 9:07, therefore finding the trans- action you attempted at 9:05.

Table 1-31: Transaction Lookup Request Transaction Parameters

Direct Payment Protocol Specification 1.1 1-63 Transaction Requests October 2005

Transaction Mandatory/ Data Type Description Lookup Parameter Optional

searchWindow n ..4 The length, in seconds, of the period of transaction history in which transactions are searched for. If not specified, it defaults to 300 seconds (5 minutes). If, in addition, the searchStart value is not supplied, it defaults to the current time. Thus if neither the searchStart nor the search- Window values are specified, the search includes all transactions that occurred during the period beginning five minutes prior to the current time up to the current time. In most cases this search should find the failed transaction.

custName1 an ..255 The customer’s name, or some identifier assigned to the cus- tomer. This value must be all the characters specified in the custName1 field in the original Authorization or Purchase request, up to but not including the first space character. NOTE: Specifying this value accelerates the search.

email a ..255 The customer’s email address. This value must be the same as that specified in the original Authorization or Purchase request. NOTE: Specifying this value accelerates the search.

Table 1-31: Transaction Lookup Request Transaction Parameters (Continued)

1-64 October 2005 Transaction Lookup

Transaction Mandatory/ Data Type Description Lookup Parameter Optional

merchantId a ..80 The merchant ID associated with the merchant.

merchantPwd ans ..20 The password associated with the merchant ID specified.

Table 1-31: Transaction Lookup Request Transaction Parameters (Continued)

Transaction Lookup successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

Parameter Data Type Description

status a ..2 C indicates that the search has been completed and the requested transaction found. NF indicates that no matching transaction was found within the specified search window.

txnNumber n ..10 The transaction number associated with the merchant transaction number that was speci- fied in the request. This value is only returned if the status is C.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-32: Transaction Lookup Successful Response Parameters

Transaction Lookup error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Parameter Data Type Description

status a 1 E indicates that an error occurred.

Table 1-33: Transaction Lookup Error Response Parameters

Direct Payment Protocol Specification 1.1 1-65 Transaction Requests October 2005

Parameter Data Type Description

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subError n 3 Lower level error that occurred. This value is only used when trying to resolve issues in co- operation with technical support.

actionCode a ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more infor- mation.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-33: Transaction Lookup Error Response Parameters (Continued)

Query If the merchant application has made a Transaction Lookup request and has to follow it up with a Query, or makes a Settlement or Credit request and does not receive a response, execute the following recovery process. 1. Execute a Query request specifying the same payment server trans- action number and merchant transaction number that were speci- fied in the response to the Transaction Lookup, Settlement, or Credit request. 2. If the response to the Query request indicates that the transaction was found, then the merchant application knows the request was processed and can continue normal processing. 3. If the response to the Query request indicates that the transaction could not be found, then retry the original request. At this point, the transaction has been corrected.

1-66 October 2005 Query

Query message format The Query request contains the following parameters (see Definitions and conventions on page 1-5 for explanation of symbols in the Manda- tory/Optional column):

Query Mandatory/ Data Type Description Parameter Optional

account n ..10 The merchant account against which the request is made.

txnNumber n ..10 The transaction number the trans- action processor returned in response to the original Authoriza- tion or Purchase request.

operation a 1 Signifies the transaction requested. Must be set to Q for Query.

clientVersion an ..4 The protocol version. This must be set to 1.1 in order to use the cur- rent functionality.

merchantTxn a ..255 A unique ID number associated with each request. This value was created by the merchant and sub- mitted as part of the original Authorization or Purchase request.

merchantId a ..80 The account transaction process- ing ID associated with the mer- chant.

merchantPwd ans ..20 The account transaction process- ing password associated with the merchant ID specified.

Table 1-34: Query Transaction Request Parameters

Direct Payment Protocol Specification 1.1 1-67 Transaction Requests October 2005

Query successful response If the transaction request is successful, the transaction processor returns a response message with the following parameters:

1-68 October 2005 Query

Parameter Data Type Description

status a ..2 Authorization • A = Authorized •F = Failed • S = Fully settled • PS = Partially settled • M = Manual intervention required Settlement • P = Pending. The request is processed the next time the batch Settlement job runs. • C = Complete. The request is completed. • E = Error • AB = The request was aborted. Credit • PA = Pending approval • P = Pending. The request will be processed the next time the batch settlement job runs. • C = Complete. The request is completed. • E = Error • R = Rejected Purchase • P = Pending. The request is processed the next time the batch Settlement job runs. • C = Complete. The request is completed. Errors • F = Failed. The request failed. You may want to query the sub-request you are querying in order to get more information. • NF = The request was not found. No request was made that specified the transaction number and the merchant transaction num- ber requested. • U = The request was of an unknown type.

Table 1-35: Query Successful Response Parameters

Direct Payment Protocol Specification 1.1 1-69 Transaction Requests October 2005

Parameter Data Type Description

txnType a ..2 The type of the request associated with the specified transaction number and merchant transaction number. It will be one of the follow- ing: • A = Authorization • P = Purchase • S = Settlement • C = Credit • U = Unknown

pmtError a 1 Returned only if the request can be retried. It can be one of the following: • I - kPmtErrorUserRetry An error occurred. Please contact technical support. • M - kPmtErrorOperatorRetry A payment agent action has failed, requiring user intervention. Please contact technical support. • S - kPmtErrorSystemRetry A payment agent action has failed. Retry the request. If multiple failures occur, please contact technical support.

authCode a ..20 The Authorization code assigned by the issuing bank and returned by the transaction proces- sor. Returned only if the request queried is Purchase, Authorization, or Settlement.

authTime n ..10 The time at which the Authorization was com- pleted. This time is represented as the number of seconds since 00:00:00 UTC (1 January 1970). Returned only if the request queried is Purchase, Authorization, or Settlement.

Table 1-35: Query Successful Response Parameters (Continued)

1-70 October 2005 Query

Parameter Data Type Description

avsInfo a ..6 The AVS code associated with the request. Format is X + information, where X is an AVS code (see the appropriate SDK) and informa- tion is any additional information provided by Direct Payment. NOTE: The request will only be successful if the AVS code was one of the values acceptable for the brand used. Therefore, the AVS infor- mation returned simply indicates how the request matched the set that was acceptable. Returned only if the request queried is Purchase, Authorization, or Settlement.

txnNumber n ..10 The transaction number assigned to this Query request. NOTE: This transaction number is assigned to this Query request, and is different from the transaction number assigned to the original Authorization or Purchase request being queried.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-35: Query Successful Response Parameters (Continued)

Query error response If the transaction cannot be processed as requested, an error response is returned. This response contains some of the following parameters:

Parameter Data Type Description

status a 1 E indicates that an error occurred

Table 1-36: Query Error Response Parameters

Direct Payment Protocol Specification 1.1 1-71 Transaction Requests October 2005

Parameter Data Type Description

errCode n ..4 An integer value associated with the error that occurred. See Appendix A: Error Return Codes for an explanation of the error code.

errString a ..255 String that describes the error that occurred. See Appendix A: Error Return Codes for an explanation of the error string.

subError n 3 Lower level error that occurred. This value is only used when trying to resolve issues in co- operation with technical support.

subErrorString a ..255 String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

actionCode a ..10 The action code as defined in the list of errors (AR, CP, IE, MP, SR). See Action codes on page A-2 for more informa- tion.

clientVersion an ..4 The protocol version included with the original transaction.

Table 1-36: Query Error Response Parameters (Continued)

1-72 APPENDIX A

Error Return Codes

Error message types There are two classes of error messages associated with the use of the Direct Payment protocol for the Optimal Payments transaction process- ing server: • Payment service errors, related to processing the request • Errors generated by your own application that is configured to implement the payment service The errors that could occur on the payment service side are listed below. The status, error code, and error string for any such error are returned to the merchant application.

Payment service error messages If, after sending a transaction request, you receive an error message from the payment service, some or all of the following parameters are returned (in addition to some request-specific parameters):

Parameter Description

status E indicates that an error occurred.

errCode An integer value associated with the error that occurred.

errString String that describes the error that occurred.

subError Lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

subErrorString String that describes the lower level error that occurred. This value is only used when trying to resolve issues in co-operation with technical support.

Table A-1: Error Message Parameters

Direct Payment Protocol Specification 1.1 A-1 Error Return Codes October 2005

Parameter Description

clientVersion The version of the protocol that the payment service is running.

Table A-1: Error Message Parameters

Action codes The payment service returns an error code and an error string for any error encountered. There is also an action code associated with each error (not returned by the payment service). In the table in Error codes and strings below, find the error code returned to you in order to find the action code associated with it. The meanings for the action code abbreviations are as follows: • AR = Authorization Refused. The card cannot be authorized. Ask the user to verify credit card information or to use a different credit card. • CP = Customer Parameter. The customer has provided incorrect information. Ask the customer to correct the information. • IE = Internal Error. There is a problem on the system that you should report to technical support. You should also determine the status of the transaction using a Transaction Lookup request. • MP = Merchant Parameter. Your application has provided incorrect information. Verify your information. • SR = Service is Restarting. Please retry later.

Error codes and strings The table immediately below contains all the error codes and error strings that might be returned while sending transaction requests, in addition to action codes (which are not returned by the payment serv- ice). The right-most column lists the action codes associated with each error.

A-2 October 2005 Error codes and strings

Error Error String Description Action Code Code

1 Error in HTTP environment. HTTP level used not supported by IE server side. Should not occur.

2 No response from process within After the transaction was sent, no IE timeout settings. Please do a response was received, because the Transaction Lookup to deter- transaction was never processed. mine the transaction status. The clearing network could be down.

3 Payment service is currently Our gateway process connecting to SR restarting. Retry later. If the prob- a clearing house is temporarily lem persists, please contact tech- down – most likely due to a restart nical support. because of connectivity problems with the clearing house.

4 Could not read configuration Server side error. Should not occur. IE file. Please contact technical support.

5 Request method Get not Only POST method is supported. MP allowed.

20 Remote validation error. Please One of the required parameters is MP verify request parameters. not valid.

21 Request validation failed. Please One of the required parameters is MP verify request parameters. not valid.

30 Request processing failure. Server side error. Unlikely to occur, IE Please contact technical support. but could happen as a result of a configuration error.

31 Request processing failure. Server side error. Should not occur. IE Please contact technical support.

32 Request not accepted. Please This error occurs if the request MP verify request parameters. comes from an IP not configured for the merchant.

Table A-2: Error Codes and Strings

Direct Payment Protocol Specification 1.1 A-3 Error Return Codes October 2005

Error Error String Description Action Code Code

33 Failed to process request. Please The transaction processing server SR retry the transaction. was temporarily too busy. Retry the transaction.

34 Authorization refused. This error usually results from a AR hard decline from the clearing house, or from declines due to fraud prevention measures. A sub- error code occurs in the latter case.

56 Invalid amount. Please verify An amount greater than the range IE (MP) request parameters. supported was entered.

57 Invalid CVD indicator. Please An incorrect value was used for the IE (MP) verify request parameters. cvdIndicator parameter.

58 Invalid CVD value. Please verify An incorrect value was used for the IE (MP) request parameters. cvdValue parameter.

63 Invalid account ID. Please verify Some account ID values sent with MP request parameters. the transaction do not correspond with the values stored in the our database (e.g., incorrect merchantPwd entered).

91 Invalid payment information. The card number, the brand, expiry CP Please verify request parameters date, or a combination thereof is incorrect. The suberror text describes the problem in more detail.

92 Invalid payment method. Please A transaction was attempted with MP verify request parameters. an incorrect value entered for the payment method (payMethod) parameter.

Table A-2: Error Codes and Strings

A-4 October 2005 Error codes and strings

Error Error String Description Action Code Code

93 Invalid card type. Please verify This error results when a transaction CP request parameters. is attempted with a card type that is not supported.

101 Internal error. Please contact Server side error. Should not occur. IE technical support.

111 Could not assign name. Please A transaction was attempted with CP verify request parameters. the wrong data type entered for the name parameter.

113 Could not assign address. Please A transaction was attempted with CP verify request parameters. the wrong data type entered for the address parameter.

116 Could not assign province. A transaction was attempted with CP Please verify request parameters. the wrong data type entered for the province parameter.

117 Could not assign zip. Please ver- A transaction was attempted with CP ify request parameters. the wrong data type entered for the zip parameter.

118 Could not assign country. Please A transaction was attempted with CP verify request parameters. the wrong data type entered for the country parameter.

119 Could not assign email. Please A transaction was attempted with CP verify request parameters. the wrong data type entered for the email parameter.

120 Could not assign phone number. A transaction was attempted with CP Please verify request parameters. the wrong data type entered for the phone number parameter.

121 Could not assign merchantTxn. A transaction was attempted with MP Please verify request parameters. the wrong data type entered for the merchantTxn parameter.

Table A-2: Error Codes and Strings

Direct Payment Protocol Specification 1.1 A-5 Error Return Codes October 2005

Error Error String Description Action Code Code

130 Invalid expiry date value. Please The expiry date is incorrect. MP verify request parameters.

131 Operation not supported. Please The transaction attempted is MP verify request parameters. unknown (Purchase or Credit are examples of known transaction types), or the account is not config- ured for the transaction attempted.

132 Missing mandatory parameters A field that is mandatory for the MP for operation. Please verify transaction (e.g., cardType) was not request parameters. sent with the transaction.

133 Invalid amount format. Should The amount of a transaction must MP be integer. Please verify request be given with no decimal (e.g., parameters. $4.95 = 495).

134 Invalid client version. Please ver- The clientVersion parameter must MP ify request parameters. be set to 1.1 in order to use current functionality.

137 Invalid zip code length. Please The zip parameter must be a maxi- MP verify request parameters. mum of 10 alphanumeric charac- ters.

138 Invalid zip code length. Please The zip parameter must be a maxi- MP verify request parameters. mum of 10 alphanumeric charac- ters.

139 Invalid expiry date format. The format for the cardExp parame- MP Please verify request parameters. ter must be “MM/YY”. E.g., September 2003 = 09/03

161 Not authorized to make request. The user name and/or password MP Please verify request parameters. included with the Settlement trans- action request are not correct. These are the merchantId and mer- chantPwd parameters, respectively.

Table A-2: Error Codes and Strings

A-6 October 2005 Error codes and strings

Error Error String Description Action Code Code

163 Invalid txnNumber. Please verify The authorization number included MP request parameters. with the Settlement transaction request is not correct or cannot be found.

174 Request failed. Please contact Server side error. Should not occur. IE technical support.

175 Requested Settlement exceeds A Settlement transaction request MP remaining Authorization. must be equal to or less than the amount remaining to settle on an Authorization.

176 Invalid settlement amount. A Settlement transaction request MP must be equal to or less than the amount remaining to settle on an Authorization.

178 Transaction already fully settled. There is no amount remaining to MP settle on the original Authorization.

209 Payment brand not in store list. The transaction request was sent MP with a credit card type for which the account is not configured.

210 Payment instrument error. Please Server side error. Should not occur. CP verify request parameters.

212 Authorization refused – AVS did This error occurs when AVS fails on AR not match. a transaction that otherwise would have been successful.

213 The Authorization was aborted. Server side error. Should not occur. AR

221 Authorization failed. The transaction was not authorized. AR The suberror text describes the problem in more detail.

222 Currency mismatch with store. Server side error. Should not occur. MP

Table A-2: Error Codes and Strings

Direct Payment Protocol Specification 1.1 A-7 Error Return Codes October 2005

Error Error String Description Action Code Code

234 Settlement refused because A Settlement was attempted on a MP credit card did not pass negative credit card that was entered into database check. the negative database after the authorization that you are trying to settle was approved.

281 Not authorized to make request. The user name and/or password MP Please verify request parameters. included with the Query transac- tion request are not correct. These are the merchantId and merchant- Pwd parameters, respectively.

284 Invalid transaction number. The transaction number included MP Please verify request parameters. with the Query transaction request cannot be found.

311 Not authorized to make request. The user name and/or password MP Please verify request parameters. included with the Transaction Lookup transaction request are not correct. These are the merchantId and merchantPwd parameters, respectively.

321 Not authorized to make request. • The user name and/or password MP Please verify request parameters. included with the transaction request are not correct. These are the merchantId and merchant- Pwd parameters, respectively; or • The transaction originates from an IP address for which the account is not configured; or • The account has been disabled.

Table A-2: Error Codes and Strings

A-8 October 2005 Error codes and strings

Error Error String Description Action Code Code

331 Not authorized to make request. The user name and/or password MP Please verify request parameters. included with the Credit transac- tion request are not correct. These are the merchantId and merchant- Pwd parameters, respectively.

333 Invalid txnNumber. Please verify The authorization number included MP request parameters. with the Credit transaction request is not correct or cannot be found.

334 Credit refused because credit A Credit was attempted to a credit MP card did not pass negative data- card that was entered into the neg- base check. ative database after the Settlement that you are trying to credit was completed.

345 Requested Credit exceeds A Credit transaction request must MP remaining funds settled. be equal to or less than the amount of funds available to credit (i.e., the amount settled for that credit card).

346 Invalid credit amount. A Credit transaction request must MP be equal to or less than the amount of funds available to credit (i.e., the amount settled for that credit card).

347 Internal error. Please contact The Credit transaction could not be IE technical support. processed because this card brand has been disabled for this merchant account.

348 No settled funds available for A Credit transaction request can MP credit. only be made on a credit card that has settled amounts remaining on it.

Table A-2: Error Codes and Strings

Direct Payment Protocol Specification 1.1 A-9 Error Return Codes October 2005

Error Error String Description Action Code Code

353 Unknown txnNumber. Please The transaction number included MP verify request parameters. with the Settlement transaction request is incorrect.

356 Unknown merchant transaction, A Credit transaction request was MP already fully credited, or no attempted where there were no amount available for credit. funds remaining to be settled.

600 Invalid shipment method. Please A transaction was attempted with MP verify request parameters. an incorrect value entered for the shipment method (shipMethod) parameter.

601 Invalid carrier. Please verify A transaction was attempted with MP request parameters. an incorrect value entered for the carrier parameter.

651 Invalid previous customer. A transaction was attempted with MP Please verify request parameters. an incorrect value entered for the previousCustomer parameter, which indicates whether the cus- tomer has previously shopped online with this merchant.

652 Invalid customer ID. Please ver- A transaction was attempted with MP ify request parameters. an incorrect value entered for the customerId parameter.

653 Invalid customer IP. Please verify A transaction was attempted with MP request parameters. an incorrect value entered for the customer’s IP address (customerIP) parameter.

701 Invalid product type. Please ver- A transaction was attempted with MP ify request parameters. an incorrect value entered for the product type (productType) param- eter.

Table A-2: Error Codes and Strings

A-10 October 2005 Error codes and strings

Error Error String Description Action Code Code

702 Invalid product code. Please ver- A transaction was attempted with MP ify request parameters. an incorrect value entered for the product code (productCode) parameter.

731 Invalid transaction category. A transaction was attempted with MP Please verify request parameters. an incorrect value entered for the transaction category (txnCategory) parameter.

751 Invalid merchant SIC code. A transaction was attempted with MP Please verify request parameters. an incorrect value entered for the ISO Standard Industry Code (merchantSIC) parameter.

752 Invalid customer account open A transaction was attempted with MP date. Please verify request an incorrect value entered for the parameters. parameter indicating the date the customer account was opened (custAcctOpenDate).

771 Invalid user data. Please verify A transaction was attempted with MP request parameters. an incorrect value entered for a user data (e.g., userData04) param- eter.

Table A-2: Error Codes and Strings

The merchant application should not encounter internal errors during normal operation of the payment service. If they are encountered, contact technical support.

Direct Payment Protocol Specification 1.1 A-11 Error Return Codes October 2005

Suberror codes and strings

Suberror Suberror String Action Code Code

1000 Approval AR

1001 Unknown response from clearing network AR

1002 Clearing network response is Reenter AR

1003 Clearing network response is Referral AR

1004 Clearing network response is Pickup AR

1005 Clearing network response is Decline AR

1006 Clearing network response is Timeout AR

1007 Card in negative database AR

1008 Invalid merchant number AR

1010 CVV2 check failed AR

1011 Approved with ID AR

1012 Invalid request AR

1013 Invalid amount AR

1014 Invalid account AR

1015 Retry AR

1016 Invalid expiry date AR

1017 PIN invalid AR

1018 Unauthorized transaction AR

1019 Max PIN retries AR

1020 Duplicate transaction AR

1021 Invalid account match AR

1022 Invalid amount match AR

Table A-3: Suberror Codes and Strings

A-12 October 2005 Suberror codes and strings

Suberror Suberror String Action Code Code

1023 Invalid item number AR

1024 Item voided AR

1025 Must balance now AR

1026 Use duplicate AR

1027 No duplicate found AR

1028 Invalid data AR

1029 No transaction found AR

1030 Approved but not captured AR

1031 Approved auth only AR

1032 Invalid bank ID AR

1034 Transaction type invalid AR

1035 Approved debit AR

1036 DB unavailable2 AR

1037 DB unavailable3 AR

1038 DB unavailable4 AR

1039 Unauthorized user AR

1040 Invalid card AR

1041 DB issuer unavailable AR

1042 Invalid pos card AR

1043 Account type invalid AR

1044 Invalid prefix AR

1045 Invalid FIID AR

1046 Verify AR

Table A-3: Suberror Codes and Strings

Direct Payment Protocol Specification 1.1 A-13 Error Return Codes October 2005

Suberror Suberror String Action Code Code

1047 Invalid LIC AR

1048 Invalid state AR

1049 EDC unavailable AR

1050 DB unavailable1 AR

1051 Scan unavailable AR

1052 Exceeds max amount AR

1053 Exceeds max uses AR

1054 Unable to process AR

1055 Invalid request for terminal AR

1056 Invalid date AR

1057 Invalid format AR

1058 No pickup AR

1059 No funds available AR

1060 Exceed limit AR

1061 Restricted card AR

1062 Mac key incorrect AR

1063 Exceed frequency limit AR

1064 Retain card AR

1065 Late response AR

1067 No share arrangement AR

1068 Function unavailable AR

1069 Invalid key AR

1070 Invalid lifecycle trans AR

Table A-3: Suberror Codes and Strings

A-14 October 2005 Unmapped suberror codes and strings

Suberror Suberror String Action Code Code

1071 Pin key error AR

1072 Mac sync error AR

1073 Security violation AR

1074 IST unavailable AR

1075 Invalid issuer AR

1076 Invalid acquirer AR

1077 Invalid originator AR

1078 System error AR

1079 Duplicate reversal AR

1081 Credit card is blocked AR

1082 Credit card is stolen AR

1083 Credit card is forged AR

1085 Credit card is expired AR

4000 Declined by Risk Management AR

Table A-3: Suberror Codes and Strings

Unmapped suberror codes and strings An unmapped suberror code and suberror string are returned in the event that a suberror response is not mapped to a standard 4-digit suberror code and string. All unmapped suberror codes are between 0 and 999, making them easy to differentiate from our suberror codes, which are all greater than 1000.

Direct Payment Protocol Specification 1.1 A-15 Error Return Codes October 2005

A-16 APPENDIX B

Geographical Codes

Province codes

Province Code Alberta AB British Columbia BC Manitoba MB New Brunswick NB Newfoundland NL Nova Scotia NS Northwest Territories NT Nunavut NU Ontario ON Prince Edward Island PE Quebec QC Saskatchewan SK Yukon YT

Table B-1: Province Codes

Direct Payment Protocol Specification 1.1 B-1 Geographical Codes October 2005

State codes

State Code State Code Alabama AL Alaska AK Arizona AZ Arkansas AR California CA Colorado CO Connecticut CT Delaware DE District of Columbia DC Florida FL Georgia GA Hawaii HI Idaho ID Illinois IL Indiana IN Iowa IA Kansas KS Kentucky KY Louisiana LA Maine ME Maryland MD Massachusetts MA Michigan MI Minnesota MN Mississippi MS Missouri MO Montana MT Nebraska NE Nevada NV New Hampshire NH New Jersey NJ New Mexico NM New York NY North Carolina NC North Dakota ND Ohio OH Oklahoma OK Oregon OR Pennsylvania PA Rhode Island RI South Carolina SC South Dakota SD Tennessee TN Texas TX Utah UT Vermont VT Virginia VA Washington WA West Virginia WV Wisconsin WI

Table B-2: State Codes

B-2 October 2005 Country codes

State Code State Code Wyoming WY Canada CN International IT Puerto Rico PR U.S. Virgin Islands VI Northern Mariana Is. MP Guam GU American Samoa AS Palau PW Armed Forces Americas AA Armed Forces Europe AE Armed Forces Pacific AP United States Federal US

Table B-2: State Codes

Country codes

Country Code Country Code Afghanistan AF Albania AL Algeria DZ American Samoa AS Andorra AD Angola AO Anguilla AI Antarctica AQ Antigua and Barbuda AG Argentina AR Armenia AM Aruba AW Australia AU Austria AT Azerbaijan AZ Bahamas BS Bahrain BH Bangladesh BD Barbados BB Belarus BY Belgium BE Belize BZ Benin BJ Bermuda BM Bhutan BT Bolivia BO Bosnia and Herzegovina BA Botswana BW

Table B-3: Country Codes

Direct Payment Protocol Specification 1.1 B-3 Geographical Codes October 2005

Country Code Country Code Bouvet Island BV Brazil BR British Indian Ocean Territory IO Brunei Darussalam BN Bulgaria BG Burkina Faso BF Burundi BI Cambodia KH Cameroon CM Canada CA Cape Verde CV Cayman Islands KY Central African Republic CF Chad TD Chile CL China CN Christmas Island CX Cocos (Keeling) Islands CC Colombia CO Comoros KM Congo CG Cook Islands CK Costa Rica CR Côte D’Ivoire CI Croatia HR Cuba CU Cyprus CY Czech Republic CZ Denmark DK Djibouti DJ Dominica DM Dominican Republic DO East Timor TP Ecuador EC Egypt EG El Salvador SV Equatorial Guinea GQ Eritrea ER Estonia EE Ethiopia ET Falkland Islands FK Faroe Islands FO Fiji FJ Finland FI France FR Metropolitan France FX French Guiana GF French Polynesia PF French Southern Territories TF Gabon GA Gambia GM Georgia GE

Table B-3: Country Codes

B-4 October 2005 Country codes

Country Code Country Code Germany DE Ghana GH Gibraltar GI Greece GR Greenland GL Grenada GD Guadeloupe GP Guam GU Guatemala GT Guernsey GG Guinea GN Guinea-Bissau GW Guyana GY Haiti HT Heard and McDonald Islands HM Honduras HN Hong Kong HK Hungary HU Iceland IS India IN Indonesia ID Iran (Islamic Republic of) IR Iraq IQ Ireland IE Isle of Man IM Israel IL Italy IT Jamaica JM Japan JP Jersey JE Jordan JO Kazakhstan KZ Kenya KE Kiribati KI Korea, Democratic People’s KP Korea, Republic of KR Republic Kuwait KW Kyrgyzstan KG Lao People’s Democratic LA Latvia LV Republic Lebanon LB Lesotho LS Liberia LR Libyan Arab Jamahiriya LY Liechtenstein LI Lithuania LT Luxembourg LU Macau MO Macedonia MK Madagascar MG

Table B-3: Country Codes

Direct Payment Protocol Specification 1.1 B-5 Geographical Codes October 2005

Country Code Country Code Malawi MW Malaysia MY Maldives MV Mali ML Malta MT Marshall Islands MH Martinique MQ Mauritania MR Mauritius MU Mayotte YT Mexico MX Micronesia, Federated States of FM Moldova, Republic of MD Monaco MC Mongolia MN Montserrat MS Morocco MA Mozambique MZ Myanmar MM Namibia NA Nauru NR Nepal NP The Netherlands NL New Caledonia NC New Zealand NZ Nicaragua NI Niger NE Nigeria NG Niue NU Norfolk Island NF Northern Mariana Islands MP Norway NO Oman OM Pakistan PK Palau PW Panama PA Papua New Guinea PG Paraguay PY Peru PE Philippines PH Pitcairn PN Poland PL Portugal PT Puerto Rico PR Qatar QA Reunion RE Romania RO Russian Federation RU Rwanda RW Saint Kitts and Nevis KN

Table B-3: Country Codes

B-6 October 2005 Country codes

Country Code Country Code Saint Lucia LC Saint Vincent and the Grena- VC dines Samoa WS San Marino SM Sao Tome and Principe ST Saudi Arabia SA Senegal SN Seychelles SC Sierra Leone SL Singapore SG Slovakia (Slovak Republic) SK Slovenia SI Solomon Islands SB Somalia SO South Africa ZA Spain ES Sri Lanka LK St. Helena SH St. Pierre and Miquelon PM Sudan SD Suriname SR Svalbard and Jan Mayen Islands SJ Swaziland SZ Sweden SE Switzerland CH Syrian Arab Republic SY Taiwan TW Tajikistan TJ Tanzania, United Republic of TZ Thailand TH Togo TG Tokelau TK Tonga TO Trinidad and Tobago TT Tunisia TN Turkey TR Turkmenistan TM Turks and Caicos Islands TC Tuvalu TV Uganda UG Ukraine UA United Arab Emirates AE United Kingdom GB United States US United States Minor Outlying UM Uruguay UY Islands Uzbekistan UZ Vanuatu VU Vatican City State (Holy See) VA Venezuela VE

Table B-3: Country Codes

Direct Payment Protocol Specification 1.1 B-7 Geographical Codes October 2005

Country Code Country Code Vietnam VN Virgin Islands (British) VG Virgin Islands (U.S.) VI Wallis and Futuna Islands WF Western Sahara EH Yemen YE Yugoslavia YU Zaire ZR Zambia ZM Zimbabwe ZW

Table B-3: Country Codes

B-8 APPENDIX C

Merchant SIC Codes

Code Description

0069 Adult

0742 Veterinary Services

0763 Agricultural Cooperatives

0780 Horticultural and Landscaping Services

1520 General Contractors – Residential and Commercial

1711 Air Conditioning, Heating, and Plumbing Contractors

1731 Electrical Contractors

1740 Insulation, Masonry, Plastering, Stonework, and Tile Setting Contractors

1750 Carpentry Contractors

1761 Roofing and Siding, Sheet Metal Work Contractors

1771 Concrete Work Contractors

1799 Contractors, Special Trade – Not Elsewhere Classified

2741 Miscellaneous Publishing & Printing

2791 Typesetting, Plate Making, & Related Services

2842 Specialty Cleaning, Polishing, & Sanitation Preparation

3000 United

3001 American Airlines

3002 Pan American

3003 Eastern Airlines

Table C-1: Merchant SIC Codes

Direct Payment Protocol Specification 1.1 C-1 Merchant SIC Codes October 2005

Code Description

3004 Trans World Airlines

3005 British Airways

3006 Japan Air Lines

3007 Air France

3008 Lufthansa Airlines

3009

3010 Royal Dutch Airlines (KLM)

3011 Aeroflot

3012 Qantas Airlines

3013 Alitalia Airlines

3014 Saudi Arabian Airlines

3015 Swissair

3016 Scandinavian Systems (SAS)

3017 South African Airways

3018 Varig Airlines (Brazil)

3019 CP Air (Canada)

3020 Air India

3021 Air Algerie

3022 Philippine Airlines

3023 Mexicana Airlines

3024 Pakistan International Airlines

3025 Air New Zealand Limited International

3026 BCAL (British Caledonian Airlines)

Table C-1: Merchant SIC Codes (Continued)

C-2 October 2005

Code Description

3027 Union de Transports Aeriens

3028 Air Malta

3029 Sabena Airlines

3030 Aerolineas Argentinas

3031 Olympic Airways

3032 El Al Airlines

3033 Ansett Airlines

3034 Australian Airways (TAA)

3035 TAP Airlines (Portugal)

3036 VASP Airlines (Brazil)

3037 EgyptAir

3038 Kuwait Airways

3039 Avianca Airlines

3040 Gulf Air (Bahrain)

3041 Balkan-Bulgarian Airlines

3042 Finnair

3043 Aer Lingus Airlines

3044 Transbras Airlines

3045 Nigeria Airways

3046 Cruzeiro Do Sul Airlines (Brazil)

3047 THY Airlines (Turkey)

3048 Royal Air Maroc

3049 Tunis Air

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-3 Merchant SIC Codes October 2005

Code Description

3050 Icelandair

3051 Austrian Airlines

3052 Lan-Chile Airlines

3053 Aviaco Airlines (Spain)

3054 Ladeco Airlines (Chile)

3055 LAB Airlines (Bolivia)

3056 Quebecaire

3057 East-West Airlines (Australia)

3058 Delta Airlines

3059 Republic Airways

3060 Northwest Airlines

3061 Continental Airlines

3062 Western Airways

3063 U.S. Air

3064 Braniff Airlines

3065 Air Inter

3066 Southwest Airlines

3067 Ozark Air

3068 Texas International Airlines

3070 PSA (Airline)

3071 Air British Columbia

3072 Frontier Airlines

3073 A... (Unknown Airline)

Table C-1: Merchant SIC Codes (Continued)

C-4 October 2005

Code Description

3074 Wien Alaska Airlines

3075 Singapore Airlines

3076 Aeromexico Airlines

3077 Thai Airways

3078 China Airlines

3079 Amtrak (Visa Only)

3080

3081 Airlines

3082 Korean Airlines

3083 Air Afrique

3084 Eva Airways

3085 Midwest Express Airlines

3086 Carnival Airlines

3087 Metro Airways

3088 Croatia Airlines

3089 Ransome Airlines

3090 Rio Sul

3091 Pennsylvania Airlines

3092 Midway Airlines

3093

3094 Zambia Airways

3095 (Canada)

3096 Air Zimbabwe

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-5 Merchant SIC Codes October 2005

Code Description

3097 Air New South Wales

3098 Air Niugini

3099 Cathay Pacific Airlines

3100 Malayslan Airline System

3101 UTA French Airlines

3102 Iberia Airlines

3103 Garuda Airlines (Indonesia)

3104 Alla (Jordan)

3105 Piedmont Airlines

3106 Braathens S.A.F.E. Airlines (Norway)

3107 Wright Airlines

3108 World Airways

3109 Wings West Airlines

3110 Wings Airlines

3111 British Midland

3112 Windward Island Airlines

3113 Will’s Air

3114 Wheeler Airlines

3115 Westair Commuter

3116 Voyageur Airways

3117 Venezolana International de Aviacion

3118 Valley Airlines

3119 Trans Colorado Airlines

Table C-1: Merchant SIC Codes (Continued)

C-6 October 2005

Code Description

3120 Trans Central Airlines

3121 Transamerica Airlines

3122 Torontair

3123

3124 Tennessee Airways

3125 Tan Airlines

3126 Talair

3127 Taca International Airlines

3128 Talair

3129 Surinam Airways

3130 Sunworld International Airlines

3131 Sun West Airlines

3132 Sunbird Airlines

3133 Sunbelt Airlines

3134 Sun Air

3135 Sudan Airways

3136 Sky West Airlines

3137 Singleton Airlines

3138 Simmons Airlines

3139 SFO Helicopter Air

3140 Semo Aviation

3141 SEAir Alaska

3142 Scheduled Skyways

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-7 Merchant SIC Codes October 2005

Code Description

3143 Scenic Airlines

3144 Virgin Atlantic

3145 San Juan Airlines

3146 Luxair

3147 Royal Hawaiian Air

3148 Royal Airlines

3150 Rocky Mountain Airways

3151 Air Zaire

3152 Rio Airways

3153 Pro Air Service

3154 Princeville Airlines

3155 Prinair

3156 Precision Airlines

3157 Pioneer Airlines

3158 Pilgrim Airlines

3159 Provincetown-Boston Airways

3160 Pacific Southwest Airlines

3161 All Nippon Airways

3162 Pacific Coast Airlines

3163 Northeastern International

3164 Norontair

3165 New York Helicopter

3166 New York Air

Table C-1: Merchant SIC Codes (Continued)

C-8 October 2005

Code Description

3167 New England Airlines

3168 Newair

3169 Muse Air Corporation

3170 Mount Cook Airlines

3171 International

3172 Nation Air

3173 Mississippi Valley Air

3174 Midstate Airlines

3175 Middle East Air

3176 Metroflight Airlines

3177 Mesaba Aviation

3178 Mesa Air

3179 Marco Island Airways

3180 Mall Airways

3181 Malev Hungarian Airlines

3182 LOT-Polish Airlines

3183 Long Island Airlines

3184 LIAT Airlines

3185 LAV Linea Aeropostal Venezolana

3186 LAP Lineas Aereas Paraguayas

3187 LACSA Airlines (Costa Rica)

3188 Jetstream International Airlines

3189 Jet American Airlines

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-9 Merchant SIC Codes October 2005

Code Description

3190 Jugoslav Air

3191 Island Airlines

3192 Iran Airlines

3193 Indian Airlines

3194 Imperial Airlines

3195 Holiday Airlines

3196 Hawaiian Air

3197 Havasu Airlines

3198 Harbor Airlines

3200 Guyana Airways

3201 Gull Air

3202 Green Hills Aviation

3203 Golden Pacific Air

3204 Freedom Airlines

3205 Florida Express Airlines

3206

3207 Empresa Ecuatoriana Airlines

3208 East Hampton Aire

3209 Eastern Prov. Airways

3210 Eagle Commuter Airlines

3212 Dominicana de Aviacion

3213 Direct Air

3214 Desert Sun Airways

Table C-1: Merchant SIC Codes (Continued)

C-10 October 2005

Code Description

3215 Dan Air Services

3216 Cumberland Airlines

3217 CSA Ceskoslovenske Aerolinie

3218 Crown Air

3219 Compania Panamena de Aviacion (Copa)

3220 Compania Faucett Airlines

3221 Transportes Aeros Militares Ecuatorianos

3222 Comand Airways

3223 Comair

3224 Colgan Airways

3225 Centennial Air

3226 Christmans Air System

3227 Chaparral Airlines

3228 Cayman Airways

3229 SAETA (Sociedad Ecuatorianas De Transportes Aero)

3230 Cascade Airways

3231 SAHSA (Servicio Aero de Honduras)

3232 Capitol Helicopters

3233 Capitol Air

3234 BWIA International (British West Indies Airlines)

3235 Brockway Air

3236 Big Sky Airlines

3237 Best Airlines

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-11 Merchant SIC Codes October 2005

Code Description

3238 Bemidji Aviation

3239 Bar Harbor Airlines

3240 Bahamasair

3241 Aviateca Airlines (Guatemala)

3242 Avensa Airlines

3243 Austrian Air Service

3244

3245 Atlantis Airlines

3246 Atlantic Southeast Airlines

3247 Atlantic Air

3248 Aspen Airways

3249 American International Airlines

3250 American Centural Air

3251 Aloha Airlines

3252 ALM Antilean Airlines

3253 America West Airlines

3254 Trump Airline (MC only)

3256 Alaska Airlines

3257 Airways of New Mexico

3258 Air Virginia

3259 American Trans Air

3260 Air Sunshine

3261 Air China

Table C-1: Merchant SIC Codes (Continued)

C-12 October 2005

Code Description

3262 Reno Air, Inc.

3263 Aero Servicio Carabobo

3265 Aispur Helicopters

3266 Air Seychelles

3267 Air Panama International

3268 Air Pacific

3270 Air One

3274 Air New Orleans

3275 Air Nevandi

3276 Air Midwest

3277 Air Madagascar

3278 Air Link

3279 Air LA

3280 Air Jamaica

3282 Air Djibouti

3283 Air Corta

3284 Aero Virgin Islands

3285 Aero Peru

3286 Aerolineas Nicaraguenses

3287 Aero Coach Aviation

3288 AFS Airline

3289 AAA Airline

3290 Air Naun

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-13 Merchant SIC Codes October 2005

Code Description

3291 Ariana Afghan Airlines

3292 Cyprus Airways

3293 Equatorian Airlines

3294 Ethiopian Airline

3295 Kenya Airways

3297 Tarom Airlines

3298 Air Mauritius

3351 Affiliated Auto Rental

3352 American International

3353 Brooks Rent-A-Car

3354 Action Auto Rental

3356 Fairway Rent-A-Car

3357 Hertz Corporation

3358 Olins Car Rental

3359 Payless Car Rental

3360 Snappy Car Rental

3361 Airways Auto Rental

3362 Altra Auto Rental

3363 Unicar

3364 Agency Rent-A-Car

3365 American Rental System

3366 Budget Rent-A-Car

3367 Fliteways Rent-A-Car

Table C-1: Merchant SIC Codes (Continued)

C-14 October 2005

Code Description

3368 Holiday Rent-A-Car

3369 Olympic Transport

3370 Rent-A-Wreck

3371 Steinke Autos Europe (Car Rental)

3372 Winston Car Rental

3373 Sun Auto Rentals

3374 Sears Rent-A-Car

3375 Compact Rent-A-Car

3376 Ajax Rent-A-Car

3377 Florida Auto Rental

3378 Golden West Rent-A-Car

3379 Host Rent-A-Car

3380 Inter American Car

3381 Europ Car

3382 Compacts Only

3383 ATESA

3384 Transmonde Location

3385 Tropical Rent-A-Car

3386 Showcase Rental Cars

3387 Alamo Rent-A-Car

3388 Auto Europ

3389 Avis Rent-A-Car

3390 Dollar Rent-A-Car

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-15 Merchant SIC Codes October 2005

Code Description

3391 Europe By Car

3392 Genway Car Rental

3393 National Car Rental

3394 Kemwel Group Car Rental

3395 Thrifty Rent-A-Car

3396 Tilden Rent-A-Car

3397 Foremost Euro-Car

3398 Econo Car Rent-A-Car

3400 Auto Host Car Rentals

3401 All Island Rent-A-Car

3402 Marsans International Travel

3403 Travi-Car Car Rental

3404 Maui Car Rental

3405 Enterprise Rent-A-Car

3406 Greyhound Rent-A-Car

3407 Aztec Rent-A-Car

3408 Aloha Rent-A-Car

3409 General Rent-A-Car

3410 Grey Line Rent-A-Car

3412 A1 Rent-A-Car

3413 Half Price Rent-A-Car

3414 Godfrey National Rent-A-Car

3415 Swan National (Car Rental)

Table C-1: Merchant SIC Codes (Continued)

C-16 October 2005

Code Description

3416 Guy Salmon (Car Rental)

3417 Central (Car Rental)

3418 Mattei (Car Rental)

3419 Alpha Rent-A-Car

3420 ANSA International (Car Rental)

3421 Allstate Rent-A-Car

3422 Paige Rent-A-Car

3423 Avcar Rent-A-Car

3424 LMS Rentals of Canada

3425 Automate Rent-A-Car

3426 Mitchall Self-Drive (Car Rental)

3427 Avon Rent-A-Car

3428 Carey Rent-A-Car

3429 Insurance Rent-A-Car

3430 Major Rent A Car

3431 Replacement Rent-A-Car

3432 Reserve Rent-A-Car

3433 Ugly Duckling Rent-A-Car

3434 USA Rent-A-Car

3435 Value Rent-A-Car

3436 Autohansa Rent-A-Car

3437 Cite Rent-A-Car

3438 Interent Rent-A-Car

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-17 Merchant SIC Codes October 2005

Code Description

3439 Milleville Rent-A-Car

3458 Hotels Melia

3501 Holiday Inns

3502 Best Western Hotels

3503 Sheraton Hotels

3504 Hilton Hotels

3505 Forte Hotels

3506 Golden Tulip Hotels

3507 Friendship Inns

3508 Quality Inns

3509 Marriott Hotels

3510 Days Inns

3511 Arabella Hotels

3512 Intercontinental Hotels

3513 Westin Hotels

3514 Hotels Agrupados

3515 Rodeway Inns

3516 La Quinta Motor Inns

3517 Americana Hotels

3518 Sol Hotels

3519 Pullman International Hotels

3520 Meridien Hotels

3521 Crest Hotels

Table C-1: Merchant SIC Codes (Continued)

C-18 October 2005

Code Description

3522 Tokyo Hotel

3523 Peninsula Hotels

3524 WelcomGroup Hotels

3525 Dunfey Hotels

3526 Prince Hotels

3527 Downtowner Passport

3528 Red Lion

3529 CP (Canadian Pacific) Hotels

3530 Stouffer Hotels

3533 Hotel Ibis

3534 Southern Pacific Hotels

3535 Hilton International

3536 AMFAC Hotels

3537 ANA Hotels

3538 Concorde Hotels

3539 Fujita Tourist Enterprises

3540 Iberotel Hotels

3541 Hotel Okura

3542 Royal Hotels

3543 Four Seasons Hotels

3544 Ciga Hotels

3545 Shangri-La International

3547 Kokusai Kogyo Company

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-19 Merchant SIC Codes October 2005

Code Description

3548 Hotels Melia

3549 Auberge des Governeurs

3550 Regal 8 Inns

3552 Coast Hotels

3554 CHM Hotels

3556 Southern Sun Hotels

3557 JAL Development Company

3558 Jolly Hotels

3559 Thistle Hotels

3560 Dia-Ichi Hotels International

3562 Comfort Inns

3563 Journey’s End Motels

3565 Relax Inns

3567 National Hotels

3568 Ladbroke Hotels

3570 Forum Hotels

3571 Sami Spa

3572 Miyako Hotel

3574 Venture Inn

3575 Vagabond Hotels

3576 Canadian National

3577 Mandarin International

3578 India Tourism Development Co.

Table C-1: Merchant SIC Codes (Continued)

C-20 October 2005

Code Description

3579 Hotel Mercure

3580 Granada Royal Hometels

3581 Delta Hotels

3583 SAS Hotels

3584 Princess Hotels International

3585 Hungar Hotels

3586 Sokos Hotels

3587 Doral Hotels

3588 Helmsley Hotels

3590 Fairmont Hotels Corporation

3591 Sonesta International Hotels

3592 Omni Hotels

3593 Cunard Hotels

3594 Ambassador Inns

3595 Hospitality Inns

3596 Sunset Motels

3597 Innkeepers

3598 Regent International Hotel

3599 Pannonia Hotels

3600 Boulevard Hotel (Sydney)

3601 Sebel Town House Hotel

3602 Regency Hotel (Melbourne)

3603 Noah’s Hotel (Melbourne)

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-21 Merchant SIC Codes October 2005

Code Description

3604 Crest International (Brisbane)

3605 Park Royal (Brisbane)

3606 Mindil Beach Hotel

3607 Chateau (Perth)

3608 Don Hotel (Darwin)

3609 New Esplanade Hotel

3610 Wrest Point Hotel

3611 Launceston Fed. Club

3612 Movenpick Hotels

3613 Homestead Motor Inns

3614 Gazebo Hotels

3615 Travelodge Motels

3616 Gateway Chain

3617 Menzias Hotel (Sydney)

3618 Mandy Pacific International

3619 Windsor Hotel (Melbourne)

3620 Telford International

3622 Merlin Hotel Group (Perth)

3623 Dorint Hotels

3624 Lenna Hotel (Hobart)

3625 Hotel Universale

3626 King Edward Hotel

3627 Valhalla Inns

Table C-1: Merchant SIC Codes (Continued)

C-22 October 2005

Code Description

3628 York-Hannover Hotels

3629 Dan Hotels

3630 Sun International

3633 Rank Hotels

3634 Swissotel

3635 Reso Hotels

3636 Sarova Hotels

3637 Ramada Inns

3638 Howard Johnson

3639 Mount Charlotte Thistle

3640 Hyatt Hotels

3641 Sofitel Hotels

3642 Novotel Hotels

3643 Steigenberger Hotels

3644 Econolodges

3645 Queens Moat Houses

3646 Swallow Hotels

3647 Husa Hotels

3648 De Vera Hotels

3649 Radisson Hotels

3650 Red Roof Inns

3651 Imperial London Hotels

3652 Embassy Hotels

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-23 Merchant SIC Codes October 2005

Code Description

3653 Penta Hotels

3654 Loews Hotels

3655 Scandic Hotels

3656 Sara Hotels

3657 Oberoi Hotels

3658 Otani Hotels

3659 Taj Hotels International

3660 Knights Inn

3661 Metropole Hotels

3663 Hoteles El Presidente

3664 Flag Inns

3665 Hampton Inn Hotels

3666 Stakis Hotels

3668 Maritime Hotels

3670 Arcade Hotels

3671 Arctia Hotels

3672 Campanile Hotels

3673 IBUSZ Hotels

3674 Rantasipi Hotels

3675 Interhotel CEDOK

3677 Climat de France Hotels

3678 Cumulus Hotels

3680 Hoteis Othan

Table C-1: Merchant SIC Codes (Continued)

C-24 October 2005

Code Description

3681 Adams Mark Hotels

3683 Bradbury Suites

3684 Budget Hosts Inns

3685 Budgetel

3686 Suisse Chalet

3687 Clarion Hotels

3688 Compri Hotels

3689 Consort Hotels

3690 Courtyard Inns

3691 Dillon Inn

3692 Doubletree Hotels

3693 Drury Inn

3694 Economy Inns of America

3695 Embassy Suites

3696 Excel Inn

3697 Fairfield Hotels

3698 Harley Hotels

3699 Midway Motor Lodge

3700 Motel 6

3701 Pickett Suite Hotels

3702 The Registry Hotels

3703 Residence Inn

3704 Royce Hotels

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-25 Merchant SIC Codes October 2005

Code Description

3705 Sandman Inn

3706 Shilo Inn

3707 Shoney’s Inn

3709 Super 8 Motels

3710 The Ritz Carlton Hotels

3711 Flag Inns (Australia)

3713 Quality Pacific Hotel

3714 Four Seasons (Australia) Hotels

3715 Fairfield Inn

3716 Carlton Hotels

3717 City Lodge Hotels

3718 Karo Hotels

3719 Protea Hotels

3720 Southern Sun Hotels

3721 Conrad Hotels

3722 Wyndham Hotel & Resorts

4011 Railroads

4111 Local/Suburban Commuter Passenger Transportation, Including Ferries

4119 Ambulance Services

4121 Taxicabs/Limousines

4131 Bus Lines, Including Charters, Tour Buses

4214 Motor Freight Carriers, Trucking (Local/Long Distance), Moving/Storage, Local Delivery

4215 Courier Services – Air or Ground, Freight Forwarders

Table C-1: Merchant SIC Codes (Continued)

C-26 October 2005

Code Description

4225 Public Warehousing – Farm Products, Refrigerated, Household Goods, Storage

4411 Cruise Lines

4457 Boat Rentals & Leases

4468 Marinas, Marine Service/Supply

*4511 Airlines, Air Carriers & Travel Agency Transactions With Air Passage

4582 Airports, Flying Fields, Airport Terminals

4722 Travel Agencies an Tour Operators

4723 Tui Travel (Visa only)

4761 Transportation/Travel-Related Arrangements Services – Mail or Telephone Order (Excluding Travel Agencies)

4784 Tolls, Road and Bridge Fees

4789 Transportation Services Not Elsewhere Classified

4812 Telecommunication Equipment Including Telephone Sales

4814 Telecommunication Service Including Local/Long Distance Calls, Credit Card Calls, Facsimile Services

4815 MasterPhone (TM) Telephone Service – Monthly Summary Telephone Charges

4816 Computer Network/Information Services

4821 Telegraph Services

4829 Wire Transfer Money Orders (WTMOs)

4899 Cable and Other Pay Television Services

4900 Utilities – Electric, Gas, Sanitary, Water

5013 Motor Vehicle Supplies & New Parts

5021 Office & Commercial Furniture

5039 Construction Materials – Not Elsewhere Classified

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-27 Merchant SIC Codes October 2005

Code Description

5044 Office, Photographic, Photocopy, & Microfilm Equipment

5045 Computers, Computer Peripheral Equipment, Software

5046 Commercial Equipment – Not Elsewhere Classified

5047 Dental/Laboratory/Medical/Ophthalmic Hospital Equipment & Supplies

5051 Metal Service Centers & Offices

5065 Electrical Parts & Equipment

5072 Hardware Equipment & Supplies

5074 Plumbing & Heating Equipment

5085 Industrial Supplies – Not Elsewhere Classified

5094 Precious Stones & Metals, Watches, & Jewelry

5099 Durable Goods – Not Elsewhere Classified

5111 Stationery, Office Supplies, Printing, & Writing Paper

5122 Drugs, Drug Proprietaries, & Druggists Sundries

5131 Piece Goods, Notions, & Other Dry Goods

5137 Men’s, Women’s, & Children’s Uniforms & Commercial Clothing

5139 Commercial Footwear

5169 Chemicals & Allied Products – Not Elsewhere Classified

5172 Petroleum & Petroleum Products

5192 Books, Periodicals, & Newspapers

5193 Florists Supplies, Nursery Stock, & Flowers

5198 Paints, Varnishes, & Supplies

5199 Nondurable Goods – Not Elsewhere Classified

5200 Home Supply Warehouse

Table C-1: Merchant SIC Codes (Continued)

C-28 October 2005

Code Description

5211 Lumber & Building Materials Stores

5231 Glass, Paint & Wallpaper Stores

5251 Hardware Stores

5261 Lawn & Garden Supply Stores

5271 Mobile Home Dealers

5300 Wholesale Clubs

5309 Duty Free Stores

5310 Discount Stores

5311 Department Stores

5331 Variety Stores

5399 Miscellaneous General Merchandise

5411 Grocery Stores, Supermarkets

5422 Freezer & Locker Meat Provisioners

5441 Candy, Nut & Confectionery Stores

5451 Dairy Products Stores

5462 Bakeries

5499 Miscellaneous Food Stores – Convenience Stores, Markets, Specialty Stores, & Vending Machines

5511 Automobile & Truck Dealers – New and Used (Sales, Service, Repairs, Parts, & Leasing)

5521 Automobile & Truck Dealers – Used Only (Sales)

5531 Auto & Home Supply Stores

5532 Automotive Tire Stores

5533 Automotive Parts, Accessories Stores

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-29 Merchant SIC Codes October 2005

Code Description

5541 Service Stations (With or Without Ancillary Services)

5542 Automated Fuel Dispenser

5551 Boat Dealers

5561 Camper Dealers, Recreational & Utility Trailers

5571 Motorcycle Shops & Dealers

5592 Motor Homes Dealers

5598 Snowmobile Dealers

5599 Miscellaneous Automotive, Aircraft, & Farm Equipment Dealers, Not Elsewhere Classified

5611 Men’s & Boy’s Clothing and Furnishings Store

5621 Women’s Ready-to-Wear Stores

5631 Women’s Accessory & Specialty Stores

5641 Children’s and Infant’s Wear Stores

5651 Family Clothing Stores

5655 Sports Apparel, Riding Apparel Stores

5661 Shoe Stores

5681 Furriers and Fur Shops

5691 Men’s and Women’s Clothing Stores

5697 Alterations, Mending, Seamstresses, & Tailors

5698 Wig and Toupee Shops

5699 Miscellaneous Apparel and Accessory Stores

5712 Furniture, Home Furnishing & Equipment Stores, Except Appliances

5713 Floor Covering Stores

5714 Drapery, Upholstery, & Window Covering Stores

Table C-1: Merchant SIC Codes (Continued)

C-30 October 2005

Code Description

5718 Fireplace, Fireplace Screens & Accessories Stores

5719 Miscellaneous House Furnishing Specialty Shops

5722 Household Appliance Stores

5732 Electronic Sales

5733 Music Stores, Musical Instruments, Pianos, Sheet Music

5734 Computer Software Stores

5735 Record Shops

5811 Caterers

5812 Eating Places, Restaurants

5813 Drinking Places (Alcoholic Beverages), Bars, Cocktail Lounges, Discotheques, Nightclubs & Taverns

5814 Fast Food Restaurants – Quick Payment Service

5912 Drug Stores & Pharmacies

5921 Package Stores – Beer, Wine, & Liquor

5931 Used Merchandise Stores, Secondhand Stores

5932 Antique Shops – Sales, Repairs, & Restoration Services

5933 Pawn Shops

5935 Wrecking and Salvage Yards

5937 Antique Reproduction Stores

5940 Bicycle Shops – Sales & Service

5941 Sporting Goods Stores

5942 Book Stores

5943 Stationary Stores, Office and School Supply Stores

5944 Clock, Jewelry, Watch, & Silverware Store

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-31 Merchant SIC Codes October 2005

Code Description

5945 Game, Toy, & Hobby Shops

5946 Camera & Photographic Supply Stores

5947 Card, Gift, Novelty, & Souvenir Shops

5948 Leather Goods & Luggage Stores

5949 Fabric, Needlework, Piece Goods, & Sewing Stores

5950 Crystal & Glassware Stores

5960 Direct Marketing – Insurance Services

5961 Mail Order Houses Including Catalog Order Stores, Book/Record Clubs

5962 Direct Marketing – Travel-Related Arrangement Services

5963 Door-to-Door Sales

5964 Direct Marketing – Catalog Merchants

5965 Direct Marketing – Combination Catalog & Retail Merchants

5966 Direct Marketing – Outbound Telemarketing Merchants

5967 Direct Marketing – Inbound Telemarketing Merchants

5968 Direct Marketing – Continuity/Subscription Merchants

5969 Direct Marketing – Other Direct Marketers – Not Elsewhere Classified

5970 Artist Supply Stores, Craft Shops

5971 Art Dealers & Galleries

5972 Stamp & Coin Stores – Philatelic & Numismatic Supplies

5973 Religious Goods Stores

5974 Rubber Stamp Stores

5975 Hearing Aids – Sales, Service & Supply Stores

5976 Orthopedic Goods – Artificial Limb Stores

Table C-1: Merchant SIC Codes (Continued)

C-32 October 2005

Code Description

5977 Cosmetic Stores

5978 Typewriter Stores – Rentals, Sales, Service

5983 Fuel Dealers – Coal, Fuel Oil, Liquefied Petroleum, Wood

5992 Florists

5993 Cigar Stores & Stands

5994 News Dealers & Newsstands

5995 Pet Shops – Pet Food & Supplies

5996 Swimming Pools – Sales & Supplies

5997 Electric Razor Stores – Sales & Service

5998 Tent & Awning Shops

5999 Miscellaneous & Specialty Retail Stores

6010 Financial Institutions – Manual Cash Disbursements (Deposit Account, Travelers Cheques, Foreign Currency, Money Orders, Precious Metals, Savings Bonds)

6011 Financial Institutions – Automated Cash Disbursements

6012 Financial Institutions – Merchandise & Services

6013 Financial Institutions – Unknown type

6051 Non-Financial Institutions – Foreign Currency, Money Orders (Not Wire Trans- fer), Travelers Cheques, & Quasi Cash

6211 Securities – Brokers/Dealers

6300 Insurance Sales, Underwriting, & Premiums

6381 Insurance Premiums

6399 Insurance Carriers Not Elsewhere Classified

7011 Lodging – Hotels, Motels, Resorts – Not Elsewhere Classified

7012 Timeshares

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-33 Merchant SIC Codes October 2005

Code Description

7032 Recreational & Sporting Camps

7033 Campgrounds & Trailer Parks

7210 Cleaning, Garment, & Laundry Services

7211 Laundry Services – Family & Commercial

7216 Dry Cleaners

7217 Carpet and Upholstery Cleaning

7221 Photographic Studios

7230 Barber & Beauty Shops

7251 Hat Cleaning Shops, Shoe Repair Shops, Shoe Shine Parlors

7261 Funeral Service and Crematories

7273 Dating and Escort Services

7276 Tax Preparation Services

7277 Debt, Marriage, Personal – Counseling Service

7278 Buying/Shopping Clubs, Services

7295 Babysitting Services

7296 Clothing Rental – Costumes, Uniforms, & Formal Wear

7297 Massage Parlors

7298 Health & Beauty Spas

7299 Other Services – Not Elsewhere Classified

7311 Advertising Services

7321 Consumer Credit Reporting Agencies

7329 Computer Maintenance, Repair, & Services – Not Elsewhere Classified

7332 Blueprinting and Photocopying Services

Table C-1: Merchant SIC Codes (Continued)

C-34 October 2005

Code Description

7333 Commercial Art, Graphics, & Photography

7338 Quick Copy, Reproduction, & Blueprinting Services

7339 Stenographic & Secretarial Support Services

7341 Window Cleaning Services

7342 Exterminating & Disinfecting Services

7349 Cleaning & Maintenance, Janitorial Services

7361 Employment Agencies, Temporary Help Services

7372 Computer Programming, Data Processing, & Integrated Systems Design Services

7375 Information Retrieval Services

7392 Consulting, Management, & Public Relations Services

7393 Detective Agencies, Protective Agencies, Security Services Including Armored Cars, Guard Dogs

7394 Equipment Rental & Leasing Services, Furniture Rental, Tool Rental

7395 Photo Developing, Photo Finishing Laboratories

7399 Business Services – Not Elsewhere Classified

7511 Truck Stop Transactions

7512 Automobile Rental Agency – Not Elsewhere Classified

7513 Truck and Utility Trailer Rental

7519 Motor Home and Recreational Vehicle Rental

7523 Automobile Parking Lots and Garages

7531 Automotive Body Repair Shops

7534 Tire Retreading & Repair Shops

7535 Automotive Paint Shops

7538 Automotive Service Shops

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-35 Merchant SIC Codes October 2005

Code Description

7542 Car Washes

7549 Towing Services

7622 Electronic Repair Shops

7623 Air Conditioning & Refrigeration Repair Shops

7629 Appliance Repair Shops, Electrical & Small

7631 Clock, Jewelry, & Watch Repair Shops

7641 Furniture – Reupholstery & Repair, Refinishing

7692 Welding Repair

7699 Miscellaneous Repair Shops and Related Services

7829 Motion Picture & Video Tape Production & Distribution

7832 Motion Picture Theaters

7841 Video Tape Rental Stores

7911 Dance Halls, Schools, & Studios

7922 Theatrical Producers (Except Motion Pictures), Ticket Agencies

7929 Bands, Orchestras, and Miscellaneous Entertainers – Not Elsewhere Classified

7932 Billiard and Pool Establishments

7933 Bowling Alleys

7941 Athletic Fields, Commercial Sports, Professional Sports Clubs, Sports Promoters

7991 Tourist Attractions & Exhibits

7992 Golf Courses – Public

7993 Video Amusement Game Supplies

7994 Video Game Arcades/Establishments

7995 Betting (Including Lottery Tickets, Chips at Gaming Casinos, Off-Track Betting, & Wagers at Race Tracks)

Table C-1: Merchant SIC Codes (Continued)

C-36 October 2005

Code Description

7996 Amusement Parks, Carnivals, Circuses, Fortune Tellers

7997 Clubs – Country Clubs, Membership (Athletic, Recreation, Sports), Private Golf Courses

7998 Aquariums, Dolphinariums, & Seaquariums

7999 Recreation Services – Not Elsewhere Classified

8011 Doctors – Not Elsewhere Classified

8021 Dentists, Orthodontists

8031 Osteopathic Physicians

8041 Chiropractors

8042 Optometrists, Ophthalmologists

8043 Opticians, Optical Goods, & Eyeglasses

8044 Optical Goods and Eyeglasses

8049 Chiropodists, Podiatrists

8050 Nursing & Personal Care Facilities

8062 Hospitals

8071 Dental & Medical Laboratories

8099 Health Practitioners, Medical Services – Not Elsewhere Classified

8111 Attorneys, Legal Services

8211 Schools, Elementary and Secondary

8220 Colleges, Universities, Professional Schools, & Junior Colleges

8241 Schools, Correspondence

8244 Schools, Business & Secretarial

8249 Schools, Vocational & Trade

8299 Schools & Educational Services – Not Elsewhere Classified

Table C-1: Merchant SIC Codes (Continued)

Direct Payment Protocol Specification 1.1 C-37 Merchant SIC Codes October 2005

Code Description

8351 Child Care Services

8398 Organizations, Charitable & Social Service

8641 Associations – Civil, Social, & Fraternal

8651 Organizations, Political

8661 Organizations, Religious

8675 Associations, Automobile

8699 Organizations, Membership – Not Elsewhere Classified

8734 Testing Laboratories (Non-Medical)

8911 Architectural, Engineering, & Surveying Services

8931 Accounting, Auditing, & Bookkeeping Services

8999 Professional Services – Not Elsewhere Classified

9211 Court Costs Including Alimony and Child Support

9222 Fines

9223 Bail and Bond Payments

9311 Tax Payments

9399 Government Services – Not Elsewhere Classified

9401 Food Stamps (MC only)

9402 Postal Services – Government Only

9411 Government Loan Payments

9751 UK Supermarkets, Electronic Hot File

9752 UK Petrol Stations, Electronic Hot File

Table C-1: Merchant SIC Codes (Continued)

C-38 APPENDIX D

Product Codes

Product Code Product Group Example

1000 House

1010 Windows and accessories

1020 Paint and wallpaper

1030 Floor coverings Wood, tile, carpet, rugs

1040 Heating, Cooling, Water treat- ment, Bath

1100 Appliances

1110 Major appliances Ranges, Ovens, Dishwashers, Refrigerators, Freezers, Laundry

1120 Small appliances Vacuums, Sewing machines, microwaves

1130 Kitchen appliances Toasters, Mixers, Coffee makers

1200 Furniture

1210 Beds, mattresses

1220 Office furniture

1230 Living/Dining room

1300 Housewares

1310 Dinnerware Glass, silverware

1320 Cookware, bakeware

1330 Lamps, Clocks, Decorations

Table D-1: Product Codes

Direct Payment Protocol Specification 1.1 D-1 Product Codes October 2005

Product Code Product Group Example

1340 Bed and Bath linens

1350 Flowers

1360 Seasonal Christmas, Halloween

1370 Luggage

1380 Art and posters

1390 Fabric, curtains

1400 Lawn & Garden

1410 Garden tools, lawn movers

1420 Garden, Patio Furniture

1430 Yard care, sprinklers

1440 Grills

1450 Plants

1500 Computers & office

1510 Computers

1520 Software

1530 Telephones

1540 Copiers, Fax, Printers

1550 Office supplies, toner

1600 Tools & Hardware

1610 Power tools

1620 Plumbing

1700 Electronics

1710 Cameras and camcorders

Table D-1: Product Codes (Continued)

D-2 October 2005

Product Code Product Group Example

1720 TV, DVD, and video

1730 Home Audio

1740 Portable Audio CD, mp3, minidisc

1750 Personal electronics PDAs

1760 Video games

1770 Components, cables, connectors, batteries

1800 Automotive

1810 Accessories

1820 Batteries

1830 Spare parts

1840 Glass

1850 Tires and wheels

1860 Gasoline

1870 Service and Repair

1880 Audio and alarms

2000 Health

2010 Hearing Aids

2020 Cosmetics and fragrances, beauty products

2030 Personal care

2040 Pharmacy

2050 Optical

2060 Vitamins and supplements

Table D-1: Product Codes (Continued)

Direct Payment Protocol Specification 1.1 D-3 Product Codes October 2005

Product Code Product Group Example

2070 Dental

2080 Weight management products

2100 Clothes

2110 Men

2120 Women

2130 Junior

2140 Infant

2150 Shoes

2160 Workwear and uniforms

2170 Formal wear rental and sale

2200 Sport, Fitness & Recreation

2210 Sporting Goods Bikes, golf equip., baseball

2220 Camping, fishing

2230 Sportswear

2240 Athletic shoes

2250 Home gym equipment

2260 Boats, jet-ski, ATV

2270 Guns, hunting, paintball

2300 Jewelry & Watches

2310 Fashion Jewelry

2320 Fine jewelry

2330 Watches

2340 Rings

Table D-1: Product Codes (Continued)

D-4 October 2005

Product Code Product Group Example

2350 Handbags

2400 Baby

2410 Strollers, chairs, beds

2420 Maternity

3000 Toys

3010 RC models, model trains

3020 Dolls, stuffed toys

3030 Learning toys, games, puzzles

3100 Music & Movies

3110 Movies, DVD, and video tapes

3120 Audio CDs and tapes

3130 Musical instruments

3200 Books & Cards

3210 Cards, Stationery

3220 Books

3230 Magazines

3300 Pet Care

4000 Groceries

4010 Candy

4020 Coffee shop

4030 Tobacco

4040 Alcohol, liquor

4050 Gift packages and delicatessen

Table D-1: Product Codes (Continued)

Direct Payment Protocol Specification 1.1 D-5 Product Codes October 2005

Product Code Product Group Example

4060 Frozen foods

5000 Travel

5010 Airline, train tickets

5020 Car rental

5030 Hotels, vacation rental

5040 Resorts, cruises

5100 Insurance

5110 Auto

5120 Home

5130 Extended warranties

6000 Domestic Services

6010 Phone cards, long distance, voice over IP

6020 Internet Service Providers

6030 Laundry, carpet cleaning, house- keeping, gardening

6040 Cable, satellite TV

6050 Subscriptions Magazines, water, pet food, coffee

6060 Information brokerage Search for people

6070 Concert/event tickets

6080 Marketing/Advertising/Design ser- vices

6090 Dating/Escort services

6100 Online Services

Table D-1: Product Codes (Continued)

D-6 October 2005

Product Code Product Group Example

6110 Online Magazines (non adult)

6120 Online Gaming

6130 Web-based information services Courses, Maps, Databases, Classi- fieds

6140 Domain name registration

6150 Web design/hosting, e-security consulting

6160 Adult Entertainment

6170 Music/video download

6200 Financial/Legal Service

6210 Bill Payment

6220 Money Transfer/Escrow

6230 Check Cashing

6240 ACH

6250 Legal Services

6260 Mortgage/Loan service

7000 Gift cards

Table D-1: Product Codes (Continued)

Direct Payment Protocol Specification 1.1 D-7 Product Codes October 2005

D-8 Index

A error responses 1-60 request parameters 1-58 account model 1-1 requests 1-58 scenario 1-4 response parameters, error 1-60 accounts response parameters, successful 1-60 identifiers 1-1 successful responses 1-60 numbers 1-1 Cancel Settlement 1-50 passwords 1-1 request parameters 1-51 transaction processing IDs 1-1 requests 1-50 action codes A-2 response parameters, error 1-53 address verification system. See AVS response parameters, successful 1-52 responses, error 1-52 Authorization 1-33 responses, successful 1-52 card types supported 1-25, 1-30, 1-36 request parameters 1-34 card types requests 1-34 Authorization 1-25, 1-30, 1-36 response parameters, error 1-43 Purchase 1-15 response parameters, successful 1-41 card validation data. See CVD responses, error 1-9, 1-43 chargebacks 1-54 responses, successful 1-41 codes time limits 1-33 action A-2 transaction recovery 1-62 AVS 1-9 AVS 1-9 error A-2 codes 1-9 geographical B-1–?? limitations 1-11 conditionally optional AVS Check 1-24 requirement settings 1-6 request parameters 1-25 conventions requests 1-24 field specifications 1-6 response parameters, error 1-28 message formats 1-5 response parameters, successful 1-26 requirement settings 1-5 responses, error 1-27 country codes B-3 responses, successful 1-26 Credit 1-53 chargebacks 1-54 B request parameters 1-54 requests 1-54 building response parameters, error 1-57 transaction requests 1-2 response parameters, successful 1-56 responses, error 1-57 responses, successful 1-56 C transaction recovery 1-66 CVD Cancel Credit 1-58 indicators 1-11

Direct Payment Protocol Specification 1.1 Index-1 Index October 2005

D I decoding identifiers responses 1-3 accounts 1-1 indicators, CVD 1-11 E M error messages action codes A-2 mandatory error codes and strings A-2 requirement settings 1-5 error responses merchant transactions 1-8 Authorization 1-43 message formats AVS Check 1-27 Authorization 1-34 Cancel Credit 1-60 AVS Check 1-24 Cancel Settlement 1-52 Cancel Credit 1-58 Credit 1-57 Cancel Settlement 1-50 Purchase 1-22 complete 1-2 Query 1-71 conventions 1-5 Risk Only 1-33 Credit 1-54 Settlement 1-49 example 1-3 Transaction Lookup 1-65 Purchase 1-12 examples Query 1-67 complete messages 1-2 requirement settings 1-5 response messages 1-3 Risk Only 1-29 scenario 1-4 Settlement 1-46 extracting specifications 1-6 fields 1-3 Transaction Lookup 1-62 transport methods 1-6 F model. See account model fields N conventions 1-6 extracting 1-3 negative database 1-11 requirement settings 1-5 fraud database. See negative database O

G optional requirement settings 1-6 geographical codes B-1–?? country B-3 P province B-1 state B-2 parameters Authorization requests 1-34 Authorization responses, error 1-43

Index-2 October 2005

Authorization responses, successful 1-41 request parameters 1-13 AVS Check requests 1-25 requests 1-12 AVS Check responses, error 1-28 response parameters, error 1-22 AVS Check responses, successful 1-26 response parameters, successful 1-20 Cancel Credit requests 1-58 responses, error 1-22 Cancel Credit responses, error 1-60 responses, successful 1-20 Cancel Credit responses, successful 1-60 transaction recovery 1-62 Cancel Settlement requests 1-51 Cancel Settlement responses, error 1-53 Q Cancel Settlement responses, successful 1-52 Query 1-66 case sensitivity 1-7 request parameters 1-67 Credit requests 1-54 requests 1-67 Credit responses, error 1-57 response parameters, error 1-71 Credit responses, successful 1-56 response parameters, successful 1-69 decoding 1-3 responses, error 1-71 decoding responses 1-3 responses, successful 1-68 error messages, from payment transaction recovery 1-66 services A-1 message formats 1-5 Purchase requests 1-13 R Purchase responses, error 1-22 Purchase responses, successful 1-20 recovery. See transaction recovery Query requests 1-67 requests 1-2 Query responses, error 1-71 Authorization 1-34 Query responses, successful 1-69 AVS Check 1-24 requirement settings, conditionally Cancel Credit 1-58 optional 1-6 Cancel Settlement 1-50 requirement settings, mandatory 1-5 Credit 1-54 requirements settings, optional 1-6 Purchase 1-12 Risk Only requests 1-30 Query 1-67 Risk Only responses, error 1-33 Risk Only 1-29 Risk Only responses, successful 1-32 Settlement 1-46 Settlement requests 1-46 Transaction Lookup 1-62 Settlement responses, error 1-49 requirement settings Settlement responses, successful 1-48 conditionally optional 1-6 Transaction Lookup requests 1-63 fields 1-5 Transaction Lookup responses, mandatory 1-5 error 1-65 optional 1-6 Transaction Lookup responses, responses successful 1-65 Authorization, error 1-43 passwords 1-1 Authorization, successful 1-41 protection. See security features AVS Check, error 1-27 province codes B-1 AVS Check, successful 1-26 Purchase 1-12 Cancel Credit, error 1-60 card types supported 1-15 Cancel Credit, successful 1-60

Direct Payment Protocol Specification 1.1 Index-3 Index October 2005

Cancel Settlement, error 1-52 Cancel Settlement 1-52 Cancel Settlement, successful 1-52 Credit 1-56 Credit, error 1-57 Purchase 1-20 Credit, successful 1-56 Query 1-68 decoding 1-3 Risk Only 1-32 example 1-3 Settlement 1-48 Purchase, error 1-22 Transaction Lookup 1-65 Purchase, successful 1-20 Query, error 1-71 T Query, successful 1-68 Risk Only, error 1-33 time limits, for Authorizations 1-33 Risk Only, successful 1-32 Transaction Lookup 1-62 Settlement, error 1-49 narrowing searches 1-62 Settlement, successful 1-48 recovery 1-62 Transaction Lookup, error 1-65 request parameters 1-63 Transaction Lookup, successful 1-65 requests 1-62 Risk Only 1-29 response parameters, error 1-65 request parameters 1-30 response parameters, successful 1-65 requests 1-29 responses, error 1-65 response parameters, error 1-33 responses, successful 1-65 response parameters, successful 1-32 transaction recovery 1-61 responses, error 1-33 Query requests 1-66 responses, successful 1-32 Transaction Lookup requests 1-62 transaction requests S about 1-1 building 1-2 security features 1-9 transactions 1-8 AVS 1-9 Authorization 1-33 CVD 1-11 AVS Check 1-24 negative database 1-11 Cancel Credit 1-58 settings. See requirement settings Cancel Settlement 1-50 Settlement 1-45 Credit 1-53 Cancel Settlement transactions 1-50 Purchase 1-12 request parameters 1-46 Query 1-66 requests 1-46 recovery 1-61 response parameters, error 1-49 Risk Only 1-29 response parameters, successful 1-48 Settlement 1-45 responses, error 1-49 Transaction Lookup 1-62 responses, successful 1-48 transport types 1-6 transaction recovery 1-66 state codes B-2 U successful responses Authorization 1-41 user IDs 1-1 AVS Check 1-26 Cancel Credit 1-60

Index-4