3D Secure 3
3D Secure 3
Enabling merchants to integrate their payment processing with PayPoint.nets 3D Secure Merchant Plug In (MPI) solution. This document provides the details of the 3D Secure protocol, PayPoint.net MPI and integration into the various payment gateways on offer. Related services such as transaction reporting and test simulator operating procedures are also covered.
Copyright PayPoint.net 2010 This document contains the proprietary information of PayPoint.net and may not be reproduced in any form or disclosed to any third party without the expressed written permission of a duly authorised representative of PayPoint.net Limited. Registered in England No: 3539217. VAT Reg. No: 680 1343 55
PayPoint.net 3D Secure (MPI) Integration and User Guide v3.1 14th October 2010
Table of Contents
1 Introduction to 3D Secure .................................................................................................. 3 1.1 1.2 1.3 1.4 1.5 1.6 1.7 2 How Does 3D Secure Work?...............................................................................................................................3 Enrolment and Authentication .............................................................................................................................3 3D Secure Merchant Benefits..............................................................................................................................3 The business case for Internet merchants using PayPoint.net............................................................................4 Card Types Supported by 3D Secure..................................................................................................................4 Levels of Liability Shift Protection and Implementation Guides ...........................................................................4 Verified by Visa and MasterCard SecureCode Logos .........................................................................................5
3D Secure Integration ....................................................................................................... 6 2.1 2.2 2.3 Gateway Hosted Integration ................................................................................................................................6 XMLValCard Gateway Integration .......................................................................................................................8 SOAP/XML-RPC Gateway Integration ..............................................................................................................14
3 4
3 D S e c u r e Tr a n s a c t i o n R e p o r t i n g . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5 Te s t D i r e c t o r y S e r v e r a n d A C S S i m u l a t o r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6 4.1 4.2 Testing Responses from the Test Directory Server...........................................................................................26 Testing responses from the ACS Simulator.......................................................................................................27
G l o s s a r y o f Te r m s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 8
Page 2 of 30
Introduction to 3D Secure
3D Secure is a credit card authentication program implemented by Visa and MasterCard to reduce fraudulent purchases by verifying purchaser identity during online transactions. The benefits of implementing 3D Secure include a reduction in disputed transactions and chargebacks and their resulting financial expense. Visa has branded this as 'Verified By Visa', and MasterCard has branded their equivalent as MasterCard SecureCode. Both of these protocols are brand identities for the 3D Secure cardholder authentication scheme.
1.1
MasterCard SecureCode and Verified By Visa (VBV) run from the merchants or Payment Service providers website and interacts with both the customer and their card issuer. When your customer is confirming the payment for the transaction, a simple window appears asking them to enter a private code that has been registered with their bank. It passes the authentication value in your normal authorisation request procedures and, if approved, receives an authorisation that binds that customer to that transaction. This authentication value is transported using a Visa or MasterCard data field. The customers bank then validates that code and provides the merchant with a means of achieving a fully verified transaction.
1.2
1.2.1
Enrolment is the process by which cardholders are enabled to use the 3D Secure Services. When cardholders enrol, they are asked for relevant identification information as well as personal information such as a password and a Personal Assurance Message. Once this data is collected and the Issuer has verified the cardholders response, he is considered to be enrolled, in 3D Secure methodology. The Enrolment Server tracks participating cardholders and passes the record of Enrolment to the Issuers Access Control Server (ACS). Each time the cardholder conducts a transaction for which a 3D secure authentication request is generated; this ACS will be queried, to certify that the cardholder is in fact enrolled in 3D Secure. 1.2.2 Authentication
On enrolment, the cardholder is ready to shop at any participating merchant site where the merchant is 3D Secure enabled. Merchants are 3D Secure enabled by integrating their site with the 3D Secure Merchant Plug-In (MPI), which can be obtained by the merchant from a Payment Service Provider (PSP) such as PayPoint.net. The Merchant Server Plug-in (MPI) obtains the cardholder information and is able to access the Visa or SecureCode Directory Server (DS) to validate the cards participation in the service. After the cardholder clicks Buy or Check-out, the MPI (PayPoint.net) sends a message to the Directory Server containing the cardholder account number. Through an exchange of messages, the Visa Directory and the issuers Access Control Server (ACS) determine if the cardholder is enrolled in 3D Secure. A message is returned to the Merchant Server plug-in, indicating the result. The MPI then sends an authentication request to the ACS through the cardholders browser and the ACS performs the authentication routine defined by the Issuer; e.g., it may display a password entry or display the PIN entry, etc., as the case may be. This varies between Issuers and the Visa-3D model offers the flexibility for each issuer to choose its authentication routine. The ACS now sends the results of the authentication to the Merchant Server Plug-in. If this response from the ACS indicates successful authentication, the MPI returns the successful authentication response to the Merchant and the transaction is processed as usual.
1.3
The primary benefit of 3D Secure is the shift of liability from the merchant to the issuer/cardholder on certain types of disputed online credit card transactions. This liability factor has been the cause of major concern to most online vendors and service providers. In a standard online credit card transaction, when the cardholder or issuer disputes a transaction (as being fraudulent), then the merchant is liable to pay back the disputed charges. For example, a cardholder purchases a product or a service online from a merchant and upon receiving the goods/service, goes to his card issuer and claims the transaction as fraudulent. In this case, the merchant is liable to refund the disputed amount to the cardholder. With 3D Secure this liability shifts to the card issuer.
Page 3 of 30
1.4
Note: The above information is based on data published on the MasterCard's website.
1.5
The following card types for each scheme are supported for 3D Secure authentication * : VISA: Verified By Visa Visa Credit Visa Debit Visa Commercial (European Issued Cards ONLY) Visa Electron MASTERCARD: SecureCode MasterCard Credit (including Business cards) MasterCard Debit International Maestro (Internationally Issued ONLY) UK Domestic Maestro (also known as Switch or Switch/Maestro) Solo NOTE: Due to the complexity of differing policies and procedures as well as the frequency of change amongst the acquiring banks PayPoint.net cannot accept responsibility for any incorrect information regarding Liability Shift in this document. MERCHANTS MUST refer to their acquirer documentation for more information on liability shift. Please refer to Section 1.6 for an overview of the operating principles behind liability shift.
1.6
The level of liability shift can differ depending on where the card was issued and the type of authentication gained. There are three status messages for Visa and MasterCard transactions for which liability protection will be gained (All EU and International issued Visa cards, All EU issued MasterCard cards gain full liability shift for the 3 status messages. The 3 status messages are: Authenticated The cardholder has verified their details using their security information (passwords etc) Authentication Attempt This is where the issuer attempts to get the cardholder to sign-up for 3D secure during shopping. Not Enrolled This is a transaction processed through a 3D enabled merchant but the cardholder is not signed-up with a 3D-Secure card schemes. All merchants gain liability shift under SecureCode rules for Authenticated, Authenticated Attempt and Not Enrolled transactions for globally issued MasterCard, Maestro and Solo cards. However, for Canadian and USA merchants to gain the liability shift under SecureCode rules for cards issued in the merchants own country, the transactions are required to be Authenticated but globally issued cards gain the liability shift for Authenticated, Authenticated Attempt and Not Enrolled cards. NOTE: PayPoint.net do not accept any responsibility for the information regarding Liability Shift contained in this communication. Merchants are strongly advised to refer back to their acquirer for specific details of their policies regarding liability shift on 3D Secure transactions.
Page 4 of 30
1.7
Merchants must display the Verified by Visa and SecureCode Merchant mark while certified 3D Secure software is in operation. The logos will allow your customers to visibly see that you are participating in each of the schemes. The Verified by Visa and SecureCode Merchant mark must be displayed on the checkout page and it is recommended that the mark should be displayed on the home page and /or security information page. If a merchant is using PayPoint.nets standard template which is hosted on our server, the logos will automatically appear when the merchant has been enabled on PayPoint.nets server. Other merchants can use the following tag in their customised template, only if the template is hosted on our server: ${3ds} Alternatively merchants can download them from the Visa and MasterCard websites. Note: The logos should only be displayed while the merchant is participating in the scheme.
Page 5 of 30
2
2.1
3D Secure Integration
Gateway Hosted Integration
Our on-line merchants interface their systems with PayPoint.nets hosted MPI by adding a link to a secured URL. Please refer to the Gateway Hosted Integration guide for more information on general integration information and parameters required. For current Gateway Hosted merchants, the integration is almost seamless and the only requirement is to register for participation in the service and ask for the service to be activated at PayPoint.net. The merchant will be required to display logos similar to those shown, on their website once 3D Secure is enabled. If a merchant is using PayPoint.nets standard template which is hosted on our server, the logos will automatically appear when the merchant has been enabled on PayPoint.nets server. Other merchants can use the following tag in their customised template, only if the template is hosted on our server: ${3ds} Alternatively merchants can download them from the Visa and MasterCard websites.
Gateway Hosted merchants can pass the following optional parameters: Figure 1: 3D Secure Extra Parameters Parameter mpi_description Description Order Description. A brief description of items purchased. Merchant Name to be displayed on the authentication page Fully qualified URL of Merchant website Length 0 125 characters Inclusion Optional. It is advisable to include this field in case of disputes. Required if not using value on PayPoint.net database Required if not using value on PayPoint.net database
mpi_merchant_name mpi_merchant_url
The format of the parameters of Figure 1 are as follows: <input type=hidden name=mpi_description value=Widgets> <input type=hidden name=mpi_merchant_url value=http://www.yourserver.com/> <input type=hidden name=mpi_merchant_name value=Merchant Name> From here on, PayPoint.net manage the entire authentication process. PayPoint.net initiates, coordinates and engages in the authentication and validation processes between all parties including the acquirer, the issuer Visa and MasterCard. When the process is complete, the session will be redirected back to your gateway.
Page 6 of 30
2.1.1
The diagram of Figure 2 shows a sample 3D Authentication process for merchants utilising the Gateway Hosted integration. Figure 2: 3D Secure Gateway Hosted Authentication Message Flow
Page 7 of 30
2.2
PayPoint.net merchants interface their systems with PayPoint.net hosted MPI by adding a link to a secured URL. As part of 3D Secure, merchants are required to display logos, similar to those shown below. Please refer to Section 1.7 for more information on displaying the logos. The next two sections describe the steps involved to allow the merchant to successfully integrate XMLValCard to perform 3D Secure authentication. Note: You must complete the 3D Secure integration alterations before 3D Secure is enabled by PayPoint.net 2.2.1 Enrolment Request
For a 3D Secure transaction, the merchants customer enters their details into the merchants payment page as for a non 3D Secure transaction. The merchants website then makes a secure SSL call to PayPoint.nets XMLValCard payment gateway as with a normal payment gateway call. However, with a 3D Secure transaction, the process is significantly different. The merchant must supply all the mandatory parameters to allow PayPoint.nets MPI to check the enrolment status of the card and, if necessary, generate a PAReq message that is required by the card issuer. The way in which the merchants software gathers this extra data is not within the scope of this document and it is assumed that your web application can capture and/or generate the required data. The extra parameters are shown in Figure 3, which are required to perform a 3D Secure Enrolment request. The data is required to build a PAReq if the cardholder is enrolled for 3D Secure. A typical XML Request for a 3D Secure transaction is shown in Figure 4. Figure 3: 3D Secure extra enrolment request parameters (XMLValCard) URL CALL: https://www.secpay.com/java-bin/XMLValCard PARAMETER EXAMPLE DEFINITION
Indicates the type of device or channel being used for shopping. A value of 0 (zero) indicates a standard web browser; a value of 1 (one) indicates a mobile WAP based browser. Optional If omitted a value of 0 is implied. The exact content of the HTTP accept header as sent to the merchant from the cardholders user agent. Determined from the web server environment. Required if the cardholders user agent supplied a value. (max. 2048 characters) The exact content of the HTTP user-agent header as sent to the merchant from the cardholders user agent. Determined from the web server environment. Required if the cardholders user agent supplied a value. (max. 256 characters) Merchant Name to be displayed on the authentication page (0 125 characters). Required if not using value on PayPoint.net database. Fully qualified URL of Merchant website (0 2048 characters. Required if not using value on PayPoint.net database Order Description. A brief description of items purchased (0 125 characters). Optional. It is advisable to include this field in case of disputes. Required if the merchant and cardholder have agreed to recurring payments. The minimum number of days between authorizations (0-4 digits) Required if the merchant and cardholder have agreed to recurring payments. Date after which no authorizations should be performed (YYYYMMDD) Maximum number of permitted authorizations for instalment payments (0 - 3 digits)
device_category
accept_headers
image/gif, image/ x-xbitmap, image/jpeg, image/pjpeg, application/ vnd.ms-excel, application/ vnd.ms-powerpoint, application /msword, application/ xshockwave-flash, */*
user_agent
mpi_merchant_name
mpi_merchant_url
http://yoururl.com
mpi_description
Widgets
purchaseRecurringFrequenc y
purchaseRecurringExpiry
20041210
purchaseInstallments
Page 8 of 30
Figure 4: 3D Secure Enrolment Request <XMLRequest> <merchant>secpay</merchant> <trans_id>xmltest</trans_id> <amount>10.00</amount> <options>dups=false</options> <card_no>4012001037141112</card_no> <expiry>0106</expiry> <customer>Fred Bloggs</customer> <ip>192.168.4.25</ip> <cv2>123</cv2> <bill_addr_1>A House</bill_addr_1><bill_addr_2>A Street</bill_addr_2><bill_city>A City</bill_city><bill_state>A State</bill_state><bill_country>A Country</bill_country><bill_post_code>AB12 3CD</bill_post_code><bill_tel>01234 567890</bill_tel> <device_category>0</device_category> <accept_headers>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</accept_headers> <user_agent>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)</user_agent> <mpi_merchant_name>PayPoint.net</mpi_merchant_name> <mpi_merchant_url>www.paypoint.net</mpi_merchant_url> <mpi_description>Online Payment Services</mpi_description> <callback>http://www.secpay.com/goodcb.html;http://www.secpay.com/badcb.html</callback> <options>test_status=true,test_mpi_status=true,dups=false</options> </XMLRequest> PayPoint.nets payment gateway will respond with the results of the enrolment check; Figure 5 shows a sample response. The mpi_status_code field indicates what action should be taken next. Figure 5: 3D Secure Enrolment Response <XMLResponse> <valid>true</valid> <trans_id>xmltest</trans_id> <code>A</code> <auth_code>9999</auth_code> <amount>10.00</amount> <test_status>true</test_status> <hash>3503eeb333701f6cb4b38556e6c3e7e3</hash> <mpi_status_code>212</mpi_status_code> <mpi_message>Cardholder Not Participating</mpi_message> </XMLResponse> In general, after the enrolment request response is received and if the merchant receives one of the status codes as shown in Figure 6, the liability shift offered by 3D Secure can be obtained or in the case of a MPI status code of 200, the cardholder has to be redirected to the card issuer and authenticated to gain liability shift. Any other code indicates that liability shift was not obtained or an error occurred in which case no liability shift was obtained. Please refer to Section 1.6 for more information on liability shift. Please refer to Appendix A for the possible status codes that can be returned by the MPI. Figure 6: 3D Secure Payer Verification Required Status Code MPI Status Code 200 212 Description Payer Verification Required Cardholder Not Enrolled Action The payer should now be redirected to the issuer to be authenticated. The cardholder is not enrolled for 3D Secure
NOTE: The merchants software should be designed to accommodate future enhancements to PayPoint.nets MPI and allow for additional MPI return codes as and when they are added by the acquiring banks as well as PayPoint.net. In the case of all MPI status codes except code 200, PayPoint.net will attempt to authorise the transaction with the acquiring bank, and the result will be returned to the merchant in the format as shown in Figure 5. The only extra parameters returned by the XMLValCard gateways are: Page 9 of 30
mpi_status_code (Refer to Appendix A) mpi_message ( user-friendly description of the status code) 2.2.2 3D Secure Cardholder Authentication Process
Before 3D Secure, PayPoint.net returned the result of the authorisation attempt from the merchants acquiring bank and the merchant displayed the result to the cardholder. However, with the 3D Secure scheme and if a status code of 200 is returned from PayPoint.nets MPI, the cardholder is required to be authenticated. To enable the cardholder to be authenticated, the cardholder must be redirected to the card issuer via a redirect page. This section shows you how to construct the basic page. The information that is added to the page are 3 fields returned by the MPI and 1 field added by the merchants server as shown in Figure 7. Figure 7: MPI return parameters
Description The URL of the issuers Access Control Server which the cardholder is redirected to Unique reference used by all parties including PayPoint.net and the merchant to identify and track the 3D Secure transaction The Payment Authentication Request that the card issuer users for the authentication process TermUrl contains the URL on the merchants server where the cardholder is redirected to following authentication by the issuers ACS. (max. 1024 characters)
* These fields are extracted from the PayPoint.net XMLValCard 3D Secure enrolment response. When all the necessary data is extracted from the enrolment check response, the merchants application is required to construct and return a page similar to the one in Figure 8, which redirects the cardholders browser to the issuers ACS. The TermUrl contains the URL on the merchants server where the cardholder is redirected to following authentication by the issuers ACS.
Page 10 of 30
<html> <head> <title> 3D Secure Verification</title> </head> <body OnLoad="OnLoadEvent();" > <form name="mainform" action="acs_url HERE" method="POST"> <noscript> <br> <br> <center> <h1>Processing your 3D Secure Transaction</h1> <h2> JavaScript is currently disabled or is not supported by your browser.<br></h2> <h3>Please click Submit to continue the processing of your 3D Secure transaction.</h3> <input type="submit" value="Submit"> </center> </noscript> <input type="hidden" name="PaReq" value="PaReq HERE"> <input type="hidden" name="TermUrl" value="TERM URL HERE"> <input type="hidden" name="MD" value="MD DATA HERE"> </form> <SCRIPT LANGUAGE="Javascript" > <!-function OnLoadEvent() { document.mainform.submit(); } //--> </SCRIPT> </body> </html>
When the cardholder has authenticated themselves, the issuers ACS will redirect the cardholder back to the TermUrl that the merchants server supplied. The merchant server will then be required to extract certain information from the redirected form and pass this data to PayPoint.nets MPI for verification. Please refer to the next section for details on how to perform this process.
Page 11 of 30
2.2.3
When the merchants server has received the redirected ACS HTML form, the merchants server will then need to extract the parameters as shown in Figure 9 from the form: Figure 9: ACS return parameters Parameter MD PaRes Description Unique reference used by all parties including PayPoint.net and the merchant to identify and track the 3D Secure transaction The Payment Authentication Response that the card issuer users returns after the authentication process
The merchant server software will then need to pass the relevant data to PayPoint.net so the data can be verified and the transaction authorisation can be performed. A POST should be sent to the following URL: https://www.secpay.com/java-bin/XMLMPIValCardPart2 Figure 10 shows a typical 3D Secure Authorisation request. Figure 10: 3D Secure Authorisation Request XMLRequest> <PaRes>eJxVUu1qgzAU/b nKD6AiZkftdymRLtBB65lc9D9FA2aUbUzWtzbL0ld6y4E7z2enJx7E9iM9Wlx4Z0UbbO2HBtbG/oAadVxvn3n dBxCgmXMiv5QhRriwROiEPsLC0KB/bGpUFrWdq3P7YUZcMLRZh0qZK1CaC/Ugl2eZU1PYUs/452r9QNHT8IA E0l1LzbbSkJiBN4IcHXAHSFAd33HwadSWVyFAVNvvJxnzIv2T65u5iVs7UGpBlQZD2nStHDPnEWOFi5wYp4gA wOZy3H6nZQ2p6vj5wjoMbR8Sb/oUviA7pVwMdz23DFUE3eckB3c esoXgWLnEVVaOQHin0op6bWmpTj2ocBgfZZ/0g6SegKYM8u1xozFgcjUl6iuLji6jK52j/wa6hmjUU4LmgWHWnv2 YXO5VtJ/qq1lb/A4C0FWQu1czYXLqG54/hF3p6sJ0=</PaRes> <MD>271909018</MD> </XMLRequest> The PayPoint.net MPI decodes the PARes to establish whether the cardholder was authenticated. PayPoint.nets payment gateway will respond with the results of the 3D Secure authorisation request as shown in Figure 11. The mpi_status_code field indicates the result of the authentication process. Figure 11: 3D Secure Authorisation Response <XMLResponse> <valid>true</valid> <trans_id>secpay_xml_test</trans_id> <code>A</code> <auth_code>986654</auth_code> <amount>56.00</amount> <hash>18236852b58411975ddfed55b978d4e7</hash> <mpi_status_code>237</mpi_status_code> <mpi_message>Payer authentication successful (Y)</mpi_message> </XMLResponse> In general, if the merchant receives a status code as shown in Figure 12 from the 3D Secure Authorisation Response, the liability shift offered by 3D Secure can be obtained except in the case of a MPI status code of 229 - the cardholder failed to be authenticated.
Page 12 of 30
Action The cardholder was authenticated The issuer ACS returned an Authentication Attempt Response. Cardholder was NOT authenticated. Failed Authentication
Any other code indicates that liability shift was not obtained or a processing error occurred in which case no liability shift will be obtained. Please refer to Section 1.6 for more information on liability shift and Appendix A for the possible status codes that can be returned by the MPI. NOTE: The merchants software should be designed to accommodate future enhancements to PayPoint.nets MPI and allow for additional MPI return codes as and when they are added. In the case of all MPI status codes, except code 229 which will be failed, PayPoint.net will attempt to authorise the transaction with the acquiring bank, and the result will be returned to the merchant in the format as shown in Figure 11. The only extra parameters returned are: mpi_status_code (Refer to Appendix A) mpi_message (user-friendly description of the status code)
Page 13 of 30
2.3
As part of 3D Secure, merchants are required to display logos, similar to those shown below. Please refer to Section 1.7 for more information on displaying the logos. The next two sections describe the steps involved to allow the merchant to successfully integrate SOAP and XML/RPC to perform 3D Secure authentication. 2.3.1 Three D Secure Enrolment Request
For a 3D Secure transaction the process is significantly different to a standard card transaction. The merchant has to make a threeDSecureEnrolmentRequest to check to see if the cardholder is enrolled for 3D Secure. The merchant must supply all the mandatory parameters to allow PayPoint.nets MPI to check the enrolment status of the card and, if necessary, generate a PAReq message that is required by the card issuer. The way in which the merchants software gathers this extra data is not within the scope of this document and it is assumed that your web application can capture and/or generate the required data. Figure 13: 3D Secure enrolment request parameters Method Name: SECVPN. threeDSecureEnrolmentRequest
PARAMETER mid EXAMPLE
secpay
DEFINITION
This is your PayPoint.net username (usually six letters and two numbers). Your VPN password can be set from within the Merchant Extranet: http://www.paypoint.net/login (Click on "Account" then "Remote Passwords" and select VPN from the drop down list). A unique transaction identifier created by yourself. This can be used to refer to a transaction at a later date (to refund it for example). The IP address that the cardholders machine is presenting to the internet. The cardholders name as it is on their card. The credit card number (this should contain no spaces or hyphens). The example card number show to the left is a test Visa card which can be used during development. Any valid expiry date which is in the future can be used with this card number. The amount for the transaction. This should contain no currency symbols or formatting (for example do not send an amount with a comma in). The credit card expiry date. Should be formatted either as mm/yy or mmyy. The credit card issue number. This only applies to switch or solo cards. If the card in use does not have an issue number then an empty string should be passed in. The credit card start date. If the card does not have a start date then an empty string should used. Used to submit order details relevant to this transaction. Please see the Gateway Hosted Integration Guide for further details.
vpn_pswd
secpay
trans_id
TRAN0001
ip name
127.0.0.1 Mr Cardholder
card_number
4444333322221111
amount
50.00
expiry_date
0105
issue_number
start_date
order
Page 14 of 30
PARAMETER
EXAMPLE
name=Fred+Bloggs,company=Onlin e+Shop+Ltd,addr_1=Dotcom+Hous e,addr_2=London+Road,city=Townv ille,state=Countyshire,post_code=A B1+C23,tel=01234+567+890,fax=09 876+543+210,email=somebody%40 paypoint.net,url=http%3A%2F%2Fw ww.somedomain.com name=Fred+Bloggs,company=Onlin e+Shop+Ltd,addr_1=Dotcom+Hous e,addr_2=London+Road,city=Townv ille,state=Countyshire,post_code=A B1+C23,tel=01234+567+890,fax=09 876+543+210,email=somebody%40 paypoint.net,url=http%3A%2F%2Fw ww.somedomain.com test_status=true,dups=false,card_ty pe=Visa
DEFINITION
Used to submit shipping address details relevant to this transaction. Please see the Gateway Hosted Integration Guide for further details.
shipping
Used to submit billing address details relevant to this transaction. Please see the Gateway Hosted Integration Guide for further details.
billing
options
Used to submit optional parameters which are used to alter the behaviour of this transaction. Please see the Gateway Hosted Integration Guide for further details. Indicates the type of device or channel being used for shopping. A value of 0 (zero) indicates a standard web browser; a value of 1 (one) indicates a mobile WAP based browser. The exact content of the HTTP accept header as sent to the merchant from the cardholders user agent. Determined from the web server environment. (max. 2048 characters)
device_category
accept_headers
image/gif, image/ x-xbitmap, image/jpeg, image/pjpeg, application/ vnd.ms-excel, application/ vnd.ms-powerpoint, application /msword, application/ xshockwave-flash, */* Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)
user_agent
The exact content of the HTTP user-agent header as sent to the merchant from the cardholders user agent. Determined from the web server environment. (max. 256 characters) Merchant Name to be displayed on the authentication page (0 125 characters). Required if not using value on PayPoint.net database. Fully qualified URL of Merchant website (0 2048 characters. Required if not using value on PayPoint.net database Order Description. A brief description of items purchased (0 125 characters). Optional. It is advisable to include this field in case of disputes. Required if the merchant and cardholder have agreed to recurring payments. The minimum number of days between authorizations (0-4 digits) Required if the merchant and cardholder have agreed to recurring payments. Date after which no authorizations should be performed (YYYYMMDD) Maximum number of permitted authorizations for installment payments (0 - 3 digits)
mpi_merchant_name
mpi_merchant_url
http://yoururl.com
mpi_description
Widgets
purchaseRecurringFrequency
purchaseRecurringExpiry
20041210
purchaseInstallments
Page 15 of 30
PayPoint.nets payment gateways will respond with the results of the enrolment check; Figure 16 and 17 for SOAP and Figure 19 and 20 for XML-RPC. The mpi_status_code field indicates what action should be taken next. In the case of an MPI status code of 200, the cardholder has to be redirected to the card issuer and authenticated to gain liability shift. Any other code indicates that liability shift was not obtained or an error occurred in which case no liability shift was obtained. Please refer to Section 1.6 for more information on liability shift. Please refer to Appendix A for the possible status codes that can be returned by the MPI. NOTE: The merchants software should be designed to accommodate future enhancements to PayPoint.nets MPI and allow for additional MPI return codes as and when they are added. In the case of all MPI status codes except code 200, PayPoint.net will attempt to authorise the transaction with the acquiring bank, and the result will be returned to the merchant in the format as shown in Figure 17 Appendix B for SOAP and Figure 20 for XML-RPC. The only extra parameters returned by the SOAP/XML-RPC gateways are: mpi_status_code (Refer to Appendix A) mpi_message ( user-friendly description of the status code) Figure 14: 3D Secure Payer Verification Required Status Code MPI Status Code 200 212 Description Payer Verification Required Cardholder Not Enrolled Action The payer should now be redirected to the issuer to be authenticated. The cardholder is not enrolled for 3D Secure
Figure 15: Example 3D Secure SOAP Enrolment Request <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1: threeDSecureEnrolmentRequest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="Gateway HostedService"> <ns1:arg0 xsi:type="xsd:string">secpay</ns1:arg0> <ns1:arg1 xsi:type="xsd:string">secpay</ns1:arg1> <ns1:arg2 xsi:type="xsd:string">TRAN0001</ns1:arg2> <ns1:arg3 xsi:type="xsd:string">127.0.0.1</ns1:arg3> <ns1:arg4 xsi:type="xsd:string">Mr Cardholder</ns1:arg4> <ns1:arg5 xsi:type="xsd:string">4444333322221111</ns1:arg5> <ns1:arg6 xsi:type="xsd:string">50.00</ns1:arg6> <ns1:arg7 xsi:type="xsd:string">0105</ns1:arg7> <ns1:arg8 xsi:type="xsd:string"></ns1:arg8> <ns1:arg9 xsi:type="xsd:string"></ns1:arg9> <ns1:arg10 xsi:type="xsd:string"></ns1:arg10> <ns1:arg11 xsi:type="xsd:string">name=Fred+Bloggs,company=Online+Shop+Ltd,addr_1=Dotcom+House,addr_2=London+ Road,city=Townville,[email protected]</ns1:arg11> <ns1:arg12 xsi:type="xsd:string"></ns1:arg12> <ns1:arg13 xsi:type="xsd:string">test_status=true,dups=false,card_type=Visa</ns1:arg13> <ns1:arg14 xsi:type="xsd:string">0</ns1:arg14> <ns1:arg15 xsi:type="xsd:string"> image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.msexcel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</ns1:arg15> <ns1:arg16 xsi:type="xsd:string"> Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)</ns1:arg16> <ns1:arg17 xsi:type="xsd:string"> </ns1:arg17> <ns1:arg18 xsi:type="xsd:string"></ns1:arg18> <ns1:arg19 xsi:type="xsd:string">Widgets</ns1:arg19> <ns1:arg20 xsi:type="xsd:string"></ns1:arg20> <ns1:arg21 xsi:type="xsd:string"></ns1:arg21> <ns1:arg22 xsi:type="xsd:string"></ns1:arg22> </ns1: threeDSecureEnrolmentRequest > </soapenv:Body> </soapenv:Envelope>
Page 16 of 30
Figure 16: Example 3D Secure SOAP Enrolment Request Response for Cardholder Authentication required <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1: threeDSecureEnrolmentRequestResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="Gateway HostedService"> <ns1: threeDSecureEnrolmentRequestReturn xsi:type="xsd:string">?valid=true&trans_id=TRAN0001&test_status=true&mpi_status_code=200&mpi_message= Payer Verification required&acs_url =https%3A%2F%2Fwww.secpay.com%2Fjavabin%2FACSSimulator&MD=180527679&PaReq=eJxVUttygjAQfe9XMH6ACVQUnDUO1XaKo0jF9p0JW7UjoAH U/n03CGofMtlzsrs5e4HxJd0bJ1TFLs9GHbPLO2PxBOutQpxGKCuFAhZYFPEGjV1CHg63rUF/4HYEhN4KjwKaa EHBXQtYCylMyW2clQJieXzxA9FzLZdzYA2EFJU/FX3HtG2H6CuELE5RtLFGQAhYzYHMq6xUv8Kx+sBaAJXai2 1ZHoohY795pQh3ZZ4C0w/A7irCSlsFJbrsErFYb87B2n8OfqTtT7zNwxkB0x6QxCUKi/OeyS3bMPnQHgy5A6zmI U61AirKdamkK4CD/sN7fHlkgPqpMJNtCS0CvBzyDMmD+nezIcFCikXoG9PXaLLyw7W/DOh3zcJKz0bAt8JjVecw gd0BYJZcPWr5pkntvVHA2vvekcm7npIsaQA4O8+jiFfR52U5P71x78P72m/CmZ5b7aDV7qjz3OSDWq4GwHQK1 qwEa1aGrH+r9AcmdM2G</ns1: threeDSecureEnrolmentRequestReturn> </ns1: threeDSecureEnrolmentRequestResponse> </soapenv:Body> </soapenv:Envelope>
Figure 17: Example 3D Secure SOAP Enrolment Request Response for Cardholder Not Participating <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1: threeDSecureEnrolmentRequestResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="Gateway HostedService"> <ns1: threeDSecureEnrolmentRequestReturn xsi:type="xsd:string">?valid=true&trans_id=TRAN0001&code=A&auth_code=9999&amount=50.0&test_status=tr ue&mpi_status_code=212&mpi_message=Cardholder Not Participating</ns1: threeDSecureEnrolmentRequestReturn> </ns1: threeDSecureEnrolmentRequestResponse> </soapenv:Body> </soapenv:Envelope>
Page 17 of 30
Figure 18: Example 3D Secure XML-RPC Enrolment Request <?xml version="1.0"?> <methodCall> <methodName>SECVPN.threeDSecureEnrolmentRequest</methodName> <params> <param> <value><string>secpay</string></value> </param> <param> <value><string>secpay</string></value> </param> <param> <value><string>xmltest</string></value> </param> <param> <value><string>123.4.56.789</string></value> </param> <param> <value><string>John Doe</string></value> </param> <param> <value><string>4444333322221111</string></value> </param> <param> <value><string>49.99</string></value> </param> <param> <value><string>01/05</string></value> </param> <param> <value><string></string></value> </param> <param> <value><string>01/02</string></value> </param> <param> <value><string>prod=funny_book,item_amount=18.50;prod=sad_book,item_amount=16.50x3</string></value> </param> <param> <value><string>name=CONTACT,company=COMPANY,addr_1=ADDRESSLINE1,post_code=POST_CODE,tel =TELEPHONE,email=EMAIL,url=URL</string></value> </param> <param> <value><string>name=CONTACT,company=COMPANY,addr_1=ADDRESSLINE1,addr_2=ADDRESSLINE2,city =CITY,state=COUNTY,country=COUNTRY,post_code=POST_CODE,tel=TELEPHONE,email=EMAIL,url=URL</ string></value> </param> <param> <value><string>test_status=true</string></value> </param> <param> <value><string>0</string></value> </param> <param> <value><string>image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*</string></value> </param> <param> <value><string>Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705)</value> </param> <param> <value><string></string></value> </param> <param> <value><string></string></value> </param> <param> Page 18 of 30
<value><string>Widgets</string></value> </param> <param> <value><string></string></value> </param> <param><value><string></string></value> </param> <param> <value><string></string></value> </param> </params> </methodCall>
Figure 19: Example 3D Secure XML-RPC Enrolment Request Response for Cardholder Authentication required
<?xml version="1.0" encoding="ISO-8859-1"?> <methodResponse> <params> <param> <value>?valid=true&trans_id=xmltest&mpi_status_code=200&mpi_message=Payer Verification required&acs_url=https%3A%2F%2Fwww.secpay.com%2Fjavabin%2FACSSimulator &MD=180560631&PaReq=eJxVUttygjAQfe9XMH6ASVDxMmscqu0UpyIV25k+MrBVOwIaQPHvu0F Q+5DJnpPdzdkLTMp4b5xQZbs0GbdEm7cm8gnWW4U48zEsFEpYYJYFGzR2EXkMeM/iVke0JHj2Co 8S6mhJwW0TWAMpTIXbIMklBOHx2XFld2gOOQdWQ4hROTNpDUSvNyD6CiEJYpRNrOESAlZxEKZFk quLHJgWsAZAofZym+eHbMTYJS0U4XaYxsD0A7C7Cq/QVkaJyl0kF+vN2V1/n93fRelM7c3DGQPT HhAFOUqT867gpmWIzoj3R6YAVvEQxFoBFTUcUklXAAf9h/348sgA9VNhEjYlNAiwPKQJkgf172Z DhFkoF55jzF786crx1s7Spd81Cys9Gwk/Co9FlYN03QFgEl09KvlCUHtvFLDmvndk+qanFOY0AJ yf332fF/5nuXw/vXL7w/7ab7y5nlvloNXuqPNc8H4lVwNgOgWrV4LVK0PWv1X6A7WQzfI=</val ue> </param> </params> </methodResponse>
Figure 20: Example 3D Secure XML-RPC Enrolment Request Response for Cardholder Not Participating
Page 19 of 30
2.3.2
Before 3D Secure, PayPoint.net returned the result of the authorisation attempt from the merchants acquiring bank and the merchant displayed the result to the cardholder. However, with the 3D Secure scheme and if a status code of 200 is returned from PayPoint.nets MPI, the cardholder is required to be authenticated. To enable the cardholder to be authenticated, the cardholder must be redirected to the card issuer via a redirect page. This section shows you how to construct the basic page. The information that is added to the page are 3 fields returned by the MPI and 1 field added by the merchants server: Figure 21: MPI return parameters Parameter acs_url* MD* PaReq* TermUrl Description The URL Encoded URL of the issuers Access Control Server (ACS) which the cardholder is redirected to. This field will need to be URL decoded as PayPoint.net URL Encode this field Unique reference used by all parties including PayPoint.net and the merchant to identify and track the 3D Secure transaction The Payment Authentication Request that the card issuer users for the authentication process TermUrl contains the URL on the merchants server where the cardholder is redirected to following authentication by the issuers ACS. (max. 1024 characters)
* These fields are extracted from the PayPoint.net 3D Secure enrolment response. The acs_url will need to be URL Decoded by the merchant prior to using in the redirect page. When all the necessary data is extracted from the enrolment check response, the merchants application is required to construct and return a page similar to the one in Figure 22, which redirects the cardholders browser to the issuers ACS. The TermUrl contains the URL on the merchants server where the cardholder is redirected to following authentication by the issuers ACS.
Page 20 of 30
Figure 22: 3D Secure Redirect Page <html> <head> <title> 3D Secure Verification</title> </head> <body OnLoad="OnLoadEvent();" > <form name="mainform" action="acs_url HERE" method="POST"> <noscript> <br> <br> <center> <h1>Processing your 3D Secure Transaction</h1> <h2> JavaScript is currently disabled or is not supported by your browser.<br></h2> <h3>Please click Submit to continue the processing of your 3D Secure transaction.</h3> <input type="submit" value="Submit"> </center> </noscript> <input type="hidden" name="PaReq" value="PaReq HERE"> <input type="hidden" name="TermUrl" value="TERM URL HERE"> <input type="hidden" name="MD" value="MD DATA HERE"> </form> <SCRIPT LANGUAGE="Javascript" > <!-function OnLoadEvent() { document.mainform.submit(); } //--> </SCRIPT> </body> </html> When the cardholder has authenticated themselves, the issuers ACS will redirect the cardholder back to the TermUrl that the merchants server supplied. The merchant server will then be required to extract certain information from the redirected form and pass this data to PayPoint.nets MPI for verification. Please refer to the next section for details on how to perform this process. 2.3.3 3D Secure Authorisation Request
When the merchants server has received the redirected ACS HTML form, the merchants server will then need to extract the parameters as shown in Figure 23 from the form: Figure 23: ACS return parameters Parameter MD PaRes Description Unique reference used by all parties including PayPoint.net and the merchant to identify and track the 3D Secure transaction The Payment Authentication Response that the card issuer users returns after the authentication process
Depending on the interface used, the merchant will pass the relevant data to PayPoint.net so the data can be verified and the transaction authorisation can be performed. The 3D Secure Authorisation Request method is used to send the request from the 3D Secure authentication process to PayPoint.nets MPI. Figure 25 for SOAP and Figure 27 for XML-RPC, show a typical 3D Secure Authorisation request.
Page 21 of 30
vpn_pswd
secpay
trans_id md
Unique reference used by all parties including PayPoint.net and the merchant to identify and track the 3D Secure transaction. The Payment Authentication Response that the card issuer builds and returns after the authentication process.
Used to submit optional parameters which are used to alter the behaviour of this transaction. This parameter is included to accommodate future enhancements and is not utilised at the present time
paRes
options
N/A
Figure 25: Example 3D Secure SOAP Authorisation Request <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1: threeDSecureAuthorisationRequest soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="Gateway HostedService"> <ns1:arg0 xsi:type="xsd:string">secpay</ns1:arg0> <ns1:arg1 xsi:type="xsd:string">secpay</ns1:arg1> <ns1:arg2 xsi:type="xsd:string">TRAN0001</ns1:arg2> <ns1:arg3 xsi:type="xsd:string">271892429</ns1:arg3> <ns1:arg4 xsi:type="xsd:string">eJxVUm1zgjAM/r5fwfkDbMvYFC92x2S74fnCZNt3rmTqJqAFHP77pQjT9a7XPE+TNH0SeK jTnXVEXWzzbNwTfd57kDfwttGIfoSq0ihhjkURr9HaJuOePRBD13Zstych9FZ4kNBGSwru28A6SGFabeKslBCrw2 OwkJyW49ou58BaClLUgS/vh2LIb++BnSFkcYqyi7cWhIA1HKi8ykp9kkObvDsAld7JTVnuixFjp7zShPsqT4GZC2C XSsLKWAUlqreJnH+peul/nxZ+cBdMvPXVHgMzHpDEJUqb6hbcvrOEM3JuR3wArOEhTk0F0nFdl750BrA3b3jXN 9cMkKYaM9V9oUOA9T7PkDxIwz8bEiyUnIeB5T9Fk1UQvgXLBb1uWFiZ/kj41HiomhwC2AUAZsnZoylfCFL9jwL WnRdFJi+mU6qkBuD0ZxZFvIre6+Xs+My9V+9jtw6npm+Ng6l2S8pzYcRoATCTgrVjwdqxIevfOP0CbkfObg==</ns 1:arg4> <ns1:arg5 xsi:type="xsd:string"></ns1:arg5> </ns1: threeDSecureAuthorisationRequest > </soapenv:Body> </soapenv:Envelope> Figure 26: Example 3D Secure SOAP Authorisation Request Response for Cardholder Authenticated <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1: threeDSecureAuthorisationRequestResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="Gateway HostedService"> <ns1: threeDSecureAuthorisationRequestReturn xsi:type="xsd:string">?valid=true&trans_id=TRAN0001&code=A&auth_code=9999&amount=50.0&test_status=tr ue&mpi_status_code=237&mpi_message=Payer authentication successful (Y)</ns1: threeDSecureAuthorisationRequestReturn> </ns1: threeDSecureAuthorisationRequestResponse> </soapenv:Body> </soapenv:Envelope>
Page 22 of 30
<?xml version="1.0"?> <methodCall> <methodName>SECVPN.threeDSecureAuthorisationRequest</methodName> <params> <param> <value><string>secpay</string></value> </param> <param> <value><string>secpay</string></value> </param> <param> <value><string>xmltest</string></value> </param> <param> <value><string>271892429</string></value> </param> <param> <value><string>eJxVUm1zgjAM/r5fwfkDbMvYFC92x2S74fnCZNt3rmTqJqAFHP77pQjT9a7X PE+TNH0SeKjTnXVEXWzzbNwTfd57kDfwttGIfoSq0ihhjkURr9HaJuOePRBD13Zstych9FZ4kNB GSwru28A6SGFabeKslBCrw2OwkJyW49ou58BaClLUgS/vh2LIb++BnSFkcYqyi7cWhIA1HKi8yk p9kkObvDsAld7JTVnuixFjp7zShPsqT4GZC2CXSsLKWAUlqreJnH+peul/nxZ+cBdMvPXVHgMzH pDEJUqb6hbcvrOEM3JuR3wArOEhTk0F0nFdl750BrA3b3jXN9cMkKYaM9V9oUOA9T7PkDxIwz8b EiyUnIeB5T9Fk1UQvgXLBb1uWFiZ/kj41HiomhwC2AUAZsnZoylfCFL9jwLWnRdFJi+mU6qkBuD 0ZxZFvIre6+Xs+My9V+9jtw6npm+Ng6l2S8pzYcRoATCTgrVjwdqxIevfOP0CbkfObg==</stri ng></value> </param> <param> <value><string></string></value> </param> </params> </methodCall>
Figure 28: Example 3D Secure XML-RPC Authorisation Request Response for Cardholder Authenticated
Page 23 of 30
The PayPoint.net MPI decodes the PaRes to establish whether the cardholder was authenticated. PayPoint.nets payment gateway will respond with the results of the 3D Secure authorisation request as shown in Figure 26 for SOAP and Figure 28 for XML-RPC. The mpi_status_code field indicates the result of the authentication process. In general, if the merchant receives a status code as shown in Figure 29 from the 3D Secure Authorisation Response, the liability shift offered by 3D Secure can be obtained except in the case of a MPI status code of 229 - the cardholder failed to be authenticated. Figure 29: 3D Secure Payer Verification Required Status Code
Action The cardholder was authenticated The issuer ACS returned an Authentication Attempt Response. Cardholder was NOT authenticated. Failed Authentication
Any other code indicates that liability shift was not obtained or a processing error occurred in which case no liability shift will be obtained. Please refer to Section 1.6 for more information on liability shift and Appendix A for the possible status codes that can be returned by the MPI. NOTE: The merchants software should be designed to accommodate future enhancements to PayPoint.nets MPI and allow for additional MPI return codes as and when they are added. In the case of all MPI status codes, except code 229 which will be failed, PayPoint.net will attempt to authorise the transaction with the acquiring bank, and the result will be returned to the merchant in the format as shown in Figure 26 for SOAP and Figure 28 Appendix B for XML-RPC. The only extra parameters returned are: mpi_status_code (Refer to Appendix A) mpi_message ( user-friendly description of the status code)
Page 24 of 30
PayPoint.nets transaction reporting system has been extended to include details indicating that the transaction has been processed under 3D Secure. The merchant can view transactions that have been processed by the 3D Secure MPI by selecting the Origin Reporting facility (for SECNet users selct the Origin Report from the drop-dopwn list of predefined reports in the Transaction Manager facility). The report shows the 3D Status, Card Type and card country of issue. The latter two parameters are included because MasterCard SecureCode does not give liability shift for all MasterCard regions except for fully Authenticated transactions. Visa does not give liability shift protection for Visa Commercial Cards (Internationally issued). This is supplied so the merchant can make an informed decision to whether a transaction is protected under the Visa or MasterCard implementation. Please refer to your acquirer documentation for more information on liability shift or the Visa/MasterCard Merchant Implementation Guides. The table in Figure 30 shows the various types of response that can be displayed in the 3D Status field with a brief description. Figure 30: Guide to 3D Secure Transaction 3D Status Types 3D-Status Authenticated Not Authenticated Cardholder Not Enrolled Authentication Attempt Authentication Unavailable Unable to Verify Enrolment Merchant Not Participating Description Cardholder successfully authenticated. Issuer generated CAVV. Cardholder was NOT authenticated. Failed Authentication. Authentication Attempt but cardholder not enrolled. The issuer ACS returned an Authentication Attempt Response. The issuer ACS returned an Authentication Not Available response. The VBV or SecureCode DS was unable to verify whether the cardholder was registered. The VBV or SecureCode Directory Server indicated that the merchant is not registered. Merchants cannot gain liability shift if they are not registered in the scheme. Please contact PayPoint.net for further information if this type of message is received This indicates that the MPI encountered another response or an error occurred. The merchant should drill-down to ascertain the exact cause and whether they have liability shift for this transaction
Other Result
Page 25 of 30
The PayPoint.net ACS Simulator allows the merchant to fully simulate the 3D-authentication process and the interaction with the VBV or SecureCode Directory Server and the issuing bank ACS. The merchant can send requests and test the responses from the DS and ACS simulator. To use the PayPoint.net 3D Secure test simulator, the test_status flag must be passed in the authorisation request. From an html post, this would be included by the following html code: <input type=hidden name=test_status value=true> Note: Please refer to the Gateway Hosted Integration Guide for valid test_status values If the merchant is not enabled on the PayPoint.net server to perform 3D Secure transaction, a test transaction can be performed by using the following option: test_mpi_status=true Note: To utilise this option, a valid test_status value of true or false must be included.
4.1
This allows particular responses to be received from the PayPoint.net test Directory Server. The MPI gateway has been extended to allow certain Enrolment Verification Requests to be obtained. This is achieved by specifying any test card number with an appropriate value for the month in the expiry date field. Please refer to the table in Figure 31 for the month values and the expected response. For example, to achieve a Cardholder Not enrolled response, use the following: Month: Year: 02 08 (any valid year in the future)
To use the PayPoint.net test Directory Server, the test_status flag must be passed in the authorisation request. From an html post, this would be included by the following html code: <input type=hidden name=test_status value=true> Note: Please refer to the Gateway Hosted Integration Guide for valid test_status values If the merchant is not enabled on the PayPoint.net server to perform 3D Secure transaction, a test transaction can be performed by using the following option: test_mpi_status=true Note: To utilise this option, a valid test_status value of true or false must be included. Figure 31: Test Directory Server Month Values and Expected Response Month 01 02 03 04 05 06 07 Other value Response Cardholder Enrolled Not Enrolled Unable To Verify Enrolment Format Error Response ( VERes message from DS) Acquirer Not Participating Merchant Not Participating 3D Password Required Invalid request Error (98) MPI Code 200* 212 234 210 255 256 257 210
* Gateway Hosted service merchants will be redirected to the Test ACS Simulator to begin Authentication Tests Please refer to next section. Page 26 of 30
4.2
The ACS simulator allows particular responses to be received from the PayPoint.net ACS Simulator. The MPI gateway has been extended to allow certain Verify Enrolment Request responses to be obtained. This can be achieved by specifying any test card numbers with a value of 01 for the month in the card expiry field. To use the PayPoint.net 3D Secure test ACS Simulator, the test_status flag must be passed in the authorisation request. From an html post, this would be included by the following code: <input type=hidden name=test_status value=true> The following steps show how to connect to the ACS Simulator: 1: On the payment page, enter the usual required details and set the expiry date month to 01 and any valid year in the future: (0108). 2: Submit 3: The ACS Simulator will appear as shown in figure 25 Figure 32 shows the possible responses that can be generated by selecting the appropriate Authentication drop-down option and clicking the Submit button. Figure 32: ACS Simulator Options and Responses
Response Cardholder Authenticated Cardholder Not Authenticated Authentication Attempt Authentication Unavailable
Page 27 of 30
5
TERM
Glossary of Terms
DESCRIPTION 3 Domain Secure ecommerce environment including Acquirers/Merchants, issuers/cardholder and Card Schemes. Accountholder Authentication Value. Unique reference generated by MasterCard card issuers to prove authentication took place. A Member financial institution that establishes a contractual service relationship with a merchant for the purpose of accepting payment cards. In 3D Secure, determines whether merchant is eligible to participate. Performs traditional role of receiving and forwarding authorisation and settlement messages (enters transaction into interchange). Access Control Server. Card Issuer system to record which cardholders are registered Cardholder Authentication Verification Value. Unique reference generated by Visa card issuers to prove authentication took place. Directory Server .A system operated by Visa and MasterCard which determines whether a specific issuer and card number is participating in authentication, and if so, it returns the URL of the appropriate Access Control Server to the Merchant Plug-in. ECommerce Indicator. Provides the security level used in an Internet transaction. Specific European regions as defined by the card schemes (see Intra-Regional). Internet Browser window, within the main browser page. Merchant Plug-in. Software module that provides merchants the ability to perform 3D Secure authentication Payer Authentication Request. 3D Secure Protocol message type. This is a request sent by the PayPoint.net MPI client to check if a buyer passed 3D Secure authentication. Payer Authentication Response. 3D Secure Protocol message type. This is the response returned after submitting a PAReq. It indicates whether or not the cardholder passed 3D Secure authentication. Internet Browser Pop Up window, displayed as an extra window. MasterCard SecureCode. Cardholder authentication scheme from MasterCard. Universal Cardholder Authentication Field. The data field used by MasterCard issuers to send the AAV (see above). Verified by Visa. Cardholder authentication scheme from Visa. Verify Enrolment Request. 3D Secure Protocol message type. This is a request sent by the PayPoint.net MPI client to check if a given credit card number is enrolled on the VBV or SecureCode DS. Verify Enrolment Response. 3D Secure Protocol message type. This is the response returned after submitting a VEReq. It indicates whether or not the credit card number is enrolled in VBV or SecureCode scheme. The unique transaction identifier.
ACS CAVV DS
VERes
XID
Page 28 of 30
DESCRIPTION The merchant password is required for the scheme but is not set An IO error occurred whilst connected to the DS Acquirer not participating in 3D Secure scheme (DS returned error 50) Merchant not participating in 3D Secure scheme (DS returned error 51) Password not supplied in 3D Secure VEReq (DS returned error 52) Incorrect password supplied in 3D Secure VEReq (DS returned error 53) The PayPoint.net MPI is not enabled 3D Secure transactions cannot be performed
B.2.
Exclusions
This service cannot be used in conjunction with SECBatch or Mail Order/Telephone Order (MOTO) transactions including the Virtual Terminal within the PayPoint.net Extranet, as the service requires the card holder to authenticate the transaction in real-time, accordingly batch and MOTO processed transactions cannot be authenticated in this way.
Page 30 of 30