Visa Secure Commerce SDKReference V25 D 05
Visa Secure Commerce SDKReference V25 D 05
Version 24.04
Notice: This information is proprietary and CONFIDENTIAL to Visa. It is distributed to Visa participants for use
exclusively in managing their Visa programs. It must not be duplicated, published, distributed or disclosed, in
whole or in part, to DSAs, cardholders or any other person without prior written permission from Visa.
The Visa Confidential label signifies that the information in this document is confidential and proprietary to Visa
and is intended for use only by Visa Clients subject to the confidentiality restrictions in the Visa Core Rules and
Visa Product and Service Rules, non-Client Third-Party Processors that have an executed and valid VisaNet Letter
of Agreement on file with Visa, and other third parties that have a current participation agreement, including
confidentiality provisions, or other non-disclosure agreement with Visa that covers disclosure and use of the
information contained herein.
This document is protected by copyright restricting its use, copying, distribution, and decompilation. No part of
this document may be reproduced in any form by any means without prior written authorization of Visa.
The trademarks, logos, trade names and service marks, whether registered or unregistered (collectively the
“Trademarks”) are Trademarks owned by Visa. All other trademarks not attributed to Visa are the property of
their respective owners
Note:
This document is not part of the Visa Rules. In the event of any conflict between any content in this
document, any document referenced herein, any exhibit to this document, or any communications
concerning this document, and any content in the Visa Rules, the Visa Rules shall govern and control.
THIS PUBLICATION IS PROVIDED ON AN “AS IS, WHERE IS” BASIS, “WITH ALL FAULTS” KNOWN AND UNKNOWN.
THIS PUBLICATION COULD INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS. CHANGES ARE
PERIODICALLY ADDED TO THE INFORMATION HEREIN: THESE CHANGES WILL BE INCORPORATED IN NEW
EDITIONS OF THE PUBLICATION. VISA MAY MAKE IMPROVEMENTS AND/OR CHANGES IN THE PRODUCT(S)
AND/OR THE PROGRAM(S) DESCRIBED IN THIS PUBLICATION AT ANY TIME. WHERE POTENTIAL FUTURE
FUNCTIONALITY IS HIGHLIGHTED, VISA DOES NOT PROVIDE ANY WARRANTY ON WHETHER SUCH
FUNCTIONALITY WILL BE AVAILABLE OR IF IT WILL BE DELIVERED IN ANY PARTICULAR MANNER OR MARKET. TO
THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, VISA EXPLICITLY DISCLAIMS ALL WARRANTIES,
EXPRESS OR IMPLIED, REGARDING THE INFORMATION CONTAINED HEREIN, INCLUDING ANY IMPLIED
WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
If you have technical questions or questions regarding a Visa service or questions about this document, please
contact your Visa representative.
Contents
What’s New in This Version
Relationship Between the Visa SRC System and Other SRC Systems. . . . . . . . . .10
Checkout Journeys. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Init Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
DPA Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Init Returns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Init Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Init Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Is Recognized (isRecognized). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Is Recognized Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Is Recognized Returns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Is Recognized Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Is Recognized Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
SRC Profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Checkout (checkout). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Checkout Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Consumer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Card. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Compliance Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Authentication Context. . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Authentication Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Assurance Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
Checkout Returns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Checkout Response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Masked Consumer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Assurance Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Checkout Examples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Checkout Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Authenticate (authenticate). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Authenticate Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Account Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Authentication Context. . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Authentication Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Authenticate Returns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Authenticate Response. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Assurance Data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Authenticate Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Authenticate Errors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Card. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Consumer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Endpoints. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Method. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Interface Changes
The following changes were made to the interface:
l Clarified that the mobileNumber field in the checkout() parameters is required when
adding a new card.
l Changed the name of the mobileNumber field in the Masked Consumer structure to
maskedMobileNumber and noted that it is not returned by the getSrcProfile()
method.
l Added an optional encryptedBillingAddress field to the checkout() method's
parameters.
l Added the IDENTITY_VALIDATION_REQUIRED error to the checkout() method.
l Determine whether the consumer is recognized by email address in the SRC system
(identityLookup)
l Get the consumer’s profile, which contains payment instruments for selection
(getSrcProfile)
l Checkout (ability to return authentication results) and report DCF status (checkout)
l Disassociate the DPA or device from the consumer’s SRC Profile (unbindAppInstance)
Checkout Journeys
Detailed instructions and guidance for creating various consumer checkout journeys are
provided in the Visa Click to Pay Digital Terminal Implementation Guide. For more information,
contact your Visa representative.
Sandbox
https://sandbox-assets.secure.checkout.visa.com/
checkout-widget/resources/js/src-i-adapter/
visaSdk.js
Production
https://assets.secure.checkout.visa.com/
checkout-widget/resources/js/src-i-adapter/
visaSdk.js
The following example shows how to load the SDK and create an adaptor:
<head>
...
</head>
<body>
<script src="https://sandbox-assets.secure.checkout.visa.com/
checkout-widget/resources/js/src-i-adapter/visaSdk.js">
</script>
<script>
let vSrcAdapter = window.vAdapters.VisaSRCI;
let vSrc = new vSrcAdapter();
</script>
</body>
Internally, a WindowRef is used to host the UI. When presenting any SRC UI, the SRC SDK
controls the seamless operation of the window as either a pop-up window or an iFrame. The
SRC SDK passes the WindowRef to the Digital Card Facilitator (DCF) so that the DCF UI can be
rendered in the referenced window.
encryption; however, asymmetric data encryption keys require a public certificate from the
entity performing the decryption.
Payload Verification SRCi participant verifies the signature. Visa signs the Asymmetric
payload.
PAN JWE Encryption SRCi participant encrypts PAN JWE via browser with Visa Asymmetric
public key.
It is required only for DT.
Payload Decryption SRCi participant decrypts full payload from back-end Asymmetric
server-to-server.
API Key Shared Secret SRCi participant authenticates using x-pay-token. Symmetric
Authentication
Field Description
kid Key identifier for the signing key.
When Visa generates this header, the signing key is used to lookup
the Outbound Message Authentication key.
When Visa verifies the signature of this header, the signing key is
used to lookup the Inbound Message Authentication key.
Format: Alphanumeric
jti Unique identifier for the token. The jti can be used as a nounce.
Syntax
init(initData)
Init Parameters
initData is a structure that contains the following fields:
Field Description
srciTransactionId (Required) A unique transaction ID created by the SRCi, which may
be created on the merchant page. It must be passed through to all
networks (SRC systems) and DCFs.
Format: Alphanumeric, maximum 100 characters
srciDpaId (Conditional) A unique ID provided by the SRCi for the DPA, which
can be used as an external client ID.
Required if srciDpaId in dpaData is not provided.
Format: String
DPA Data
Field Description
srciDpaId (Conditional) DPA identifier, which is generated by the SRC system
during DPA registration. Required if srciDpaId is not provided in
the top-level structure of the request body; optional unless you
want to specify a display presentation name, the website address,
or the preferred 3DS behavior.
Format: String, 64 bytes
Field Description
dpaUri (Optional) The URI for the website.
Example: http://www.Mycompanyonline.com
l ONBEHALF
l SELF
l NONE
l UNKNOWN (default)
Field Description
dpaLocale (Optional) DPA’s preferred locale. This can be the same as the locale
in the init parameters or can be different.
Format: Based on ISO format for language (ISO 639-1) and alpha-2
country code (ISO 3166-1 alpha-2). The language and country
should be separated using an underscore ( _ ).
l FULL (default)
l POSTAL_COUNTRY
l NONE
Field Description
dpaShippingPreference (Optional) Extent to which DPA wants to have shipping address
collected. Not required for Merchant Orchestrated Checkout; if
passed, it will be changed to NONE.
l FULL (default)
l POSTAL_COUNTRY
l NONE
consumerNameRequested (Optional) Whether the name of the consumer has been requested.
Format: It is one of the following values:
l true (default)
l false
consumerEmailAddressRequested (Optional) Whether the email address of the consumer has been
requested.
Format: It is one of the following values:
l true (default)
l false
consumerPhoneNumberRequested (Optional) Whether the Phone number of the consumer has been
requested.
Format: It is one of the following values:
l true (default)
l false
l true
l false
Field Description
checkoutDescription (Optional) Review message to go with action.
Format: String
l PURCHASE (default)
l BILL_PAYMENT
l MONEY_TRANSFER
l REAUTHORIZATION
l RECURRING
l INSTALLMENT
l RECURRING_PAYMENTS
l SUBSCRIPTION_SERVICES
l INSTALLMENTS
Format:
purchaseDate (Conditional) Original purchase date. Required when
transactionInstruction is specified.
Format: Integer
Field Description
payloadTypeIndicator (Optional) The verbosity of payload requested.
Format: Enum, it is one of the following values:
l FULL - includes everything; all PCI & PII data (card/token, billing,
shipping, consumer)
l SUMMARY - (default) no JWE. If FULL needed during checkout,
SRCi needs to make a request for it explicitly.
l PAYMENT - same as FULL
merchantOrderId (Optional) The order identifier generated by the DPA. Typically used
for reconciliation process by the DPA.
Format: Universally Unique Identifier (UUID)
merchantCountryCode (Optional) The country code associated with the merchant’s billing
or shipping address.
Format: ISO-3166 - 1 alpha-2 standard code
Example: US – United States
Field Description
authenticatedCredentialRequested (Optional) SRCi preference to perform authentication and to receive
authentication data for the transaction.
Format: It is one of the following values:
l true
l false (default)
Payment Options
Parameter Description
dpaDynamicDataTtlMinutes (Optional) The minimum requested validity period for the
transaction credentials, such as a cryptogram, returned by the SRC
system, in minutes.
If this is not provided, the values are determined by the SRCs.
Format: integer
Example: 2
l CARD_APPLICATION_CRYPTOGRAM_LONG_FORM – Transaction
Authentication Verification Value
l DYNAMIC_CARD_SECURITY_CODE – Dynamic Token Verification
Value
l TAVV Deprecated – Transaction Authentication Verification Value
l true
l false (default)
Transaction Amount
Field Description
transactionAmount (Required) Amount associated with transaction.
Format: Numeric string; maximum 9 digits before an optional
decimal point and 4 decimal digits after
Field Description
checkoutOrchestrator (Optional) Checkout orchestrator. Must be "merchant" for
Merchant Orchestrated Checkout.
Format: String
l paymentsetting
l withincheckout
l CREDIT
l DEBIT
Init Returns
void
Init Examples
Code
var initParams = {
"srciTransactionId": "...",
"srcInitiatorId": "F14...YE",
"srciDpaId": "F14...YE",
"dpaData": {
"srcDpaId": "F14...YE",
"dpaPresentationName": "...",
"dpaUri": "http://www.---.com",
"dpaThreeDsPreference": "UNKNOWN"
},
"dpaTransactionOptions": {
"dpaLocale": "en_US",
"dpaAcceptedBillingCountries": [
"US",
"CA"
],
"dpaAcceptedShippingCountries": [
"US",
"CA"
],
"dpaBillingPreference": "FULL",
"dpaShippingPreference": "FULL",
"consumerNameRequested": true,
"consumerEmailAddressRequested": true,
"consumerPhoneNumberRequested": true,
"paymentOptions": {
"dynamicDataType":
"CARD_APPLICATION_CRYPTOGRAM_LONG_FORM",
"dpaPanRequested": false
},
"reviewAction": "continue",
"checkoutDescription": "Sample checkout",
"transactionType": "PURCHASE",
"orderType": "REAUTHORIZATION",
"payloadTypeIndicator": "PAYMENT",
"transactionAmount": {
"transactionAmount": "99.95",
"transactionCurrencyCode": "USD"
},
"merchantOrderId": "...",
"merchantCategoryCode": "...",
"merchantCountryCode": "US",
"customInputData": {
//For Merchant Orchestrated Checkout experience:
"checkoutOrchestrator": "merchant"
}
}
};
"customInputData": {
"checkoutOrchestrator": "merchant"
}
Returns
{}
Init Errors
DPA_ID_MISSING srcDpaId and dpaData both are missing. SRC system cannot
identify the DPA.
Is Recognized (isRecognized)
Determines whether the consumer is recognized, e.g. by detecting the presence of a local
cookie in the browser environment.
If the user is recognized, this method obtains the JSON Web Token (JWT) to optionally pass to
precheckout call to other SRC. This method may then (as an optimization) initiate the Get
Precheckout Data request.
Syntax
isRecognized()
Is Recognized Parameters
None
Is Recognized Returns
Field Description
recognized Whether the consumer is recognized.
Format: It is one of the following values:
l true — recognized
idTokens A token that allows the SRC systems to communicate with each
other for SRC consumer identity verification; This SRC ID token
should be discarded at the end of an SRC checkout transaction.
Required if the consumer is recognized; Not need to be present if
the consumer is not recognized.
Format: List of ID Tokens in JWT format.
Is Recognized Examples
Code
function callIsRecognized() {
isRecognized((response) => {
console.log(response);
if (response.recognized) {
// Store the token -> response.idTokens
// User is recognized. Call getSrcProfile with tokens,
// get masked card details, present in UI
callGetSrcProfile(response.idTokens);
} else {
// User is not recognized -> Call identityLookup
callIdentityLookup();
}
});
}
Returns
Recognized:
{
"recognized": true,
"idTokens": [
"eyJ...0g"
]
}
Not recognized:
{"recognized": false,
"idTokens": []
}
Is Recognized Errors
Reason Code Description
ACCT_INACCESSIBLE The account exists but is not currently accessible, e.g., it is locked.
The method uses a JWT, or a secure cookie from the browser to identify the user. The returned
data can be used for card selection.
Syntax
getSrcProfile(idTokens)
Field Description
profiles SRC profiles associated with each recognized user using JWT
(idToken).
srcCorrelationId The unique identifier generated by SRC system to track and link
SRC messages. This is used as a transaction identifier assigned by
the SRC system for this particular transaction.
Returned when the cards are returned successfully.
Format: Universally Unique Identifier (UUID)
SRC Profile
Field Description
idToken A unique identifier associated with the masked token. The ID token
is returned only for the consumer recognized by this SRC system.
Format: IdToken in JWT format
Masked Consumer
Field Description
firstName The first name of the consumer.
Format: Alphanumeric; between 2–80 characters.
Field Description
emailAddress The email address of the consumer.
Example: en_US
Field Description
countryCode Phone number country code.
Format: Alphabetic, numeric; maximum 4 characters.
Masked Card
Field Description
srcDigitalCardId A unique ID associated with the digital card.
Format: Universally Unique Identifier (UUID)
Field Description
paymentAccountReference The Payment Account Reference (PAR) associated with the
cardholder account that uniquely identifies the account to which
the payment card is associated
Format: String
digitalCardData The metadata about the card, which contains digital card
information used in the acceptance environment and in the user
interface. This data provides a reference to the actual PAN or
Payment Token without actually disclosing either.
Digital Card Data is grouped together based on the following
categories:
dateOfCardLastUsed Timestamp that identifies when this card was last used.
Format: UNIX Epoch timestamp. The value is in milliseconds.
Example: 1536926400
dcf The Digital Card Facilitator (DCF) system. It is present only when
the MaskedCard data structure is used in the checkout or payload
response.
Card experience provider. It is present only when the MaskedCard
data structure is used in the checkout or payload response.
Format: DCF structure
Field Description
tokenId Reference identifier to the Token that enables the SRC System to
communicate with the Token Service Provider without transmitting
the actual PAN/Token; Present when PAN is eligible for tokeni
zation. The reference identifier is associated with the SRC Profile to
which the Payment Card belongs and is unique within an SRC
System.
Format:
String. Alphabetic, numeric [A-Z][a-z][0-9,-], and hyphens ( - ), e.g.,
spaces are not allowed; maximum 36.
paymentCardType Indicates whether the card supports both credit and debit options.
Format: It is a list of one or more of the following values:
l COMBO
Field Description
status The digital card status any given time in the SRC system.
Format: It is one of the following values:
l ACTIVE
l SUSPENDED
l EXPIRED
l PENDING
l CANCELLED
artUri URI of the Art card application. Can be provided by SRC Issuer
(SRCPI) .
Format: A valid URI; maximum 100 characters
Field Description
artWidth Width of the Art card image, in pixels.
Format: Numeric value between 1 and 4096, inclusive
Example: artWidth : ...
pendingEvents Set of events that are pending completion such as Card Holder
Verification, AVS, SCA, Device Binding, etc. Required when the
value of status is set to PENDING.
l "PENDING_CONSUMER_IDV"
l "PENDING_CONSUMER_DEVICE_BINDING"
l "PENDING_CARDHOLDER_AUTHENTICATION"
Authentication Method
Field Description
authenticationMethodType (Required) SRCi to indicate for a particular transaction if Click to Pay
needs to perform managed authentication or not.
Format: It is one of the following values:
l SMS_OTP
l EMAIL_OTP
l APP_AUTHENTICATION
l MANAGED_AUTHENTICATION
l CARDHOLDER
l CONSUMER
l CARD
Field Description
authenticationCredentialReference (Optional) Authentication credential reference, which may be
provided by the identity provider once an authentication is initiated
to qualify the nature of the authentication method. For example,
SMS_OTP may use the masked mobile number "***-***-1234",
which can be displayed to the Consumer to aid method selection.
Format: String
URI Data
Field Description
uri (Required) Specifies the URI for the given authentication method.
Format: String; maximum 2048 characters
l APP_URI
l WEB_URI
Method Attributes
Field Description
challengeIndicator (Optional) A challenge indicator value related to 3DS authentication.
Format: It is one of the following values:
l 01 - No preference
l 02 - No challenge requested
Field Description
uri Uniform Resource Identifier (URI), a valid web address or URL
Format: String of characters; maximum 256 characters
Masked Address
The allowed characters for the address line 1, 2, and 3 are: .',:_#/
()ÁáÀàÂâÄäÃãÇçÉéÈèÊêËëÍíÎîÏïÑñÓóÔôÕõŒœÚúÙùÛûÜüŸÿÆæĄąĆćĘꣳŃńŚśŹźŻż/
Field Description
addressId The ID associated with the masked address in the SRC system.
Format: String
line1 Line 1 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric, Maximum 140 characters. For country
specific information, see Visa Checkout Address Formats by Country.
Example: 1** M*** St
line2 Line 2 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric, Maximum 140 characters.
line3 Line 3 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric, Maximum 140 characters.
city City name associated with the masked address in the SRC system.
The address must have the city name in the valid address format
for the country.
Format: Alphanumeric, UTF-8 white space; maximum 100
characters
state State code associated with the masked address in the SRC system.
The address must have the state name in the valid address format
for the country.
Must be a valid 2-characters code for US and CA and a valid 3-
characters code for AU.
Format: String
Example: VA
countryCode Country code associated with the masked address in the SRC
system.
Format: ISO-3166-1 alpha-2 standard code
Example: US
Field Description
createTime Date and time the masked address was created.
Format: String; 25 characters
lastUsedTime Date and time the masked address was last used.
Format: UNIX Epoch timestamp. The value is in milliseconds.
Code
function callGetSrcProfile(_idTokens) {
getSrcProfile(_idTokens, function (result) {
console.log(result);
// Present the list of cards to user for selection
// List of Cards -> result.profiles[0].maskedCards
});
}
Returns
{
"profiles": [
{
"idToken": "eyJ...g",
"maskedCards": [
{
"cardError": null,
"dateofCardCreated": 1556589662806,
"dateofCardLastUsed": 1563181766426,
"dcf": {
"type": null
},
"digitalCardData": {
"artHeight": 105,
"artUri":"https://sandbox.secure.checkout.visa.com/
VmeCardArts/....png",
"artWidth": 164,
"status": "ACTIVE"
},
"eligible": true,
"maskedBillingAddress": {
"addressId": "e0d...01",
"city": "*****",
"countryCode": "US",
"line1": "Asd*****",
"line2": null,
"line3": null,
"state": "VA",
"zip": "*****"
},
"panBin": null,
"panExpirationMonth": "12",
"panExpirationYear": "2023",
"panLastFour": "1111",
"srcDigitalCardId": "c96...01"
},
{
"cardError": null,
"dateofCardCreated": 1512433695415,
"dateofCardLastUsed": 1562743621206,
"dcf": {
"type": null
},
"digitalCardData": {
"artHeight": 105,
"artUri": "https://sandbox.secure.checkout.visa.com/
VmeCardArts/....png"
"artWidth": 164,
"status": "ACTIVE"
},
"eligible": true,
"maskedBillingAddress": {
"addressId": "89e...01",
"city": "*****",
"countryCode": "CA",
"line1": "Can*****",
"line2": null,
"line3": null,
"state": "ON",
"zip": "*****"
},
"panBin": null,
"panExpirationMonth": "09",
"panExpirationYear": "2019",
"panLastFour": "2958",
"srcDigitalCardId": "301...01"
}
],
"maskedConsumer": {
"firstName": "T*****",
"lastName": "K*****",
"fullName": "T***** K*****",
"emailAddress": "the**@gmail.com",
"countryCode": "US",
"languageCode": "en-US"
}
}
],
"srcCorrelationId": "750...01"
}
Syntax
identityLookup(consumerIdentity)
Field Description
identityProvider (Optional) The Identity provider.
The default value is SRC.
Format: String
l EMAIL
l MOBILE_NUMBER
l CUSTOM_IDENTIFIER
l FUTURE
Format: String
Field Description
consumerPresent Whether the consumer exists in the SRC system.
Format: It is one of the following values:
Code
Returns
{
"consumerPresent": true
}
ACCT_INACCESSIBLE The account exists but is not currently accessible, e.g. it is locked.
Syntax
initiateIdentityValidation()
Field Description
maskedValidationChannel Masked email and phone number, if available, used to deliver the
validation code (like OTP).
Example: "u**@example.com,*********67"
Code
});
cb(promiseData);
}
function callInitiateIdentityValidation() {
initiateIdentityValidation(function (result) {
console.log(result);
if(result.maskedValidationChannel){
// Present UI and get the OTP from user
}
});
}
Returns
{
"maskedValidationChannel": "u**@example.com,*********67"
}
RETRIES_EXCEEDED The number of retries for generating the OTP exceeded the limit.
ID_INVALID Invalid ID.
UNRECOGNIZED_CONSUMER_ID Consumer ID could not be recognized.
ACCT_INACCESSIBLE The account exists but is not currently accessible, e.g. it is locked.
Syntax
completeIdentityValidation(validationData)
Field Description
validationData (Required) One Time Password (OTP) code, submitted by the
consumer.
Format: String containing a 6-digit OTP code.
Field Description
idToken SRC ID token created by the SRC system after successful consumer
authentication.
Format: The ID Token in JWT format
Code
function callCompleteIdValidationClicked(){
var otp = document.getElementById('otpBtnVal').value;
validationData = {
validationData: otp
};
callCompleteIdValidation(validationData);
}
cb(promiseData);
}
function callCompleteIdValidation(otp) {
completeIdentityValidation(otp, function (result) {
console.log(result);
if(!result.error){
// Store the token -> result.idToken
// call getSrcProfile with tokens,
// get masked card details, present in UI
var idTokens = []; // Or get previous idTokens array, if any
idTokens.push(result.idToken);
callGetSrcProfile(idTokens);
}else{
// validation error
}
});
}
Returns
{
"idToken": "eyJ...0g"
}
CODE_EXPIRED The OTP is expired. Regenerate the OTP and try again.
RETRIES_EXCEEDED The limit for the number of retries for OTP generation was
exceeded.
ACCT_INACCESSIBLE The account exists but is not currently accessible, e.g. it is locked.
Checkout (checkout)
This method performs checkout using the selected card. If successful, the response contains
summary checkout information and, conditionally, an encrypted payload containing PCI and/or
PII data, depending on the configuration of the dpaTransactionOptions.
This method is called after the consumer has chosen a masked card for checkout from the
SRC's candidate list. Typically, the SRCi calls back DPA to retrieve any additional data that the
DPA may have, such as updated dpaTransactionOptions, based on the selected card. If the
DPA returns some data via this callback, then the SRCi should insert that data without
modification into the checkout request.
The checkout method also supports a card being provided during the checkout flow. When
the combined flow is executed, the client should provide the encrypted card object, instead of
ID of the digital card identifier, as an input parameter. The card will be enrolled into the SRC
system and used for checkout.
l primaryAccountNumber
l panExpirationMonth
l panExpirationYear
l cardSecurityCode
l cardholderFullName
You must also pass the mobileNumber field in the consumer parameter.
Optionally, you can include the billing address in the encryptedCard parameter and the
emailAddress field in the consumer parameter.
Syntax
checkout(data)
Checkout Parameters
Field Description
srcCorrelationId (Optional) Correlation ID generated by the SRC system and
returned by getSrcProfile.
Required if a new card is added to the SRC profile. For details, see
Generating a JWE for PAN Encryption .
Format: JWE Card structure
idToken (Conditional) A 3rd party federated identity token that allows the
SRC systems to communicate with each other for SRC user identity
verification. When a card is selected, it might be necessary to pass
the ID token corresponding to the selected card, if this information
is available in SRCi.
Required when a consumer enters a new card, particularly in the
following scenarios:
Field Description
dpaTransactionOptions (Conditional) DPA configuration data, which overrides the configu
ration on the SRC system that was created during DPA registration.
Required if not supplied in the init call.
complianceSettings (Optional) Compliance settings that provide data needed for DCF
suppression in the add card flow.
Format: ComplianceSettings structure.
Field Description
dpaLocale (Optional) DPA’s preferred locale. This can be the same as the locale
in the init parameters or can be different.
Format: Based on ISO format for language (ISO 639-1) and alpha-2
country code (ISO 3166-1 alpha-2). The language and country
should be separated using an underscore ( _ ).
l FULL (default)
l POSTAL_COUNTRY
l NONE
l FULL (default)
l POSTAL_COUNTRY
l NONE
consumerNameRequested (Optional) Whether the name of the consumer has been requested.
Format: It is one of the following values:
l true (default)
l false
Field Description
consumerEmailAddressRequested (Optional) Whether the email address of the consumer has been
requested.
Format: It is one of the following values:
l true (default)
l false
consumerPhoneNumberRequested (Optional) Whether the Phone number of the consumer has been
requested.
Format: It is one of the following values:
l true (default)
l false
l true
l false
l PURCHASE (default)
l BILL_PAYMENT
l MONEY_TRANSFER
l REAUTHORIZATION
l RECURRING
l INSTALLMENT
Field Description
transactionInstruction (Optional) Transaction instruction.
Format: Enum; it is one of the following values:
l RECURRING_PAYMENTS
l SUBSCRIPTION_SERVICES
l INSTALLMENTS
Format:
purchaseDate (Conditional) Original purchase date. Required when
transactionInstruction is specified.
Format: Integer
l FULL - includes everything; all PCI & PII data (card/token, billing,
shipping, consumer)
l SUMMARY - (default) no JWE. If FULL needed during checkout,
SRCi needs to make a request for it explicitly.
l PAYMENT - same as FULL
merchantOrderId (Optional) The order identifier generated by the DPA. Typically used
for reconciliation process by the DPA.
Format: Universally Unique Identifier (UUID)
Field Description
merchantCategoryCode (Optional) Code associated with Merchant Category
Format: 4-digit string
merchantCountryCode (Optional) The country code associated with the merchant’s billing
or shipping address.
Format: ISO-3166 - 1 alpha-2 standard code
Example: US – United States
l true
l false (default)
Payment Options
Parameter Description
dpaDynamicDataTtlMinutes (Optional) The minimum requested validity period for the
transaction credentials, such as a cryptogram, returned by the SRC
system, in minutes.
If this is not provided, the values are determined by the SRCs.
Format: integer
Example: 2
l CARD_APPLICATION_CRYPTOGRAM_LONG_FORM – Transaction
Authentication Verification Value
l DYNAMIC_CARD_SECURITY_CODE – Dynamic Token Verification
Value
l TAVV Deprecated – Transaction Authentication Verification Value
l true
l false (default)
Transaction Amount
Field Description
transactionAmount (Required) Amount associated with transaction.
Format: Numeric string; maximum 9 digits before an optional
decimal point and 4 decimal digits after
Field Description
checkoutOrchestrator (Optional) Checkout orchestrator. Must be "merchant" for
Merchant Orchestrated Checkout.
Format: String
l paymentsetting
l withincheckout
l CREDIT
l DEBIT
Consumer
Field Description
firstName (Optional) Consumer’s first name.
Format: String; maximum 30 characters
Field Description
languageCode (Optional) Consumer's locale.
Format: Locale, based on ISO format for language (ISO 639-1) and
alpha-2 country code (ISO 3166-1 alpha-2). The language and
country should be separated using a (_).
Example: en_US
Phone Number
Field Description
countryCode The country code associated with the consumer phone number.
Format: String
Example: 380 for Ukraine
Consumer Identity
Field Description
identityProvider (Optional) The Identity provider.
The default value is SRC
Format: String
l EMAIL_ADDRESS
Format: String
Card
Field Description
primaryAccountNumber (Required) The account number of the card to be enrolled and
provisioned.
Format: Numeric
cardSecurityCode (Conditional) The card security code (CVV2) value associated with
the account number on the card, if available. Required for those
cards that a card security code.
Format: Numeric, 3-4 digits
cardholderFullName (Conditional) The full name of the cardholder on the card. Required
if the billingAddress name field or the cardHolderFirstName
and cardHolderLastName are not passed.
Format: String
cardholderFirstName (Optional) The first name of the cardholder.
Format: String
Field Description
cardholderLastName (Optional) The last name of the cardholder.
Format: String
Format: String
Address
The allowed characters for the address line 1, 2, and 3 are: .',:_#/
()ÁáÀàÂâÄäÃãÇçÉéÈèÊêËëÍíÎîÏïÑñÓóÔôÕõŒœÚúÙùÛûÜüŸÿÆæĄąĆćĘꣳŃńŚśŹźŻż/
Field Description
addressId (Conditional) The address identifier in the SRC system.
Format: Universally Unique Identifier (UUID)
city (Conditional) The city associated with the address. Required if this is
a shipping address in a valid format for the country.
Format: Alphanumeric, maximum 100 characters.
state (Conditional) The state associated with the address. Required if this
is a shipping address in a valid format for the country.
Format: String
Field Description
zip (Conditional) The zip code associated with the address. Required if
this is a shipping address in a valid format for the country and has
a postal code or zip code.
Format: Alphabetic, numeric; 3–16 characters.
Compliance Settings
Field Description
complianceResources (Conditional) One or more compliance resources, which consists of
a single compliance type and URI. Required when
complianceSettings is specified.
l TERMS_AND_CONDITIONS
l PRIVACY_POLICY
l REMEMBER_ME
Authentication Context
Field Description
authenticationReasons (Required) SRCi-provided authentication reasons used by the SRC
System to perform authentication.
Format: They are one or more of the following enumerated values:
l TRANSACTION_AUTHENTICATION
l NOT_PREFERRED
Authentication Method
Field Description
authenticationMethodType (Required) SRCi to indicate for a particular transaction if Click to Pay
needs to perform managed authentication or not.
Format: It is one of the following values:
l SMS_OTP
l EMAIL_OTP
l APP_AUTHENTICATION
l MANAGED_AUTHENTICATION
l CARDHOLDER
l CONSUMER
l CARD
URI Data
Field Description
uri (Required) Specifies the URI for the given authentication method.
Format: String; maximum 2048 characters
l APP_URI
l WEB_URI
Method Attributes
Field Description
challengeIndicator (Optional) A challenge indicator value related to 3DS authentication.
Format: It is one of the following values:
l 01 - No preference
l 02 - No challenge requested
Assurance Data
Field Description
verificationData (Required) Set of verification data structures relating to distinct
types of assurance.
Format: List of VerificationData structures.
l 05 – Successful authentication
l 06 – Authentication attempted
Verification Data
Field Description
verificationType (Required) Type of verification data.
Format: It is one of the following values:
l CARDHOLDER
l 01 - SRC Initiator
l 03 – SRCPI
l 01 – Payment transaction
l 04 – Account verification
Field Description
verificationMethod (Required) Method of verification.
Format: It is one of the following values:
l 02 – App-based authentication
l 04 – One-time passcode
02 – Not Verified
03 – Not performed
04 – Not required
21 – Not allowed
verificationTimestamp (Required) Date and time in UTC that the verification was
conducted.
Format: UNIX Epoch timestamp.
Method Results
Attributes related to the results of a given authentication method.
Field Description
transStatus (Optional) Whether a transaction qualifies as an authenticated
transaction (for 3DS authentication).
Format: It is one of the following string values:
l "Y"
l "R"
l "C"
l "N"
l "U"
l "A"
l "D"
l "I"
Note:
Refer to the EMVCo 3DS Specification for more details on the 3DSspecific attributes and
definitions.
Checkout Returns
Field Description
checkoutResponse The JWS of the checkout response.
Format: JWS of Checkout Response. For details, see Authenticated
Data Token for Checkout Response
idToken A token that allows the SRC systems to communicate with each
other for SRC consumer identity verification; This SRC ID token
should be discarded at the end of an SRC checkout transaction.
Format: List of ID Tokens in JWT format
Checkout Response
Field Description
srcCorrelationId The unique identifier generated by SRC system to track and link
SRC messages. This is used as a transaction identifier assigned by
the SRC system for this particular transaction.
Returned when cards are returned.
Format: Universally Unique Identifier (UUID)
shippingAddressZip Zip code of the address being shipped to. The zip code must have
been requested in DPA shipping preferences.
Format: String
shippingCountryCode Country code of the address being shipped to. The country must
have been requested in the DPA shipping preferences.
Format: Country Code2, ISO-3166-1, alpha-2 standard code
Example: AU - Australia
Field Description
isGuestCheckout Whether the consumer checked out as a guest.
Format: It is One of the following values:
Masked Card
Field Description
srcDigitalCardId A unique ID associated with the digital card.
Format: Universally Unique Identifier (UUID)
Field Description
digitalCardData The metadata about the card, which contains digital card
information used in the acceptance environment and in the user
interface. This data provides a reference to the actual PAN or
Payment Token without actually disclosing either.
Digital Card Data is grouped together based on the following
categories:
dateOfCardLastUsed Timestamp that identifies when this card was last used.
Format: UNIX Epoch timestamp. The value is in milliseconds.
Example: 1536926400
dcf The Digital Card Facilitator (DCF) system. It is present only when
the MaskedCard data structure is used in the checkout or payload
response.
Card experience provider. It is present only when the MaskedCard
data structure is used in the checkout or payload response.
Format: DCF structure
tokenId Reference identifier to the Token that enables the SRC System to
communicate with the Token Service Provider without transmitting
the actual PAN/Token; Present when PAN is eligible for tokeni
zation. The reference identifier is associated with the SRC Profile to
which the Payment Card belongs and is unique within an SRC
System.
Format:
String. Alphabetic, numeric [A-Z][a-z][0-9,-], and hyphens ( - ), e.g.,
spaces are not allowed; maximum 36.
paymentCardType Indicates whether the card supports both credit and debit options.
Format: It is a list of one or more of the following values:
l COMBO
Field Description
status The digital card status any given time in the SRC system.
Format: It is one of the following values:
l ACTIVE
l SUSPENDED
l EXPIRED
l PENDING
l CANCELLED
artUri URI of the Art card application. Can be provided by SRC Issuer
(SRCPI) .
Format: A valid URI; maximum 100 characters
pendingEvents Set of events that are pending completion such as Card Holder
Verification, AVS, SCA, Device Binding, etc. Required when the
value of status is set to PENDING.
l "PENDING_CONSUMER_IDV"
l "PENDING_CONSUMER_DEVICE_BINDING"
l "PENDING_CARDHOLDER_AUTHENTICATION"
Authentication Method
Field Description
authenticationMethodType (Required) SRCi to indicate for a particular transaction if Click to Pay
needs to perform managed authentication or not.
Format: It is one of the following values:
l SMS_OTP
l EMAIL_OTP
l APP_AUTHENTICATION
l MANAGED_AUTHENTICATION
l CARDHOLDER
l CONSUMER
l CARD
URI Data
Field Description
uri (Required) Specifies the URI for the given authentication method.
Format: String; maximum 2048 characters
l APP_URI
l WEB_URI
Method Attributes
Field Description
challengeIndicator (Optional) A challenge indicator value related to 3DS authentication.
Format: It is one of the following values:
l 01 - No preference
l 02 - No challenge requested
Field Description
uri Uniform Resource Identifier (URI), a valid web address or URL
Format: String of characters; maximum 256 characters
Masked Address
The allowed characters for the address line 1, 2, and 3 are: .',:_#/
()ÁáÀàÂâÄäÃãÇçÉéÈèÊêËëÍíÎîÏïÑñÓóÔôÕõŒœÚúÙùÛûÜüŸÿÆæĄąĆćĘꣳŃńŚśŹźŻż/
Field Description
addressId The ID associated with the masked address in the SRC system.
Format: String
line1 Line 1 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric, Maximum 140 characters. For country
specific information, see Visa Checkout Address Formats by Country.
Example: 1** M*** St
line2 Line 2 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric, Maximum 140 characters.
line3 Line 3 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric, Maximum 140 characters.
city City name associated with the masked address in the SRC system.
The address must have the city name in the valid address format
for the country.
Format: Alphanumeric, UTF-8 white space; maximum 100
characters
Field Description
state State code associated with the masked address in the SRC system.
The address must have the state name in the valid address format
for the country.
Must be a valid 2-characters code for US and CA and a valid 3-
characters code for AU.
Format: String
Example: VA
countryCode Country code associated with the masked address in the SRC
system.
Format: ISO-3166-1 alpha-2 standard code
Example: US
lastUsedTime Date and time the masked address was last used.
Format: UNIX Epoch timestamp. The value is in milliseconds.
Masked Consumer
Field Description
firstName The first name of the consumer.
Format: Alphanumeric; between 2–80 characters.
Field Description
countryCode Country code associated with the masked address of consumer
country in the SRC system.
Format: ISO-3166-1 alpha-2 standard code
Example: en_US
Field Description
countryCode Phone number country code.
Format: Alphabetic, numeric; maximum 4 characters.
Assurance Data
Field Description
cardVerificationResults Verification status of the PAN.
Deprecated Format: It is one of the following values:
01 - Verified
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
consumerVerificationResults Whether the consumer was verified or not, and the results if the
consumer has been verified.
Deprecated
Format: It is one of the following values:
01 - Verified
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
Field Description
verificationData Set of verification data structures relating to distinct types of
assurance.
Format: List of VerificationData structures.
l 05 – Successful authentication
l 06 – Authentication attempted
Verification Data
Field Description
verificationType Type of verification data.
Format: It is one of the following values:
l CARDHOLDER
l 01 - SRC Initiator
l 03 – SRCPI
l 01 – Payment transaction
l 04 – Account verification
l 02 – App-based authentication
l 04 – One-time passcode
Field Description
verificationResults Result of the verification.
Format: It is one of the following values:
01 – Verified
02 – Not Verified
03 – Not performed
04 – Not required
21 – Not allowed
verificationTimestamp Date and time in UTC that the verification was conducted.
Format: UNIX Epoch timestamp.
Method Results
Attributes related to the results of a given authentication method.
Field Description
transStatus Whether a transaction qualifies as an authenticated transaction
(for 3DS authentication).
Format: It is one of the following string values:
l "Y"
l "R"
l "C"
l "N"
l "U"
l "A"
l "D"
l "I"
acsTransId ID assigned by the ACS to identify the transaction (for 3DS authenti
cation).
Format: String; UUID
Note:
Refer to the EMVCo 3DS Specification for more details on the 3DSspecific attributes and
definitions.
Event History
Field Description
ageOfSrcPanEnrolmentSinceCreated The number of days the enrollment has existed in the SRC system.
Format: String
srcAgeSinceLastTransaction The number of days since the last transaction took place.
Format: String
ageOfConsumerRelationship The number of days, since the consumer profile was created in the
SRC system.
Format: string
shippingAddressUsageNew Date when the shipping address for this transaction was first used
with the SRCi.
Format: Alphanumeric, mm/dd/yyyy
ageOfShippingAddressUsage The number of days since the shipping address for this transaction
was first used.
Format: String
Checkout Examples
Code
.catch(function (err) {
return err;
});
cb(promiseData);
}
function callCheckout() {
var checkoutInput = {}; // Check SDK Specs for input format
checkout(checkoutInput, function (result) {
console.log(result);
// Check response for payload or for any errors
});
}
{
"srciActionCode": "",
"srcCorrelationId": "376...01",
"srciTransactionId": "ns9...WJ",
"srcDigitalCardId": "e83...01",
"encryptedCard": "",
"idToken": "eyJ...eA",
"windowRef": "",
"dpaTransactionOptions": {
"dpaLocale": "en_US",
"dpaAcceptedBillingCountries": [
"US",
"CA"
],
"dpaAcceptedShippingCountries": [
"US",
"CA"
],
"dpaBillingPreference": "FULL",
"dpaShippingPreference": "FULL",
"consumerNameRequested": true,
"consumerEmailAddressRequested": true,
"consumerPhoneNumberRequested": true,
"paymentOptions": {
"dynamicDataType":
"CARD_APPLICATION_CRYPTOGRAM_LONG_FORM",
"dpaPanRequested": false
},
"reviewAction": "continue",
"checkoutDescription": "Sample checkout",
"transactionType": "PURCHASE",
"orderType": "REAUTHORIZATION",
"payloadTypeIndicator": "FULL",
"transactionAmount": {
"transactionAmount": "99.95",
"transactionCurrencyCode": "USD"
},
"merchantOrderId": "ABC12345",
"merchantCategoryCode": "...",
"merchantCountryCode": "US"
}
}
{
"srciActionCode": "",
"srcCorrelationId": "376...01",
"srciTransactionId": "ns9...WJ",
"srcDigitalCardId": "e83...01",
"encryptedCard": "",
"idToken": "eyJ...eA",
"windowRef": "",
"dpaTransactionOptions": {
"dpaLocale": "en_US",
"dpaAcceptedBillingCountries": [
"US",
"CA"
],
"dpaAcceptedShippingCountries": [
"US",
"CA"
],
"dpaBillingPreference": "FULL",
"dpaShippingPreference": "FULL",
"consumerNameRequested": true,
"consumerEmailAddressRequested": true,
"consumerPhoneNumberRequested": true,
"paymentOptions": {
"dynamicDataType": "CARD_APPLICATION_CRYPTOGRAM_LONG_FORM",
"dpaPanRequested": false
},
"reviewAction": "continue",
"checkoutDescription": "Sample checkout",
"transactionType": "PURCHASE",
"orderType": "REAUTHORIZATION",
"payloadTypeIndicator": "FULL",
"transactionAmount": {
"transactionAmount": "99.95",
"transactionCurrencyCode": "USD"
},
"merchantOrderId": "ABC12345",
"merchantCategoryCode": "...",
"merchantCountryCode": "US"
},
"authenticationContext": {
"authenticationReasons": [
"TRANSACTION_AUTHENTICATION"
],
"srcDpaId": "94317cbf-b1a1-53b9-6228-11fbb1f07301",
"acquirerMerchantId": "12345678",
"acquirerBIN": "455555",
"merchantName": "NewM"
},
"authenticationMethod": {
"authenticationMethodType": "MANAGED_AUTHENTICATION",
"authenticationSubject": "CARDHOLDER",
"methodAttributes": {
"challengeIndicator": "01"
}
}
}
{
"srcCorrelationId": "376...01",
"srciTransactionId": "416...16",
"srcDigitalCardId": "",
"encryptedCard": "eyJ...mQ",
"idToken": "",
"windowRef": "",
"dpaTransactionOptions": {
"dpaLocale": "en_US",
"dpaAcceptedBillingCountries": [
"US",
"CA"
],
"dpaAcceptedShippingCountries": [
"US",
"CA"
],
"dpaBillingPreference": "FULL",
"dpaShippingPreference": "FULL",
"consumerNameRequested": true,
"consumerEmailAddressRequested": true,
"consumerPhoneNumberRequested": true,
"paymentOptions": {
"dynamicDataType":
"CARD_APPLICATION_CRYPTOGRAM_LONG_FORM",
"dpaPanRequested": false
},
"reviewAction": "continue",
"checkoutDescription": "Sample checkout",
"transactionType": "PURCHASE",
"orderType": "REAUTHORIZATION",
"payloadTypeIndicator": "FULL",
"transactionAmount": {
"transactionAmount": "99.95",
"transactionCurrencyCode": "USD"
},
"merchantOrderId": "ABC12345",
"merchantCategoryCode": "...",
"merchantCountryCode": "US"
}
}
{
"srcCorrelationId": "376...01",
"srciTransactionId": "416...16",
"srcDigitalCardId": "",
"encryptedCard": "eyJ...mQ",
"idToken": "",
"windowRef": "",
"dpaTransactionOptions": {
"dpaLocale": "en_US",
"dpaAcceptedBillingCountries": [
"US",
"CA"
],
"dpaAcceptedShippingCountries": [
"US",
"CA"
],
"dpaBillingPreference": "FULL",
"dpaShippingPreference": "FULL",
"consumerNameRequested": true,
"consumerEmailAddressRequested": true,
"consumerPhoneNumberRequested": true,
"paymentOptions": {
"dynamicDataType": "CARD_APPLICATION_CRYPTOGRAM_LONG_FORM",
"dpaPanRequested": false
},
"reviewAction": "continue",
"checkoutDescription": "Sample checkout",
"transactionType": "PURCHASE",
"orderType": "REAUTHORIZATION",
"payloadTypeIndicator": "FULL",
"transactionAmount": {
"transactionAmount": "99.95",
"transactionCurrencyCode": "USD"
},
"merchantOrderId": "ABC12345",
"merchantCategoryCode": "...",
"merchantCountryCode": "US"
},
"authenticationContext": {
"authenticationReasons": [
"TRANSACTION_AUTHENTICATION"
],
"srcDpaId": "943...01",
"acquirerMerchantId": "12345678",
"acquirerBIN": "455555",
"merchantName": "NewM"
},
"authenticationMethod": {
"authenticationMethodType": "MANAGED_AUTHENTICATION",
"authenticationSubject": "CARDHOLDER",
"methodAttributes": {
"challengeIndicator": "01"
}
}
}
{
"card": {
"billingAddress": {
"addressId": "",
"name": "Firstname Lastname ",
"line1": "1 Streetname Street",
"line2": "",
"line3": "",
"city": "Miami",
"state": "FL",
"countryCode": "US",
"zip": "33126",
"createTime": "",
"lastUsedTime": ""
},
"cardSecurityCode": "099",
"cardholderFullName": "Firstname Lastname ",
"panExpirationMonth": 10,
"panExpirationYear": 2025,
"primaryAccountNumber": "...",
"cardholderFirstName": "Firstname",
"cardholderLastName": "Lastname",
"paymentAccountReference": ""
}
}
{
"consumer": {
"emailAddress": "[email protected]",
"consumerIdentity": {
"identityProvider": "SRC",
"identityType": "EMAIL_ADDRESS",
"identityValue": "[email protected]"
},
"mobileNumber": {
"phoneNumber": "...",
"countryCode": "1"
},
"countryCode": "US",
"languageCode": "EN",
"firstName": "Psp",
"lastName": "Tester",
"fullName": "Psp Tester"
}
}
{
"srcCorrelationId": "",
"srciTransactionId": "c3a...9c",
"srcDigitalCardId": "",
"encryptedCard": "eyJ...Gw",
"idToken": "",
"windowRef": "",
"consumer": {
"emailAddress": "foi...r.com",
"consumerIdentity": {
"identityProvider": "SRC",
"identityType": "EMAIL_ADDRESS",
"identityValue": "foi...r.com"
},
"mobileNumber": {
"phoneNumber": "408...22",
"countryCode": "1"
},
"nationalIdentifier": "USA",
"countryCode": "US",
"languageCode": "EN",
"firstName": "PSP",
"lastName": "Tester",
"fullName": "Test"
},
"dpaTransactionOptions": {
"dpaLocale": "US",
"dpaAcceptedBillingCountries": [
"US",
"CA"
],
"dpaAcceptedShippingCountries": [
"US",
"CA"
],
"dpaBillingPreference": "FULL",
"dpaShippingPreference": "FULL",
"consumerNameRequested": true,
"consumerEmailAddressRequested": true,
"consumerPhoneNumberRequested": true,
"paymentOptions": {
"dpaDynamicDataTtlMinutes": 2,
"dynamicDataType":
"CARD_APPLICATION_CRYPTOGRAM_LONG_FORM",
"dpaPanRequested": false
},
"reviewAction": "continue",
"checkoutDescription": "Sample checkout",
"transactionType": "PURCHASE",
"orderType": "REAUTHORIZATION",
"payloadTypeIndicator": "SUMMARY",
"transactionAmount": {
"transactionAmount": "99.95",
"transactionCurrencyCode": "USD"
},
"merchantOrderId": "ABC12345",
"merchantCategoryCode": "merchantCategoryCode",
"merchantCountryCode": "US"
},
"payloadTypeIndicatorCheckout": "SUMMARY",
"recipientIdCheckout": "",
"payloadTypeIndicatorPayload": "SUMMARY",
"recipientIdPayload": "",
"assuranceData": {
"verificationData": [
{
"verificationType": "CARDHOLDER",
"verificationEntity": "01",
"verificationMethod": "01",
"verificationResults": "01",
"verificationTimestamp": "1646416550"
}
]
},
"srciActionCode": "NEW_USER",
"complianceSettings": {
"complianceResources": [
{
"complianceType": "TERMS_AND_CONDITIONS",
"uri": "usa.visa.com/legal/checkout/terms-of-service.html"
},
{
"complianceType": "PRIVACY_POLICY",
"uri": "usa.visa.com/legal/global-privacy-notice.html"
},
{
"complianceType": "REMEMBER_ME",
"uri": "visa.checkout.com/privacy"
}
]
}
}
{
"checkoutResponse": "eyJ...Q=",
"dcfActionCode": "COMPLETE",
"unbindAppInstance": false
}
{
"checkoutResponse": "eyJ..DQ",
{
"isnewuser": true,
"src_system_name": "VISA",
"cardBrand": "VISA"
},
"dcfActionCode": "COMPLETE"
}
{
"srcCorrelationId": "023...02",
"srciTransactionId": "hIZ...u7",
"maskedCard": {
"srcDigitalCardId": "efb...02",
"panBin": "430753",
"panLastFour": "0008",
"panExpirationMonth": "12",
"panExpirationYear": "2023",
"digitalCardData": {
"status": "ACTIVE",
"presentationName": "... ...",
"descriptorName": "... ..."
},
"dateofCardCreated": 1583133529903,
"dateofCardLastUsed": 1585274333914,
"maskedBillingAddress": {
"addressId": "e43...02",
"countryCode": "US"
},
"eligible": true
},
"shippingAddressZip": "94404",
"shippingCountryCode": "US",
"maskedConsumer": {
"srcConsumerId": "H5p...A=",
"firstName": "...",
"lastName": "...",
"fullName": "... ...",
"emailAddress": "xyz**@visa.com",
"mobileNumber": {},
"countryCode": "US",
"languageCode": "en-US",
"status": "ACTIVE"
},
"encryptedPayload": "eyJ...nA",
"assuranceData": {
"cardVerificationResults": "01"
},
"isGuestCheckout": false,
"isNewUser": false
}
{
"srcCorrelationId": "ed6...01",
"srciTransactionId": "5cc...8e",
"maskedCard": {
"srcDigitalCardId": "857...01",
"panBin": "400552",
"panLastFour": "3375",
"panExpirationMonth": "12",
"panExpirationYear": "2023",
"digitalCardData": {
"status": "ACTIVE",
"presentationName": "New Last",
"artUri": "https://sandbox.secure.checkout.visa.com
/VmeCardArts/....png",
"artHeight": 105,
"artWidth": 164
},
"pendingEvents": [
"PENDING_CARDHOLDER_AUTHENTICATION",
"PENDING_CONSUMER_IDV",
"PENDING_CONSUMER_DEVICE_BINDING"
],
"dateofCardCreated": 1564445093245,
"dateofCardLastUsed": 1565813106869,
"maskedBillingAddress": {
"addressId": "5c4...01",
"line1": "901*****",
"city": "*****",
"state": "CA",
"zip": "*****",
"countryCode": "US"
},
"eligible": true
},
"shippingAddressZip": "94404",
"shippingCountryCode": "US",
"maskedConsumer": {
"srcConsumerId": "H5p...uA=",
"firstName": "F*****",
"lastName": "L*****",
"fullName": "F***** L*****",
"emailAddress": "din**@visa.com",
"mobileNumber": {},
"countryCode": "US",
"languageCode": "en-US",
"status": "ACTIVE"
},
"assuranceData": {
"cardVerificationResults": "01"
},
"isGuestCheckout": false,
"isNewUser": false
}
"assuranceData": {
"verificationData": [
{
"methodResults": {
"transStatus": "Y",
"dsTransId": "06c...16",
"acsTransId": "6f5...09"
}
}
],
"eci": "05"
}
Checkout Errors
Authenticate (authenticate)
Syntax
authenticate()
Authenticate Parameters
Field Description
srcClientId (Optional) Reference identifier.
Format: Universally Unique Identifier (UUID)
Account Reference
Field Description
srcDigitalCardId (Conditional) ID of the selected card.
Required if consumerIdentity is not present.
Format: String
Consumer Identity
Field Description
identityProvider (Optional) The Identity provider.
The default value is SRC
Format: String
l EMAIL_ADDRESS
Format: String
Authentication Context
Field Description
authenticationReasons (Required) SRCi-provided authentication reasons used by the SRC
System to perform authentication.
Format: They are one or more of the following enumerated values:
l TRANSACTION_AUTHENTICATION
l NOT_PREFERRED
Authentication Method
Field Description
authenticationMethodType (Required) SRCi to indicate for a particular transaction if Click to Pay
needs to perform managed authentication or not.
Format: It is one of the following values:
l SMS_OTP
l EMAIL_OTP
l APP_AUTHENTICATION
l MANAGED_AUTHENTICATION
l CARDHOLDER
l CONSUMER
l CARD
URI Data
Field Description
uri (Required) Specifies the URI for the given authentication method.
Format: String; maximum 2048 characters
l APP_URI
l WEB_URI
Method Attributes
Field Description
challengeIndicator (Optional) A challenge indicator value related to 3DS authentication.
Format: It is one of the following values:
l 01 - No preference
l 02 - No challenge requested
Authenticate Returns
Authenticate Response
Field Description
srcCorrelationId The SRC Correlation ID returned by the SRC system
Format: Universally Unique Identifier (UUID)
l AUTHENTICATED
l NOT_AUTHENTICATED
l COMPLETE
l PENDING
l PENDING_CHALLENGE
l CANCELLED
l EXPIRED
l NOT_SUPPORTED
Assurance Data
Field Description
cardVerificationResults Verification status of the PAN.
Deprecated Format: It is one of the following values:
01 - Verified
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
consumerVerificationResults Whether the consumer was verified or not, and the results if the
consumer has been verified.
Deprecated
Format: It is one of the following values:
01 - Verified
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
Field Description
verificationData Set of verification data structures relating to distinct types of
assurance.
Format: List of VerificationData structures.
l 05 – Successful authentication
l 06 – Authentication attempted
Verification Data
Field Description
verificationType Type of verification data.
Format: It is one of the following values:
l CARDHOLDER
l 01 - SRC Initiator
l 03 – SRCPI
l 01 – Payment transaction
l 04 – Account verification
l 02 – App-based authentication
l 04 – One-time passcode
Field Description
verificationResults Result of the verification.
Format: It is one of the following values:
01 – Verified
02 – Not Verified
03 – Not performed
04 – Not required
21 – Not allowed
verificationTimestamp Date and time in UTC that the verification was conducted.
Format: UNIX Epoch timestamp.
Method Results
Attributes related to the results of a given authentication method.
Field Description
transStatus Whether a transaction qualifies as an authenticated transaction
(for 3DS authentication).
Format: It is one of the following string values:
l "Y"
l "R"
l "C"
l "N"
l "U"
l "A"
l "D"
l "I"
acsTransId ID assigned by the ACS to identify the transaction (for 3DS authenti
cation).
Format: String; UUID
Note:
Refer to the EMVCo 3DS Specification for more details on the 3DSspecific attributes and
definitions.
Authenticate Example
Request Payload
{
"srciTransactionId": "c21...9e",
"srcCorrelationId": "de2...01",
"authenticationMethod": {
"authenticationMethodType": "EMAIL_OTP",
"authenticationSubject": "CARDHOLDER",
"methodAttributes": {
"otpValue": "553401",
"stepUpIdentifier": "MGE...="
}
}
}
Response Payload
{
"srcCorrelationId": "de2...01",
"srciTransactionId": "c21...9e",
"authenticationResult": "AUTHENTICATED",
"authenticationStatus": "COMPLETE",
"assuranceData": {
"verificationData": [
{
"verificationType": "CARDHOLDER",
"verificationEntity": "03",
"verificationEvents": [
"01"
],
"verificationMethod": "04",
"verificationResults": "01",
"verificationTimestamp": "1692781875"
}
]
}
Authenticate Errors
Reason Code Description
ACCT_REF_FORMAT_UNSUPPORTED Unsupported accountReference
ACCT_REF_MISSING The accountReference parameter is missing
AUTHENTICATION_METHOD_ The supplied authentication method doesn’t match the authenti
NOT_SUPPORTED cation context
OTP_SEND_FAILED The OTP could not be sent to the recipient
RETRIES_EXCEEDED The limit for the number of retries exceeded
VAL_DATA_MISSING The validationData parameter is missing
VAL_DATA_EXPIRED The validationData is expired
VAL_DATA_INVALID The supplied validationData is invalid
AUTHENTICATE_FAILURE Default error case for all other reasons of authenticate failure.
Syntax
unbindAppInstance(idToken)
Field Description
idToken The token ID returned by the checkout method that indicates
which SRC Profile and SRC System the app instance should be
unbound from. If not provided, the app instance will be unbound
from the Visa SRC System.
Format: ID Token in JWT format
Field Description
srcCorrelationId The SRC Correlation ID returned by the SRC system
Format: Universally Unique Identifier (UUID)
Code
function callUnbind(idToken) {
unbindAppInstance(idToken, function(result) {
console.log(result);
if (!result.error) {
// Prompt user that the device has been disassociated
} else {
// Prompt error
}
});
}
Input
{
"idToken": "eyJ...eA"
}
Returns
{
"srcCorrelationId": "1b3...01"
}
ACCT_INACCESSIBLE The account exists but is not currently accessible, e.g. it is locked.
Field Description
message The internal error message, which should not be displayed or used
in the logic of your digital terminal; it is provided as a convenience.
Format: String
reason Mnemonic identifying the kind of error; use this field to trigger
error handling logic in your digital terminal.
Format: String
details One or more pairs of field name and associated error message
that identify validation errors.
Format: details structure.
Field Description
location The value of this field uses an XPATH expression to point to the
field that fails validation.
Format: String
Example
error {
"message": "Input parameters validation failed.",
"reason": "INVALID_PARAMETER",
"details":
[// Optional structure, used with input data validation error
{// Types to specify the fields with errors
"location": "creditCard",
"message": "Should be a numeric value"
}
]
}
Reason Description
UNKNOWN_ERROR Unknown error.
Reason Description
INVALID_REQUEST The server could not interpret the request.
Usually, these are the cases, when a data field has to be in a
particular format but is not. Examples include:
RATE_LIMIT_EXCEEDED Too many requests have been sent in a given amount of time.
Intended for use with rate limiting schemes.
Payload
Payload provides metadata that includes the information based on if the consumer uses the
PAN, or token.
Field Description
card Card data associated with the PAN used for the purchase. Supplied
if the indicated payload type is FULL or PAYMENT and the SRC
system determines that a PAN-based payload is returned.
token Payment Token data associated with the PAN used for the
purchase. Supplied if the indicated payload type is FULL or
PAYMENT and the SRC system determines that a Payment Token-
based payload is returned.
Field Description
panExpirationYear The year when the account number is set to expire.
Format: Numeric; 4 digits
Card
Field Description
primaryAccountNumber The account number of the card to be enrolled and provisioned.
Format: Numeric
cardSecurityCode The card security code (CVV2) value associated with the account
number on the card, if available.
Format: Numeric, 3-4 digits
Format: String
Payment Token
Field Description
paymentToken The tokenized payment instrument.
Format: String; ISO/IEC 7812 format
Address
Field Description
addressId The address identifier in the SRC system.
Format: Universally Unique Identifier (UUID)
city The city associated with the address. A shipping address must have
the city name in the valid address format for the country.
Format: Alphanumeric; maximum 500 characters.
state The state associated with the address. A shipping address must
have the state name in the valid address format for the country.
Format: String; maximum 30 characters
Field Description
zip The zip code associated with the address.
Required for all those countries that have zip or zip code and if this
is a shipping address.
Other postal codes must be valid for their respective countries, if a
code exists.
Format: Alphanumeric; 3–16 characters.
createTime Date and time, in controlled Universal Time, (UTC) that identifies
when the address was created.
Format: UNIX Epoch timestamp. The value is in milliseconds
lastUsedTime Date and time , in Controlled Universal Time, (UTC) that identifies
when the address was last used.
Format: UNIX Epoch timestamp. The value is in milliseconds
Phone Number
Field Description
countryCode The country code associated with the consumer phone number.
Format: String
Example: 380 for Ukraine
Dynamic Data
Field Description
dynamicDataValue The value of the dynamic data. Must be provided when
dynamicDataType is not NONE.
Format: String
l CARD_APPLICATION_CRYPTOGRAM_SHORT_FORM
l CARD_APPLICATION_CRYPTOGRAM_LONG_FORM
l DYNAMIC_CARD_SECURITY_CODE
l CARDHOLDER_AUTHENTICATION_CRYPTOGRAM
l NONE
dynamicDataExpiration The requested validity period for the dynamic data in Coordinated
Universal Time (UTC).
Format: String, 25 characters
Example: Wed Jan 15 23:40:23 GMT 2020
Consumer
Field Description
firstName Consumer’s first name.
Format: String; maximum 30 characters
Field Description
countryCode The country code associated with the address.
Format: ISO-3166-1 alpha-2 standard code
Example: AU - Australia
Phone Number
Field Description
countryCode The country code associated with the consumer phone number.
Format: String
Example: 380 for Ukraine
Consumer Identity
Field Description
identityProvider The identity provider.
The default value is SRC
Format: String
l EMAIL_ADDRESS
Format: String
"emailAddress": "[email protected]",
"mobileNumber": {},
"countryCode": "US",
"languageCode": "en-US"
},
"threeDsOutputData": []
}
"assuranceData": {
"verificationData": [
{
"methodResults": {
"transStatus": "Y",
"dsTransId": "06c...16",
"acsTransId": "6f5...09"
}
}
],
"eci": "05"
}
Resource Path
wallet/src/transaction/credentials
Sandbox
https://sandbox.api.visa.com/wallet/src/transaction/credentials?
apikey=key&payloadTypeIndicator=type&srcClientId=clientId
&srcCorrelationId=correlationId&srcDpaId=DPAID
Live
https://api.visa.com/wallet/src/transaction/credentials?
apikey=key&payloadTypeIndicator=type&srcClientId=clientId
&srcCorrelationId=correlationId&srcDpaId=DPAID
Method
GET
Required Headers
Header Description
x-pay-token A token identifying the transaction and its contents.
Format: Alphanumeric; maximum 100 characters in the form of
xv2:UTC_Timestamp:HMAC-SHA256_hash, where
Query Parameters
Field Description
apikey (Required) Inbound Authentication Key used for generating X-Pay-
Token
Format: Alphanumeric; maximum 64 characters
srcClientId (Required) The value of the API key that identifies the connecting
client, e.g. SRCi, DCF, or SRC Issuer (SRCPI)
Format: Alphanumeric; maximum 64 characters
serviceId Future
Request Body
None
Response Body
Field Description
maskedCard Masked card information.
Format: MaskedCard structure.
shippingAddressZip ZIP code of the shipping address being shipped to. The
shippingAddressZip will be present depending on the
dpaShippingPreference option in the
dpaTransactionOptions structure and either a
shippingAddressId or shippingAddress object was present in
the Checkout request data.
Format: String
Masked Card
Field Description
srcDigitalCardId A unique ID associated with the digital card. Represent the PAN or
payment token.
Format: Universally Unique Identifier (UUID), maximum 36
characters
panBin The bank ID number associated with the card, the first significant
digits of the PAN included in an unmasked form.
Format: Numeric maximum length = PAN length - 10
tokenBinRange Token's BIN range or subset of the BIN range that has been
designated only for the purpose of issuing payment tokens
included in an unmasked form.
Format: Numeric; maximum length = payment token length - 10
digitalCardData The metadata about the card, which contains digital card
information used in the acceptance environment and in the user
interface. This data provides a reference to the actual PAN or
Payment token without actually disclosing either.
Digital card data is grouped together based on the following
categories:
Field Description
dateOfCardCreated Timestamp that identifies when this card was enrolled into the SRC
system.
Format: UNIX Epoch timestamp. The value is in milliseconds.
maskedBillingAddress Billing address associated with the card, masked for display
purposes.
Format: MaskedAddress structure
dateOfCardLastUsed Timestamp that identifies when this card was last used for an SRC
transaction.
Format: UNIX Epoch timestamp. The value is in milliseconds.
dcf The Digital card facilitator (DCF) system associated with the card. It
is present only when the MaskedCard data structure is used in the
checkout or payload response.
Format: DCF structure
paymentCardType Indicates whether the card supports both credit and debit options.
Format: It is a list of one or more of the following values:
l COMBO
digitalCardFeatures Set of Digital Card attributes related to digital card features that
should be displayed to the consumer.
Format: DigitalCardFeatures structure
countryCode Country code of issuance associated with the card issuer’s BIN
license.
Format: ISO 3166-1 alpha 2 country code
Field Description
status The digital card status any given time in the SRC system.
Format: It is one of the following values:
l ACTIVE
l SUSPENDED
l EXPIRED
l PENDING
l CANCELLED
artUri URI of the Art card application. Can be provided by SRC Issuer
(SRCPI) .
Format: A valid URI; maximum 100 characters
pendingEvents Set of events that are pending completion such as Card Holder
Verification, AVS, SCA, Device Binding, etc. Required when the
value of status is set to PENDING.
l "PENDING_CONSUMER_IDV"
l "PENDING_CONSUMER_DEVICE_BINDING"
l "PENDING_CARDHOLDER_AUTHENTICATION"
Authentication Method
Field Description
authenticationMethodType (Required) SRCi to indicate for a particular transaction if Click to Pay
needs to perform managed authentication or not.
Format: It is one of the following values:
l SMS_OTP
l EMAIL_OTP
l APP_AUTHENTICATION
l MANAGED_AUTHENTICATION
l CARDHOLDER
l CONSUMER
l CARD
URI Data
Field Description
uri (Required) Specifies the URI for the given authentication method.
Format: String; maximum 2048 characters
l APP_URI
l WEB_URI
Method Attributes
Field Description
challengeIndicator (Optional) A challenge indicator value related to 3DS authentication.
Format: It is one of the following values:
l 01 - No preference
l 02 - No challenge requested
Field Description
applicationType Type of the environment of the DCF.
Format: It is one of the following types:
l WEB_BROWSER
l MOBILE_APP
l IOT_DEVICE
l OTHER
Field Description
addressId The ID associated with the masked address in the SRC system.
Format: Universally Unique Identifier (UUID)
line1 Line 1 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric, Maximum 75 characters. For country
specific information, see Visa Checkout Address Formats by Country.
line2 Line 2 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric,Maximum 75 characters.
line3 Line 3 of the masked address in the SRC system. Required for
shipping address.
Format: Alphanumeric,, maximum 75 characters.
Field Description
city City name associated with the masked address in the SRC system.
The address must have the city name in the valid address format
for the country.
Format: String; maximum 30 characters
state State code associated with the masked address in the SRC system.
The address must have the state name in the valid address format
for the country.
Must be a valid 2-characters code for US and CA and a valid 3-
characters code for AU.
countryCode Country code associated with the masked address in the SRC
system.
Format: ISO-3166-1 alpha-2 standard code
Example: US
lastUsedTime Date and time the masked address was last used.
Format: UNIX Epoch timestamp. The value is in milliseconds.
Masked Consumer
Field Description
srcConsumerId SRC consumer Reference identifier generated by the SRC system.
Format: Universally Unique Identifier (UUID)
Field Description
status Signifies the state of the consumer at any given time at the SRC
system.
Format: ConsumerStatus
dateConsumerAdded Timestamp that identifies when the consumer was added to the
SRC system .
Format: UNIX Epoch timestamp. The value is in milliseconds.
Note:
This field supports internationalization using UTF-8 characters.
Format: A valid email address; maximum 255 characters
Field Description
identityType The type of primary consumer Identifier to an SRC Profile.
Format: It is one of the following values:
l EMAIL_ADDRESS
l MOBILE_PHONE_NUMBER
Field Description
countryCode Phone number country code.
Format: Alphabetic, numeric; maximum 4 characters.
Assurance Data
Field Description
cardVerificationResults Verification status of the PAN.
Deprecated Format: It is one of the following values:
01 - Verified
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
consumerVerificationResults Whether the consumer was verified or not, and the results if the
consumer has been verified.
Deprecated
Format: It is one of the following values:
01 - Verified
02 - Not Verified
03 - Not performed
21 - 99 - SRC systemspecific
Field Description
verificationData Set of verification data structures relating to distinct types of
assurance.
Format: List of VerificationData structures.
l 05 – Successful authentication
l 06 – Authentication attempted
Verification Data
Field Description
verificationType Type of verification data.
Format: It is one of the following values:
l CARDHOLDER
l 01 - SRC Initiator
l 03 – SRCPI
l 01 – Payment transaction
l 04 – Account verification
l 02 – App-based authentication
l 04 – One-time passcode
Field Description
verificationResults Result of the verification.
Format: It is one of the following values:
01 – Verified
02 – Not Verified
03 – Not performed
04 – Not required
21 – Not allowed
verificationTimestamp Date and time in UTC that the verification was conducted.
Format: UNIX Epoch timestamp.
Method Results
Attributes related to the results of a given authentication method.
Field Description
transStatus Whether a transaction qualifies as an authenticated transaction
(for 3DS authentication).
Format: It is one of the following string values:
l "Y"
l "R"
l "C"
l "N"
l "U"
l "A"
l "D"
l "I"
acsTransId ID assigned by the ACS to identify the transaction (for 3DS authenti
cation).
Format: String; UUID
Note:
Refer to the EMVCo 3DS Specification for more details on the 3DSspecific attributes and
definitions.
401 Unauthorized, see error object for details, e.g. authorization token
validation failure.
403 Forbidden, see error object for details, e.g. client identity (origin)
not validated.
Request
None
{
"maskedCard": {
"srcDigitalCardId": "efb...02",
"panBin": "430753",
"panLastFour": "0008",
"panExpirationMonth": "12",
"panExpirationYear": "2023",
"digitalCardData": {
"status": "ACTIVE",
"presentationName": "... ...",
"descriptorName": "... ..."
},
"dateOfCardCreated": "197...3Z",
"maskedBillingAddress": {
"addressId": "e43...02",
"countryCode": "US"
}
},
"shippingAddressZip": "94404",
"shippingCountryCode": "US",
"maskedConsumer": {
"srcConsumerId": "H5p...A=",
"countryCode": "US",
"languageCode": "en-US",
"status": "ACTIVE",
"dateConsumerAdded": "2018-04-25T03:20:27.001Z",
"maskedConsumerIdentity": {
"identityType": "EMAIL_ADDRESS",
"maskedIdentityValue": "[email protected]"
},
"maskedEmailAddress": "xyz**@visa.com",
"maskedFirstName": "...",
"maskedLastName": "...",
"maskedFullName": "... ..."
},
"encryptedPayload": "eyJ..._Q",
"assuranceData": {
"cardVerificationResults": "01"
}
}
Decrypted Response
See "Decrypted Payload PAN Example" in Unencrypted Payload Contents chapter.
Request
None
{
"maskedCard": {
"srcDigitalCardId": "ebc...01",
"panBin": "462294",
"panLastFour": "0693",
"tokenBinRange": "489...01",
"paymentAccountReference": "V00...23",
"tokenLastFour": "6469",
"panExpirationMonth": "12",
"panExpirationYear": "2021",
"digitalCardData": {
"status": "ACTIVE",
"presentationName": "... ...",
"descriptorName": "... ...",
"artUri": "https://test...visa.com/MPC...Ak.png",
"artHeight": 105,
"artWidth": 164
},
"pendingEvents": [
"PENDING_CARDHOLDER_AUTHENTICATION",
"PENDING_CONSUMER_IDV",
"PENDING_CONSUMER_DEVICE_BINDING"
],
"dateOfCardCreated": "1970-01-01T00:00:00.085Z",
"maskedBillingAddress": {
"addressId": "b3f...02",
"countryCode": "GB"
}
},
"shippingAddressZip": "K1G 4B5",
"shippingCountryCode": "CA",
"maskedConsumer": {
"srcConsumerId": "mMK...o=",
"countryCode": "US",
"languageCode": "en-US",
"status": "ACTIVE",
"dateConsumerAdded": "2017-10-28T16:11:42.060Z",
"maskedConsumerIdentity": {
"identityType": "EMAIL_ADDRESS",
"maskedIdentityValue": "[email protected]"
},
"maskedEmailAddress": "xyz**@gmail.com",
"maskedFirstName": "...*",
"maskedLastName": "...",
"maskedFullName": "... ..."
},
"encryptedPayload": "eyJ...Vw",
"assuranceData": {
"cardVerificationResults": "01"
}
}
Decrypted Response
See "Decrypted Token Payload Example " in Unencrypted Payload Contents chapter.
Endpoints
Resource Path
wallet/src/confirmations
Sandbox
https://cert.api.visa.com/wallet/src/confirmations?apikey=key
Live
https://api.visa.com/wallet/src/confirmations?apikey=key
Method
POST
Required Headers
Header Description
x-pay-token A token identifying the transaction and its contents.
Format: Alphanumeric; maximum 100 characters in the form of
xv2:UTC_Timestamp:HMAC-SHA256_hash, where
Query Parameters
Field Description
apikey (Required) Inbound Authentication Key used for generating X-Pay-
Token
Format: Alphanumeric String
Field Description
srcClientId (Required) SRCi identifier generated by an SRC system.
Format: Alphanumeric; maximum 64 characters
serviceId (Conditional) Form of payment service. For Visa QR, the value must
be SELLER_PRESENTED; otherwise, not used.
Confirmation Data
Field Description
checkoutEventType (Optional) Event type associated with the update.
Format: It is one of the following values:
l 01 - Authorize
l 02 - Capture
l 03 - Refund
l 04 - Cancel
l 05 - Fraud
l 06 - Chargeback
l 07 - Other
l 01 - Created
l 02 - Confirmed
l 03 - Cancelled
l 04 - Fraud Cancelled
l 05 - Other
l 51 - 99 - SRC
confirmationStatus (Optional) Status of the event as provided by the SRCi in the Confir
mation message.
Format: It is one of the following values:
l 01 - Success
l 02 - Failure
l 03 - Other
confirmationReason (Optional) Description of the reason for the event associated with
the order.
Format: String; maximum 64 characters
Field Description
networkAuthorizationCode (Optional) Authorization code associated with an approved
transaction.
Format: String; maximum 25 characters
assuranceData Future
Transaction Amount
Field Description
transactionAmount (Required) Amount associated with transaction.
Format: Float. Maximum 18 digits
Response Body
None
401 Unauthorized, see error object for details, e.g. authorization token
validation failure.
403 Forbidden, see error object for details, e.g. client identity (origin)
not validated.
{
"srcClientId": "J6X...MM",
"srcCorrelationId": "811...01",
"confirmationData": {
"checkoutEventType": "02",
"confirmationStatus": "01",
"checkoutEventStatus": "02",
"confirmationReason": "Purchased",
"confirmationTimeStamp": "2019-07-10T22:18:14.802Z",
"networkAuthorizationCode": "123456",
"networkTransactionIdentifier": "660...03",
"paymentNetworkReference": "abc#21",
"transactionAmount": {
"transactionAmount": 200,
"transactionCurrencyCode": "USD"
}
}
}
EXAMPLE
package ...;
import java.security.MessageDigest;
import javax.crypto.spec.SecretKeySpec;
import org.jose4j.jwe.JsonWebEncryption;
return jweDecryptor.getPlaintextString();
}
}
EXAMPLE
module.exports = {
decryptJWE: function(secret, payload){
return new Promise(function(resolve, reject){
var SS_Hashed =
crypto.createHash('sha256').update(secret).digest('hex');
jose.JWK.asKey({kty: 'oct', k: Buffer.from(SS_Hashed,
'hex')})
.then(function(key){
jose.JWE.createDecrypt(key)
.decrypt(payload)
.then(function(result){
resolve(result);
})
.catch(function(error){
reject(error);
});
})
.catch(function(error){
reject(error);
});
});
}
};
{"card":{
"primaryAccountNumber":"424..2",
"panExpirationMonth":"10",
.."panExpirationYear":"2022",
"cardSecurityCode":"123",
.."cardholderFullName":"cardholder name"}
}
* @param cb Returning encrypted PAN as JWE string
to this callback function */
Introduction
Visa uses JSON Web Encryption (JWE) to encode sensitive field level information. Encrypted
input parameters should be constructed before sending them in API requests.
Visa Installment Solutions APIs use the following naming convention for fields that require
encryption in this document.
"enc<FIELD>" : "JWE ( ... ) "
Note: The JWE Protected Header is input as the AAD (Additional Authenticated Data)
parameter of the authenticated encryption (AES-GCM) of the “text to encrypt”.
"header": {
"alg": "RSA-OAEP-256"
"typ": "JOSE",
"kid": "50charAPIKey", // API key
"enc": "A256GCM"
}
"header": {
"alg": "AGCM256KW"
"typ": "JOSE",
"tag": "<128bitvalue>", // HMAC generated from applying
AES-256-GCM-KW to the CEK
"kid": "50charAPIKey", // API key
"enc": "AGCM256"
}
l ciphertext: encrypted blob generated using the AES-GCM encryption (enc) of the text to
encrypt
l tag: base64 encoded form. HMAC generated using the AES-GCM encryption of the text
to encrypt. The size of the tag should be 128 bits
these cases, the 3rd-party payment service provider or SRCi populates consumer information in
the checkout request. A new consumer structure has been added to the checkout request to
receive this information.
Documentation Changes
l Corrected the name of the networkAuthorizationCode field.
l Removed emailAddress field from the consumer structure of the checkout() API.
Documentation Changes
l Clarified that if idToken is not provided in the Unbind App Instance API, the app
instance will be unbound from the Visa SRC System.
l Clarified that the srcClientId query parameter for the Get Payload API accepts only
an API key value.
l Modified the mobileNumber field description in the consumer structure of the
checkout() API. It is optional and used to prefill the DCF, if available.
Interface Changes
The following changes were made to the interface:
l Added the authenticationContext and authenticationMethod fields and related
structure to the Checkout request.
l Added the following fields to the dpaTransactionOptions structure:
transactionInstruction, numberOfPayments, purchaseDate,
recurringEndDate, and recurringFrequency.
Documentation Changes
l Provided additional context for "Requirements When Checking Out With an Existing
Card" in the checkout API.
l Updated example for init JavaScript API to show how to indicate Merchant
Orchestrated Checkout.
l Removed the customInputData structure from "Compliance Settings in the Request"
example of the checkout API.
l Removed deprecated 3DS structures from checkout API and Payload examples.
l Updated the assuranceData structure documentation in the Get Payload API response
and added verificationData and methodResults structures to the response.
Documentation Changes
The following changes were made to the interface:
l Clarified that dpaPresentationName is required to facilitate transaction
authentication.
l Noted that you should contact your Visa representative for information about using
dpaThreeDsPreference to receive authentication data.
l Added a section for URI Data (uriData field in Checkout Parameters Authentication
Method).
l Provided additional information about Method Results of a given authentication method
and identified transStatus as a sting rather than a boolean value.
l Added new code samples for 3DS: "Checkout input when existing card is selected – 3DS
version," "Checkout input when new card is added – 3DS version," "Assurance Data for
3DS in the Decrypted Checkout Response," "Decrypted Token Payload Example From
Get Payload Operation - 3DS Version," and "Decrypted 3DS Assurance Data From Get
Payload Operation."
l Removed transStatusReason from Method Results.
Documentation Changes
The following changes were made to documentation:
l Removed the "Decrypted Token Payload Example From Checkout Operation" and
renamed the "Decrypted Token Payload Example From Get Payload Operation - 3DS
Version" to "Decrypted Token Payload Example." The decrypted token payloads are
essentially the same regardless of the API used to obtain the payload.