3DS Protocol Spec Core Functions (2009)
3DS Protocol Spec Core Functions (2009)
Visa *Confidential*
Important Note on Confidentiality
The Visa *Confidential* label in the footers indicates the information in this document is intended for use by Visa employees,
member banks, and external business partners that have signed a Nondisclosure Agreement (NDA) with Visa. This infor-
mation is not for public release.
Welcome to
3-D Secure Protocol
Specification Core
Functions Version
1.0.2
The 3-D Secure Protocol Specification Core Functions Version
1.0.2 has been updated.
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Intended Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
In This Version . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Latest Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Future Considerations . . . . . . . . . . . . . . . . . . . . . . . . . 3
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Licensed Documents . . . . . . . . . . . . . . . . . . . . . . . . 4
Other Documents . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Document Organization . . . . . . . . . . . . . . . . . . . . . . . . . 5
Cardholder . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–2
Merchant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–3
Acquirer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1–3
Steps 10 and 11: Merchant Server Plug-in—Validate Payer Authentication Response 4–15
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . A–1
Profile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–2
(1 of 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–4
(2 of 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–5
(3 of 3) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A–7
CRReq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–3
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–3
CRRes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C–6
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C–6
VEReq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C–8
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . .C–8
VERes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–12
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–12
PAReq . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–15
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–15
PARes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–20
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–20
Identification . . . . . . . . . . . . . . . . . . . . . . . . . . . C–28
Criticality . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–28
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . C–29
Message ID . . . . . . . . . . . . . . . . . . . . . . . . . . . C–29
Glossary
A full set of documentation has been developed for 3-D Secure™. The primary sources
for introductory and general information are:
●
3-D Secure: Introduction, Visa Publication 70001-01
●
3-D Secure: System Overview, Visa Publication 70015-01
If you have not yet read these documents, you are encouraged to do so. The documents
are available through the “Vendors & Merchants” link at: http://corporate.visa.com.
Purpose
Payment authentication is the process of verifying cardholder account ownership during a
purchase transaction in the remote environment.
Visa has developed the Three Domain Secure (3-D Secure™) protocol to improve
transaction performance online and to accelerate the growth of electronic commerce. The
objective is to benefit all participants by providing issuers with the ability to authenticate
cardholders during an online purchase, thus reducing the likelihood of fraudulent usage of
payment cards and improving transaction performance.
This document describes 3-D Secure, including the messages supporting payment
authentication.
As described in this document, 3-D Secure defines a base level of security.
Enhancements will be included in later versions.
Intended Audience
This document is intended for the use of vendors and Members that are interested in
developing 3-D Secure products and supporting 3-D Secure implementations.
In This Version
The major changes included in 3-D Secure version 1.0.2 are:
● Support is provided for generating a proof of authentication attempt when
authentication is not available.
● The Account Identifier in the Verify Enrollment Response and Payer Authentication
Request must not be the PAN.
● The PAN value that is included in the Payer Authentication Response must be
masked.
● Adjusted DTD to indicate that Serial Number is optional in the Card Range Request; it
is omitted when Invalid Request Code is included.
For details, see the Document Revisions Log.
All code changes pertinent for 3-D Secure Version 1.0.2 are noted with the “1.0.2 change
symbol,” as shown here in the left margin.
Latest Changes
This document version includes updates for version 1.0.2. See the Document Revisions
Log for more information.
Revision marks are included.
Future Considerations
The base 3-D Secure protocol has been designed for the current business and market
environment. In the future, enhancements to this protocol may be defined in order to
properly support the requirements that arise from additional market and business
opportunities.
Possible future enhancements include adding signatures to PAReq and VEReq to provide
for more robust merchant authentication.
References
The following documents provide fundamental information about 3-D Secure and are
available through the “Vendors & Merchants” link on http://corporate.visa.com. You are
encouraged to read them (in the following order) before reading this document:
● 3-D Secure: Introduction, Visa Publication 70001-01
●
3-D Secure: System Overview, Visa Publication 70015-01
Licensed Documents
Some 3-D Secure documents are available only to parties that have executed with Visa a
3-D Secure Publication Suite Master License Agreement. Information regarding these
publications and the license agreement is available through the “Vendors & Merchants”
link on http://corporate.visa.com.
Other Documents
The following documents are referenced in this specification and/or provide useful
background information:
● Certificate Infrastructure Group Brand Certificate Authority – Operating Procedures,
version 1.0, dated August 1999.
● Certificate Infrastructure Group Brand Certificate Authority – Business Policies and
Procedures, version 1.0, dated August 1999.
● Extensible Markup Language (XML), W3C Recommendation, version 1.0 (Second
Edition), dated 6 October 2000, available at http://www.w3.org/TR/2000/REC-xml-
20001006.
● Canonical XML, W3C Recommendation, version 1.0, dated 15 March 2001, available
at http://www.w3.org/TR/2001/REC-xml-c14n-20010315.
● XML-Signature Syntax and Processing, W3C Recommendation, dated 12 February
2002, available at http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/ or http://
www.ietf.org/rfc/rfc3275.txt.
● Namespaces in XML, W3C Recommendation, dated 14 January 1999, available at
http://www.w3.org/TR/1999/REC-xml-names-19990114.
● The TLS [Transport Layer Security] Protocol, Version 1.0, dated January 1999,
available at http://www.ietf.org/rfc/rfc2246.txt.
● Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message
Bodies, available at http://www.ietf.org/rfc/rfc2045.txt, includes the algorithm for
calculating a Base64 result.
●
Hypertext Transfer Protocol – HTTP/1.1, available at http://www.ietf.org/rfc/
rfc2068.txt, discusses chunked transfer coding.
Document Organization
The document is organized as follows:
●
Preface— this section contains an overview of the document and a list of references.
It also includes a document revision log, summarizing the changes in each production
version of the document.
● Chapter 1, Systems and Functional Overview—provides an overview of the issuer,
acquirer, and interoperability domains.
●
Chapter 2, Technical Requirements—lists and describes the technical requirements
for 3-D Secure.
1.0.1 1 Nov 2001 Incorporated all errata from version 1.0. CRReq processing by Directory Server
Added Invalid Request Code for invalid CRRes processing by MPI
serial number.
VEReq processing by Directory Server
Aligned XML signature processing with
VEReq processing by ACS
W3C and IETF publications dated 20
August 2001. PARes processing by ACS
PARes processing by MPI
1.0.1 15 July 2002 Added explicit language about message May affect all message processing if any
validation and sending Error messages clarifications differ from a developer’s
in processing steps. prior interpretation of the intent of the
specification.
Aligned Account Identifier handling in
the processing steps with the conditions
described in Table 21.
Added new Invalid Request Code and
Error Code values.
Other general clarifications.
1.0.2 16 July 2002 Adjusted to support generating proof of VEReq and PAReq processing by ACS;
authentication attempt when PARes processing by MPI.
authentication is not available.
1.0.2 20 Jan 2004 Updated validation requirements: Chapter 6 message element tables
●
Consolidated validation rules into a Chapter 5 authentication processing
single column per message. description
● Enhanced field descriptions,
providing consistent edit criteria and
simplified validation requirements.
1.0.2 30 September 2009 Updated the document with the changes Throughout.
outlined in the 3-D Secure Technical
Bulletins issued August 15, 2009.
Purpose
This chapter describes the systems and functions necessary to implement 3-D
Secure3-D Secure. Descriptions are divided according to domain:
●
Issuer Domain—Systems and functions of the issuer and its customers (cardholders).
●
Acquirer Domain—Systems and functions of the acquirer and its customers
(merchants).
●
Interoperability Domain—Systems, functions, and messages that allow Issuer
Domain systems and Acquirer Domain systems to interoperate worldwide.
NOTE: Third parties may operate many of the systems in the Issuer and Acquirer
Domains on behalf of Visa Members.
Issuer Domain
This section provides descriptions for the following Issuer Domain Entities:
●
Cardholder
● Cardholder Browser
● Additional Cardholder Components
●
Issuer Domain
●
Access Control Server
Cardholder
The cardholder shops online, providing the account holder name, card number, and
expiration date, either directly or via software such as a digital wallet, then indicates
readiness to finalize the transaction. In response to the Authentication Request Page, the
cardholder provides information needed for authentication, such as a password.
Cardholder Browser
The cardholder browser acts as a conduit to transport messages between the Merchant
Server Plug-in (in the Acquirer Domain) and the Access Control Server (in the Issuer
Domain).
Issuer Domain
A Member financial institution that:
● enters into a contractual relationship with the cardholder for issuance of one or more
payment cards.
● determines the cardholder’s eligibility to participate in the 3-D Secure service.
● defines card number ranges eligible to participate in the 3-D Secure service.
● provides data about those card number ranges to the Directory Server.
● performs enrollment of the cardholder for each payment card account (via the Access
Control Server, a separate Enrollment Server, or manually).
See the 3-D Secure Functional Requirements Access Control Server document for more
specific information.
Acquirer Domain
This section provides descriptions for the following Acquirer Domain Entities:
● Merchant
● Merchant Server Plug-in
● Validation Process
● Acquirer
Merchant
Existing merchant software handles the shopping experience, obtains the card number,
then invokes the Merchant Server Plug-in to conduct payment authentication.
After payment authentication, the merchant software may submit an authorization request
to the acquirer, if appropriate.
Validation Process
This function validates the signature received in the message from the ACS to the
merchant. (This process may be implemented as an integral part of the Merchant Server
Plug-in, or as a separate server. In the latter case, the acquirer may operate it on behalf of
multiple merchants.)
Acquirer
A Member financial institution that:
● enters into a contractual relationship with a merchant for purposes of accepting
payment cards.
● determines the merchant’s eligibility to participate in the 3-D Secure service.
Following payment authentication, the acquirer performs its traditional role to:
● receive authorization requests from the merchant.
● forward them to the authorization system (such as VisaNet).
● provide authorization responses to the merchant.
● submit the completed transaction to the settlement system (such as VisaNet).
Interoperability Domain
This section provides descriptions for the following Acquirer Domain Entities:
● Directory Server
● Commercial Certificate Authority
● Scheme Certificate Authority
● Authentication History Server
● Authorization System
Directory Server
The Directory Server, operated by each participating Payment Scheme:
● receives messages from merchants querying a specific card number.
● determines whether the card number is in a participating card range.
● directs the request for cardholder authentication to the appropriate ACS (which may
or may not provide Attempts functionality) or responds directly to the merchant.
● receives the response from the ACS indicating whether payment authentication (or
proof of attempted authentication) is available for the cardholder account.
● forwards the response to the merchant.
Authorization System
Following payment authentication, the authorization system (such as VisaNet) performs
its traditional role:
● receives authorization requests from the acquirer.
● forwards them to the issuer.
● provides responses from the issuer to the acquirer.
● provides clearing and settlement services to the acquirer and issuer.
Channel Encryption
The SSL servers described in Table 2–1 must be capable of initiating sessions using 128-
bit (or stronger) cipher suites, with the exception of the merchant which should be capable
of initiating such sessions if possible. Channels 1 and 2 must support the 40-bit SSL
cipher suites, due to the proliferation of US-exportable browsers on cardholder systems.
For additional certificate requirements, see the section “Certificate Requirements” in this
chapter, and the Functional Requirements documents listed in About This Guide, the
section “3-D Secure Specifications.
3. Merchant to Directory Server This channel is used to transport VEReq, VERes, CRReq, CRRes, and Error.
The Directory Server must secure this channel with an SSL session initiated
using a server certificate. The Directory Server must be able to authenticate
the merchant using SSL client certificates (during session initiation). The
actual use of SSL client certificates for authentication of the VEReq will
depend on specific regional requirements, but both systems (Directory
Server and merchant) must be capable of supporting client authentication.
4. Directory Server to Access This channel is used to transport the VEReq, VERes, and Error messages.
Control Server
The ACS must secure this channel with an SSL session initiated using a
server certificate and a client certificate for the Directory Server.
5. Merchant to Validation Process When the validation process is implemented as a separate server, this
channel is used to transport the PARes (for validation) and the server’s
response.
The validation process server must secure this channel with an SSL session
initiated using a server certificate. The validation process server must
authenticate the merchant initiating the session; it may do so using SSL client
certificates or using another mechanism selected by the acquirer.
6. Merchant to Access Control This channel is used to transport the Error message.
Server
The ACS must secure this channel with an SSL session initiated using a
server certificate.
TLS_RSA_WITH_3DES_EDE_CBC_SHA required
TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA required
Certificate Requirements
Table 2–3 lists the certificates that are necessary to implement 3-D Secure.
For more information regarding the Visa Certificate Authority Key Management Policies,
see the Certificate Infrastructure Group documents described in About This Guide, the
section “Other Relevant Documents.
NOTE: The Visa Root certificate is a self-signed certificate.
Access Control Server To protect the VEReq, VERes, SSL server certificate
PAReq, and PARes data
(continued) Root certificate required by the Payment Scheme
and all other certificates needed to validate the
server certificate, if it was issued under that Root.
Note: Processors operating an ACS on behalf of
multiple issuers must be able to use a different SSL
server (encryption) certificate for each issuer.
Access Control Server To sign the PARes message Signing certificate (issued to issuer)
(continued) Root certificate required by the Payment Scheme
and all other certificates needed to validate the
signing certificate
Note: Processors operating an ACS on behalf of
multiple issuers must be able to use a different
signing certificate for each issuer.
Validation Process To validate the PARes Root certificate required by the Payment Scheme
Server message signature and all other certificates needed to validate the
server certificate.
Directory Server When the Directory Server converts a domain name into
an IP address, it must retrieve all registered addresses
from the domain name server and attempt a connection
with the alternate address(es) if a session cannot be
established with the primary address.
Merchant Plug-in The Merchant Server Plug-in must support the ability of
the Merchant system to implement an immediate failover
to a secondary Directory Server if it is unable to establish
a session with the primary Directory Server. Depending
on scheme requirements the location of the secondary
Directory Server may be specified by an alternate IP
address associated with the Directory Server domain
name (through a DNS lookup), or the scheme provider
may specify an alternate URL.
The requirements for alternate URLs or IP addresses will
be specified in the Implementation Guides published by
each Payment Scheme.
HTTP Connections
Persistent Sessions
3-D Secure components may use HTTP Keep Alive to establish persistent sessions with
other 3-D Secure components.
Purpose
This chapter outlines a model implementation of the setup and cardholder enrollment
processes. Since the cardholder enrollment process is entirely within the Issuer Domain,
alternate implementations are possible. The topics discussed in this chapter are provided
as background material for the reader.
PAN
Cardholder Name
Personal Assurance Message (PAM); created by the user, displayed in the secret code
prompt window to help reduce spoofing.
Cardholder’s Password
Special question/hint
Table 3–2 lists the enrollment data that the issuer might need.
Step 1 Shopper browses at merchant site, adds items to shopping cart, then
finalizes purchase.
Note: Merchant now has all necessary data, including PAN and user device
information.
Step 2 Merchant Server Plug-in (MPI) sends PAN (and user device information, if
applicable) to Directory Server.
Step 5 Directory Server forwards ACS response (or its own) to MPI.
If neither authentication nor proof of authentication attempt is available, 3-D
Secure processing ends, and the merchant, acquirer, or payment processor
may submit a traditional authorization request, if appropriate.
Step 6 MPI sends Payer Authentication Request to ACS via shopper’s device.
Note: The Payer Authentication Request message may be PAReq (for
cardholders using PCs) or CPRQ (for cardholders using mobile Internet
devices – see 3-D Secure: Protocol Specification – Extension for Mobile
Internet Devices).
Step 9 ACS returns Payer Authentication Response to MPI via shopper’s device.
ACS sends selected data to Authentication History Server.
each day that follows. The request time must not be hard-coded. (This will help ensure
that every Merchant Server Plug-in (MPI) is not requesting the card range updates
simultaneously.)
a. The MPI formats a Card Range Request (CRReq) message, as described in
Appendix C, Table C–2, and sends the request to the Directory Server.
If this is the first time the cache is being loaded (or if the cache has been flushed
and needs to be reloaded), the Serial Number element is not included in the
request, which will result in the DS returning the entire list of participating card
ranges.
Otherwise, the MPI should include the Serial Number from the most recently
processed Card Range Response (CRRes), which will result in the DS returning
only the changes since the previous CRRes.
b. The Directory Server validates the syntax of the CRReq, as described in
Appendix C, Table C–2, and returns an Error if validation fails.
The DS authenticates the merchant as described for VEReq in Step 3a. If
authentication fails, the DS formats a CRRes with Invalid Request Data set to the
corresponding value from Appendix C, Table C–9.
The DS formats a CRRes, as described in Appendix C, Table C–3, containing the
participating ranges and sends it to the MPI. If the CRReq includes a value for
Serial Number, the DS returns only those updates made since that value of Serial
Number was current.
The DS includes a serial number in the response that defines the current state of
the card range database. (The specific value is meaningful only to the DS that
returns it.)
c. The MPI validates the syntax of the CRRes, as described in Appendix C, Table C–
3, and should send an Error to the Directory Server if validation fails.
The MPI updates its cache. The list must be processed in the order returned with ranges
being added or deleted as indicated by the Action element. The MPI should retain the
Serial Number value to be included with the next day’s CRReq message.
NOTE: If CRRes indicates any error condition, the MPI should clear its cache and submit
the CRReq without a Serial Number element.
b. The cardholder checks out and finalizes the purchase transaction. At this point,
the merchant has all the information required to process the purchase transaction,
including the PAN, expiration date, and address information.
The PAN must be provided to the merchant during the checkout process either via
cardholder keyboard entry or a wallet function. The expiration date must be no
earlier than the current month.
The Directory Server validates the VEReq data, ensuring that each of the
following is true:
● The Acquirer BIN represents a participating acquirer.
● The endpoint submitting the transaction is a valid merchant endpoint. The Merchant
ID may be used to perform this validation, by ensuring that it represents a participating
merchant of the acquirer identified by Acquirer BIN.
● If the Visa region of the acquirer requires a merchant password for 3-D Secure:
– a value for Password was received, and
– it is valid for the combination of Acquirer BIN and Merchant ID.
If any of these tests fails:
● The Directory Server formats a Verify Enrollment Response (VERes) including:
– PAN Authentication Available set to “N”
– no Account Identifier, ACS URL or Payment Protocols
– Invalid Request Data set to the corresponding value from Appendix C, Table C–
9.
● The Directory Server returns the VERes to the Merchant Server Plug-in and stops.
b. The Directory Server searches for a record specifying a card range that includes
the Cardholder PAN that was received in the VEReq.
If not found:
● The Directory Server formats a Verify Enrollment Response (VERes) message, as
described in Appendix C, Table C–5, including:
– PAN Authentication Available set to “N”
– no Account Identifier, ACS URL, Payment Protocols, or Invalid Request Data
●
The Directory Server returns VERes message to the Merchant Server Plug-in and
stops.
c. The Directory Server determines whether it currently has a secure connection
with the ACS.
If not, then the Directory Server establishes an SSL connection with the ACS. The
SSL client certificate of the Directory Server and the server certificate of the ACS
must be presented and validated during the establishment of the SSL session.
If the Directory Server maintains alternate URLs for the ACS, and if the first URL
attempted is not available, the Directory Server will attempt to connect to one of
the alternate URLs.
If unsuccessful on all attempts:
● The Directory Server formats a Verify Enrollment Response (VERes), as described in
Appendix C, Table C–5, message including:
– PAN Authentication Available set to “N”
– no Account Identifier, ACS URL, Payment Protocols, or Invalid Request Data
● The Directory Server returns VERes message to the Merchant Server Plug-in and
stops.
d. The Directory Server removes the Password from the VEReq message and
forwards the message to the ACS URL.
IMPORTANT
When it is not possible to authenticate a payment transaction, it is
sometimes possible to provide a proof of authentication attempt
instead. Such processing significantly changes the ACS processing
logic, and is described in 3-D Secure: Functional Requirements –
Access Control Server.
a. The ACS uses the Cardholder PAN from the VEReq message and queries the
Account Holder database to determine whether the cardholder is enrolled.
b. If the PAN was not found, the ACS formats a Verify Enrollment Response
(VERes) message, as described in Appendix C, Table C–4 including:
●
PAN Authentication Available set to “N”
● no Account Identifier, ACS URL, Payment Protocols, or Invalid Request Data
Continue with Step 4f below.
c. If Device Category is present:
● If the ACS cannot process transactions sent by the device category indicated or if the
ACS does not recognize the device category value, the ACS formats a Verify
Enrollment Response (VERes) message including:
– PAN Authentication Available set to “U”
– no Account Identifier, ACS URL, Payment Protocols, or Invalid Request Data
Continue with Step 4f.
d. If either Accept Headers or User Agent is present:
● If the ACS cannot process transactions sent by the cardholder device or the user
agent indicated by the values of those elements, the ACS formats a Verify Enrollment
Response (VERes) message including:
– PAN Authentication Available set to “U”
– no Account Identifier, ACS URL, Payment Protocols, or Invalid Request Data
Continue with Step 4f below.
● If special processing is required, continue processing as described in the appropriate
document (for example, the mobile Internet extension described in About This Guide,
the section “3-D Secure Specifications.”
e. The ACS formats a Verify Enrollment Response (VERes) message, as described
in Appendix C, Table C–5, including:
● PAN Authentication Available set to “Y”
● an Account Identifier that the ACS internally associates with the PAN (note that this
identifier must not be the PAN).
● the ACS URL to be used to transmit the PAReq
● Payment Protocols set as defined in Appendix C, Table C–5 (see Payment
Protocols)
●
no Invalid Request Data
f. The ACS sends the VERes message to the Directory Server.
b. If the message received from the ACS is syntactically correct, the Directory Server
forwards the VERes or Error to the MPI.
c. If the message received from the ACS is not syntactically correct:
● The Directory Server formats a Verify Enrollment Response (VERes) message, as
described in Appendix C, Table C–5, including:
– PAN Authentication Available set to “N”
– no Account Identifier, ACS URL, Payment Protocols, or Invalid Request Data
● The Directory Server returns the VERes message to the Merchant Server Plug-in and
stops.
d. The MPI constructs a form containing the fields listed in Table 4–2:
Field Description
TermUrl The merchant URL to which the final reply must be posted.
e. The MPI passes the PAReq through the cardholder browser to the ACS URL
received in the VERes, by causing the cardholder browser to POST the form to
the ACS. This is typically accomplished by using JavaScript. (For further detail,
see 3-D Secure: Functional Requirements – Merchant Server Plug-in.)
All connections are HTTPS to accommodate the cardholder browser.
a. The ACS Base64-decodes and inflates the PaReq field reversing the process
described in Appendix D, the section “Impact of Base64 Encoding,” to obtain the
PAReq (note the case difference). The ACS validates the syntax of the PAReq, as
described in Appendix C, Table C–7, and returns an Error if validation fails.
The ACS validates the PAReq data, ensuring that each of the following is true:
● The ACS is able to link the PAReq with a VERes in which the value of PAN
Authentication Available was “Y”.
The validation may take place through whatever mechanism the ACS chooses, such
as by comparing the Account Identifier supplied in the two messages or by
correlating the URL to which the message was posted to a customized ACS URL
supplied in VERes.
● The Merchant Country Code is a valid ISO 3166 Country Code.
● The Purchase Currency is a valid ISO 4217 numeric currency code.
If any of these tests fails:
● The ACS formats a Payer Authentication Response (PARes) message, as described
in Appendix C, Table C–8, with Transaction Status set to “N” “U” and Invalid
Request Data set to appropriate values as outlined in Appendix C, Table C–9.
NOTE: The protocol specification previously permitted use of the IReq element in a
PARes message with a Transaction Status of either “N” or “U”. In order to
ensure interoperability, MPI developers must continue to permit either value
to accompany the IReq element.
● Continue with Step 8f.
The ACS responds to the post with an HTML page that displays a form to the
cardholder, including items such as those listed in Table 4–3. (The specific
contents of the form are the choice of the issuer, subject to any applicable regional
requirements. See Figure 4–2 for an example.
)
Member logo X
Merchant name X
Step 8, continued.
b. The ACS prompts the cardholder to enter the password.
c. The ACS accepts the cardholder input and validates it against the Account Holder
database.
d. The ACS sets Transaction Status as described in Table 4–4.
If the transaction was authenticated successfully (that is, the value of Transaction
Status is “Y”) or if a proof of authentication attempt was generated (that is, the
value of Transaction Status is “A”), a Cardholder Authentication Verification Value
(CAVV) is generated and included in PARes. (See 3-D Secure: Functional
Requirements – Access Control Server for information about generating the
Cardholder Authentication Verification Value.)
If the transaction was not authenticated successfully, the ACS must return all
zeros in the PAN field.
f. The ACS digitally signs the message.
Field Description
c. The ACS passes the signed PARes through the cardholder’s browser to the
merchant’s URL (TermUrl in the post from the MPI) by causing the cardholder
browser to POST the form to the MPI. In the process, control is returned to the
merchant’s browser window. This is typically accomplished by using JavaScript.
(For further detail, see 3-D Secure: Functional Requirements – Access Control
Server.)
d. The ACS formats a Payer Authentication Transaction (PATransReq) message and
sends it to the Authentication History Server. See 3-D Secure: Functional
Requirements – Access Control Server for the requirements for the data and for
its transmission.
IMPORTANT
Implementations built to this specification must support messages
having the version number 1.0.2.
CRReq higher than DS sup- If the message contains any unrecognized Extension element
ports that has an attribute of critical with a value of “true”, return an
Error message (using the highest supported message ver-
sion) with the value of errorCode set to 4 (critical element not
recognized).
Otherwise, process the request and generate the response us-
ing the highest supported protocol version.
VEReq higher than DS sup- Ignore unrecognized elements, including unrecognized Exten-
ports sion elements. As appropriate, either forward the request to
the ACS, or process the request and generate the response
using the highest supported protocol version.
NOTE: These are the default actions for a DS to support the protocol. The Payment
Scheme may specify other validations or actions in order to meet scheme-
specific requirements.
VEReq higher than DS sup- Process the request and generate a response using the high-
ports est supported protocol version. Any element not defined for the
highest supported version must be ignored (provided it is not a
“critical” extension as discussed in Appendix C, the section
“Criticality.”
supported version Generate response using the version of the protocol indicated
in the request. Any non-critical Extension element not sup-
ported by the ACS must be ignored.
PAReq equal to version num- Process the request and generate a response under the speci-
ber returned in VERes fied protocol version. Any non-critical Extension element not
supported by the ACS must be ignored.
VERes supported version Generate subsequent PAReq message (if any) using the ver-
sion of the protocol indicated in the VERes. Any non-critical
Extension element not recognized by the MPI must be ig-
nored.
Error any If the Directory Server returns an Error message with the val-
ue of ErrorCode set to 6, the MPI must use the version found
in the Error message for any subsequent CRReq or VEReq
messages.
ID Attribute—Message Element
Request and response pairs are matched using the id attribute of the Message element.
The id attribute of a request must be generated by the sender using an algorithm that is
likely to generate unique ids; the id attribute of the response must be copied from the
corresponding request. For example:
● the MPI assigns the id of the Message element that contains VEReq, and
● the id returned by the ACS in the Message element that contains VERes matches the
id assigned by the MPI.
The value of the id attribute in the request must be no longer than 128 characters. The
ACS must be able to accept and process any Message.id up to 128 characters in length.
If the value exceeds 128 characters, the ACS must respond with an Error message with
Error Code = 5. The Message.id of the Error message must contain the first 128 bytes of
the received Message.id.
The MPI must generate id values that meet the requirements of the ID data type as
defined in Extensible Markup Language (XML), W3C Recommendation.
ID Attribute—PARes Element
The id attribute of the PARes element is generated by the ACS and used within the
signature element to refer to the PARes. (See Appendix A, the section XML Namespaces
for Signatures).
The PARes.id value must be no longer than 128 characters. The MPI must be able to
accept and process any PARes.id up to 128 characters in length. If the value exceeds
128 characters, the MPI must treat this as an error (as defined in Appendix C, the section
“treat as an error”).
The ACS must generate PARes.id values that meet the requirements of the ID data type
as defined in Extensible Markup Language (XML), W3C Recommendation. Failure to do
so may result in the MPI being unable to validate the Signature of the PARes.
IMPORTANT
The PARes.id value is used as a reference in the PARes Signature,
and therefore the value of the PARes.id must meet the requirements
for the ID data type as defined in the W3C XML Recommendation. At
http://www.w3.org/TR/2000/REC-xml-20001006#sec-attribute-types,
the Recommendation specifies that the value of an attribute of type ID
must match the Name production, which is defined at http://
www.w3.org/TR/2000/REC-xml-20001006#sec-common-syn.
HTTP POST
Requests are sent via a POST using HTTPS. Messages exchanged between 3-D Secure
components are either XML documents or HTML pages with forms including fields of 3-D
Secure elements. In particular:
For messages passed as XML documents – VEReq, VERes, CRReq, CRRes, and Error
messages sent in response to one of those:
● If chunked transfer coding is not used, the ‘Content-Length:’ header must be present
(and set to the length of the message body).
NOTE: Hypertext Transfer Protocol – HTTP/1.1 discusses chunked transfer coding.
● The ‘Content-Type:’ header must be present and contain the value:
application/xml; charset=utf-8
NOTE: As defined in IETF RFC 2045, utf-8 and "utf-8" are completely equivalent.
For POSTs through the cardholder browser (merchant to ACS and ACS to
merchant), the browser automatically assigns the Content-Type (typically, the
value will be application/x www form URLencoded).
Responses are formatted in a similar manner (including the Content-Length and Content-
Type) and sent in the reply to the HTTP POST.
Base64 Decoding
As specified in section 6.8 of the IETF RFC 2045, Multipurpose Internet Mail Extensions
(MIME) Part One, Base64 decoding software must ignore any white space (such as
carriage returns or line ends) within Base64 encoded data, and must not treat the
presence of such characters as an error.
XML Data
All XML messages transferred within 3-D Secure must use the default and recommended
encoding of “utf-8” as described in Extensible Markup Language (XML) W3C
Recommendation (see Preface, the section Other Documents).
Digital Signatures
XML digital signatures for 3-D Secure messages must be generated using the algorithms
defined in Appendix A, Table A–2.
NOTE: The minimum key length for the RSA key used to generate the signature is 768
bits; however, a key length of 1024 bits is recommended.
Message Bundling
The DTD allows multiple requests or responses to be included in a single 3-D Secure
message. However, this functionality has not been extensively tested with existing
implementations of 3-D Secure. 3-D Secure components must embed exactly one 3-D
Secure message (CRReq, CRRes, VEReq, etc.) in a ThreeDSecure element.
Message Validation
The recipient of a 3-D Secure message must validate that:
● The XML message is well-formed.
● The Root Element is “ThreeDSecure.”
● There is a “Message” Element inside of the Root Element.
● There is an appropriate message in the “Message” Element.
EXAMPLE
For example, a Directory Server expects to receive the following
messages: CRReq, VEReq, VERes, or Error. Any other message is
treated as an error.
● Each required field is present.
● For responses: Message ID matches that of request.
The recipient of a 3-D Secure message should perform only those validations necessary
to ensure that the message can be correctly processed. This includes validations
necessary to ensure that the business context of the transaction is valid and those
necessary to ensure that the message meets applicable technical requirements. The
tables that follow define the required and optional validations for each data element.
CRReq Processing
Figure 5–2 illustrates the CRReq message processing.
CRRes Processing
Figure 5–3 illustrates the CRRes message processing.
VEReq Processing
Figure 5–4 illustrates the VEReq message processing.
VERes Processing
Figure 5–5 illustrates the VERes message processing.
PAReq Processing
Figure 5–6 illustrates the PAReq message processing.
PARes Processing
Figure 5–7 illustrates the PARes message processing.
Document Element
“ThreeDSecure” is the document element (aka root) of all XML-based documents
exchanged between various services and components participating in the 3-D Secure
infrastructure.
XML-Signature Syntax
Description
The 3-D Secure protocol uses the detached signature form where the signature is
external to the signed element (PARes) but within the same document. The signed
element is referenced using a local reference (for example, ‘#PARes11234’). The signed
element includes:
●
the opening angle bracket of the PARes start tag
● through the closing angle bracket of the PARes end tag
Figure A–1 in the section “Signature Structure” illustrates the signature structure.
Profile
The generation of 3-D Secure signatures must correspond to the requirements for
element content and algorithms specified in the tables that follow.
Recipients of 3-D Secure messages should only enforce these requirements to the extent
necessary to validate the signature. For example, the presence of a
CanonicalizationMethod element should not cause the validation to fail, but the absence
of Signature.KeyInfo must cause the validation to fail.
Table A–1 lists the requirements for the XML signature profile.
Element Requirements
Table A–2 lists the requirements for the XML signature algorithms.
Canonicalization http://www.w3.org/TR/2001/REC-xml-c14n-20010315
Digest http://www.w3.org/2000/09/xmldsig#sha1
Encoding http://www.w3.org/2000/09/xmldsig#base64
MAC http://www.w3.org/2000/09/xmldsig#hmac-sha1
Signature http://www.w3.org/2000/09/xmldsig#rsa-sha1
Certificate Chain
The ACS must include the entire chain of certificates, and not just the signing certificate,
in the Signature.
At this time both Visa, MasterCard and JCB all use a three-level certificate hierarchy, so
there must be three (3) instances of X509Certificate, containing:
● the root certificate,
● one intermediate certificate, and
● the signing certificate.
Each participating Payment Scheme will determine requirements regarding certificate key
sizes. Refer to the Payment Scheme documentation for more information.
Canonicalization Requirements
Note that canonicalization is a requirement of “XML-Signature Syntax and Processing,
W3C Recommendation”, also known as xmldsig, and listed in About This Guide, the
section “Other Relevant Documents.”
Specifically, xmldsig states that the computation of a digest over a same-document
reference must use the required canonicalization method, which is also included in About
This Guide, the section “Other Relevant Documents.”
In addition, the ACS should return the signed PARes message in canonical form (both the
PARes and SignedInfo elements).
<PARes id="PARes12345">...</PARes>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<Reference URI="#PARes12345">
…
</Reference>
</SignedInfo>
<SignatureValue>...</SignatureValue>
<KeyInfo>...</KeyInfo>
</Signature>
</Message>
</ThreeDSecure>
Signature Structure
Figure A–1 illustrates the Signature structure.
(1 of 3)
The 3-D Secure messages illustrated in Chapter 5, the section “3-D Secure Messages
Diagrams,” are created as a result of executing this DTD.
3-D Secure Message Descriptions are available in Appendix C.
(2 of 3)
desc?, Recur?, install?)>
<!ELEMENT Recur (frequency, endRecur)>
<!ELEMENT TX (time, status, cavv?, eci?, cavvAlgorithm?)>
(3 of 3)
<!ELEMENT pan (#PCDATA)>
<!ELEMENT password (#PCDATA)>
<!ELEMENT protocol (#PCDATA)>
<!ELEMENT purchAmount (#PCDATA)>
<!ELEMENT serialNumber (#PCDATA)>
<!ELEMENT status (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT userAgent (#PCDATA)>
<!ELEMENT vendorCode (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT xid (#PCDATA)>
<!--
**********************************************************************
Canonicalization - http://www.w3.org/TR/2001/REC-xml-c14n-
20010315
Transform - none
* xmlns must be set to XML-Signature namespace URI
**********************************************************************
-->
Accept Headers Browser.accept C VEReq The exact content of the HTTP accept
VEReq header as sent to the merchant from
the cardholder’s user agent.
Required if the cardholder’s user
agent supplied a value.
Edit Criteria:
Length: 0-2048 characters
Format: any characters
Note: If the total length of the accept
header sent by the browser exceeds
2048 characters, the MPI must
truncate the excess portion.
Account Identifier CH.acctID C VERes The content of this field is a data string
useful to the ACS; it must not reveal
the PAN and must be generated using
an algorithm that is likely to generate
unique values, even if the same PAN
is being presented.
Edit Criteria:
Length: 1-28 characters
Format: any characters
Required if the value of PAN
Authentication Available is “Y”;
omitted otherwise.
Error Detail errorDetail R Error May identify the specific data elements
that caused the Error Code. See
Appendix C, Table C–12.
Invalid Request Code IReq.iReqCode R CRRes Code indicating the problem identified
in the request message. Must be one
VERes
of the values listed in Appendix C,
PARes Table C–9.
Edit Criteria:
● Length: 1-3 characters
Invalid Request Detail IReq.iReqDetail C CRRes May provide supporting detail, such as
the specific data elements that caused
VERes
the Invalid Request Code. Appendix
PARes C, Table C–9 defines standard
contents to be used.
Edit Criteria:
● Length: 0-2048 characters
● Format: any characters
Purchase Date & Purchase.date R PAReq Date and time of purchase expressed
Time in GMT.
Edit Criteria:
● Length: 17 characters
● Format:
YYYYMMDD HH:MM:SS where:
– YYYY = 4 numeric digits
– MM = 2 numeric digits with value
01-12
– DD = 2 numeric digits with value
01-31
– a single space follows the date
– HH = 2 numeric digits with value
00 24, followed by a colon (“:”)
– MM = 2 numeric digits with value
00 59, followed by a colon (“:”)
– SS = 2 numeric digits with value
00 59
Serial Number serialNumber C CRRes Indicates the current state of the card
range database. (The specific value is
meaningful only to the Directory
Server.)
The MPI should retain this value for
submission in a future CRReq to
request only changes that have been
made to the participating card range
list since this message was generated.
Edit Criteria:
● Length: 1-20 characters
● Format: numeric digits
(representing a maximum 64-bit
unsigned integer)
If Invalid Request Code is included,
Serial Number element must be
omitted.
Signature Date & TX.time R PARes Date and Time PARes message was
Time signed by ACS.
Value is expressed in GMT.
Edit Criteria:
● Length: 17 characters
● Format:
YYYYMMDD HH:MM:SS where:
– YYYY = 4 numeric digits
– MM = 2 numeric digits with value
01-12
– DD = 2 numeric digits with value
01-31
– a single space follows the date
– HH = 2 numeric digits with
values between 00 24, followed
by a colon (“:”)
– MM = 2 numeric digits with
values between 00 59, followed
by a colon (“:”)
– SS = 2 numeric digits with
values between 00 59
User Agent Browser.userAgen C VEReq The exact content of the HTTP user-
t agent header as sent to the merchant
from the cardholder’s user agent.
Required if the cardholder’s user
agent supplied a value.
Edit Criteria:
● Length: 0-256 characters
● Format: any characters
Note: If the total length of the user
agent header sent by the browser
exceeds 256 characters, the MPI must
truncate the excess portion.
Message Format
All messages listed in this appendix are in XML format. For XML message format, see
Appendix A, 3-D Secure XML Message Format.
This appendix provides complete descriptions for all 3-D Secure Messages, as listed:
●
CRReq
●
CRRes
●
VEReq
●
VERes
●
PAReq
●
PARes
●
Invalid Request
● Message Extensions
●
Error Message
Field-by-field descriptions for each message are listed at the end of each message
section. See Chapter 5, the section “3-D Secure Messages Diagrams,” for information
about message structure.
Inclusion Values
Table C–1 provides the definition for the Inclusion column in the field descriptions tables
throughout this appendix.
CRReq
Purpose
The CRReq (Card Range Request) is sent from the Merchant Server Plug-in (MPI) to the
Directory Server to request the list of participating card ranges in order to update the
MPI’s internal cache information.
Implementation Choices
Table 18 outlines the default validation requirements for the CRReq message. The
Payment Scheme may specify other Directory Server validations or actions in order to
meet scheme specific requirements.
Edit Criteria
If a CRReq field is present but its value does not conform to the edit criteria specified in
the table, the Directory Server will return an Error message with Error Code = 5.
Field Name DTD Element Inclusi Description Directory Server Edit Criteria
on
●
Message Version version R Version identifier; “1.0.2”. Length: 3 or more characters
Number ●
Format:
n+.n+[.n+]* where:
●
“n” represents a numeric digit
●
“+”represents “one or more”
●
“*”represents “zero or more”
The square bracket is not part of the for-
mat, but encloses the optional portion of
the string.
Additional requirements are defined in
Chapter 5, Message Handling, the sec-
tion “Versioning and Parsing—Overview.”
Acquirer BIN Merchant.acqBIN R Acquiring institution identification code. ●
Length: 1-11 characters
Note: For Visa transactions, this is typi- ● Format: numeric digits
cally a 6 digit BIN assigned to the
If the value does not represent a partici-
acquirer by Visa.
pating acquirer, DS must send a CRRes
with iReqCode = 50.
Field Name DTD Element Inclusi Description Directory Server Edit Criteria
on
●
Merchant ID Merchant.merID R Acquirer-defined merchant identifier. Length: 1-24 characters
● Format: any characters
Note: Individual Payment Schemes may
impose specific format and character
requirements on the contents of this field.
For Visa, these requirements are defined
in the acquirer Implementation Guide
(see About This Guide, the section “Visa
Implementation Guides”) and are
enforced at the time that the Merchant ID
is populated into the DS.
If the Payment Scheme or regional orga-
nization uses Merchant ID and Password
for merchant authentication, DS must
validate against values previously popu-
lated in the DS by the merchant’s acquir-
er. If so, and if the value does not
represent a participating merchant of
Merchant.acqBIN, then DS must send a
CRRes with iReqCode = 51.
Password Merchant.pass- C Merchant password provided by mer- ●
Length: 8 characters
word chant’s acquirer. ●
Format: alphanumeric
Required if Merchant ID and Password is If the Payment Scheme or regional orga-
used as the authentication methodology;
nization uses Merchant ID and Password
omitted otherwise.
for merchant authentication, DS must
The requirements for use of this field will validate against values previously popu-
be specific to the Payment Scheme. The lated in the DS by the merchant’s acquir-
Visa requirements are indicated in the er. If the password is invalid, the DS must
acquirer Implementation Guide. send a CRRes with CH.enrolled = N
and:
●
If the element is missing when re-
quired, iReqCode = 52.
●
If the password is not valid for the
combination of Merchant.acqBIN
and Merchant.merID, iReqCode =
53.
Serial Number serialNumber O A value returned in a previous CRRes. If Edit Criteria:
this element is present, the Directory ● Length: 1-20 characters
Server returns card ranges that have
●
been updated since the time of the Format: numeric digits (representing
CRRes; if this element is absent, the Di- a maximum 64 bit unsigned integer)
rectory Server returns all participating
card ranges.
If the value cannot be located (for exam-
ple, if value is too old), DS must send a
CRRes with iReqCode = 57.
CRRes
Purpose
The CRRes (Card Range Response) is sent from the Directory Server to the Merchant
Server Plug-in (MPI) in response to a CRReq messages. It is used to provide the list of
participating card ranges in order to update the MPI’s internal cache information.
“treat as an error”
For CRRes, the term “treat as an error” indicates that the MPI:
● must not store the contents of the CRRes, and
● may optionally send an Error message to the Directory Server.
Edit Criteria
If a CRRes field is present but its value does not conform to the edit criteria specified in
the table, the MPI must treat it as an error.
If the MPI sends an Error message in this situation, the Error Code must be 5.
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
●
Serial Number serialNumber C Indicates the current state of the card Length: 1-20 characters
range database. (The specific value is ●
Format: numeric digits (representing
meaningful only to the Directory Server.)
a maximum 64-bit unsigned integer)
The MPI should retain this value for sub-
mission in a future CRReq to request
only changes that have been made to the
participating card range list since this
message was generated.
If Invalid Request Code is included, Seri-
al Number element must be omitted.
Invalid Request IReq C Invalid Request Data consists of one re- If present, MPI must not store the con-
Data quired, one conditional, and one optional tents of the CRRes.
element, as listed below.
Required if the CRReq is syntactically
correct, but business processing cannot
be performed for one of the reasons de-
fined in Table C–9.
Invalid Request IReq.IReqCode R Code indicating the problem identified in ●
Length: 1-3 characters
Code the CRReq. Must be one of the values Additional values may be defined at any
listed in “Invalid Request Data Values” in
time. The MPI must accept any value.
Table C–9.
●
Invalid Request IReq.IReqDetail C May provide supporting detail, such as Length: 0-2048 characters
Detail the specific data elements that caused ●
Format: any characters
the Invalid Request Code.
Table C–9 defines standard contents for
this field.
●
Vendor Code IReq.vendorCode O Error code (or explanatory text) to use for Length: 0-256 characters
troubleshooting. ●
Format: any characters
VEReq
Purpose
The VEReq (Verify Enrollment Request) is sent by the Merchant Server Plug-in (MPI) to
the Directory Server (and by the Directory Server to the ACS) to determine whether
authentication is available for a particular PAN.
Implementation Choices
Table 20 outlines the default validation requirements for the VEReq message. The
Payment Scheme may specify other Directory Server validations or actions in order to
meet scheme specific requirements.
Edit Criteria
If a VEReq field is present but its value does not conform to the edit criteria specified in
the table, the receiving entity must return an Error message with Error Code = 5.
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
●
Message Version version R Version identifier; “1.0.2”. Length: 3 or more characters
Number ●
Format: n+.n+[.n+]* where:
– “n” represents a numeric digit
– “+”represents “one or more”
– “*”represents “zero or more”
The square bracket is not part of the for-
mat, but encloses the optional portion of
the string.
Additional requirements are defined in
Chapter 5, the section “Versioning and
Parsing—Overview.”
●
Cardholder PAN pan R Account Number; it must be the same Length: 13-19 characters
PAN that will be used in the authorization ●
Format: numeric digits
request.
If the PAN is not part of a participating
The value may be:
range, the DS must send a VERes with
● the account number on the card CH.enrolled = N.
● a permanent account number that is If the PAN is not enrolled in the Payment
only used online Scheme’s 3-D Secure program, the ACS
● must send a VERes with CH.enrolled =
produced by the wallet as a proxy
N.
●
pulled from the merchant’s local wal-
If the message has been misrouted (the
let
PAN does not belong to one of the issu-
●
or any other number that can be sub- er’s card ranges), the ACS must send a
mitted for authorization. VERes with CH.enrolled = N and iReq-
Code = 56.
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
●
Acquirer BIN Merchant.acqBIN R Acquiring institution identification code. Length: 1-11 characters
●
Note: For Visa transactions, this is typi- Format: numeric digits
cally a 6 digit BIN assigned to the
If the value does not represent a partici-
acquirer by Visa. pating acquirer, DS must send a VERes
with CH.enrolled = N and iReqCode =
50.
ACS must store value for subsequent
PAReq processing.
Merchant ID Merchant.merID R Acquirer-defined merchant identifier. Edit Criteria:
Individual Payment Schemes may im- ●
Length: 1-24 characters
pose specific format and character re- ● Format: any characters
quirements on the contents of this field.
For Visa, these requirements are defined If the Payment Scheme or regional orga-
in the acquirer Implementation Guide nization uses Merchant ID and Password
(see “Visa Implementation Guides” in for merchant authentication, DS must
About This Guide) and are enforced at validate against values previously popu-
the time that the Merchant ID is populat- lated in the DS by the merchant’s acquir-
ed into the DS. er. If so, and if the value does not
represent a participating merchant of
Merchant.acqBIN, then DS must send a
VERes with CH.enrolled = N and iReq-
Code = 51.
No ACS validation of content.
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
●
Password Merchant.pass- C Merchant password provided by mer- Length: 8 characters
word chant’s acquirer. ●
Format: alphanumeric
Required if Merchant ID and Password is
If the Payment Scheme or regional orga-
used as the authentication methodology, nization uses Merchant ID and Password
and omitted otherwise.
for merchant authentication, DS must
The requirements for use of this field will validate against values previously popu-
be specific to the Payment Scheme. The lated in the DS by the merchant’s acquir-
Visa requirements are indicated in the er. If the password is invalid, the DS must
acquirer Implementation Guide. send a VERes with CH.enrolled = N
and:
● If the element is missing when re-
quired, iReqCode = 52.
● If it is not a valid password for the
combination of Merchant.acqBIN
and Merchant.merID, iReqCode =
53.
The DS validates the Merchant pass-
word. The ACS does not.
Unless specifically stated otherwise for a
Payment Scheme implementation, the
DS must remove the Password before
forwarding the VEReq to the ACS. (The
DS may remove the field by any method
defined by the Payment Scheme, such
as removing element tags entirely, re-
moving the value leaving an empty ele-
ment, or replacing the contents with
spaces or other masking characters.)
The ACS must not reject the transaction
on the basis of this element.
Device Category Browser.device- O Indicates the type of device or channel ●
Length: 0-2 characters
Category being used for shopping. ●
Value: must be one of the following:
If the ACS does not support the device – 0 = The client environment is such
category indicated, ACS must send a that the full size messages
VERes with PAN Authentication Avail- (PAReq/PARes) will be used and
able = U. the core protocol specification
governs. For example, PC
(HTML). (Default value)
– 1 = The client is a constrained
device, such as WAP phone,
where the condensed messages
(CPRQ/CPRS) will be used and
the Extension for Mobile Inter-
net Devices must be followed.
– 2 = The client uses two-way mes-
saging (SMS or USSD) and the
Extension for Voice and Mes-
saging Channels must be fol-
lowed.
– 3 = The client uses the voice
channel and the Extension for
Voice and Messaging Channels
must be followed.
If this element is omitted, a value of 0 is
implied.
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
●
Accept Headers Browser.accept C The exact content of the HTTP accept Length: 0-2048 characters
header as sent to the merchant from the ●
Format: any characters
cardholder’s user agent.
Note: If the total length of the accept
Required if the cardholder’s user agent header sent by the browser exceeds
supplied a value.
2048 characters, the MPI must truncate
ACS may use the contents to determine the excess portion.
whether authentication is available, and
the appropriate ACS URL to return.
User Agent Browser.user- C The exact content of the HTTP user- ●
Length: 0-256 characters
Agent agent header as sent to the merchant ● Format: any characters
from the cardholder’s user agent.
Note: If the total length of the user agent
Required if the cardholder’s user agent
header sent by the browser exceeds 256
supplied a value. characters, the MPI must truncate the
ACS may use the contents to determine excess portion.
whether authentication is available, and
the appropriate ACS URL to return.
Message Exten- Extension O Any data necessary to support the re- ACS must process as defined in the sec-
sion quirements that are not otherwise de- tion, “Message Extensions” and in appli-
fined in the VEReq message must be cable protocol extension.
carried in an instance of Message Ex- Currently only 3-D Secure: Protocol
tension. Specification – Extension for Voice and
See the section, “Message Extensions” Messaging Channels defines extensions
for additional information about this ele- in the VEReq.
ment.
VERes
Purpose
The VERes (Verify Enrollment Response) is sent
● by the ACS via the Directory Server, or
●
by the Directory Server
to the Merchant Server Plug-in to advise the merchant whether authentication is available
for a particular PAN.
“treat as an error”
For VERes, the term “treat as an error” indicates the following behavior:
If the Directory Server discovers the error, it must:
● return an Error message to the ACS, and
● create a new VERes with PAN Authentication Available = “N” and send it to the MPI.
If the MPI discovers the error, it must:
Edit Criteria
If a VERes field is present but its value does not conform to the edit criteria specified in
the table, the recipient should treat as an error.
If an Error message is returned in this situation, it must have Error Code = 5.
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
●
PAN Authentica- CH.enrolled R Indicates whether the Account Identifi- Length: 1 character
tion Available er can be authenticated. ●
Value: must be one of the following:
● Y = Authentication Available
●
N = Cardholder Not Participating
●
U = Unable To Authenticate
Note: “U” is used whether the Issuer’s
inability to authenticate the account is
due to technical difficulties or business
reasons.
If the value is not “Y”, MPI must not cre-
ate a PAReq.
Account Identifier CH.acctID C The content of this field is a data string ●
Length: 1-28 characters
useful to the ACS; it must not reveal the ● Format: any characters
PAN and must be generated using an al-
gorithm that is likely to generate unique Required if the value of PAN Authentica-
values, even if the same PAN is being tion Available is “Y”; omitted otherwise.
presented. If absent when PAN Authentication
Available = “Y”, MPI must treat as an er-
ror.
ACS URL url C URL of Access Control Server to which ●
Length: 1-2048 characters
PAReq must be sent. ●
Format: fully qualified https URL (ht-
Required if the value of PAN Authentica- tps://domainname…com)
tion Available is “Y”.
If absent or not usable when PAN Au-
thentication Available = “Y”, MPI must
treat as an error.
Payment Proto- protocol C Indicates which payment protocols are ●
Length: 0-12 characters
cols supported by the issuer system for the ●
Format: any characters
Cardholder PAN specified in VEReq.
The only defined value is “ThreeDSe-
cure”.
If the value of PAN Authentication
Available is “Y”, one instance of this ele-
ment must be included. Otherwise, the
presence of this element is optional.
Invalid Request IReq C Required if the VEReq is syntactically If present, MPI must not create a PAReq.
Data correct, but business processing cannot
be performed for one of the reasons de-
fined in Table C–9.
Note: When IReq is included, the value
of PAN Authentication Available is
always “N”.
Invalid Request Data consists of one re-
quired, one conditional, and one optional
element as listed in the fields that imme-
diately follow this field.
Invalid Request IReq.iReqCode R Code indicating the problem identified in ● Length: 1-3 characters.
Code the VEReq. Must be one of the values Additional values may be defined at any
listed in “Invalid Request Data Values” in
time. The recipient must accept any val-
Table C–9.
ue.
Field Name DTD Element Inclusion Field Description Directory Server Edit Criteria
●
Invalid Request IReq.iReqDetail C May provide supporting detail, such as Length: 0-2048 characters
Detail the specific data elements that caused ●
Format: any characters
the Invalid Request Code. Table C–9
defines standard contents to be used.
●
Vendor Code IReq.vendorCode O Error code (or explanatory text) to be Length: 0-256 characters
used for troubleshooting. ● Format: any characters
Message Exten- Extension O Any data necessary to support require- MPI must process as defined in the sec-
sion ments that are not otherwise defined in tion “Message Extensions” and in appli-
the VERes message must be carried in cable protocol specification.
an instance of Message Extension.
See the section “Message Extensions”
for additional information about this ele-
ment.
PAReq
Purpose
The PAReq (Payer Authentication Request) message is sent by the Merchant Server
Plug-in to the ACS through the cardholder system, providing the data required to attempt
cardholder authentication.
Edit Criteria
If a PAReq field is present but its value does not conform to the edit criteria specified in
the table, the ACS must return an Error message with Error Code = 5.
The decimal position is indicated by the exponent. If, for example, the value of exponent
is “2”, this indicates that there are two minor units of currency.
The currency element contains the ISO numeric currency code. The ACS may either
convert this to one of the ISO alphabetic currency code (using the published ISO 4217
tables), or may use a standard currency symbol where appropriate (such as $, , or ¥).
EXAMPLE
If the value of purchAmount is “12345”, currency is “826”, and
exponent is “2”, the ACS could display this as “GBP 123.45” or
“£123.45”.
NOTE: The ACS must validate Purchase Currency to ensure that it is a valid ISO 4217
numeric currency code, as described in Chapter 4, the section “Step 7: Access
Control Server— Receive Payer Authentication Request.”
Recurring Frequency
The value of Recur.frequency indicates the minimum number of days between
authorizations. A frequency of monthly is indicated by a value of 28. The earliest possible
date for each authorization is based on the actual date of the prior authorization.
Table C–6 illustrates the earliest possible dates for a subsequent authorization when the
value of Recur.frequency is 28. Later authorizations are acceptable (until
Recur.endRecur).
If the most recent Au- ...then the earliest date However, the next au-
thorization was dated: for the next authoriza- thorization typically oc-
tion is: curs on:
Recurring Expiry
It is the responsibility of the ACS software (and the cardholder software, if any) to ensure
that the value of Recur.endRecur is not later than the card expiration date.
NOTE: The card needs to be valid only at the time of authorization. It is not a problem if it
expires between authorization and capture.
Field Name DTD Element Inclusion Field Description Access Control Server Edit Criteria
Field Name DTD Element Inclusion Field Description Access Control Server Edit Criteria
●
Purchase Date & Purchase.date R Date and time of purchase expressed in Length: 17 characters
Time GMT. ●
Format: YYYYMMDD HH:MM:SS
where:
– YYYY = 4 numeric digits
– MM = 2 numeric digits with value
01-12
– DD = 2 numeric digits with value
01-31
– a single space follows the date
– HH = 2 numeric digits with value
00 24, followed by a colon (“:”)
– MM = 2 numeric digits with value
00 59, followed by a colon (“:”)
– SS = 2 numeric digits with value
00 59
ACS should show value in Authentication
Request Page.
●
Display Amount Purchase.amount R This element must be present in the Length: 0-20 characters
message (to ensure compatibility with ● Format: any characters
the existing DTD). The content of this el-
ement is not used, and it may be empty. ACS must not use the contents of this
field in any way.
Purchase Amount Purchase.purchA- R Purchase amount in minor units of cur- ●
Length: 1-12 characters
mount rency with all punctuation removed. ●
Format: numeric digits
Example: If the purchase is for USD
ACS must use content in Authentication
123.45, the purchAmount element will Request Page, as described in the sec-
contain the value 12345.
tion “Displaying Purchase Amount.”
Purchase Curren- Purchase.curren- R Currency in which purchase amount is ●
Length: 3 characters
cy cy expressed. ●
Format: numeric digits
●
Value: ISO 4217 three digit currency
code, other than those listed in
Table C–9.
If not a valid ISO currency code, ACS
must send a PARes with iReqCode =
54.
ACS must use value to display Purchase
Amount, as described in the section
“Displaying Purchase Amount.”
Currency Expo- Purchase.expo- R The minor units of currency specified in ● Length: 1 character
nent nent ISO 4217. For example, US Dollars has a ●
Format: numeric digit
value of 2; Japanese Yen has a value of
● Value: exponent defined for currency
0.
code in ISO 4217
If not a valid exponent for Purchase.cur-
rency per ISO 4217, ACS must send a
PARes with iReqCode = 55.
ACS must use value to display Purchase
Amount, as described in the section
“Displaying Purchase Amount.”
Order Description Purchase.desc O Brief description of items purchased. ● Length: 0-125 characters
●
Format: any characters
Field Name DTD Element Inclusion Field Description Access Control Server Edit Criteria
●
Recurring Pay- Purchase.Recur C Required if the merchant and cardholder Both child elements must be present.
ment Data have agreed to recurring payments. ●
Either both child elements must be
The recurring payment data consists of empty, or both must contain valid con-
two required data elements as listed in tents.
the fields immediately following this field..
Recurring Fre- Recur.frequency R Indicates the minimum number of days ● Length: 0-4 characters
quency between authorizations. ●
Format: numeric digits
See the section “Recurring Frequency”
for additional information.
●
Recurring Expiry Recur.endRecur R The date after which no further authori- Length: 0 or 8 characters
zations should be performed. ●
Format: YYYYMMDD where:
This date must be in the future. – YYYY = 4 numeric digits
See “Recurring Frequency” for additional – MM = 2 numeric digits with value
information. 01-12
– DD = 2 numeric digits with value
01-31
●
Installment Pay- Purchase.install C Indicates the maximum number of per- Length: 0-3 characters
ment Data mitted authorizations for installment pay- ●
Format: numeric digits
ments.
●
Value: must be >1 (if not empty)
Required if the merchant and cardholder
have agreed to installment payments.
Account Identifier CH.acctID R From VERes. Length: 1-28 characters
Format: any characters
If does not match a previous available
VEReq, ACS must send a PARes with
Transaction Status = “U” and iReq-
Code = 55 or 56.
Note: If ACS is unable to sign the PARes
(for example, because ACS responds on
behalf of multiple issuers and therefore
cannot select the correct signing certifi-
cate), ACS must send Error message
with errorCode = 5.
Card Expiry Date CH.expiry R Expiration Date supplied to merchant by ●
Length: 4 characters
cardholder (YYMM). ●
Format: numeric digits
Message Exten- Extension O Any data necessary to support the re- ACS must process as defined in “Mes-
sion quirements that are not otherwise de- sage Extensions” and in applicable pro-
fined in the PAReq message must be tocol specification.
carried in an instance of Message Ex-
tension.
See the section “Message Extensions”
for additional information about this ele-
ment.
PARes
Purpose
The PARes (Payer Authentication Response) message is sent by the ACS in response to
the PAReq, regardless of whether authentication is successful.
Signature Validation
The MPI must alert the merchant if the signature on the PARes cannot be validated using
the Root certificate required by the Payment Scheme. This condition should be
considered the same as a failed authentication.
“treat as an error”
In the “Validation” column of Table C–8, the term “treat as an error” indicates that the MPI
must:
● end transaction processing,
● indicate the error condition to the merchant, and
● optionally send an Error message to the ACS.
Edit Criteria
If a PARes field is present but its value does not conform to the edit criteria specified in
the table, the MPI should return an Error message with Error Code = 5.
Field Name DTD Element Inclusion Field Description Merchant Plug-in Edit Criteria
Field Name DTD Element Inclusion Field Description Merchant Plug-in Edit Criteria
●
Cardholder PAN pan R Cardholder Account Number. Length: 13-19 characters
●
Format: numeric digits
● Value:
When Transaction Status is “Y” or “A”,
this field must include the last four digits
of the PAN supplied in the VEReq, pre-
ceded by zeros:
●
0000000001234(13 digit PAN)
● 0000000000001234(16 digit PAN)
When Transaction Status = “N” or “U”,
this field must be all zeros: one for each
digit of the original PAN in the VEReq.
If Transaction Status is “Y” or “A” and
the last four digits do not match the PAN
supplied in the VEReq, MPI must treat as
an error.
In some regional or Payment Scheme im-
plementations, the full PAN may be pro-
vided without overlaying any of the digits.
Signature Date & TX.time R Date and Time PARes message was ●
Length: 17 characters
Time signed by ACS. ●
Format: YYYYMMDD HH:MM:SS
Value is expressed in GMT. where:
– YYYY = 4 numeric digits
– MM = 2 numeric digits with value
01-12
– DD = 2 numeric digits with value
01-31
– a single space follows the date
– HH = 2 numeric digits with values
between 00 24, followed by a
colon (“:”)
– MM = 2 numeric digits with values
between 00 59, followed by a
colon (“:”)
– SS = 2 numeric digits with values
between 00 59
Field Name DTD Element Inclusion Field Description Merchant Plug-in Edit Criteria
●
Transaction Sta- TX.status R Indicates whether a transaction qualifies Length: 1 character
tus as an authenticated transaction. ●
Value: must be one of the following:
– Y =Authentication Successful.
Customer was successfully
authenticated. All data needed for
clearing, including the Card-
holder Authentication Verifica-
tion Value, is included in the
message.
– N =Authentication Failed
– Customer failed or cancelled
authentication. Transaction
denied.
– U = Authentication Could Not Be
Performed. Authentication could
not be completed, due to technical
or other problem, as indicated in
PARes.IReq.
– A = Attempts Processing Per-
formed. Authentication could not
be completed, but a proof of
authentication attempt (CAVV)
was generated.
●
Cardholder Au- TX.cavv C Contains a 20 byte value that has been Length: 28 characters
thentication Verifi- Base64 encoded, giving a 28 byte result. ●
Format: Base64-encoded data
cation Value
See 3-D Secure: Functional Require- Required when the value of Transaction
ments – Access Control Server for infor-
Status is “Y” or “A”.
mation about producing this value.
Note: MPI must make this data available
to the merchant/acquirer. The merchant
and acquirer may need to include the
CAVV in the authorization in order to
demonstrate that authentication
occurred.
Electronic Com- TX.eci C This Payment Scheme specific element ●
Length: 0 or 2 characters
merce Indicator represents the value of the ECI, as deter- ●
Value: numeric digits
mined by the ACS.
Required for Visa, MasterCard and JCB
transactions when the value of Transac-
tion Status is “Y” or “A”.
Required for Visa, MasterCard and JCB
transactions when the value of Transac-
tion Status is “Y” or “A”.
●
CAVV Algorithm TX.cavvAlgorithm C Indicates the algorithm used to generate Length: 0-1 character
the Cardholder Authentication Verifica- Value must be one of the following:
tion Value.
● 0 = HMAC (as per SET™ TransStain)
If the CAVV field is included, the CAVV (no longer in use for version 1.0.2)
algorithm field must also be included.
● 1 = CVV (no longer in use for version
If the CAVV field is missing, the CAVV al- 1.0.2)
gorithm field must also be missing.
● 2 = CVV with ATN
● 3 = MasterCard SPA algorithm
Field Name DTD Element Inclusion Field Description Merchant Plug-in Edit Criteria
Invalid Request IReq C Invalid Request Data consists of one re- Required if the PAReq is syntactically
Data quired, one conditional, and one optional correct, but business processing cannot
element as listed below. be performed for one of the reasons de-
fined in Table C–9.
Note: When IReq is included, the value
of Transaction Status is always “U”.
Invalid Request IReq.iReqCode R Code indicating the problem identified in ●
Length: 1-3 characters
Code the PAReq.
Must be one of the values listed in “In-
valid Request Data Values” in Table C–9.
Note: Additional values may be defined
at any time. The MPI must accept any
value.
Invalid Request IReq.iReqDetail C May provide supporting detail, such as ●
Length: 0-2048 characters
Detail the specific data elements that caused ●
Format: any characters
the Invalid Request Code. Table C–9
defines standard contents to be used. The contents of this field may be used for
problem resolution.
●
Vendor Code IReq.vendorCode O Error code (or explanatory text) to be Length: 0-256 characters
used for trouble shooting. ● Format: any characters
The contents of this field may be used for
problem resolution, if necessary, by the
operators of the ACS.
Message Exten- Extension O Any data necessary to support require- MPI must process as defined in “Mes-
sion ments that are not otherwise defined in sage Extensions” and in applicable pro-
the PARes message must be carried in tocol specification.
an instance of Message Extension.
See the section “Message Extensions”
for additional information about this ele-
ment.
Invalid Request
Data Values
Table C–9 lists and describes the currently defined values for Invalid Request Code
(iReqCode), and specifies the contents of Invalid Request Detail (iReqDetail) when
applicable. Vendor Code may also be included, at the discretion of the application
developer.
Note that additional iReqCode values may be defined at any time. All components must
accept any value.
54 ISO code not valid per ISO tables (for either coun- Name of invalid element(s); if more than one in-
try or currency), or code is one of the excluded valid element is detected, this is a comma-delimit-
values listed in Table C–10. ed list.
If PAReq.Purchase.currency and PAReq.Pur-
chase.exponent form an invalid pair, list both as
iReqDetail.
55 Transaction data not valid. For example: Name of invalid element(s); if more than one in-
●
valid element is detected, this is a comma-delimit-
PAReq.acctid <> VERes.acctid
ed list.
●
PAReq.version <> VERes.version
56 If in response to a VEReq: Cardholder PAN is not Name of element(s) that caused the ACS to de-
in a range belonging to issuer. cide that the VEReq or PAReq was incorrectly
routed; if more than one invalid element is detect-
If in response to a PAReq: PAReq was incorrectly
ed, this is a comma-delimited list.
routed; either:
● the PAReq was received by the wrong ACS, or
● the PAReq should never have been sent,
based on the values in the VERes, or
●
a PAReq with this Account Identifier has al-
ready been received and processed.
959 Gold
960 I.M.F.
961 Silver
962 Platinum
964 Palladium
Message Extensions
Requirements may emerge that cannot be supported by elements in the 3-D Secure
messages; any data necessary to support these requirements must be carried in a
message extension.
true
false
Identification
Each message extension defined for use in 3-D Secure must have a unique identifier
assigned to it. Examples of unique identifiers are:
● Object identifiers (OID)
● Uniform Resource Identifiers (URI)
The party defining the message extension specifies the format of the identifier (OID, URI,
etc.) and the value.
Criticality
The data in a message extension may affect the meaning of the rest of the data such that
the entire message can only be understood in the context of the extension data. When
this occurs, the extension is deemed to be critical and the value of the critical attribute
must be “true”.
When an extension is critical, recipients of the message must recognize and be able to
process the extension. If a 3-D Secure application other than the DS receives a message
containing a critical extension that it does not recognize, it must treat the message as
invalid.
NOTE: Directory Server requirements for responding to an unrecognized critical
Extension element are described in Table 5–1.
When an extension is non-critical, recipients that cannot process the extension must
ignore the data.
Error Message
Purpose
The Error message must be returned when the incoming request or response cannot be
successfully processed at a protocol level (such as bad XML).
NOTE: Implementations may limit the number of Error messages that are sent to a given
requester in order to mitigate the effects of denial-of-service attacks.
Message ID
If the 3-D Secure component is able to determine the message id of the message in error,
it must use the same id in the Error message. If an id cannot be determined from the
message that is in error (such as when the root element is unrecognized or the Message
element is missing), the 3-D Secure component must generate an id using an algorithm
that is likely to generate unique ids.
Related Elements
Table C–12 lists and describes the currently defined values for Error Code, and specifies
the contents of Error Detail when applicable.
NOTE: Additional Error Code values may be defined at any time. All components must
accept any value.
1 Root element invalid. Root element is not recog- The invalid root element.
nized.
2 Message element not a de- Message is not CRReq, The invalid message element.
fined message. CRRes, VEReq, etc., or a val-
id message is sent to an inap-
propriate component (such as
PAReq being sent to the Di-
rectory Server)
4 Critical element not recog- None required. Name of critical element that
nized. was not recognized.
5 Format of one or more ele- For example, not numeric, not Name of invalid element(s); if
ments is invalid according to in defined date format, etc. more than one invalid ele-
the specification. ment is detected, this is a
comma-delimited list.
6 Protocol version too old. Only version 1.0.2 is support- The oldest version supported.
ed.
52 Password Missing
53 Incorrect password
98 Transient system failure For example, a queue pro- A description of the failure.
cessing requests is full.
99 Permanent system failure For example, the disk contain- A description of the failure.
ing a critical database cannot
be accessed.
Error Code errorCode R Code indicating the problem identified in the message. Must
be one of the values listed in Table C–12.
Edit Criteria:
● Length: 1-2 characters
Note: Additional values may be defined at any time. All com-
ponents must accept any value.
Error Description errorMessage R Text describing the problem identified in the message. See
Table C–12.
Edit Criteria:
● Length: 0-2048 characters
● Format: any characters
Error Detail errorDetail R May identify the specific data elements that caused the Error
Code. See Table C–12.
Vendor Code vendorCode O Error code (or explanatory text) to be used for trouble shooting.
Edit Criteria:
● Length: 0-256 characters
● Format: any characters
Compression Algorithms
The algorithm used for compression must be the DEFLATE algorithm, as specified in
RFC1951. The resulting data stream must be represented in the ZLIB compressed data
format, as specified by RFC1950. The compression method must be “deflate” and the
compression level should be “default” or “most compressed.” However, decompressors
should be prepared to accept any compression level.
No other transformation or padding is to be done on the data stream. Thus in order to
send PAReq, the following sequence occurs:
1. The MPI builds the XML PAReq, in canonical format according to the DTD.
2. It passes the XML stream to an RFC1951-compliant compressor, which produces an
RFC1950-compliant output stream.
3. The output stream is Base64 encoded.
4. The Base64 data is passed to the ACS through the browser as specified earlier.
5. The ACS decodes the Base64 data into an RFC1950 compliant stream.
6. The RFC1950 stream is passed to an RFC1951 compliant de-compressor, which
generates the original XML.
This section includes selected terms and acronyms related to 3-D Secure.
A more extensive 3-D Secure glossary is available in 3-D Secure: System Overview, available
through the “Vendors & Merchants” link on http://corporate.visa.com.
3-D Secure
An e-commerce protocol that enables the secure processing of payment card transactions in
the remote environment; one of the supported protocols of the Visa Authenticated Payment
Program.
absent
An element is absent if its tags do not occur in the message. For example, element c is absent
from the following XML instance:
<a><b>some data</b></a>
Contrast empty. See also missing.
acquirer
A Member financial institution that establishes a contractual service relationship with a
merchant for the purpose of accepting payment cards. In 3-D Secure, determines whether
merchant is eligible to participate. Performs traditional role of receiving and forwarding
authorization and settlement messages (enters transaction into interchange).
Acquirer Domain
Contains the systems and functions of the acquirer and its customers, such as merchants.
ACS
See Access Control Server.
AHS
See Authentication History Server.
ATN
See Authentication Tracking Number.
Attempts functionality
For Visa implementations: The process by which the proof of an authentication attempt is
generated, when payment authentication is not available. Described in 3-D Secure: Functional
Requirements – Access Control Server, Visa Publication 70002 01. Effective with 3-D Secure
protocol version 1.0.2.
authentication
In the context of 3-D Secure, the process of verifying that the person making an e-commerce
purchase is entitled to use the payment card.
authorization
A process by which an issuer, or a processor on the issuer’s behalf, approves a transaction for
payment.
authorization system
The systems and services through which a Payment Scheme delivers online financial
processing, authorization, clearing and settlement services to Members.
See, for example, VisaNet.
Base64
Encoding applied to the PAReq and PARes messages before they are passed through the
browser, and defined in RFC 2045.
BIN
See Bank Identification Number.
browser
A client program that allows users to read hypertext documents on the World Wide Web and
navigate between them. Examples are Netscape Navigator and Microsoft Internet Explorer.
In 3-D Secure, acts as a conduit to transport messages between the Merchant Server Plug-in
(in the Acquirer Domain) and the Access Control Server (in the Issuer Domain).
cardholder
Party that holds a payment card, shops, provides card number, and commits to payment.
cardholder software
Optional cardholder software which may supplement the abilities of the browser. Chip card
authentication, for example, requires cardholder software sometimes referred to as terminal
software.
CAVV
See Cardholder Authentication Verification Value.
certificate
An electronic document that contains the public key of the certificate holder and which is
attested to by a certificate authority and rendered not forgeable by cryptographic technology
(signing with the private key of the certificate authority).
certificate authority
A trusted party that issues and revokes certificates.
See also Scheme Certificate Authority.
certificate chain
An ordered grouping of digital certificates, including the Root certificate, that are used to
validate a specific certificate.
chip
An integrated circuit containing memory and logic where a copy of the VSDC application is
stored and executed.
chip card
A payment card with an integrated circuit chip that stores information about the account and
user.
compression
In the context of 3-D Secure, refers to the use of the DEFLATE algorithm to decrease the size
of the PAReq or PARes before Base64 encoding. See Appendix D for details.
core protocol
The protocol described in this publication.
CPRQ
Condensed Payer Authentication Request, used for 3-D Secure transactions performed with
mobile Internet devices. Described in 3-D Secure: Protocol Specification – Extension for Mobile
Internet Devices, Visa Publication 70006 01.
See Payer Authentication Request.
CPRS
Condensed Payer Authentication Response, used for 3-D Secure transactions performed with
mobile Internet devices.
See Payer Authentication Response.
CRReq
See Card Range Request.
CRRes
See Card Range Response.
cryptography
The process of protecting information by transforming it into an unreadable format. The
information is encrypted using a key, which makes the data unreadable, and is later decrypted
when the information needs to be used again.
digital certificate
See certificate.
digital signature
An asymmetric cryptographic method whereby the recipient of the data can prove the origin
and integrity of data, thereby protecting the sender of the data and the recipient against
modification or forgery by third parties and the sender against forgery by the recipient. Contrast
with Message Authentication Code.
digital wallet
A software component that allows a user to make an electronic payment with a financial
instrument (such as a credit card) while hiding the low level details of executing the payment
protocol, including such tasks as entering an account number and providing shipping
information and cardholder identifying information.
Directory Server
A server hardware/software entity operated in the Interoperability Domain; it maintains lists of
card ranges for which authentication may be available and coordinates communication
between Merchant Server Plug-ins and Access Control Servers, to determine whether
authentication is available for a particular card number and device type.
empty
An element is empty if its tags occur in a message, but no content is defined. For example,
element c is empty in the following XML instance:
<a><b>some data</b><c></c></a>
Contrast absent. See also missing.
EMV
The EMV Integrated Circuit Card Specifications for Payment Systems developed jointly by
Europay, MasterCard, and Visa.
Enrollment Server
A server hardware/software entity operated in the Issuer Domain; it manages cardholder
enrollment in 3-D Secure, for example by presenting a series of questions via a Web interface
to be answered by the cardholder and verified by the issuer.
HTML
Hypertext Markup Language, a computer programming language used to define pages on the
World Wide Web.
HTTP
Hypertext Transport Protocol.
HTTPS
Hypertext Transport Protocol, Secure, uses the TLS/SSL protocol to ensure the secure
transmission of data over the Internet. Also called S HTTP.
Interoperability Domain
Facilitates the transfer of information between the Issuer Domain and Acquirer Domain
systems.
issuer
A Member financial institution that issues payment cards, contracts with cardholder to provide
card services, determines eligibility of cardholder to participate in 3-D Secure, and identifies for
the Directory Server card number ranges eligible to participate in 3-D Secure.
Issuer Domain
Contains the systems and functions of the issuer and its customers (cardholders).
key
In cryptography, the value needed to encrypt and/or decrypt a value.
key management
The handling of cryptographic keys and other security parameters during the entire lifetime of
the keys, including generation, storage, entry and use, deletion or destruction, and archiving.
MAC
See Message Authentication Code.
merchant
Entity that contracts with an acquirer to accept payment cards. Manages the online shopping
experience with the cardholder, obtains card number, then transfers control to the Merchant
Server Plug-in, which conducts payment authentication.
missing
An element is missing either if it is absent (that is, its tags do not occur in the message) or if it is
present and empty. For example, element c is missing in both of the following XML instances:
<a><b>some data</b></a>[element absent]
<a><b>some data</b><c></c></a>[element empty]
MPI
See Merchant Server Plug-in.
PAReq
See Payer Authentication Request.
PARes
See Payer Authentication Response.
PATransReq
Payer Authentication Transaction Request; a record of authentication activity sent by the ACS
to the Authentication History Server
Refer to the 3-D Secure: Functional Requirements – Access Control Server for additional
details.
PATransRes
Payer Authentication Transaction Response; Authentication History Server response to
PATransReq
Refer to the 3-D Secure: Functional Requirements – Access Control Server for additional
details.
Payment Scheme
A payment card system which defines the operating rules and conditions, and specifies the
requirements for card issuance and merchant acceptance.
private key
Part of an asymmetric cryptographic system. The key that is kept secret and known only to an
owner.
proof of attempt
See Attempts functionality.
public key
Part of an asymmetric cryptographic system. The key known to all parties.
secret key
A key used in a symmetric cryptographic algorithm such as DES which, if disclosed publicly,
would compromise the security of the system.
specifications
See 3-D Secure specifications.
SSL
See Secure Sockets Layer.
Three-Domain Secure
See 3-D Secure.
TLS
See Transport Layer Security.
URL
See Uniform Resource Locator.
VEReq
See Verify Enrollment Request.
VERes
See Verify Enrollment Response.
VIS
Visa Integrated Circuit Card Specification.
Visa Directory
See Directory Server.
VisaNet
The systems and services, including the V.I.P. and BASE II systems, through which Visa
delivers online financial processing, authorization, clearing and settlement services to
Members.
VisaNet is a specific authorization system.
VSDC
Visa Smart Debit and Credit. The Visa service offerings for chip based debit and credit
programs which are based on EMV and VIS specifications and are support by VisaNet
processing, as well as by Visa rules and regulations.
wallet
See digital wallet.
XML
Extensible Markup Language.