Cybersource Payer Authentication
Cybersource Payer Authentication
Authentication
REST API
Developer Guide
Cybersource Contact Information
For general information about our company, products, and services, go to https://www.cybersource.com.
For sales questions about any Cybersource service, email [email protected] or call 650-432-7350 or 888-330-2300 (toll free in
the United States).
For support information about any Cybersource service, visit the Support Center: https://www.cybersource.com/support
Copyright
© 2020. Cybersource Corporation. All rights reserved. Cybersource Corporation (“Cybersource”) furnishes this document and the
software described in this document under the applicable agreement between the reader of this document (“You”) and Cybersource
(“Agreement”). You may use this document and/or software only in accordance with the terms of the Agreement. Except as expressly
set forth in the Agreement, the information contained in this document is subject to change without notice and therefore should not
be interpreted in any way as a guarantee or warranty by Cybersource. Cybersource assumes no responsibility or liability for any errors
that may appear in this document. The copyrighted software that accompanies this document is licensed to You for use only in strict
accordance with the Agreement. You should read the Agreement carefully before using the software. Except as permitted by the
Agreement, You may not reproduce any part of this document, store this document in a retrieval system, or transmit this document, in
any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written consent of Cybersource.
For civilian agencies: Use, reproduction, or disclosure is subject to restrictions set forth in suparagraphs (a) through (d) of the
Commercial Computer Software Restricted Rights clause at 52.227-19 and the limitations set forth in Cybersource Corporation's
standard commercial agreement for this software. Unpublished rights reserved under the copyright laws of the United States.
Trademarks
Authorize.Net, eCheck.Net, and The Power of Payment are registered trademarks of Cybersource Corporation. Cybersource,
Cybersource Payment Manager, Cybersource Risk Manager, Cybersource Decision Manager, and Cybersource Connect are trademarks
and/or service marks of Cybersource Corporation. Visa, Visa International, Cybersource, the Visa logo, and the Cybersource logo
are the registered trademarks of Visa International in the United States and other countries. All other trademarks, service marks,
registered marks, or registered service marks are the property of their respective owners.
Condentiality Notice
This document is furnished to you solely in your capacity as a client of Cybersource and as a participant in the Visa payments system.
By accepting this document, you acknowledge that the information contained herein (the “Information”) is condential and subject
to the condentiality restrictions contained in Visa's operating regulations and/or other condentiality agreements, which limity our
use of the Information. You agree to keep the Information condential and not to use the Information for any purpose other than its
intended purpose and in your capacity as a customer of Cybersource or as a participant in the Visa payments system. The Information
may only be disseminated within your organization on a need-to-know basis to enable your participation in the Visa payments system.
Please be advised that the Information may constitute material non-public information under U.S. federal securities laws and that
purchasing or selling securities of Visa Inc. while being aware of material non-public information would constitute a violation of
applicable U.S. federal securities laws.
Revision
Version: 23.02
Contents
Contents
Cybersource Contents 3
Contents
Cybersource Contents 4
Contents
Cybersource Contents 5
Test Case 4a: Trusted Beneciary Prompt for Trustlist........................................ 171
Test Case 4b: Utilize Trusted Beneciary Exemption............................................ 171
Test Case 5a-1: Identity Check Insights (ScoreRequest = N).............................. 172
Test Case 5a-2: Identity Check Insights (ScoreRequest = Y)..............................172
Website Modication Reference..................................................................................................174
Website Modication Checklist..........................................................................................174
3-D Secure Services Logos................................................................................................ 174
Informational Message Examples....................................................................................... 176
Alternate Methods for Device Data Collection......................................................................... 177
Device Data Collection Overview....................................................................................... 177
Prerequisites.................................................................................................................177
Endpoints...................................................................................................................... 178
Collecting Device Data.........................................................................................................178
Card BIN in JWT........................................................................................................... 178
Card BIN as a POST Parameter Plus JWT................................................................ 179
Upgrading Your Payer Authentication Implementation........................................................... 180
Benets.................................................................................................................................. 180
PSD2 Impact...........................................................................................................................180
Mandates....................................................................................................................... 181
Recommended Integration...................................................................................................181
Migration FAQ.........................................................................................................................181
Payer Authentication Transaction Details in the Business Center........................................ 183
Payer Authentication Search..............................................................................................183
Storing Payer Authentication Data....................................................................................183
Searching for Payer Authentication Details.....................................................................184
Enrolled Card............................................................................................................... 184
Card Not Enrolled....................................................................................................... 185
Payer Authentication Reports......................................................................................................186
Payer Authentication Summary Report............................................................................ 186
Downloading the Report............................................................................................186
Matching the Report to the Transaction Search Results.....................................187
Interpreting the Report............................................................................................. 187
Comparing Payer Authentication and Payment Reports...................................... 188
Payer Authentication Detail Report.................................................................................. 189
Report Elements..........................................................................................................189
Report............................................................................................................................189
PayerAuthDetail........................................................................................................... 190
ProofXML...................................................................................................................... 192
VEReq............................................................................................................................ 193
VERes.............................................................................................................................194
PAReq.............................................................................................................................194
PARes.............................................................................................................................196
AuthInfo........................................................................................................................ 198
Report Examples......................................................................................................... 198
Glossary............................................................................................................................................201
Recent Revisions to This Document
23.02
Updated American Express Test Numbers • An extra digit was inserted into the
American Express test card numbers
when syncing the test card numbers to
the Cardinal test numbers. The extra digit
was removed.
• The American Express test card number
for the 3-D Secure 2.14: Require
MethodURL test case was updated.
Test Results for Exemption Test Case The reason code result for the exemption
Updated test case 2c: Cardholder Not Enrolled in
Service was updated.
List of Required and Optional Fields was The lists of required and optional elds
Audited were veried to ensure that all eld names
were included in the lists.
23.01
Updated 3-D Secure 2.x Test Cases • All test card numbers used for testing 3-
D Secure 2.x were changed to the same
card numbers used by Cardinal.
• Updated the expected results for several
test cases.
22.07
3-D Secure 2.0 has made test cases for 3-D Added a note to explain that 3-D Secure
Secure 1.0 obsolete 2.0 which took effect in October 2022,
supersedes the 1.0 version so most users
should not use the 1.0 test cases. However,
since some countries were granted an
extension to continue to use 1.0, the
test cases are still available for those
users. See 3-D Secure 1.0 Testing for more
information.
22.06
Editorial changes only.
22.05
Updated Required and Optional API elds • Eliminated redundancies between
required and optional API elds.
• Moved browser elds from required to
optional elds and marked them with an
asterisk.
22.04
Minor updates • Noted that merchants using tokens
or digital payments must use PA Setup
Service unless they are using Cardinal
Mobile integration. See Tokenization and
Digital Payments Options.
• Added description of Cardinal's
consumerSessionId API eld and
noted its value must be passed to the
payerAuthEnrollService_referenceId API
eld. See Setup the Initial Call.
Scope
This guide describes how to use the REST API to integrate payer authentication services
with your order management system. It does not describe how to get started using the
REST API nor does it explain how to use services other than payer authentication. For that
information, see the Related Documents section.
Conventions
These special statements are used in this document:
Important
An Important statement contains information essential to successfully completing
a task or learning a concept.
Warning
A Warning contains information or instructions, which, if not followed, can result in
a security risk, irreversible loss of data, or signicant cost in time or revenue.
Related Documentation
Refer to the Support Center for complete technical documentation:
Customer Support
For support information about any service, visit the Support Center:
customer supportcustomer support
Introducing Payer
Authentication
Payer authentication services use front-end JavaScript and back-end API services to
provide authentication. Payer authentication services enable you to add support to your
web store for card authentication services, including:
SM
• Visa Secure
• Mastercard Identity Check®
• Maestro® (UK Domestic and international)
SM
• American Express SafeKey
• JCB J/Secure™
• Diners Club ProtectBuy
• Discover ProtectBuy
• China UnionPay
• Elo Compra Segura
These card authentication services deter unauthorized card use and protect you from
fraudulent chargeback activity referred to as liability shift. However, payer authentication
is not a fraud management service, such as Decision Manager. It is recommended
that you implement a comprehensive fraud management program in addition to payer
authentication services.
You can use payer authentication services with specic payment processors.
To nd out if your payment processor supports this feature, see the “Payer
Authentication” section in the Credit Card Services guide.
region that issued the card. Payment card company rules might vary over time and across
geographical regions. Contact your merchant account provider to learn how to interpret
chargeback requirements and to discover which chargeback protections are offered.
PSD2
PSD2 (Payment Service Directive 2) is the new European regulatory framework that
governs payment processing and customer security and authentication. PSD2 establishes
a European Economic Area (EEA) single market for payments to encourage safer and more
innovative payment services. PSD2 mandates Strong Customer Authentication (SCA) for
all electronic payments. This requirement affects the way merchants receive payments
from customers and how customers are authenticated. PSD2 stipulates that two-factor
authentication must be applied for all electronic payments.
• Successful—Proceed to authorization and append the 3-D Secure data points to the
authorization message.
• Failed, Unavailable, or Rejected—The cardholder is returned to the payment page to
attempt payment with a different card.
Host Names
The host names that you use depend upon the environment receiving the request. Use
a testing environment as a sandbox to test your system conguration by simulating
transactions with various payment cards. Use the production environment to process real
transactions.
Testing Environment
https://apitest.cybersource.com
Production Environment
https://api.cybersource.com
Endpoints
All requests to the payer authentication resource use a POST to these endpoints.
Endpoints
Endpoint Description
6. Test your 3-D Secure 2.x services. This testing ensures that you understand the
possible use cases as part of implementation. Refer to Testing Payer Authentication
Services and run the test cases in Test Cases for 3-D Secure 2.x.
7. Congure your account for production by requesting a boarding form from customer
supportcustomer support for your processor or acquirer.
8. If you are new to payer authentication, complete the boarding form with required
information including your merchant ID, your acquirer merchant ID, and Bank
Identication Number (BIN) information for all chosen card types. For details, see
Required Merchant Information on page 17.
Information Description
Visa, Mastercard, Maestro, Information provided by your bank acquirer about each
American Express, JCB, payment card company for which you are congured:
Diners Club, Discover,
• Eight-digit BIN numbers.
China UnionPay, and Elo
information Acquirer • Acquirer merchant ID: merchant ID assigned by your
merchant ID acquirer.
• All currencies that you can process.
Implementing Cardinal
Cruise Direct Connection
API Payer Authentication
The Cardinal Cruise Direct Connection API supports 3-D Secure 2.x and is backward-
compatible with 3-D Secure 1.0 when the issuer or acquirer is not ready for 2.x. This
integration enables you to use an iframe to complete the device proling and 3-D Secure
authentication requirements without including third-party JavaScript directly on your site.
The implementation still requires the use of JavaScript on the page, and it uses
CardinalCommerce JavaScript to leverage the authentication. The CardinalCommerce
JavaScript is hosted and contained in the iframe and does not directly access your web
page.
Prerequisites
Notify your account representative that you want to implement payer authentication (3-D
Secure) using the Cardinal Cruise Direct Connection API. Provide the merchant ID that you
will use for testing. For more information, see Required Merchant Information.
Before you can implement payer authentication services, your business team must
contact your acquirer and Cybersource to establish the service. Your software
development team should become familiar with the API elds and technical details of this
service.
Request Fields
When requesting the Payer Authentication Setup service, you must send either the
customer’s card number, encrypted payment data, transient token, or a TMS token or
some other equivalent of card data used by your integration. The request elds may
include any of the following:
• paymentInformation.card.numberpaymentInformation.tokenizedCard.number
• paymentInformation.customer.customerId
• tokenInformation.transientToken
The paymentInformation.card.type eld is required when the card type is Cartes Bancaires
or UPI.
• Form POST Action: The POST that goes to the URL that is opened within the iframe is
from the consumerAuthenticationInformation.deviceDataCollectionUrl response eld
discussed in Step 1: Payer Authentication Setup Service on page 20.
• JWT POST Parameter: Use the value from the
consumerAuthenticationInformation.accessToken response eld discussed in Step 1:
Payer Authentication Setup Service on page 20.
<script>
window.onload = function() {
var cardinalCollectionForm = document.querySelector('#cardinal_collection_form');
if(cardinalCollectionForm) // form exists
cardinalCollectionForm.submit();
}
</script>
window.addEventListener("message", function(event) {
if (event.origin === https://centinelapistag.cardinalcommerce.com) {
console.log(event.data);
}
}, false);
This example shows a response payload from the event. None of the returned data needs
to be stored for future use.
Event Listener Callback Payload
{
"MessageType": "prole.completed",
"Session Id": "f54ea591-51ac-48de-b908-eecf4ff6beff",
"Status": true
}
Request Fields
The consumerAuthenticationInformation.referenceId eld is mapped from the
consumerAuthenticationInformation.referenceId eld as discussed in Step 1: Payer
Authentication Setup Service on page 20.
consumerAuthenticationInformation.returnUrl is set to the URL where the issuing bank
will redirect the customer as discussed in Step 4: Step-Up IFrame on page 26.
To request the Payer Authentication Check Enrollment service, you must send either
the customer’s card number, encrypted payment data, transient token, or a TMS token
or transient token or some other equivalent of card data used by your integration. The
request elds may include any of these:
• paymentInformation.card.number
• paymentInformation.uidData.value
• paymentInformation.uidData.descriptor
• paymentInformation.customer.customerID
• tokenInformation.transientToken
These elds are required (merchant ID is in the header):
• orderInformation.amountDetails.totalAmount
• orderInformation.billTo.address1
• orderInformation.billTo.locality
• orderInformation.billTo.country
• orderInformation.billTo.administrativeArea
• orderInformation.billTo.postalCode
• paymentInformation.card.type
• orderInformation.amountDetails.currency
• paymentInformation.card.expirationMonth
• paymentInformation.card.expirationYear
• orderInformation.billTo.email
• orderInformation.billTo.rstName
• orderInformation.billTo.lastName
• consumerAuthenticationInformation.referenceId
• consumerAuthenticationInformation.returnUrl
• clientReferenceInformation.code
You can send additional request data to reduce your issuer step-up authentication rates.
Send all available elds. As a backup, in case, device data collection fails, it is a good idea
to include the 11 device information elds listed among the optional elds for the Check
Enrollment service in your request. If a failure does occur, adding these device information
elds ensures a transaction is not downgraded to 3-D Secure 1.0. If you do not have data
for a eld, do not send dummy data.
The size of the step-up iframe discussed in Step 4: Step-Up IFrame on page 26 can
vary depending on the 3-D Secure version of the transaction (1.0 or 2.x). You can send the
size of the challenge window in the consumerAuthenticationInformation.acsWindowSize
request eld.
Requesting a specic window size does not guarantee this size. Parsing the PAReq as
described in Step 4: Step-Up IFrame on page 26 determines the actual size.
For further details on individual API elds, refer to the API Field Reference Guide. The eld
values should use the ISO 3166-2 format.
Combining Services
You can combine the enrollment check and card authorization services into the
same request or use a separate request for each service. Using the same request is
recommended.
• Same request: Attempts to authorize the card after authentication are made if step-
up payer authentication is not required. In this case, the eld values that are required
to prove that you attempted to check enrollment are passed automatically to the
authorization service. With same request transactions, a different endpoint must
be referenced and an additional element must be added to the JSON. If step-up
authentication is required, processing stops to allow completion, and authorization is
not called. This integration method is recommended.
• Separate requests: Manually include the enrollment check result values (Enrollment
Check Response Fields) in the authorization service request (Card Authorization
Request Fields). Refer to the elds that are listed in the table.
Depending on your card type, and whether it is a 3-D Secure 1.0 or 2.x transaction, you
might not receive the XID. If you receive this eld under a frictionless scenario, it is
required for authorization.
This table lists these elds.
01 250 x 400
02 390 x 400
03 500 x 600
04 600 x 400
05 Full screen
{
"messageType":"CReq","messageVersion":"2.2.0",
"threeDSServerTransID":"c4b911d6-1f5c-40a4-bc2b-51986a98f991",
"acsTransID":"47956453-b477-4f02-a9ef-0ec3f9f779b3",
"challengeWindowSize":"02"
}
<script>
window.onload = function() {
var stepUpForm = document.querySelector('#step-up-form');
if(stepUpForm) // Step-Up form exists
stepUpForm.submit();
}
</script>
Payer Authentication Check Enrollment Service on page 22. The payload sent to the
returnURL is URL-encoded and Base64-encoded (see the example below). The merchant
hosting the returnURL can then close the iframe after redirection.
The response sent back to the return URL contains this:
• Transaction ID: (consumerAuthenticationInformation.authenticationTransactionId
response eld). This is used in Step 5: Payer Authentication Validation Service on page
28.
• MD: merchant data returned if present in the POST to step-up URL; otherwise, null.
POST to Return URL
TransactionId=BwNsDeDPsQV4q8uy1Kq1&MD=null
Request Fields
The consumerAuthenticationInformation.authenticationTransactionId eld is mapped
from the consumerAuthenticationInformation.authenticationTransactionId eld in Step 4:
Step-Up IFrame on page 26.
ID (XID), the 3-D Secure version, the directory server transaction ID, and the following
card-specic information in your authorization request:
• For Visa, American Express, JCB, Diners Club, Discover, China UnionPay, and Elo include
the CAVV (cardholder authentication verication value).
• For Mastercard, include the UCAF (universal cardholder authentication eld) and the
collection indicator.
Depending on your card type and whether it is a 3-D Secure 1.0 or 2.x transaction, you
might not receive the XID. If you receive this eld back, it is required for authorization.
The following table lists these elds.
Identier Validation Check Response Card Authorization Request
Field Field
Authentication Failed
Your card issuer cannot authenticate this card. Please select another card or form of payment to
complete your purchase.
{
"paymentInformation": {
"card": {
"expirationMonth": "12",
"expirationYear": "2025",
"number": "XXXXXXXXXXXXXXXX"
}
}
}
{
"consumerAuthenticationInformation": {
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwOTczYjBiMC00NmU1LTQ3NWQ
tYWUxMC04ZDFkYmRlMzQ0ZDYiLCJpYXQiOjE2MjgxMTk1OTMsImlzcyI6IjVkZDgzYmYwMGU0MjNkMTQ5OGRj
YmFjYSIsImV4cCI6MTYyODEyMzE5MywiT3JnVW5pdElkIjoiNWI5YzRiYjNmZjYyNmIxMzQ0ODEwYTAxIiwiUmVmZX
JlbmNlSWQiOiJiODRlM2RjYS1mNzRmLTQ1YjEtYTVkMC00YTE5ZGViN2I4MTMifQ.W_IetbptYPtIckZkLQY8nPAh
VbnJ12NoniNTKnadswQ",
"deviceDataCollectionUrl": "https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect",
"referenceId": "b84e3dca-f74f-45b1-a5d0-4a19deb7b813",
"token": "AxizbwSTVIEatEaJItj7ABEBURxNDQF4AEwIZNJMvRiuZhTAGAAA9QBZ"
},
"id": "6281195931256576203003",
"status": "COMPLETED",
"submitTimeUtc": "2021-08-04T23:26:33Z"
}
The Payer Authentication APIs are capable of handling encrypted digital payment payloads
instead of the payment information. The following is an example of an Payer Authentication
Setup request and its corresponding response using Google Pay as the digital payment
option.
Setup Request Using Google Pay
{
"paymentInformation": {
"uidData" : {
"value" : "eyJzaWduYXR1cmUiOiJNRVFDSUVhVVBmc1RIMERyMnZmeG8wVkFlZ3N2bHlSRzdENEFsYm
Rwa1pPdlNzZGtBaUFVODE2aHpmMG5BMzJzQmx6anlUSURyZXBHNUY1eEtlRmNnSE9aK3RML2ZRXHUwMDNkXHUw
MDNkIiwiaW50ZXJtZWRpYXRlU2lnbmluZ0tleSI6eyJzaWduZWRLZXkiOiJ7XCJrZXlWYWx1ZVwiOlwiTUZrd0V
3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFOFdKSHVMOFVuWW9WWDNHV3dGVkJpcnh6L3lJdGl0aW9ne
WhDeGpCRm5tS3pCcWs2K3lnVU5SUGF4THdaaWtILzBxV0s1QXhlc3BDNVhwN1NHNUN1T1FcXHUwMDNkXFx1MDAzZF
wiLFwia2V5RXhwaXJhdGlvblwiOlwiMTYzMDUxNjYyODA0OVwifSIsInNpZ25hdHVyZXMiOlsiTUVVQ0lRRHlTQTV
1T2t5UXQ5cFoyQlEzaXBmcGNWT0F5ZmIzM2ozUEZPQUw3K1o5S3dJZ2FjWWp2YWJpTEUyWHFkNU1xNGphNSt
EVldoREttVHpoMmk1RGlnbllFQndcdTAwM2QiXX0sInByb3RvY29sVmVyc2lvbiI6IkVDdjIiLCJzaWduZWR
NZXNzYWdlIjoie1wiZW5jcnlwdGVkTWVzc2FnZVwiOlwiWG5qOGxSSWhGMDVEWWdRK3hwNEE5YUhsVGE1U2l
jdUJac2w1L2NNRkJlclBBY1RzaE4zRFlOb1MvdEVkRkRYRzZJRXBpVlcxVnV6OUprejNWWGdpMzJrT21EVk9aakJNW
TFvVHdTQnA5WG53ejlLYUtOekYvRFBSTy9jbStobW9iZ2dSdmxGSStOekN5U1VNWW1hbTJjZFUyZGRZWmZHck9nZWN
Sc3FrdW1tNmlMa0xGQTFJcDFrNWFRV21EUElEdTh1SnNmbWs4bzMyMlpteVdMMVVWenE0WHFkNTZScXZoL1VFeEp3R
C9HZXU5SW00M0pmblZqckVkeDE0Ykx1OUpmMHJrcU5ONG5sM0NVZEFoMVNhZnBzdkduTVRML1Nmenk1ZGdDZlRD
cHJDdW85UVZPaXVValBJNUdXRlBKSWVVVVU1cUZhcis3NXFBT2dvZ0tNRUZ3OFVxL1A0UjBDcXczcFllNnc2enlaV
zdDV1YxRzRMc3BITTNRaE83bFZNNmRjSWZQWW00ZitubWI3UzgwY29KTXR1QjkxVEhjZzJmVXhwM2FrWEhSdzNyN
3BRZk9KWWFieUlURmtieDh0Yi9ieWl6VUZEVVU4S3EwTmVCVTVrQng2L21qUDg4bWxoWkE2ZERrNWJVc2o4SDBDSk
9nWUtCbVgyR09vamRtTDd5YlBnTU5vNnhsYjRtUzVkaTJjZUpFakFybEZFa3NWNTlsS2lodk5pckRZc1BTU2lTRF
VZNjBMUXVuTEErYjFMSnpCMkpYelFcIixcImVwaGVtZXJhbFB1YmxpY0tleVwiOlwiQk84bmtEbE0ycVlCQmpQ
d00wbDdUTFY2UytUbzZDTFl0eXArWGM2cXpQYklLTEgxVytySGh3NUlwU2lqb1lTb3VaclNuWU9LV21yRVAyYmt
LMk4rTWFZXFx1MDAzZFwiLFwidGFnXCI6XCJuVU5xUVlxcy9YRVlDMmg0WFlibnVpajFLb1NzUFpacEpqVGI4TVVZ
cUZNXFx1MDAzZFwifSJ9"
}
},
"processingInformation": {
"paymentSolution": "012"
}
}
{
"consumerAuthenticationInformation": {
"accessToken":
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI5MjlhZDAwYy0zZmEyLTQ5ODgtODRjNC1hYTcxMGFl
Y2I1OGEiLCJpYXQiOjE2Mjk4MjY5NjAsImlzcyI6IjVkZDgzYmYwMGU0MjNkMTQ5OGRjYmFjYSIsImV4cCI6MTYyOTgz
MDU2MCwiT3JnVW5pdElkIjoiNWI5YzRiYjNmZjYyNmIxMzQ0ODEwYTAxIiwiUmVmZXJlbmNlSWQiOiI5NDkzZjJiZi0
4NmIwLTQ0ZmYtYmJjZS0wZjU1MjNlMWIzNGEifQ.FgVbwbW9_lwnlr4ovYR5VVPuVl6CklAVHHXS_5ODskA",
"deviceDataCollectionUrl": "https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect",
"referenceId": "9493f2bf-86b0-44ff-bbce-0f5523e1b34a",
"token": "AxizbwSTVW4Mj1fvsU27ABEBURxPZebOAE1IZNJMvRiuZhTA9AAA+QBf"
},
"id": "6298269599786696003003",
"status": "COMPLETED",
"submitTimeUtc": "2021-08-24T17:42:40Z"
}
{
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "100"
},
"billTo": {
"address1": "901 metro center blvd",
"address2": "metro 3",
"administrativeArea": "CA",
"country": "US",
"locality": "san francisco",
"rstName": "John",
"lastName": "Doe",
"phoneNumber": "18007097779",
"postalCode": "94404",
"email": "[email protected]"
}
},
"paymentInformation": {
"card": {
"number": "4XXXXXXXXXXXXXXX",
"expirationMonth": "08",
"expirationYear": 2023
}
},
"consumerAuthenticationInformation": {
"referenceId": "c44224db-0dda-40aa-9536-ac1595fd2e8d",
"transactionMode": "S",
"returnUrl": "https://wv730hw7033250:3002/restapi/cardinalDirect/StepUp/Response"
}
}
{
"consumerAuthenticationInformation": {
"acsUrl": "https://0merchantacsstag.cardinalcommerce.com/MerchantACSWeb/creq.jsp",
"challengeRequired": "N",
"stepUpUrl": "https://centinelapistag.cardinalcommerce.com/V2/Cruise/StepUp",
"authenticationTransactionId": "1xRSpLPEoTNsinp8XUK0",
"pareq":
"eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSU
QiOiI4NGU2YzIzYi1lNjIxLTQ2NGUtYWFlYy0xOGNkZDE1YTBlZWMiLCJhY3NUcmFuc0lEIjoiZWU3NDVlM2MtYz
I2Ny00YzM0LTkzMTEtMGI3NTYwYzJkNjhmIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjAyIn0",
"directoryServerTransactionId": "4d19781a-49d7-4c90-a145-72b8107fed8f",
"veresEnrolled": "Y",
"threeDSServerTransactionId": "84e6c23b-e621-464e-aaec-18cdd15a0eec",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyN2I1MjcyYS00OWFiLTQ5Y
jQtYTljYy1mMTBhYjcxMGMyYjciLCJpYXQiOjE2MzAwOTkxNjMsImlzcyI6IjVkZDgzYmYwMGU0M
jNkMTQ5OGRjYmFjYSIsImV4cCI6MTYzMDEwMjc2MywiT3JnVW5pdElkIjoiNTk1YWRhYj
AzM2ZhZGQyYzUwZTg5NDYxIiwiUGF5bG9hZCI6eyJBQ1NVcmwiOiJodHRwczovLzBtZXJ
jaGFudGFjc3N0YWcuY2FyZGluYWxjb21tZXJjZS5jb20vTWVyY2hhbnRBQ1NXZWIvY3JlcS5qc3AiLCJ
QYXlsb2FkIjoiZXlKdFpYTnpZV2RsVkhsd1pTSTZJa05TWlhFaUxDSnRaWE56WVd
kbFZtVnljMmx2YmlJNklqSXVNUzR3SWl3aWRHaHlaV1ZFVTFObGNu
WmxjbFJ5WVc1elNVUWlPaUk0TkdVMll6SXpZaTFsTmpJeExUUTJOR1V0WVdGbFl5MHhPR05rWkRFMVlU
QmxaV01pTENKaFkzTlVjbUZ1YzBsRUlqb2laV1UzTkRWbE0yTXRZekkyTnkwMFl
6TTBMVGt6TVRFdE1HSTNOVFl3WXpKa05qaG1JaXdpWTJoaGJHeGxibWRsVj
JsdVpHOTNVMmw2WlNJNklqQXlJbjAiLCJUcmFuc2FjdGlvbklkIjoiMXhSU3BMUEVvVE5zaW5wO
FhVSzAifSwiT2JqZWN0aWZ5UGF5bG9hZCI6dHJ1ZSwiUmV0dXJuVXJsIjoiaHR0cHM6Ly93dj
czMGh3NzAzMzI1MDozMDAyL3Jlc3RhcGkvY2FyZGluYWxEaXJlY3QvU3RlcFVwL1Jlc3
BvbnNlIn0.ixbdhFoB8M_BWI2sAIIQUjWtIOMzIwRImrg5iu7AyNE",
"specicationVersion": "2.1.0",
"token": "AxjzbwSTVZPTJPD7ixR8ADUBURxP1CnnpA6cQE1129JMvRiuHCKArAAAx/+g",
"acsTransactionId": "ee745e3c-c267-4c34-9311-0b7560c2d68f"
},
"errorInformation": {
"reason": "CONSUMER_AUTHENTICATION_REQUIRED",
"message": "The cardholder is enrolled in Payer Authentication. Please authenticate the cardholder
before continuing with the transaction."
},
"id": "6300991627296049403004",
"paymentInformation": {
"card": {
"bin": "4XXXXXXX",
"type": "VISA"
}
},
"status": "PENDING_AUTHENTICATION",
"submitTimeUtc": "2021-08-27T21:19:23Z"
}
The following is an example of an Payer Authentication Check Enrollment request and its
corresponding response using Google Pay as the digital payment option.
Check Enrollment Request Using Google Pay
{
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "10.99"
},
"billTo": {
"address1": "1 Market St",
"address2": "Address 2",
"administrativeArea": "CA",
"country": "US",
"locality": "san francisco",
"rstName": "John",
"lastName": "Doe",
"phoneNumber": "4158880000",
"email": "[email protected]",
"postalCode": "94105"
}
},
"paymentInformation": {
"uidData" : {
"value" :
"eyJzaWduYXR1cmUiOiJNRVFDSUVhVVBmc1RIMERyMnZmeG8wVkFlZ3N2bHlSRzdENEFsYmRwa1pPdlNzZGtBaUFVO
DE2aHpmMG5BMzJzQmx6anlUSURyZXBHNUY1eEtlRmNnSE9aK3RML2ZRXHUwMDNkXHUwMDNkIiwiaW50ZXJtZWRpY
XRlU2lnbmluZ0tleSI6eyJzaWduZWRLZXkiOiJ7XCJrZXlWYWx1ZVwiOlwiTUZrd0V3WUhLb1pJemowQ0FRWUlLb
1pJemowREFRY0RRZ0FFOFdKSHVMOFVuWW9WWDNHV3dGVkJpcnh6L3lJdGl0aW9neWhDeGpCRm5tS3pCcWs2K3l
nVU5SUGF4THdaaWtILzBxV0s1QXhlc3BDNVhwN1NHNUN1T1FcXHUwMDNkXFx1MDAzZFwiLFwia2V5RXhwaXJhdGlvb
lwiOlwiMTYzMDUxNjYyODA0OVwifSIsInNpZ25hdHVyZXMiOlsiTUVVQ0lRRHlTQTV1T2t5UXQ5cFoyQlEzaXBmc
GNWT0F5ZmIzM2ozUEZPQUw3K1o5S3dJZ2FjWWp2YWJpTEUyWHFkNU1xNGphNStEVldoREttVHpoMmk1RGlnbllF
QndcdTAwM2QiXX0sInByb3RvY29sVmVyc2lvbiI6IkVDdjIiLCJzaWduZWRNZXNzYWdlIjoie1wiZW5jcnlwdGVk
TWVzc2FnZVwiOlwiWG5qOGxSSWhGMDVEWWdRK3hwNEE5YUhsVGE1U2ljdUJac2w1L2NNRkJlclBBY1RzaE4zRFl
Ob1MvdEVkRkRYRzZJRXBpVlcxVnV6OUprejNWWGdpMzJrT21EVk9aakJNWTFvVHdTQnA5WG53ejlLYUtOekYvRFB
STy9jbStobW9iZ2dSdmxGSStOekN5U1VNWW1hbTJjZFUyZGRZWmZHck9nZWNSc3FrdW1tNmlMa0xGQTFJcDFrNW
FRV21EUElEdTh1SnNmbWs4bzMyMlpteVdMMVVWenE0WHFkNTZScXZoL1VFeEp3RC9HZXU5SW00M0pmblZqckVke
DE0Ykx1OUpmMHJrcU5ONG5sM0NVZEFoMVNhZnBzdkduTVRML1Nmenk1ZGdDZlRDcHJDdW85UVZPaXVValBJNUdX
RlBKSWVVVVU1cUZhcis3NXFBT2dvZ0tNRUZ3OFVxL1A0UjBDcXczcFllNnc2enlaVzdDV1YxRzRMc3BITTNRaE
83bFZNNmRjSWZQWW00ZitubWI3UzgwY29KTXR1QjkxVEhjZzJmVXhwM2FrWEhSdzNyN3BRZk9KWWFieUlURmtie
Dh0Yi9ieWl6VUZEVVU4S3EwTmVCVTVrQng2L21qUDg4bWxoWkE2ZERrNWJVc2o4SDBDSk9nWUtCbVgyR09vamRt
TDd5YlBnTU5vNnhsYjRtUzVkaTJjZUpFakFybEZFa3NWNTlsS2lodk5pckRZc1BTU2lTRFVZNjBMUXVuTEErYj
FMSnpCMkpYelFcIixcImVwaGVtZXJhbFB1YmxpY0tleVwiOlwiQk84bmtEbE0ycVlCQmpQd00wbDdUTFY2UytUb
zZDTFl0eXArWGM2cXpQYklLTEgxVytySGh3NUlwU2lqb1lTb3VaclNuWU9LV21yRVAyYmtLMk4rTWFZXFx1MDAzZ
FwiLFwidGFnXCI6XCJuVU5xUVlxcy9YRVlDMmg0WFlibnVpajFLb1NzUFpacEpqVGI4TVVZcUZNXFx1MDA zZFwifSJ9"
}
},
"processingInformation": {
"paymentSolution": "012"
},
"buyerInformation": {
"mobilePhone": "1245789632"
},
"consumerAuthenticationInformation": {
"transactionMode": "MOTO"
}
}
{
"consumerAuthenticationInformation": {
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI5MjlhZDAwYy0zZmEyLTQ5ODgtODR
jNC1hYTcxMGFlY2I1OGEiLCJpYXQiOjE2Mjk4MjY5NjAsImlzcyI6IjVkZDgzYmYwMGU0MjNkMTQ5OGRjYmFjYSIsIm
V4cCI6MTYyOTgzMDU2MCwiT3JnVW5pdElkIjoiNWI5YzRiYjNmZjYyNmIxMzQ0ODEwYTAxIiwiUmVmZXJlbmNlSWQi
OiI5NDkzZjJiZi04NmIwLTQ0ZmYtYmJjZS0wZjU1MjNlMWIzNGEifQ.FgVbwbW9_lwnlr4ovYR5VVPuVl6CklAVHHX
S_5ODskA",
"deviceDataCollectionUrl": "https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect",
"referenceId": "9493f2bf-86b0-44ff-bbce-0f5523e1b34a",
"token": "AxizbwSTVW4Mj1fvsU27ABEBURxPZebOAE1IZNJMvRiuZhTA9AAA+QBf"
},
"id": "6298269599786696003003",
"status": "COMPLETED",
"submitTimeUtc": "2021-08-24T17:42:40Z"
}
{
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "100"
},
"billTo": {
"address1": "901 metro center blvd",
"address2": "metro 3",
"administrativeArea": "CA",
"country": "US",
"locality": "san francisco",
"rstName": "John",
"lastName": "Doe",
"phoneNumber": "18007097779",
"postalCode": "94404",
"email": "[email protected]"
}
},
"paymentInformation": {
"card": {
"number": "4XXXXXXXXXXXXXXX",
"type": "001",
"expirationMonth": "01",
"expirationYear": 2023
}
},
"buyerInformation": {
"mobilePhone": "1245789632"
},
"consumerAuthenticationInformation": {
"authenticationTransactionId": "1xRSpLPEoTNsinp8XUK0"
}
}
{
"clientReferenceInformation": {
"code": "3DSHarness_PaValidateRestAPI"
},
"consumerAuthenticationInformation": {
"indicator": "vbv",
"eciRaw": "05",
"authenticationResult": "0",
"authenticationStatusMsg": "Success",
"eci": "05",
"token": "AxjzbwSTVZPVXrQRXOgcADUBURxP1C3TpA6cQE14ZNJMvRiuHCKArAAA5AAG",
"cavv": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=",
"paresStatus": "Y",
"xid": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=",
"directoryServerTransactionId": "4d19781a-49d7-4c90-a145-72b8107fed8f",
"threeDSServerTransactionId": "84e6c23b-e621-464e-aaec-18cdd15a0eec",
"specicationVersion": "2.1.0",
"acsTransactionId": "ee745e3c-c267-4c34-9311-0b7560c2d68f"
},
"id": "6300992253756050303004",
"paymentInformation": {
"card": {
"bin": "4XXXXXXX",
"type": "VISA"
}
},
"status": "AUTHENTICATION_SUCCESSFUL",
"submitTimeUtc": "2021-08-27T21:20:25Z"
}
{
"clientReferenceInformation": {
"code": ""
},
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "200.00"
},
"lineItems": [
{
"unitPrice": "10",
"quantity": "2",
"taxAmount": "32.40"
}
]
},
"paymentInformation": {
"card": {
"type": "002",
"expirationMonth": "12",
"expirationYear": "2025",
"number": "5200000000000007"
},
"uidData": {
"value": "XFx1MDAzZFwiLFwia2V5RXhwaXJhdGlvblwiOlwiMTYzMDUxNjYyODA0OVwifSI
sInNpZ25hdHVyZXMiOlsiTUVVQ0lRRHlTQTV1T2t5UXQ5cFoyQlEzaXBmcGNWT0F5ZmIzM2ozUEZPQUw3K1o5S3
dJZ2FjWWp2YWJpTEUyWHFkNU1xNGphNStEVldoREttVHpoMmk1RGlnbllFQndcdTAwM2QiXX0sInByb3Rv
Y29sVmVyc2lvbiI6IkVDdjIiLCJzaWduZWRNZXNzYWdlIjoie1wiZW5jcnlwdGVkTWVzc2FnZVwiOlwiWG5qOG
xSSWhGMDVEWWdRK3hwNEE5YUhsVGE1U2ljdUJac2w1L2NNRkJlclBBY1RzaE4zRFlOb1MvdEVkRkRYRzZJRXBp
VlcxVnV6OUprejNWWGdpMzJrT21EVk9aakJNWTFvVHdTQnA5WG53ejlLYUtOekYvRFBSTy9jbStobW9iZ2dSdmx
GSStOekN5U1VNWW1hbTJjZFUyZGRZWmZHck9nZWNSc3FrdW1tNmlMa0xGQTFJcDFrNWFRV21EUElEdTh1SnNmbWs4
bzMyMlpteVdMMVVWenE0WHFkNTZScXZoL1VFeEp3RC9HZXU5SW00M0pmblZqckVkeDE0Ykx1OUpm"
}
},
"consumerAuthenticationInformation": {
"authenticationTransactionId": "PYffv9G3sa1e0CQr5fV0"
}
}
{
"clientReferenceInformation": {
"code": "1648503547340"
},
"consumerAuthenticationInformation": {
"indicator": "internet",
"ucafCollectionIndicator": "0",
"token": "AxjzbwSTX43yPAubTbmGAD0CURxtQdcxpA+cQEE8MmkmXoxYboZgHAAA/wHd"
},
"id": "6485035473596312304006",
"status": "AUTHENTICATION_SUCCESSFUL",
"submitTimeUtc": "2022-03-28T21:39:09Z"
}
{
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "100"
},
"billTo": {
"address1": "901 metro center blvd",
"address2": "metro 3",
"administrativeArea": "CA",
"country": "US",
"locality": "san francisco",
"rstName": "John",
"lastName": "Doe",
"phoneNumber": "18007097779",
"postalCode": "94404",
"email": "[email protected]"
}
},
"paymentInformation": {
"card": {
"number": "4XXXXXXXXXXXXXXX",
"type": "001",
"expirationMonth": "01",
"expirationYear": 2023
}
},
"buyerInformation": {
"mobilePhone": "1245789632"
},
"consumerAuthenticationInformation": {
"referenceId": "eb0d0ad6-510a-4f0e-9103-e6ee5b024ae2",
"transactionMode": "S",
"returnUrl": "https://wv730hw7033250:3002/restapi/cardinalDirect/StepUp/Response"
},
"processingInformation": {
"actionList": [
"CONSUMER_AUTHENTICATION"
]
}
}
{
"consumerAuthenticationInformation": {
"acsUrl": "https://0merchantacsstag.cardinalcommerce.com/MerchantACSWeb/creq.jsp",
"challengeRequired": "N",
"stepUpUrl": "https://centinelapistag.cardinalcommerce.com/V2/Cruise/StepUp",
"authenticationTransactionId": "grmOLQpFJd6KjSqV2ow0",
"pareq": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1Nlcn
ZlclRyYW5zSUQiOiI0ZjIwZWM4ZC1iOGFiLTQ1ZDAtYjVmZC0wMDdlNzYwNDcwYjEiLCJhY3NUcmFuc0lEIj
oiNTUyMGQxZDAtOGE2Yi00NGIzLTlhYmQtM2IyMDQ3NWFjODVkIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjAyIn0",
"directoryServerTransactionId": "d68cd64d-d42e-43f8-9ab0-f76d6b36f9f6",
"veresEnrolled": "Y",
"threeDSServerTransactionId": "4f20ec8d-b8ab-45d0-b5fd-007e760470b1",
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIwNmYzZTdhMy0xMjc1LTRmMjQ
tYmM1OS1lMDRhYmY5N2IzMzkiLCJpYXQiOjE2MzAwOTk0MzcsImlzcyI6IjVkZDgzYmYwMGU0MjNkMTQ5OGRj
YmFjYSIsImV4cCI6MTYzMDEwMzAzNywiT3JnVW5pdElkIjoiNTk1YWRhYjAzM2ZhZGQyYzUwZTg5NDYxIiwiUG
F5bG9hZCI6eyJBQ1NVcmwiOiJodHRwczovLzBtZXJjaGFudGFjc3N0YWcuY2FyZGluYWxjb21tZXJjZS5jb20vTW
VyY2hhbnRBQ1NXZWIvY3JlcS5qc3AiLCJQYXlsb2FkIjoiZXlKdFpYTnpZV2RsVkhsd1pTSTZJa05TWlhFaUxDS
nRaWE56WVdkbFZtVnljMmx2YmlJNklqSXVNUzR3SWl3aWRHaHlaV1ZFVTFObGNuWmxjbFJ5WVc1elNVUWlPa
UkwWmpJd1pXTTRaQzFpT0dGaUxUUTFaREF0WWpWbVpDMHdNRGRsTnpZd05EY3dZakVpTENKaFkzTlVjbUZ1YzB
sRUlqb2lOVFV5TUdReFpEQXRPR0UyWWkwME5HSXpMVGxoWW1RdE0ySXlNRFEzTldGak9EVmtJaXdpWTJoaGJHe
GxibWRsVjJsdVpHOTNVMmw2WlNJNklqQXlJbjAiLCJUcmFuc2FjdGlvbklkIjoiZ3JtT0xRcEZKZDZLalNxVj
JvdzAifSwiT2JqZWN0aWZ5UGF5bG9hZCI6dHJ1ZSwiUmV0dXJuVXJsIjoiaHR0cHM6Ly93djczMGh3NzAzMz
I1MDozMDAyL3Jlc3RhcGkvY2FyZGluYWxEaXJlY3QvU3RlcFVwL1Jlc3BvbnNlIn0.PcBsuaGonlmBNmugRLJ
JKQ2EsrsRzibPl9o4ljLGAkM",
"specicationVersion": "2.1.0",
"token": "AxjzbwSTVZPc53psJ3L9ADUBURxP1DuNpA6cQE1129JMvRiuHCKArAAAzAER",
"acsTransactionId": "5520d1d0-8a6b-44b3-9abd-3b20475ac85d"
},
"errorInformation": {
"reason": "CONSUMER_AUTHENTICATION_REQUIRED",
"message": "The cardholder is enrolled in Payer Authentication. Please authen ticate the cardholder
before continuing with the transaction."
},
"id": "6300994374466395403005",
"paymentInformation": {
"card": {
"bin": "4XXXXXXX",
"type": "VISA"
}
},
"status": "PENDING_AUTHENTICATION",
"submitTimeUtc": "2021-08-27T21:23:57Z"
}
"billTo": {
"address1": "901 metro center blvd",
"address2": "metro 3",
"administrativeArea": "CA",
"country": "US",
"locality": "san francisco",
"rstName": "John",
"lastName": "Doe",
"phoneNumber": "18007097779",
"postalCode": "94404",
"email": "[email protected]"
}
},
"paymentInformation": {
"card": {
"number": "4XXXXXXXXXXXXXXX",
"type": "001",
"expirationMonth": "01",
"expirationYear": 2023
}
},
"buyerInformation": {
"mobilePhone": "1245789632"
},
"consumerAuthenticationInformation": {
"authenticationTransactionId": "grmOLQpFJd6KjSqV2ow0"
},
"processingInformation": {
"actionList": [
"VALIDATE_CONSUMER_AUTHENTICATION"
]
}
}
{
"_links": {
"authReversal": {
"method": "POST",
"href": "/pts/v2/payments/6300995545226652403001/reversals"
},
"self": {
"method": "GET",
"href": "/pts/v2/payments/6300995545226652403001"
},
"capture": {
"method": "POST",
"href": "/pts/v2/payments/6300995545226652403001/captures"
}
},
"clientReferenceInformation": {
"code": "3DSHarness_PaValidateRestAPI"
},
"consumerAuthenticationInformation": {
"indicator": "vbv",
"eciRaw": "05",
"authenticationResult": "0",
"authenticationStatusMsg": "Success",
"eci": "05",
"token": "Axj/7wSTVZPhEEdJY8U5ADUg3btnLZu4YxKdJqzsT5yiOJ+ogvwFRHE/UQX
+kDpxATXhk0ky9GK4cIqCuTVZPhEEdJY8U5AAICFg",
"cavv": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=",
"paresStatus": "Y",
"xid": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=",
"directoryServerTransactionId": "d68cd64d-d42e-43f8-9ab0-f76d6b36f9f6",
"threeDSServerTransactionId": "4f20ec8d-b8ab-45d0-b5fd-007e760470b1",
"specicationVersion": "2.1.0",
"acsTransactionId": "5520d1d0-8a6b-44b3-9abd-3b20475ac85d"
},
"id": "6300995545226652403001",
"orderInformation": {
"amountDetails": {
"authorizedAmount": "100.00",
"currency": "USD"
}
},
"paymentAccountInformation": {
"card": {
"type": "001"
}
},
"paymentInformation": {
"tokenizedCard": {
"type": "001"
},
"card": {
"bin": "4XXXXXXX",
"type": "VISA"
}
},
"pointOfSaleInformation": {
"terminalId": "123456"
},
"processorInformation": {
"approvalCode": "888888",
"responseCode": "100",
"avs": {
"code": "X",
"codeRaw": "I1"
}
},
"reconciliationId": "77696781DSR53XON",
"status": "AUTHORIZED",
"submitTimeUtc": "2021-08-27T21:25:54Z"
}
This chapter summarizes the process of integrating SDK Payer Authentication services
into your mobile application. Payer authentication services use the Cardinal Mobile SDK
for iOS or Android to facilitate the authentication. New SDK versions are frequently
released and you should ensure that you stay current with the latest release. One way to
stay informed on about new releases is to subscribe to Cardinal's distribution list to be
informed of updates and other product announcements. You can subscribe by going to
this link: https://win.cardinalcommerce.com/CardinalMobileSDKNotications
Implementing the SDK in your mobile application requires either Android or iOS platform
application programming skills. Android API 21 or iOS 9 and XCode 8 are required.
The SDK is only designed to handle 3-D Secure 2.x transactions. If a 3-D Secure 1.0
transaction occurs, you must include functionality to open up a WebView.
Implementation Overview
Notify your account representative that you want to implement payer authentication (3-
D Secure). Give the representative, the merchant ID that you will use for testing. For more
information, see Required Merchant Information on page 17.
Implementation tasks include:
• Download, import, and congure the Cardinal Mobile SDK for either iOS or Android.
• For each purchase request:
•Build the authentication request.
•Invoke the authentication.
•Handle declines.
•Make another back-end, server-to-server call to request these services:
: Payer Authentication Validation
: Card Authorization service (optional)
• Use the test cases to test your preliminary code and make appropriate changes. See
Testing Payer Authentication on page 88.
Credentials/API Keys
API keys are required to create the JSON Web Token (JWT). For further information,
contact customer supportcustomer support.
You will receive an email with your username and a temporary password. Your username
will be in this format:
cybersource_merchant name_contact name
nab_merchant name_contact name
For example:
cybersource_petairways_peter
nab_petairways_peter
Once you receive your credentials, log in to your JFrog account and update your
temporary password. Follow the process below to generate your API key.
repositories {
...
maven {
url "https://cardinalcommerceprod.jfrog.io/artifactory/android"
credentials {
username Artifactory username
password Artifactory user API Key
}
}
}
dependencies {
...
//Cardinal Mobile SDK
implementation 2.5-1
}
If your project uses Progurad, add the lines shown below to the proguard-rules.pro le.
cardinalCongurationParameters.setUiType(CardinalUiType.BOTH);
cardinal.congure(this,cardinalCongurationParameters);
}
cardinal = Cardinal.getInstance();
String serverJwt = "INSERT_YOUR_JWT_HERE";
cardinal.init(serverJwt ,
new CardinalInitService() {
/**
* You may have your Submit button disabled on page load. Once you are
* set up for CCA, you may then enable it. This will prevent users
* from submitting their order before CCA is ready.
*/
@Override
public void onSetupCompleted(String consumerSessionId) {
}
/**
* If there was an error with set up, Cardinal will call this function
* with validate response and empty serverJWT
* @param validateResponse
* @param serverJwt will be an empty
*/
@Override
public void onValidated(ValidateResponse validateResponse, String serverJwt) {
}
});
See the Running Payer Authentication in SDK on page 52 section for the next steps.
curl -L -u <USER_NAME>
:<API_KEY> https://cardinalcommerceprod.jfrog.io/artifactory/ios/<VERSION>-<BUILD_NUMBER>/
cardinalmobilesdk.zip
-o <LOCAL_FILE_NAME.EXT>
#Example:
curl -L -u UserName:ApiKey "https://cardinalcommerceprod.jfrog.io/artifactory/ios/2.2.5-1/
cardinalmobilesdk.zip" -o cardinalmobile2.2.5-1.zip
curl -L -u <USER_NAME>
:<API_KEY> https://cardinalcommerceprod.jfrog.io/artifactory/ios/<VERSION>-<BUILD_NUMBER>/
CardinalMobileiOSXC.zip
-o <LOCAL_FILE_NAME.EXT>
#Example:
curl -L -u UserName:ApiKey "https://cardinalcommerceprod.jfrog.io/artifactory/ios/2.2.5-1/
CardinalMobileiOSXC.zip" -o cardinalmobile2.2.5-1.zip
In your XCode project, drag the CardinalMobile.framework le into the Frameworks group
in your Xcode Project. (Create the group if it doesn't already exist.) In the import dialog
box, check the box to Copy items into the destinations group folder (or Destination: Copy
items if needed). The iOS SDK les are now available for linking in your project.
#import <CardinalMobile/CardinalMobile.h>
CardinalSession *session;
cong.enableQuickAuth = false;
[session congure:cong];
}
import CardinalMobile
[session setupWithJWT:jwtString
didComplete:^(NSString * _Nonnull consumerSessionId){
//
// You may have your Submit button disabled on page load. Once you are
// setup for CCA, you may then enable it. This will prevent users
// from submitting their order before CCA is ready.
//
} didValidate:^(CardinalResponse * _Nonnull validateResponse) {
// Handle failed setup
// If there was an error with setup, cardinal will call this
// function with validate response and empty serverJWT
}];
Important
To reduce your issuer step-up authentication rates, you can send additional
request data in order. It is best to send all available elds.
Use the enrollment check and card authorization services in the same request or in
separate requests:
• Same request: Cybersource attempts to authorize the card if your customer is not
enrolled in a payer authentication program. In this case, the eld values that are
required to prove that you attempted to check enrollment are passed automatically to
the authorization service. If authentication is required, processing automatically stops.
• Separate requests: Manually include the enrollment check result values (Enrollment
Check response elds) in the authorization service request (Card Authorization
request elds).
These elds are listed in this table.
/**
* Cca continue.
*
* @param transactionId the transaction id
* @param payload the payload
* @param currentActivity the current activity
* @throws InvalidInputException the invalid input exception
* @throws JSONException the json exception
* @throws UnsupportedEncodingException the unsupported encoding exception
*/
try {
cardinal.cca_continue("[TRANSACTION ID ]", "[PAYLOAD]", this, new CardinalValidateReceiver() {
/**
* This method is triggered when the transaction
* has been terminated. This is how SDK hands back
* control to the merchant's application. This method will
* include data on how the transaction attempt ended and
* you should have your logic for reviewing the results of
* the transaction and making decisions regarding next steps.
* JWT will be empty if validate was not successful.
*
* @param validateResponse
* @param serverJWT
*/
@Override
public void onValidated(Context currentContext, ValidateResponse validateResponse, String
serverJWT) {
}
});
}
catch (Exception e) {
// Handle exception
}
Objective-C Examples
Cardinal session continue (iOS SDK - Objective-C)
}
@end
@implementation YourViewController
/**
* This method is triggered when the transaction has
* been terminated.This is how SDK hands back
* control to the merchant's application. This method will
* include data on how the transaction attempt ended and
* you should have your logic for reviewing the results of
* the transaction and making decisions regarding next steps.
@end
If Continue is called in the same class, call the method shown in the following example to
start StepUpFlow.
Cardinal.continue Call in the Same Class (Objective-C)
Swift Examples
Cardinal session continue (iOS SDK - Swift)
class YourViewController:CardinalValidationDelegate {
/**
* This method is triggered when the transaction has been
* terminated.This is how SDK hands back
* control to the merchant's application. This method will
* include data on how the transaction attempt ended and
* you should have your logic for reviewing the results of
* the transaction and making decisions regarding next steps.
* JWT will be empty if validate was not successful
*
* @param session
* @param validateResponse
* @param serverJWT
*/
func cardinalSession(cardinalSession session: CardinalSession!, stepUpValidated validateResponse:
CardinalResponse!, serverJWT: String!) {
If Continue is called in the same class, call the method shown in the example below to start
StepUpFlow.
Cardinal.continue Call in the Same Class (Swift)
When necessary, the SDK displays the authentication window, and the customer enters
their authentication information.
{
"iss": "5a4504be6fe3d1127cdfd94e",
"iat": 1555075930,
"exp": 1555083130,
"jti": "cc532159-636d-4fa8-931d-d4b0f4c83b99",
"ConsumerSessionId": "0_9a16b7f5-8b94-480d-bf92-09cd302c9230",
"aud": "d0cf3392-62c5-4107-bf6a-8fc3bb49922b",
"Payload": {
"Payment": {
"Type": "CCA",
"ProcessorTransactionId": "YGSaOBivyG0dzCFs2Zv0"
},
"ErrorNumber": 0,
"ErrorDescription": "Success"
}
}
If you request the services separately, manually include the validation result values
(Validation Check response elds) in the authorization service request (Card
Authorization request elds). To receive liability shift protection, you must ensure that
you pass all pertinent data for the card type and processor in your request. Failure to do
so may invalidate your liability shift for that transaction. Include the electronic commerce
indicator (ECI), the transaction ID (XID), the 3-D Secure version, the directory server
transaction ID, and this card-specic information in your authorization request:
• For Visa, American Express, JCB, Diners Club, Discover, China UnionPay, and Elo include
the CAVV (cardholder authentication verication value).
• For Mastercard, include the UCAF (universal cardholder authentication eld) and the
collection indicator.
Important
If the authentication fails, Visa, American Express, JCB, Diners Club, Discover,
China UnionPay, and Elo require that you not accept the card. Instead, you must ask
the customer to use another payment method.
Proceed with the order according to the validation response received. The responses are
similar for all card types:
• Success: You receive AUTHENTICATION_SUCCESSFUL, and other service requests,
including authorization, are processed normally.
• Failure: You receive AUTHENTICATION_FAILED, so the other services in your request
are not processed.
• Error: If you receive an error from the payment card company, process the order
according to your business rules. If the error occurs frequently, report it to customer
supportcustomer support. If you receive a system error, determine the cause, and
proceed with card authorization only if appropriate.
To verify that the enrollment and validation checks are for the same transaction, ensure
that the XID in the enrollment check and validation responses are identical.
Authentication Failed
Your card issuer cannot authenticate this card. Please select another card or form of payment to
complete your purchase.
If you are just getting started with payer authentication, use the Cardinal Direct
Connection API implementation method. It is the newest and most advanced method of
integrating 3-D Secure into your transaction process and is the method the majority of
our customers choose. The Hybrid implementation is still available when customer support
determines that it best ts your company's business needs.
The same prerequisites involving API keys and JSON Web Tokens necessary for the SDK
integration are also required for the Hybrid integration. In addition, you need to add
JavaScript to your checkout page and setup BIN detection as explained below. Complete
these prerequisites before continuing with your Hybrid implementation. Additional
information about conguring the Hybrid version of payer authentication is available at
Cardinal Cruise documentation.
Implementation Overview
Notify your account representative that you want to implement payer authentication (3-D
Secure). Give them the merchant ID that you will use for testing. For more information, see
Required Merchant Information.
Implementation tasks include:
• Add the JavaScript code to your checkout page
• For each purchase request
• Build the authentication request
• Call the Payer Authentication Setup service
• Allow device collection
• Handle declines
• Call Payer Authentication Enroll
• Call these services:
• Payer Authentication Validation (only for Hybrid integration)
• Card Authorization service (optional)
• Use the test cases to test your preliminary code and make appropriate changes.
Change to the test environment by changing the URL in your JavaScript code. See
Testing Payer Authentication on page 88.
• Ensure that your account is congured for production.
When requesting the Payer Authentication Setup service, you must send either the
customer’s card number, encrypted payment data, transient token, or a TMS token or
some other equivalent of card data used by your integration. The request elds may
include any of the following:
• paymentInformation.card.numberpaymentInformation.tokenizedCard.number
• paymentInformation.customer.customerId
• tokenInformation.transientToken
When the card type is Cartes Bancaires or UPI, the paymentInformation.card.type eld is
required.
BIN Detection
BIN detection is required and enables the card-issuing bank’s ACS provider to collect
additional device data. It speeds up the authentication process by collecting this
data before the checkout page launches. This step occurs before authentication. For
additional information, see the JavaScript Documentation.
• orderInformation.billTo.email
• orderInformation.billTo.rstName
• orderInformation.billTo.lastName
• consumerAuthenticationInformation.referenceId
• clientReferenceInformation.code
To reduce your issuer step-up authentication rates, you can send additional request data
in order. Send all available elds.
You can use the enrollment check and card authorization services in the same request or
in separate requests:
• Same request: Cybersource attempts to authorize the card when your customer is
not enrolled in a payer authentication program. In this case, the eld values required
to prove that you attempted to check enrollment are passed automatically to the
authorization service. If authentication is required, processing automatically stops.
• Separate requests: Manually include the enrollment check result values (Enrollment
Check response elds) in the authorization service request (Card Authorization
request elds).
This table lists these elds.
Cardinal.continue('cca',
{
"AcsUrl":"https://testcustomer34.cardinalcommerce.com/merchantacsfrontend/pareq.jsp?
vaa=b&gold=AAAAAAAA...AAAAAAA",
"Payload":"eNpVUk1zgjAQvedXME7PJEFBVdKt1CECeDkVCk2PcfcnNjv8Kr+7tx4nlbGOcz/
se6G1uMENPTPeeIz1G37WGEUth7YnpO21TfTvF3wDCBqspQ=="
},
{
"OrderDetails":{
"TransactionId" :"123456abc"
}
}
);
{
"iss": "5a4504be6fe3d1127cdfd94e",
"iat": 1555075930,
"exp": 1555083130,
"jti": "cc532159-636d-4fa8-931d-d4b0f4c83b99",
"ConsumerSessionId": "0_9a16b7f5-8b94-480d-bf92-09cd302c9230",
"aud": "d0cf3392-62c5-4107-bf6a-8fc3bb49922b",
"Payload": {
"Payment": {
"Type": "CCA",
"ProcessorTransactionId": "YGSaOBivyG0dzCFs2Zv0"
},
"ErrorNumber": 0,
"ErrorDescription": "Success"
}
}
invalidate your liability shift for that transaction. Include the electronic commerce
indicator (ECI), the transaction ID (XID), the 3-D Secure version, the directory server
transaction ID, and the following card-specic information in your authorization request:
• For Visa, American Express, JCB, Diners Club, Discover, China UnionPay, and Elo include
the CAVV (cardholder authentication verication value).
• For Mastercard, include the UCAF (universal cardholder authentication eld) and the
collection indicator.
This table lists these elds.
Identier Validation Check Response Card Authorization Request
Field Field
Important
If a TransStatus R is returned, do not authorize the transaction. Ask the customer
to use another payment method.
Proceed with the order according to the validation response that you receive. The
responses are similar for all card types:
• Success: You receive a status of AUTHENTICATION_SUCCESSFUL, and other service
requests, including authorization, are processed normally.
Authentication Failed
Your card issuer cannot authenticate this card. Please select another card or form of payment to
complete your purchase.
Check Enrollment
This is a Payer Authentication Check Enrollment request example and its corresponding
response using the Hybrid implementation.
Check Enrollment Request
URL: https://apitest.cybersource.com/risk/v1/authentications
{
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "10.99"
}
},
"paymentInformation": {
"card": {
"expirationMonth": "12",
"expirationYear": "2025",
"number": "4000000000000101"
}
}
}
{
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "100"
},
"billTo": {
"address1": "901 metro center blvd",
"address2": "metro 3",
"administrativeArea": "CA",
"country": "US",
"locality": "san francisco",
"rstName": "John",
"lastName": "Doe",
"phoneNumber": "18007097779",
"postalCode": "94404",
"email": "[email protected]"
}
},
"paymentInformation": {
"card": {
"number": "4XXXXXXXXXXXXXXX",
"type": "001",
"expirationMonth": "01",
"expirationYear": 2023
}
},
"buyerInformation": {
"mobilePhone": "1245789632"
},
"consumerAuthenticationInformation": {
"referenceId": "e704b4a3-14c8-4302-a5cc-ca6e7d0bd0a8",
"transactionMode": "S"
}
}
{
"consumerAuthenticationInformation": {
"acsUrl": "https://0merchantacsstag.cardinalcommerce.com/MerchantACSWeb/creq.jsp",
"challengeRequired": "N",
"stepUpUrl": "https://centinelapistag.cardinalcommerce.com/V2/Cruise/StepUp",
"authenticationTransactionId": "DZZRorz8NoEtsaiYZgb0",
"pareq": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1Nlcn
ZlclRyYW5zSUQiOiJhNDM2MjExYS05YmQwLTRhZjMtYmYwYi03MWE5NWQ3N2ExYzkiLCJhY3NUcmFuc0lEIjoiYzkx
OGJlNGQtN2RiNy00MzRlLThhMDktMmZjZTc1NTNmYjZmIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjAyIn0",
"directoryServerTransactionId": "5daecf27-b846-4bff-969c-966e48f65bc7",
"veresEnrolled": "Y",
"threeDSServerTransactionId": "a436211a-9bd0-4af3-bf0b-71a95d77a1c9",
"specicationVersion": "2.1.0",
"token": "AxjzbwSTVZPqZk18lbibADUBURxP1E9bpA6cQE1129JMvRiuHCKArAAAhACX",
"acsTransactionId": "c918be4d-7db7-434e-8a09-2fce7553fb6f"
},
"errorInformation": {
"reason": "CONSUMER_AUTHENTICATION_REQUIRED",
"message": "The cardholder is enrolled in Payer Authentication. Please authenticate the cardholder
before continuing with the transaction."
},
"id": "6300998173086071503003",
"paymentInformation": {
"card": {
"bin": "4XXXXXXX",
"type": "VISA"
}
},
"status": "PENDING_AUTHENTICATION",
"submitTimeUtc": "2022-08-27T21:30:17Z"
}
Validate
This is a Payer Authentication Validate request example and its corresponding response
using the Hybrid implementation.
Prod URL: https://api.cybersource.com/pts/v2/payments
Validate Request
{
"orderInformation": {
"billTo": {
"rstName": "John",
"lastName": "Doe",
"address2": "Address 2",
"address1": "1 Market St",
"postalCode": "94105",
"locality": "san francisco",
"administrativeArea": "CA",
"country": "US",
"phoneNumber": "4158880000",
"company": "Visa",
"email": [email protected]
},
"amountDetails": {
"totalAmount": "10.99",
"currency": "USD"
}
},
"buyerInformation": {
"mobilePhone": "1245789632"
},
"paymentInformation": {
"card": {
"expirationMonth": "12",
"expirationYear": "2025",
"number": "4000000000000101"
}
},
"consumerAuthenticationInformation": {
"transactionMode": "MOTO"
}
}
Validate Response
{
"consumerAuthenticationInformation": {
"eciRaw": "06",
"authenticationTransactionId": "Vg5ftsTvuwCfSt43NJm0",
"strongAuthentication": {
"OutageExemptionIndicator": "0"
},
"eci": "06",
"proofXml": "<AuthProof><Time>2022 Dec 20 19:41:33</Time><DSUrl>https://
merchantacsstag.cardinalcommerce.com/MerchantACSWeb/vereq.jsp?acqid=CYBS</
DSUrl><VEReqProof><Message id=\"Vg5ftsTvuwCfSt43NJm0\"><VEReq><version>1.0.2</
version><pan>XXXXXXXXXXXX0101</pan><Merchant><acqBIN>469216</acqBIN><merID>341422420000000</
merID><password></password></Merchant><Browser><deviceCategory>0</
deviceCategory></Browser></VEReq></Message></VEReqProof><VEResProof><Message id=
\"Vg5ftsTvuwCfSt43NJm0\"><VERes><version>1.0.2</version><CH><enrolled>Y</enrolled><acctID>6158139</
acctID></CH><url>https://merchantacsstag.cardinalcommerce.com/MerchantACSWeb/pareq.jsp?
visaattempts=true&gold=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
url><protocol>ThreeDSecure</protocol></VERes></Message></VEResProof></AuthProof>",
"token": "AxjzbwSTbA5oEUqDRvAzABEBT9u4dzfHSBcSyTKGTSTL0YrmYUwBgAAAmhUF",
"cavv": "BwAQAgJ4IAUFBwdik3ggEETHTsU=",
"paresStatus": "A",
"xid": "Vmc1ZnRzVHZ1d0NmU3Q0M05KbTA=",
"cavvAlgorithm": "2",
"veresEnrolled": "Y",
"authenticationPath": "ATTEMPTS_COMPLETE",
"ecommerceIndicator": "vbv_attempted",
"specicationVersion": "1.0.2"
},
"id": "6715652941556113403955",
"paymentInformation": {
"card": {
"bin": "400000",
"type": "VISA"
}
},
"status": "AUTHENTICATION_SUCCESSFUL",
"submitTimeUtc": "2022-12-20T19:41:34Z"
}
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "100"
},
"billTo": {
"address1": "901 metro center blvd",
"address2": "metro 3",
"administrativeArea": "CA",
"country": "US",
"locality": "san francisco",
"rstName": "John",
"lastName": "Doe",
"phoneNumber": "18007097779",
"postalCode": "94404",
"email": "[email protected]"
}
},
"paymentInformation": {
"card": {
"number": "4XXXXXXXXXXXXXXX",
"type": "001",
"expirationMonth": "08",
"expirationYear": 2023
}
},
"buyerInformation": {
"mobilePhone": "1245789632"
},
"consumerAuthenticationInformation": {
"referenceId": "d5180465-bae3-4df7-940d-3b029b7de81a",
"transactionMode": "S"
},
"processingInformation": {
"actionList": [
"CONSUMER_AUTHENTICATION"
]
}
}
{
"consumerAuthenticationInformation": {
"acsUrl": "https://0merchantacsstag.cardinalcommerce.com/MerchantACSWeb/creq.jsp",
"challengeRequired": "N",
"stepUpUrl": "https://centinelapistag.cardinalcommerce.com/V2/Cruise/StepUp",
"authenticationTransactionId": "3HHi4FeT0wsWSd1D5fv0",
"pareq": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlcl
RyYW5zSUQiOiI0NDllNjg2Zi00MjdkLTQ2NTktYWYxZS0wZGY3OTk1MWMyNWIiLCJhY3NUcmFuc0lEIjoiYzg3OGU
zMmEtNjk1Yi00MGNkLTg3ZTUtNWExM2U5OTAxY2JiIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjAyIn0",
"directoryServerTransactionId": "91706faf-1f43-4e8a-aa99-8bced446caac",
"veresEnrolled": "Y",
"threeDSServerTransactionId": "449e686f-427d-4659-af1e-0df79951c25b",
"specicationVersion": "2.1.0",
"token": "AxjzbwSTVZPyZCW03H3+ADUBURxP1FqDpA6cQE1129JMvRiuHCKArAAAxf+Y",
"acsTransactionId": "c878e32a-695b-40cd-87e5-5a13e9901cbb"
},
"errorInformation": {
"reason": "CONSUMER_AUTHENTICATION_REQUIRED",
"message": "The cardholder is enrolled in Payer Authentication. Please authenticate the cardholder
before continuing with the transaction."
},
"id": "6301000422516007403006",
"paymentInformation": {
"card": {
"bin": "4XXXXXXX",
"type": "VISA"
}
},
"status": "PENDING_AUTHENTICATION",
"submitTimeUtc": "2022-08-27T21:34:02Z"
}
{
"orderInformation": {
"amountDetails": {
"currency": "USD",
"totalAmount": "100"
},
"billTo": {
"address1": "901 metro center blvd",
"address2": "metro 3",
"administrativeArea": "CA",
"country": "US",
"locality": "san francisco",
"rstName": "John",
"lastName": "Doe",
"phoneNumber": "18007097779",
"postalCode": "94404",
"email": "[email protected]"
}
},
"paymentInformation": {
"card": {
"number": "4XXXXXXXXXXXXXXX",
"type": "001",
"expirationMonth": "01",
"expirationYear": 2023
}
},
"buyerInformation": {
"mobilePhone": "1245789632"
},
"consumerAuthenticationInformation": {
"authenticationTransactionId": "3HHi4FeT0wsWSd1D5fv0"
},
"processingInformation": {
"actionList": [
"VALIDATE_CONSUMER_AUTHENTICATION"
]
}
}
{
"_links": {
"authReversal": {
"method": "POST",
"href": "/pts/v2/payments/6301001634966060103004/reversals"
},
"self": {
"method": "GET",
"href": "/pts/v2/payments/6301001634966060103004"
},
"capture": {
"method": "POST",
"href": "/pts/v2/payments/6301001634966060103004/captures"
}
},
"clientReferenceInformation": {
"code": "3DSHarness_PaValidateRestAPI"
},
"consumerAuthenticationInformation": {
"indicator": "vbv",
"eciRaw": "05",
"authenticationResult": "0",
"authenticationStatusMsg": "Success",
"eci": "05",
"token": "Axj/7wSTVZP2st07j3VcADUg3btnLZw1YsKdJq0bQaqiOJ+owWAFRHE/
UYLGkDpxATXhk0ky9GK4cIqCuTVZP2st07j3VcAA+TgB",
"cavv": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=",
"paresStatus": "Y",
"xid": "MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=",
"directoryServerTransactionId": "91706faf-1f43-4e8a-aa99-8bced446caac",
"threeDSServerTransactionId": "449e686f-427d-4659-af1e-0df79951c25b",
"specicationVersion": "2.1.0",
"acsTransactionId": "c878e32a-695b-40cd-87e5-5a13e9901cbb"
},
"id": "6301001634966060103004",
"orderInformation": {
"amountDetails": {
"authorizedAmount": "100.00",
"currency": "USD"
}
},
"paymentAccountInformation": {
"card": {
"type": "001"
}
},
"paymentInformation": {
"tokenizedCard": {
"type": "001"
},
"card": {
"bin": "4XXXXXXX",
"type": "VISA"
}
},
"pointOfSaleInformation": {
"terminalId": "123456"
},
"processorInformation": {
"approvalCode": "888888",
"responseCode": "100",
"avs": {
"code": "X",
"codeRaw": "I1"
}
},
"reconciliationId": "776968510SR546AU",
"status": "AUTHORIZED",
"submitTimeUtc": "2021-08-27T21:36:03Z"
}
API Fields
This section describes the REST API elds that you can use to access Payer
Authentication services.
The API and client toolkits can be downloaded from the website at the following
URL:https://developer.cybersource.com/api-reference-assets/index.html.
Formatting Restrictions
Do not use the following characters: < > $ % ^ * _ = [ ] \ { } | ; ~ ` Using these characters
may result in data validation errors.
Related information
API Field Reference for the REST API
Related information
API Field Reference for the REST API
consumerAuthenticationInformation.alter
nateAuthenticationMethod
consumerAuthenticationInformation.auth Required for Standard integration.
enticationTransactionId
consumerAuthenticationInformation.chal This eld defaults to 01 on your account
lengeCode but is overridden by the merchant when you
include this eld. EMV 3D Secure version
2.1.0 supports values 01-04. Version 2.2.0
supports values 01-09.
Warning
Modifying this eld could affect
liability shifts down the payment
chain. Unless you are very
familiar with the various types of
authentication, do not change the
default settings before consulting
with customer support.
consumerAuthenticationInformation.creden
tialEncrypted
consumerAuthenticationInformation.cus Required when tokenization is enabled in
tomerCCAlias the merchant prole settings.
consumerAuthenticationInformation.sdkMax Required for 3-D Secure 2.x.
Timeout
consumerAuthenticationInformation.decoup
ledAuthenticationIndicator
consumerAuthenticationInformation.decoup
ledAuthenticationMaxTime
consumerAuthenticationInformation.default Recommended for Discover ProtectBuy.
Card
*consumerAuthenticationInformation.device Required for SDK integration. When you
Channel use the SDK integration, this eld is
dynamically set to SDK. When you use the
JavaScript code, this eld is dynamically
set to Browser. For merchant-initiated or
3RI transactions, you must set the eld to
3RI. When you use this eld in addition to
JavaScript code, you must set the eld to
Browser.
Warning
orderInformation.lineItems.passenger.rst
Name
orderInformation.lineItems.passenger.last
Name
orderInformation.lineItems.productDescrip
tion
orderInformation.lineItems.productName
orderInformation.lineItems.productSku
orderInformation.lineItems.quantity
orderInformation.lineItems.shippingAddress1
orderInformation.lineItems.shippingAddress2
orderInformation.lineItems.shippingCity
orderInformation.lineItems.shippingCountry
Code
orderInformation.lineItems.shippingDestina
tionTypes
orderInformation.lineItems.shippingLast
Name
orderInformation.lineItems.shippingMiddle
Name
orderInformation.lineItems.shippingPhone
orderInformation.lineItems.shippingPostal
Code
orderInformation.lineItems.shippingState
orderInformation.lineItems.unitPrice
orderInformation.lineItems[i].giftCardCur
rency
orderInformation.lineItems[i].quantity
orderInformation.lineItems[i].totalAmount
orderInformation.lineItems.shippingDestina
tionTypes
orderInformation.preOrderDate
orderInformation.reordered
orderInformation.shipTo.addess1 Required when any shipping address
information is included. Required only for
American Express SafeKey (U.S.).
payerAuthEnrollService_secureCorporate
PaymentIndicator
payerAuthEnrollService_shipAddressUsage Recommended for Discover ProtectBuy.
Date
payerAuthEnrollService_totalOffersCount
payerAuthEnrollService_transactionCount Recommended for Discover ProtectBuy.
Day
payerAuthEnrollService_transactionCount Recommended for Discover ProtectBuy.
Year
payerAuthEnrollService_transactionMode
payerAuthEnrollService_whiteListStatus
paymentInformation.card.type
paymentInformation.card.securityCode
paymentInformation.uidData.value
riskInformation.buyerHistory.accountPur
chases
riskInformation.buyerHistory.addCard Recommended for Discover ProtectBuy.
Attempts
riskInformation.buyerHistory.customer Recommended for Discover ProtectBuy.
Account.createDate
riskInformation.buyerHistory.customerAcco Recommended for Discover ProtectBuy.
unt.lastChangeDate
riskInformation.buyerHistory.customerAc Recommended for Discover ProtectBuy.
count.passwordChangeDate
riskInformation.buyerHistory.customerAc
count.shipAddressUsageDate
riskInformation.buyerHistory.paymentAc
countDate
riskInformation.buyerHistory.priorSuspic
iousActivity
riskInformation.buyerHistory.transaction
CountDay
riskInformation.buyerHistory.transaction
CountYear
shipTo_destinationCode
shipTo_rstName
shipTo_lastName
shipTo_phoneNumber
travelInformation.legs.departureDate
travelInformation.legs.origination
travelInformation.numberOfPassengers
travelInformation.passengers.rstName
travelInformation.passengers.lastName
Related information
API Field Reference for the REST API
Testing Payer
Authentication
After you complete the necessary changes to your Web and API integration, verify that
all components are working correctly by performing all the tests for the cards that you
support. Each test contains the specic input data and the most important results elds
that you receive in the API response.
Testing Process
Use the card number specied in the test with the card’s expiration date set to the month
of December and the current year plus three. For example, for 2023, use 2026. You also
need the minimum required elds for an order.
Enrollment Check
For some of the enrolled cards, an authentication window appears after the enrollment
check completes.
To view the authentication window, you must enable your browser to display popup
windows.
The test password is 1234.
Depending on the user’s action, two results are possible:
• If the user submits the correct password for the enrolled card, authentication is
successful.
• If the user clicks the Exit link and clicks OK in the verication window, authentication
does not occur.
The following table lists the response elds used in the test cases.
Important
In most countries, card network support for 3-D Secure 1.0 was discontinued in
October 2022 as 3-D Secure 2.0 superseded the older 1.0 version. Most countries
should now use the 3-D Secure 2.0 test cases when conguring responses to
various transaction scenarios. The 3-D Secure 1.0 test cases in this section are
no longer relevant and should not be used by most merchants. Merchants in some
South Asian countries are allowed to continue to use the 3-D Secure 1.0 protocol
until October 2023. Contact customer supportcustomer support for further
information.
1. The ECI value can vary depending on the reason for the failure.
2. A dash (—) indicates that the eld is blank or absent.
Test Case 2: Visa Secure Card Enrolled: Successful Authentication but Invalid PARes
Test Case 6: Visa Secure Card Enrolled: Unsuccessful Authentication (Customer Exited)
Test Case 16: Mastercard Identity Check Card Enrolled: Successful Authentication
Test Case 17: Mastercard Identity Check Card Enrolled: Successful Authentication but
Invalid PARes
Test Case 19: Mastercard Identity Check Card Enrolled: Incomplete Authentication
Test Case 20: Mastercard Identity Check Card Enrolled: Unsuccessful Authentication
Test Case 21: Mastercard Identity Check Card Enrolled: Unsuccessful Authentication
(Customer Exited)
Test Case 22: Mastercard Identity Check Card Enrolled: Unavailable Authentication
VERes enrolled U
Action Submit the transaction. No liability shift.
Test Case 23: Mastercard Identity Check Card Enrolled: Authentication Error
Details Collection 0
indicator
E-commerce internet
indicator
proofXML proofXML value
Action After 10-12 seconds, proceed with the authorization message. No
liability shift.
Test Case 31: Maestro Card Enrolled: Successful Authentication but Invalid PARes
Test Case 32: Maestro Card Enrolled: Attempts Processing - Deprecated This test case is
no longer used.
1. The ECI value can vary depending on the reason for the failure.
2. A dash (—) indicates that the eld is blank or absent.
Test Case 38: American Express SafeKey Card Enrolled: Successful Authentication
Test Case 39: American Express SafeKey Card Enrolled: Successful Authentication but
Invalid PARes
Test Case 41: American Express SafeKey Card Enrolled: Incomplete Authentication
Test Case 42: American Express SafeKey Card Enrolled: Unsuccessful Authentication
Test Case 43: American Express SafeKey Card Enrolled: Unavailable Authentication
Test Case 44: American Express SafeKey Card Enrolled: Authentication Error
Action Ask the customer for another form of payment. No liability shift.
ECI 07
proofXML proofXML value
Action After 10-12 seconds, proceed with the authorization request. No
liability shift.
Test Case 49: JCB J/Secure Card Enrolled: Successful Authentication but Invalid PARes
Action Do not process the authorization request. Instead ask the customer
for another form of payment.
Test Case 51: JCB J/Secure Card Enrolled: Incomplete Authentication (Unavailable)
Test Case 54: JCB J/Secure Card Enrolled: Authentication Error Processing PARes
Test Case 57: JCB J/Secure Enrollment Check: Lookup Error Processing Message Request
Diners Club Protect Buy Test Cases for 3-D Secure 1.0
Possible Values for Diners Club ProtectBuy Response Fields
1. The ECI value can vary depending on the reason for the failure.
2. A dash (—) indicates that the eld is blank or absent.
Test Case 58: Diners Club ProtectBuy Card Enrolled: Successful Authentication
Test Case 59: Diners Club ProtectBuy Card Enrolled: Successful Authentication but Invalid
PARes
Test Case 60: Diners Club ProtectBuy Card Enrolled: Attempts Processing
Test Case 61: Diners Club ProtectBuy Card Enrolled: Incomplete Authentication
Test Case 62: Diners Club ProtectBuy Card Enrolled: Unsuccessful Authentication
Test Case 63: Diners Club ProtectBuy Card Enrolled: Unavailable Authentication
Test Case 64: Diners Club ProtectBuy Card Enrolled: Authentication Error
Test Case 69: Discover ProtectBuy Card Enrolled: Successful Authentication but Invalid
PARes
Test Case 70: Discover ProtectBuy Card Enrolled: Attempts Processing - Deprecated This
test case is no longer used.
Important
Mastercard requires that the 3-D Secure version and directory server transaction
ID be included along with all pertinent data in your authorization request.
Card Numbers
Card Type Test Card Number
Visa vbv
Cartes Bancaires Visa vbv
Mastercard spa
Cartes Bancaires Mastercard spa
American Express aesk
Discover dipb
Diners Club pb
JCB J/Secure js
Elo cs
China UnionPay up3ds
Visa 05
Cartes Bancaires Visa 05
American Express 05
Discover 05
Diners Club 05
JCB J/Secure 05
Elo 05
China UnionPay 05
Mastercard 02
Cartes Bancaires Mastercard 02
Action
If you request Check Enrollment and authorization services separately, add the required
payer authentication values to your authorization request. If you request the Check
Enrollment and authorization services together, the process described above occurs
automatically.
Card Numbers
Card Type Test Card Number
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
While the merchant can still authorize a failed 3-D Secure transaction as a non-
authenticated transaction, it is not recommended to submit this transaction for
authorization. Instead ask the customer for another form of payment.
Card Numbers
Card Type Test Card Number
Visa vbv_attempted
Cartes Bancaires Visa vbv_attempted
Mastercard spa
Cartes Bancaires Mastercard spa
American Express aesk_attempted
Discover dipb_attempted
Diners Club pb_attempted
Visa 06
Cartes Bancaires Visa 06
American Express 06
Discover 06
Diners Club 06
JCB J/Secure 06
Elo 06
China UnionPay 06
Mastercard 01
Cartes Bancaires Mastercard 01
Action
If you request Check Enrollment and authorization services separately, add the required
payer authentication values (CAVV and ECI) to your authorization request. If you request
the Check Enrollment and authorization services together, the process described above
occurs automatically.
Card Numbers
Card Type Test Card Number
Mastercard internet
Cartes Bancaires Mastercard internet
American Express internet
Discover internet
Diners Club internet
JCB J/Secure internet
Elo internet
China UnionPay up3ds_failure
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
Submit your authorization request. No liability shift.
Card Numbers
Card Type Test Card Number
Visa 07
Action
You are not permitted to submit this transaction for authorization. Instead ask the
customer for another form of payment.
Card Numbers
Card Type Test Card Number
Discover 601100 —
CardType = 004 00 0000 1051
Diners Club 601100 —
CardType = 005 00 0000 1051
JCB J/Secure 333700 333800
CardType = 007 00 0000 6765 00 0000 0940
Elo 650529 —
CardType = 054 00 0000 1150
China UnionPay 620001 —
CardType = 062 00 0060 0050
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
Submit your authorization request. No liability shift.
Card Numbers
Card Type Test Card Number
Discover 601100 —
CardType = 004 00 0000 1069
Diners Club 601100 —
CardType = 005 00 0000 1069
JCB J/Secure 333700 333800
CardType = 007 00 0000 0016 00 0000 0650
Elo 650529 —
CardType = 054 00 0000 1176
China UnionPay 620001 —
CardType = 062 00 0050 0060
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
Proceed with the authorization request, and contact your support representative to
resolve the issue. No liability shift. If you requested payer authentication and authorization
together, the authorization is processed automatically.
Card Numbers
Card Type Test Card Number
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
After 10-12 seconds, proceed with the authorization request. No liability shift.
Card Numbers
Card Type Test Card Number
Visa internet
Cartes Bancaires Visa internet
Mastercard internet
Cartes Bancaires Mastercard internet
American Express internet
Discover internet
Diners Club internet
JCB J/Secure internet
Elo internet
China UnionPay up3ds_failure
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
Submit your authorization request. No liability shift.
Card Numbers
Card Type Test Card Number
Visa vbv
Cartes Bancaires Visa vbv
Mastercard spa
Cartes Bancaires Mastercard spa
American Express aesk
Discover dipb
Diners Club pb
JCB J/Secure js
Elo cs
China UnionPay up3ds
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
If you request Validate Authentication and authorization services separately, add the
required payer authentication values to your authorization request. If you request the
Validate Authentication and authorization services together, the process described above
occurs automatically.
Card Numbers
Card Type Test Card Number
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
You are not permitted to submit this transaction for authorization. Instead ask the
customer for another form of payment.
Card Numbers
Card Type Test Card Number
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Visa 07
Cartes Bancaires Visa 07
American Express 07
Discover 07
Diners Club 07
JCB J/Secure 07
Elo 07
China UnionPay 07
Mastercard 00
Cartes Bancaires Mastercard 00
Action
Retry authentication or process without liability shift.
Card Numbers
This Method runs before the authentication request to gather information about the
location and type of device being used in the transaction to better assess the risk of a
transaction. If device data can't be collected, an older version of the 3-D Secure protocol
is used and the order is assessed as a higher risk.
Card Type Test Card Number
Visa 05
Cartes Bancaires Visa 05
American Express 05
Discover 05
Diners Club 05
JCB J/Secure 05
Elo 05
China UnionPay 05
Mastercard 02
Cartes Bancaires Mastercard 02
If you provide the browser elds on the Enroll request but do not run the 3-D Secure
Method, you get the following result:
Status = AUTHENTICATION_SUCCESSFUL Authentication is validated.
PARes status = Y
Action
If your device data collection method implements correctly and 3-D Secure Method
processing occurs, the test transaction produces a Frictionless Success result. A failure
is indicated by a PARes status = C.
Mastercard 520000
CardType = 002 00 0000 2805
Visa 445653
CardType = 002 00 0000 2045
Visa 445653
CardType = 001 00 0000 2144
Visa 445653
CardType = 001 00 0000 2169
Visa 445653
CardType = 001 00 0000 2177
Visa 445653
CardType = 001 00 0000 2235
Visa 445653
CardType = 001 00 0000 2243
Action
Proceed to Authorization.
You can also request the transaction risk analysis (TRA) exemption directly during
authorization depending on the region and your agreements with your acquirer and the
networks.
Visa 445653
CardType = 001 00 0000 2029
Action
Proceed to Authorization.
You can also request the TRA exemption directly during authorization depending on the
region and your agreements with your acquirer and the networks.
Discover 601100
CardType = 004 00 0000 1002
Action
Proceed to Authorization.
You can also request the TRA exemption directly during authorization depending on the
region and your agreements with your acquirer and the networks.
CAVV = <CAVV value> (The CAVV value is not returned during testing but could be
returned in production based on issuer rules surrounding co-branding with Visa or
Mastercard BINs.)
Action
Proceed to Authorization.
You can also request the TRA exemption directly during authorization depending on the
region and your agreements with your acquirer and the networks.
Visa 445653
CardType = 002 00 0000 2003
Action
You should append the CAVV and ECI values to the authorization message.
Visa 445653
CardType = 002 00 0000 2011
Action
You should append the CAVV and ECI values to the authorization message.
Mastercard 520000
CardType = 002 00 0000 1005
Action
You should append the ECI and DS Transaction ID values to the authorization message.
Mastercard 520000
CardType = 002 00 0000 1005
Action
You should append the ECI and DS Transaction ID values to the authorization message.
Website Modication
Reference
This section contains information about modifying your website to integrate Payer
Authentication services into your checkout process. It also provides links to payment card
company websites where you can download the appropriate logos.
There are alternate methods for device data collection. You can also use the Payer
Authentication Setup service described in Implementing Cardinal Cruise Direct
Connection API Payer Authentication.
Important
If you are using tokenization, use the Cardinal Cruise Direct Connection API
integration method and Payer Authentication Setup service.
Prerequisites
To support device data collection, you must complete one of the following:
• Obtain access to the card BIN (rst eight digits or full card number of cardholder).
• Create an iframe on your website and POST to the device data collection URL.
Endpoints
• Staging: https://centinelapistag.cardinalcommerce.com/V1/Cruise/Collect
• Production: https://centinelapi.cardinalcommerce.com/V1/Cruise/Collect
Upgrading Your
Payer Authentication
Implementation
This section provides information about upgrading to 3-D Secure 2.x for merchants
currently using Payer Authentication services.
Benets
3-D Secure 2.x provides these benets:
• More secure transactions as additional data is available.
• Backward compatibility. Additional data is automatically sent to issuers as they upgrade
to 3-D Secure 2.x.
• Improved user-friendly shopping experience for customers, including frictionless
authentication and shorter transaction times.
• Can result in higher authorization rates.
• Easier to upgrade to 3-D Secure 2.2. Version 2.2 includes support for exemptions
for PSD2, which might allow frictionless authentication, including acquirer/issuer
transactional risk assessment; white listing; low value, one leg out, and merchant-
initiated transactions. These exemptions will be dened as they become available.
PSD2 Impact
If PSD2 affects you, you must upgrade to 3-D Secure 2.x.
PSD2 requires additional security measures outlined in the Regulatory Technical
Standards (RTS) that become applicable in the future. PSD2 requires stronger identity
checks for online payments, particularly for high-value transactions.
PSD2 means changes for all companies in Europe that deal with payments. Some of the
implications for merchants include:
• Requiring two-factor authentication for all electronic payments, although there are
exemptions to allow a frictionless ow.
• Requiring 3-D Secure e-commerce merchants to integrate dynamic authentication
tools (such as 3-D Secure 2.x).
Mandates
PSD2 includes mandates around strong customer authentication (SCA) and exemptions
and challenges. For more information on the mandates, go to Cardinal's consumer
authentication demos page, launch the 3-D Secure information demo and click on the
Country Mandates button at the upper, right of the page.
Recommended Integration
Three types of integration are available for 3-D Secure 2.x:
• Cardinal Cruise Direct Connection API
• SDK integration for your mobile application
• Hybrid integration
If you are currently using Payer Authentication services in your existing business
processes and need to upgrade to 3-D Secure 2.x, we recommend using the Cardinal
Cruise Direct Connection API integration. The Cardinal Cruise Direct Connection API
integration most closely resembles the current process in which you request the
Enrollment Check service to verify that the customer is enrolled in one of the card
authentication programs and receive a response. With 3-D Secure 2.x, that response
includes a new value, the processor transaction ID.
For enrolled cards, include the Access Control Server (ACS) URL, payload, and processor
transaction ID to proceed with the authentication session. Then request the validation
service, sending the processor transaction ID with your request, and receive a response
with the e-commerce indicator and Cardholder Authentication Verication Value (CAVV)
or Account Authentication Value (AAV).
For more information about the Cardinal Cruise Direct Connection API, see Implementing
Cardinal Cruise Direct Connection API Payer Authentication on page 19.
For details about the other integrations, see Implementing SDK Payer Authentication on
page 42 or Implementing Hybrid Payer Authentication.
Important
If you are using tokenization, use the Cardinal Cruise Direct Connection API
integration method for Payer Authentication.
Migration FAQ
Q: Is a new JWT required for each transaction?
A: Yes, even though the JWT does not expire for two hours, you should send a new JWT
with each new transaction.
Q: How do you link the device data to the transaction-level data?
A: There are two ways to do this:
• You can create a reference ID in the original JWT and then pass that same value for the
request eld for the Check Enrollment service.
• You can use the session ID returned from Payments.setupComplete for the request
eld for the Check Enrollment service.
Q: When will the Payer Authentication reports include the new elds for 3-D Secure 2.x?
A: They will be added in a future release.
Q: Will my current implementation continue to work while I am implementing and testing
the newer version in parallel?
A: Yes, current implementation will continue to work.
Q: What testing should I conduct, to ensure that my code is working correctly?
A: Use the test cases (Test Cases for 3-D Secure 2.x on page 138) to test your preliminary
code and make the appropriate changes.
Q: How does 3-D Secure 2.x authentication improve the experience for a customer who
uses a mobile or tablet device?
A: 3-D Secure 2.x is agnostic to the device and you have control over the formatting of
the authentication form. 3-D Secure 2.x also supports newer, more secure authentication
delivery tools, such as a one-time password (OTP) sent to a customer’s mobile device or
email.
Payer Authentication
Transaction Details in the
Business Center
This section describes how to search the Business Center for details of Payer
Authentication transactions. Transaction data is stored for 12 months so that you can
retrieve and send the data to payment card companies, if necessary.
you send them the AAV, CAVV, or the XID when a chargeback occurs. The requirements
depend on the card type and the region. For more information, refer to your agreement
with your payment card company. After your transactions are settled, you can also use this
data to update the statistics of your business.
Enrolled Card
When a card is enrolled, the process consists of two steps:
1. Checking for enrollment
2. Authenticating the customer
Enrollment Check
For the enrollment check for an enrolled card, payer authentication data is located in the
Transaction Search Details window in these sections:
• Request Information section: The enrollment check service is shown in red because
the card is enrolled. You receive the corresponding response information. If the card
authorization service was requested at the same time, it did not run and appears in
black.
• Order Information section: When authentication is required, American Express SafeKey
requires that you save the XID for use later. You do not receive an ECI or AAV_CAVV
because the authentication is not complete.
If CAVV and ECI are not provided and the Enrollment transaction results in a challenge,
then authentication is required.
Authentication Validation
For a transaction in which the validation and the card authorization services were
processed successfully, payer authentication data is located in the Transaction Search
Details window in these sections:
• Request Information section: The validation service succeeded. A reason code
100 is returned with the corresponding response message. The necessary payer
Transaction Details
For a transaction in which the card is not enrolled, payer authentication data is located in
the Transaction Search Details window in these sections:
• Request Information section: the service appears in green. You can obtain additional
information about related orders by clicking the link on the right.
• Order Information section: the detailed information for the authorization service:
• For Mastercard, the ECI value is 00: authentication is not required because the
customer’s Mastercard card is not enrolled. Other cards will have an ECI value of 07.
• The AAV/CAVV area is empty because you receive a value only if the customer is
authenticated.
• The XID area is empty because the card in not enrolled.
Payer Authentication
Reports
This section describes the Payer Authentication reports that you can download from the
Business Center:
• Payer Authentication Summary Report
• Payer Authentication Detail Report
All reports on the production servers are retained for 16 months but the transaction
history is only kept in the database for six months. All reports on the test servers are
deleted after 60 days. Only transactions that were processed are reported. Those
transactions that resulted in a system error or a time-out are not reported.
To get access to the reports, you must le a support ticket in the Support Center.
3. In the search toolbar, select the Date Range you want to include in the report. Account
level users must select a merchant as well.
4. Based on the Date Range selected, choose the specic day, week, or month you want
to review.
Only months which have already occurred in the current year display in the Month list. To
view all months of a previous year, select the year rst, then choose the desired month.
To view results before the selected period, below the search toolbar, click Previous. Click
Next to see the previous period.
Commerce ECI
Indicator
Visa, American No No Internet 7
Express, and authentication Yes VbV, Desk, or JS 6
JCB Recorded Yes Attempted 5
attempt to VbV, JS, or Aesk
authenticate
Successful
authentication
1. Although the report heading is 7, you receive a collection indicator value of 1, or the
response eld is empty.
2. Although the report heading is Internet, you receive spa_failure in the commerce
indicator response eld.
Transactions are divided into two groups: those for which you are protected and those for
which you are not protected:
• For Visa, American Express, JCB, Diners Club, Discover, China UnionPay, and Elo: liability
shift for VbV and VbV attempted
• For Mastercard and Maestro: liability shift only for SPA
• For all other results: no liability shift
The amounts and numbers can be higher in the Payer Authentication report than in the
payment reports. In this example, it shows the results of the rst two numbers in the Payer
Authentication report and the last one in the payment reports.
To reconcile your reports more easily when using payer authentication, we recommend
that you attempt to authenticate the same amount that you want to authorize.
Payer Authentication Reports Compared to Payment Reports
For 10,000 orders, you may receive these results:
Report Elements
The Payer Authentication Detail report consists of these elements:
• <Report>
• <PayerAuthDetail>
• <ProofXML>
• <VEReq>
• <VERes>
• <PAReq>
• <PARes>
• <AuthInfo>
Report
The <Report> element is the root element of the report.
<Report>
<PayerAuthDetails>
(PayerAuthDetail+)
</PayerAuthDetails>
</Report>
<PayerAuthDetail> Contains the transaction in the report. For a list of child elements,
see <PayerAuthDetail>.
<PayerAuthDetails> Element
PayerAuthDetail
The <PayerAuthDetail> element contains information about a single transaction.
<PayerAuthDetail>
(RequestID)
(MerchantID)
(RequestDate)
(TransactionType)
(ProofXML)?
(VEReq)?
(VERes)?
(PAReq)?
(PARes)?
(AuthInfo)?
</PayerAuthDetail>
<PayerAuthDetail> Element
<PayerAuthDetail>
<RequestID>0004223530000167905139</RequestID>
<MerchantID>example_merchant</MerchantID>
<RequestDate>2020-02-09T08:00:09-08:00</RequestDate>
<TransactionType>ics_pa_enroll</TransactionType>
<ProofXML>
...
</ProofXML>
<VEReq>
...
</VEReq>
<VERes>
...
</VERes>
<PAReq>
...
</PAReq>
<PARes>
...
</PARes>
</PayerAuthDetail>
ProofXML
The <ProofXML> element contains data that includes the date and time of the
enrollment check and the VEReq and VERes elements. This element corresponds to the
consumerAuthenticationInformation. proofXml API eld.
<ProofXML>
(Date)
(DSURL)
(PAN)
(AcqBIN)
(MerID)
(Password)
(Enrolled)
</ProofXML>
<ProofXML> Element
<ProofXML>
<Date>20200209 08:00:34</Date>
<DSURL>https:123.456.789.01:234/DSMsgServlet</DSURL>
<PAN>XXXXXXXXXXXX0771</PAN>
<AcqBIN>123456</AcqBIN>
<MerID>4444444</MerID>
<Password />
<Enrolled>Y</Enrolled>>
</ProofXML>
VEReq
The <VEReq> element contains the enrollment check request data.
<VEReq>
(PAN)
(AcqBIN)
(MerID)
</VEReq>
<VEReq> Element
<VEReq>
<PAN>XXXXXXXXXXXX0771</PAN>
<AcqBIN>123456</AcqBIN>
<MerID>example</MerID>
</VEReq>
VERes
The <VERes> element contains the enrollment check response data.
<VERes>
(Enrolled)
(AcctID)
(URL)
</VERes>
<VERes> Element
<VERes>
<Enrolled>Y</Enrolled>
<AcctID>NDAxMjAwMTAxMTAwMDc3MQ==</AcctID>
<URL>https://www.example_url.com</URL>
</VERes>
PAReq
The <PAReq> element contains the payer authentication request message. This element
corresponds to the consumerAuthenticationInformation.pareq API eld.
<PAReq>
(AcqBIN)
(MerID)
(Name)
(Country)
(URL)
(XID)
(Date)
(PurchaseAmount)
(AcctID)
(Expiry)
</PAReq>
<PAReq>
<AcqBIN>123456</AcqBIN>
<MerID>444444</MerID>
<Name>example</Name>
<Country>US</Country>
<URL>http://www.example.com</URL>
<XID>fr2VCDrbEdyC37MOPfIzMwAHBwE=</XID>
<Date>2020-02-09T08:00:34-08:00</Date>
<PurchaseAmount>1.00 USD</PurchaseAmount>
<AcctID>NDAxMjAwMTAxMTAwMDc3MQ==</AcctID>
<Expiry>2309</Expiry>
</PAReq>
PARes
The <PARes> element contains the payer authentication response.
<PARes>
(AcqBIN)
(MerID)
(XID)
(Date)
(PurchaseAmount)
(PAN)
(AuthDate)
(Status)
(CAVV)
(ECI)
</PARes>
<CAVV> CAVV (Visa, American Express, JCB, Diners Club, String (50)
Discover, China UnionPay, and Elo) cards = *
below) or AAV (Mastercard, and Maestro cards =
** below) returned in the customer authentication
response. This element corresponds to the
consumerAuthenticationInformation.cav and
consumerAuthenticationInformation.ucaf
AuthenticationData API elds.
<ECI> Electronic Commerce Indicator returned Numeric (1)
in the customer authentication response.
This element corresponds to the
consumerAuthenticationInformation.eci and
consumerAuthenticationInformation.ucaf
CollectionIndicator API elds.
<PARes> Element
<PARes>
<AcqBIN>123456</AcqBIN>
<MerID>4444444</MerID>
<XID>Xe5DcjrqEdyC37MOPfIzMwAHBwE=</XID>
<Date>2020-02-09T07:59:46-08:00</Date>
<PurchaseAmount>1002.00 USD</PurchaseAmount>
<PAN>0000000000000771</PAN>
<AuthDate>2020-02-09T07:59:46-08:00</AuthDate>
<Status>Y</Status>
<CAVV>AAAAAAAAAAAAAAAAAAAAAAAAAAA=</CAVV>
<ECI>5</ECI>
</PARes>
AuthInfo
The <AuthInfo> element contains address and card verication information.
<AuthInfo>
(AVSResult)
(CVVResult)
</AuthInfo>
<AuthInfo> Element
<AuthInfo>
<AVSResult>Y</AVSResult>
<CVVResult/>
</AuthInfo>
Report Examples
These examples show a complete transaction: the failed enrollment check (enrolled card)
and the subsequent successful authentication.
For transactions in India, use https://ics2ws.in.ic3.com/commerce/1.x/
transactionProcessor.
Failed Enrollment Check
<ProofXML>
<Date>20200209 08:00:34</Date>
<DSURL>https:123.456.789.01:234/DSMsgServlet</DSURL>
<PAN>XXXXXXXXXXXX0771</PAN>
<AcqBIN>123456</AcqBIN>
<MerID>4444444</MerID>
<Password />
<Enrolled>Y</Enrolled>
</ProofXML>
<VEReq>
<PAN>XXXXXXXXXXXX0771</PAN>
<AcqBIN>123456</AcqBIN>
<MerID>example</MerID>
</VEReq>
<VERes>
<Enrolled>Y</Enrolled>
<AcctID>NDAxMjAwMTAxMTAwMDc3MQ==</AcctID>
<URL>https://www.sample_url.com</URL>
</VERes>
<PAReq>
<AcqBIN>123456</AcqBIN>
<MerID>example</MerID>
<Name>Merchant Name</Name>
<Country>US</Country>
<URL>http://www.merchant_url.com</URL>
<XID>2YNaNGDBEdydJ6WI6aFJWAAHBwE=</XID>
<Date>2020-02-09T08:00:34-08:00</Date>
<PurchaseAmount>1.00 USD</PurchaseAmount>
<AcctID>NDAxMjAwMTAxMTAwMDc3MQ==</AcctID>
<Expiry>2309</Expiry>
</PAReq>
</PayerAuthDetail>
</PayerAuthDetails>
</Report>
Successful Authentication
<ECI>5</ECI>
</PARes>
</PayerAuthDetail>
</PayerAuthDetails>
</Report>
Glossary