Test Case 1: Recurring Transaction - Fixed Amount
1a. Initial/First Recurring Transaction | ||||||||||
Scenario | Merchant is initiating a 3RI Recurring transaction that is a fixed amount for a set or of no established expiry (Subscription purchases). Cardinal Scenario Recommendation Step 1: Merchant initiates transaction in the amount of $50.00 USD (Currency can be modified to the merchants currency support if it is not in USD) Step 2: Pass AuthenticationIndicator as 02 for Recurring Transaction Step 3: Set RecurringEnd to 12 months in the future and RecurringFrequency for 30 (Days) | |||||||||
Authentication Experience | Challenged | |||||||||
Test Values | EXP Date: 01/**** | |||||||||
Mastercard PAN: | ||||||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||||||
Message Category =
| ||||||||||
Device Channel =
| ||||||||||
ChallengeIndicator =
| ||||||||||
AuthenticationIndicator =
| ||||||||||
PurchaseDate = Format: YYYYMMDDHHMMSS
| ||||||||||
RecurringFrequency = Example values accepted (31 days):
| ||||||||||
RecurringEnd = Format: YYYYMMDD Note: It is recommended not to exceed 12 months from PurchaseDate for recurring expiry
| ||||||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||||||
Enrolled =
| ||||||||||
PAResStatus =
| ||||||||||
Cavv = (value will not be provided)
| ||||||||||
EciFlag =
| ||||||||||
ErrorNo =
| ||||||||||
ErrorDesc = (value will not be provided)
| ||||||||||
Expected Results - Authentication (cmpi_authenticate response) | ||||||||||
PAResStatus =
| ||||||||||
CAVV = <CAVV Value>
| ||||||||||
EciFlag =
| ||||||||||
ErrorNo =
ErrorDesc = (value will not be provided)
| ||||||||||
Card Network & Version Specifications | ||||||||||
Visa Secure 2.1 | Not Supported | |||||||||
Visa Secure 2.2 | Not Applicable | |||||||||
Mastercard Identity Check 2.1 | For Mastercard Identity Check 2.1, 3RI is not supported for Payment Authentication (PA). Due to this, only the initial transaction is supported for Recurring Payments. If you attempt to run a Device Channel of 3RI within Mastercard Identity Check 2.1, you will receive a transStatusReason=21 (3RI Transaction not Supported). In this case, you will also receive a transaction status of “U” rather than “Y”. | |||||||||
Mastercard Identity Check 2.2 | EMV® 3DS 2.2 supports 3RI payments and this allows the subsequent recurring transactions to be submitted to authentication. ^ ^ via Mastercard Identity Check Program Guide. 19 November 2019. | |||||||||
Additional Information | ||||||||||
Visa Secure | N/A | |||||||||
Mastercard Identity Check | Mastercard has allocated a new ECI value, ECI 07, for 3RI transactions. This will be present on a Mastercard response message for this particular 3RI scenario. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
| |||||
Sample Authenticate Request Message
| |||||
Sample Authenticate Response Message
|
1b. Recurring Payments - Subsequent Transaction (Mastercard) | ||||||
Scenario | Merchant is running a subsequent 3RI recurring transaction that is a fixed amount for a set or of no established expiry (e.g., subscription purchases). | |||||
Authentication Experience | Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
Mastercard PAN:
| ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
Message Category =
| ||||||
Device Channel =
| ||||||
Alternate Prior Authentication Data = DS TransactionId from initial transaction (available on Lookup Response)
Note: The presence of DS transaction ID in the | ||||||
Alternate Prior Authentication Ref = ACS TransactionId from initial transaction (available on Lookup Response)
Note: The presence of ACS transaction ID in the | ||||||
Alternate Prior Authentication Time = Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMMSS
| ||||||
Alternate Prior Authentication Method = 02 - Cardholder challenge occurred by ACS
| ||||||
AuthenticationIndicator =
| ||||||
ThreeRIIndicator = 01 - Recurring transaction
| ||||||
PurchaseDate = Format: YYYYMMDDHHMMSS
| ||||||
RecurringFrequency = Example values accepted (31 days):
| ||||||
RecurringEnd = Format: YYYYMMDD Note: It is recommended not to exceed 12 months from PurchaseDate for recurring expiry
| ||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
Enrolled =
| ||||||
PAResStatus =
| ||||||
CAVV = <CAVV Value>
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
Additional Information | ||||||
Mastercard Identity Check | Mastercard has allocated a new ECI value, ECI 07, for 3RI transactions. This will be present on a Mastercard response message for this particular 3RI scenario. |
Sample Messages | |||||
Sample Lookup Message
| |||||
Sample Response Message
|
Test Case 2: Trans Status Reason
Info |
---|
NOTE: Visa cards will be used for all Trans Status Reason test cases, however, these values can (and will) be returned for all card networks. |
2a. Card Authentication Failed | ||||||
Scenario | 01 - Card Authentication Failed | |||||
Authentication Experience | Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
Visa PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
No specific callouts for fields; transStatusReason will be returned based on the PAN. | ||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
Enrolled =
| ||||||
PAResStatus =
| ||||||
Cavv = (value will not be provided)
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
StatusReason =
| ||||||
Additional Information | ||||||
Test Case can apply to PA or NPA transactions. | ||||||
When PAResStatus= |
Sample Messages | |||||
Sample Lookup Message
| |||||
Sample Response Message
|
2b. Suspected Fraud | ||||||
Scenario | 11 - Suspected Fraud | |||||
Authentication Experience | Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
Visa PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
No specific callouts for fields; transStatusReason will be returned based on the PAN. | ||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
Enrolled =
| ||||||
PAResStatus =
| ||||||
Cavv = (value will not be provided)
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
StatusReason =
| ||||||
Additional Information | ||||||
Test Case can apply to PA or NPA transactions. |
Sample Messages | |||||
Sample Lookup Message
| |||||
Sample Response Message
|
2c. Cardholder Not Enrolled in Service | ||||||
Scenario | 13 - Cardholder Not Enrolled in Service | |||||
Authentication Experience | Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
Visa PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
No specific callouts for fields; transStatusReason will be returned based on the PAN. | ||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
Enrolled =
| ||||||
PAResStatus =
| ||||||
Cavv = (value will not be provided)
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
StatusReason =
| ||||||
Additional Information | ||||||
Test Case can apply to PA or NPA transactions. |
Sample Messages | |||||
Sample Lookup Message
| |||||
Sample Response Message
|
2d. Transaction timed out at the ACS | ||||||
Scenario | 14 - Transaction timed out at the ACS | |||||
Authentication Experience | Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
Visa PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
No specific callouts for fields; transStatusReason will be returned based on the PAN. | ||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
Enrolled =
| ||||||
PAResStatus =
| ||||||
Cavv = (value will not be provided)
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
StatusReason =
| ||||||
Additional Information | ||||||
Test Case can apply to PA or NPA transactions. |
Sample Messages | |||||
Sample Lookup Message
| |||||
Sample Response Message
|
2e. Non-Payment transaction not supported | ||||||
Scenario | 20 - Non-Payment transaction not supported | |||||
Authentication Experience | Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
Visa PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
No specific callouts for fields; transStatusReason will be returned based on the PAN. | ||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
Enrolled =
| ||||||
PAResStatus =
| ||||||
Cavv = (value will not be provided)
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
StatusReason =
| ||||||
Additional Information | ||||||
Test Case can apply to PA or NPA transactions. |
Sample Messages | |||||
Sample Lookup Message
| |||||
Sample Response Message
|
2f. 3RI transaction not supported | ||||||
Scenario | 21 - 3RI transaction not supported | |||||
Authentication Experience | Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
Visa PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
MessageCategory =
| ||||||
DeviceChannel =
| ||||||
ThreeRIIndicator =
| ||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
Enrolled =
| ||||||
PAResStatus =
| ||||||
Cavv = (value will not be provided)
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
StatusReason =
|
Sample Messages | |||||
Sample Lookup Message
| |||||
Sample Response Message
|
Test Case 3: TRA Exemption
3a. Transaction Risk Analysis (TRA) / Low Value - Mastercard | ||||||
Scenario | Merchant has performed a proprietary risk assessment and is requesting a Transaction Risk Analysis (Low Risk) or Low Value exemption based on fraud thresholds established with the network. | |||||
Authentication Experience | Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
Mastercard PAN | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
ChallengeIndicator = 05 - No challenge requested (transactional risk analysis is already performed)
| ||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
EMV 3DS (2.1.0 Results) | ||||||
Enrolled =
| ||||||
PAResStatus =
| ||||||
Cavv = <Cavv Value>
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
StatusReason =
| ||||||
EMV 3DS (2.2.0 Results) | ||||||
Enrolled =
| ||||||
| PAResStatus =
| |||||
| Cavv = <Cavv Value>
| |||||
| EciFlag =
| |||||
| ErrorNo =
| |||||
| ErrorDesc = (value will not be provided)
| |||||
Card Network & Version Specifications | ||||||
Mastercard Identity Check 2.1 | Supported through /wiki/spaces/STAG/pages/1487667238 In this case, ChallengeIndicator on the Lookup should be passed as “05” and Centinel will remap this value to the Extension field. | |||||
Mastercard Identity Check 2.2 | Cardinal support for Mastercard Identity Check 2.2 is coming soon. | |||||
Additional Information | ||||||
Merchant Action | Proceed to Authorization You may also request the TRA exemption directly in authorization depending on region and your agreements with your Acquirer and the networks. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
|
3b. Transaction Risk Analysis (TRA) / Low Value - Visa | ||||||
Scenario | Merchant has performed a proprietary risk assessment and is requesting a Transaction Risk Analysis (Low Risk) or Low Value exemption based on fraud thresholds established with the network. | |||||
Authentication Experience | Frictionless | |||||
Test Values
| EXP Date: 01/**** | |||||
Visa PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
| ChallengeIndicator = 05 - No challenge requested (transactional risk analysis is already performed)
| |||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
| Enrolled =
| |||||
PAResStatus =
| ||||||
Cavv = <Cavv Value>
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
Card Network & Version Specifications | ||||||
Visa Secure 2.1 | Not Supported | |||||
Visa Secure 2.2 | You will need to work with your Acquirer to ensure the TRA flag is added in Field 34 along with providing the CAVV in the Authorization message. | |||||
Additional Information | ||||||
Merchant Action | Proceed to Authorization You may also request the TRA exemption directly in authorization depending on region and your agreements with your Acquirer and the networks. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
|
3c. Transaction Risk Analysis (TRA) / Low Value - Discover | ||||||
Scenario | Merchant has performed a proprietary risk assessment and is requesting a Transaction Risk Analysis (Low Risk) or Low Value exemption based on fraud thresholds established with the network. | |||||
Authentication Experience | Frictionless | |||||
Test Values
| EXP Date: 01/**** | |||||
Discover PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
| ChallengeIndicator = 04 05 - Challenge No challenge requested (Mandatetransactional risk analysis is already performed)
| |||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||
| Enrolled =
| |||||
PAResStatus =
| ||||||
Cavv = <Cavv Value>
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
Card Network & Version Specifications | ||||||
Discover ProtectBuy 2.1 | In this case, merchant must pass Challenge Indicator = 04 05 to indicate TRA exemption. | |||||
Additional Information | ||||||
Merchant Action | Proceed to Authorization You may also request the TRA exemption directly in authorization depending on region and your agreements with your Acquirer and the networks. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
|
3d. Acquirer TRA - Cartes Bancaires | |||||||
Scenario | Merchant has performed a proprietary risk assessment and is requesting the Acquirer TRA exemption. | ||||||
Authentication Experience | Frictionless | ||||||
Test Values
| EXP Date: 01/**** | ||||||
Cartes Bancaires (Visa) PAN: Cartes Bancaires (MC) PAN: Lookup Request (cmpi_lookup) → CardType = CB | |||||||
Required Fields - Lookup Request (cmpi_lookup) | |||||||
| ChallengeIndicator = 05 - No challenge requested
| ||||||
Expected Results - Lookup Response (cmpi_lookup) | |||||||
| Enrolled =
| ||||||
PAResStatus =
| |||||||
Cavv = <Cavv Value>
| |||||||
EciFlag =
| |||||||
ErrorNo =
| |||||||
ErrorDesc = (value will not be provided)
| |||||||
Card Network & Version Specifications | |||||||
Cartes Bancaires (v1.7) | Passing ChallengeIndicator=05 on a CB EMV 3DS 2.1.0 will allow Cardinal to generate the CB-EXEMPTACQ extension field on the AReq. | ||||||
Additional Information | |||||||
Merchant Action | Proceed to Authorization You may also request the TRA exemption directly in authorization depending on region and your agreements with your Acquirer and the networks. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
|
3e. Acquirer TRA - Cartes Bancaires (2.2.0) | |||||||
Scenario | Merchant has performed a proprietary risk assessment and is requesting the Acquirer TRA exemption. | ||||||
Authentication Experience | Frictionless | ||||||
Test Values
| EXP Date: 01/**** | ||||||
Cartes Bancaires (Visa) PAN: Cartes Bancaires (MC) PAN: Lookup Request (cmpi_lookup) → CardType = CB | |||||||
Required Fields - Lookup Request (cmpi_lookup) | |||||||
| ChallengeIndicator = 05 - No challenge requested (transactional risk analysis is already performed)
| ||||||
Expected Results - Lookup Response (cmpi_lookup) | |||||||
| Enrolled =
| ||||||
PAResStatus =
| |||||||
Cavv = <Cavv Value>
| |||||||
EciFlag =
| |||||||
ErrorNo =
| |||||||
ErrorDesc = (value will not be provided)
| |||||||
Additional Information | |||||||
Merchant Action | Proceed to Authorization You may also request the TRA exemption directly in authorization depending on region and your agreements with your Acquirer and the networks. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
|
Test Case 4: Trusted Beneficiary (Trustlist Exemption)
Test Case 4a: Prompt For Trustlist | ||||||||||
Scenario | Successful traditional Step Up (Challenge) authentication transaction with a prompt for the trustlist and an accepted exemption result | |||||||||
Authentication Experience | Challenge | |||||||||
Test Values | Visa PAN: Mastercard PAN: | |||||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||||||
ChallengeIndicator = 09 - Challenge requested (trustlist prompt requested if challenge required)
| ||||||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||||||
| Enrolled =
| |||||||||
PAResStatus =
| ||||||||||
CAVV = (value will not be provided)
| ||||||||||
Visa: Mastercard:
| ||||||||||
Payload = <Payload Value>
| ||||||||||
ErrorNo =
| ||||||||||
ErrorDesc = (value will not be provided)
| ||||||||||
Expected Results - Authentication (cmpi_authenticate response) | ||||||||||
| PAResStatus =
| |||||||||
CAVV = <CAVV Value>
| ||||||||||
Visa: Mastercard:
| ||||||||||
WhiteListStatus = <WhiteListStatus Value>
| ||||||||||
WhiteListStatusSource = <WhiteListStatusSource Value>
| ||||||||||
ErrorNo =
ErrorDesc = (value will not be provided)
| ||||||||||
Integration Method Specific Expected Results | ||||||||||
Cardinal Cruise API | On the Lookup Response, StepUpUrl will be returned
| |||||||||
Additional Information | ||||||||||
Merchant Action | Merchant should append the Cavv and EciFlag values to the authorization message. |
Sample Messages
Sample Lookup Request Message
Code Block | ||
---|---|---|
| ||
<CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Algorithm>SHA-512</Algorithm> <Identifier>{{API_KEY_IDENTIFIER}}</Identifier> <OrgUnit>{{ORG_UNIT_ID}}</OrgUnit> <Signature>{{GENERATED_SIGNATURE_VALUE}}</Signature> <Timestamp>{{TIMESTAMP}}</Timestamp> <OrderNumber>{{ORDER_NUMBER}}</OrderNumber> <CardNumber>{{TEST_CARD_NUMBER}}</CardNumber> <CardExpMonth>06</CardExpMonth> <CardExpYear>2022</CardExpYear> <AcquirerId>428448</AcquirerId> <AcquirerMerchantId>980020230994</AcquirerMerchantId> <ACSWindowSize>05</ACSWindowSize> <BillingAddress1>8100 Tyler Blvd</BillingAddress1> <BillingAddress2 /> <BillingCity>Mentor</BillingCity> <BillingCountryCode>US</BillingCountryCode> <BillingFirstName>Chris</BillingFirstName> <BillingLastName>Brown</BillingLastName> <BillingPostalCode>K44060</BillingPostalCode> <BillingState>OH</BillingState> <UserAgent>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36</UserAgent> <DFReferenceId>{{DF_REFERENCE_ID}}</DFReferenceId> <BrowserHeader>text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8</BrowserHeader> <BrowserJavaEnabled>True</BrowserJavaEnabled> <BrowserLanguage>en-US</BrowserLanguage> <BrowserColorDepth>24</BrowserColorDepth> <BrowserScreenHeight>864</BrowserScreenHeight> <BrowserScreenWidth>1536</BrowserScreenWidth> <BrowserTimeZone>300</BrowserTimeZone> <CategoryCode>5999</CategoryCode> <CurrencyCode>USD</CurrencyCode> <Amount>12367</Amount> <ChallengeIndicator>09</ChallengeIndicator> <DeviceChannel>Browser</DeviceChannel> <Email>support@cardinalcommerce.com</Email> <IPAddress>1.12.123.255</IPAddress> <TransactionMode>S</TransactionMode> <TransactionType>C</TransactionType> <Version>1.7</Version> </CardinalMPI> |
Sample Lookup Response Message
Code Block | ||
---|---|---|
| ||
<CardinalMPI> <ErrorNo>0</ErrorNo> <TransactionId>X1XvSfNzermEm8Dfgyq0</TransactionId> <Payload> eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMi4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJmMWJiNDAwZC1lZWRiLTQ2YjYtYTgwYi05MWJiMzExNWJlNjAiLCJhY3NUcmFuc0lEIjoiYzk3MGRlMjEtODVjYi00YzZiLTgyYzItNzE3ZGI1YzA1NDYyIiwiY2hhbGxlbmdlV2luZG93U2l6ZSI6IjA1In0 </Payload> <ErrorDesc></ErrorDesc> <Cavv></Cavv> <PAResStatus>C</PAResStatus> <Enrolled>Y</Enrolled> <ACSTransactionId>c970de21-85cb-4c6b-82c2-717db5c05462</ACSTransactionId> <EciFlag>07</EciFlag> <ACSUrl>https://0merchantacsstag.cardinalcommerce.com/MerchantACSWeb/creq.jsp</ACSUrl> <ThreeDSServerTransactionId>f1bb400d-eedb-46b6-a80b-91bb3115be60</ThreeDSServerTransactionId> <CardBin>400000</CardBin> <CardBrand>VISA</CardBrand> <DSTransactionId>042adc1b-9fb9-444c-a72e-f60f8d5d2fb8</DSTransactionId> <AuthenticationType>01</AuthenticationType> <ThreeDSVersion>2.2.0</ThreeDSVersion> <OrderId>8000094459242422</OrderId> <ChallengeRequired>N</ChallengeRequired> <SignatureVerification>Y</SignatureVerification> </CardinalMPI> |
Sample Authenticate Request Message
Code Block | ||
---|---|---|
| ||
<CardinalMPI> <MsgType>cmpi_authenticate</MsgType> <Algorithm>SHA-512</Algorithm> <Identifier>{{API_KEY_IDENTIFIER}}</Identifier> <OrgUnit>{{ORG_UNIT_ID}}</OrgUnit> <Signature>{{GENERATED_SIGNATURE_VALUE}}</Signature> <Timestamp>{{TIMESTAMP}}</Timestamp> <TransactionId>{{TRANSACTION_ID}}</TransactionId> <TransactionType>C</TransactionType> <Version>1.7</Version> </CardinalMPI> |
Sample Authenticate Response Message
Code Block | ||
---|---|---|
| ||
<CardinalMPI> <CardBin>400000</CardBin> <ThreeDSVersion>2.2.0</ThreeDSVersion> <SignatureVerification>Y</SignatureVerification> <ErrorDesc /> <ThreeDSServerTransactionId>c5045efa-1d2c-411f-a605-687bfd1460dd</ThreeDSServerTransactionId> <Cavv>MTIzNDU2Nzg5MDEyMzQ1Njc4OTA=</Cavv> <Amount>12367</Amount> <ErrorNo>0</ErrorNo> <InteractionCounter>00</InteractionCounter> <EciFlag>05</EciFlag> <WhiteListStatus>Y</WhiteListStatus> <WhiteListStatusSource>03</WhiteListStatusSource> <TransactionId>ADF7ZctbyCVa0xKcivw0</TransactionId> <CurrencyCode>840</CurrencyCode> <ACSTransactionId>45be5b5a-bd58-4b9d-a298-da2beb339064</ACSTransactionId> <DSTransactionId>7f03c3aa-1a28-48eb-a5f7-47da91dd49c3</DSTransactionId> <CardBrand>VISA</CardBrand> <PAResStatus>Y</PAResStatus> </CardinalMPI> |
Test Case 4b: Utilize Trusted Beneficiary Exemption | ||||||||||
Scenario | Successful frictionless authentication transaction with a pre-trustlisted indication and an accepted exemption result | |||||||||
Authentication Experience | Frictionless | |||||||||
Test Values | Visa PAN: Mastercard PAN: | |||||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||||||
ChallengeIndicator = 08 = No challenge requested (utilize trustlist exemption if no challenge required)
| ||||||||||
Optional Fields - Lookup Request (cmpi_lookup) | ||||||||||
WhiteListStatus = <WhiteListStatus Value>
| ||||||||||
WhiteListStatusSource = <WhiteListStatusSource Value>
| ||||||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||||||
| PAResStatus =
| |||||||||
CAVV = <CAVV Value>
| ||||||||||
Visa: Mastercard:
| ||||||||||
WhiteListStatus = <WhiteListStatus Value>
| ||||||||||
WhiteListStatusSource = <WhiteListStatusSource Value>
| ||||||||||
ThreeDSVersion = <ThreeDSVersion Value>
| ||||||||||
ErrorNo =
ErrorDesc = (value will not be provided)
| ||||||||||
Integration Method Specific Expected Results | ||||||||||
ActionCode = ErrorNumber = ErrorDescription = | ||||||||||
Additional Information | ||||||||||
Merchant Action | Merchant should append the Cavv and EciFlag values to the authorization message. |
Sample Messages
Sample Lookup Request Message
Code Block | ||
---|---|---|
| ||
<CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Algorithm>SHA-512</Algorithm> <Identifier>{{API_KEY_IDENTIFIER}}</Identifier> <OrgUnit>{{ORG_UNIT_ID}}</OrgUnit> <Signature>{{GENERATED_SIGNATURE_VALUE}}</Signature> <Timestamp>{{TIMESTAMP}}</Timestamp> <OrderNumber>{{ORDER_NUMBER}}</OrderNumber> <CardNumber>{{TEST_CARD_NUMBER}}</CardNumber> <CardExpMonth>06</CardExpMonth> <CardExpYear>2022</CardExpYear> <AcquirerId>428448</AcquirerId> <AcquirerMerchantId>980020230994</AcquirerMerchantId> <ACSWindowSize>05</ACSWindowSize> <BillingAddress1>8100 Tyler Blvd</BillingAddress1> <BillingAddress2 /> <BillingCity>Mentor</BillingCity> <BillingCountryCode>US</BillingCountryCode> <BillingFirstName>Chris</BillingFirstName> <BillingLastName>Brown</BillingLastName> <BillingPostalCode>K44060</BillingPostalCode> <BillingState>OH</BillingState> <UserAgent>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36</UserAgent> <DFReferenceId>{{DF_REFERENCE_ID}}</DFReferenceId> <BrowserHeader>text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8</BrowserHeader> <BrowserJavaEnabled>True</BrowserJavaEnabled> <BrowserLanguage>en-US</BrowserLanguage> <BrowserColorDepth>24</BrowserColorDepth> <BrowserScreenHeight>864</BrowserScreenHeight> <BrowserScreenWidth>1536</BrowserScreenWidth> <BrowserTimeZone>300</BrowserTimeZone> <CategoryCode>5999</CategoryCode> <CurrencyCode>USD</CurrencyCode> <Amount>12367</Amount> <ChallengeIndicator>08</ChallengeIndicator> <DeviceChannel>Browser</DeviceChannel> <Email>support@cardinalcommerce.com</Email> <IPAddress>1.12.123.255</IPAddress> <TransactionMode>S</TransactionMode> <TransactionType>C</TransactionType> <Version>1.7</Version> <WhiteListStatus>Y</WhiteListStatus> <WhiteListStatusSource>03</WhiteListStatusSource> </CardinalMPI> |
Sample Lookup Response Message
Code Block | ||
---|---|---|
| ||
<CardinalMPI> <ErrorNo>0</ErrorNo> <TransactionId>Zk1bb78N7Z829qzfcGo0</TransactionId> <Payload></Payload> <ErrorDesc></ErrorDesc> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> <PAResStatus>Y</PAResStatus> <Enrolled>Y</Enrolled> <ACSTransactionId>55744ae5-fb70-46a1-af87-7b79eb7a9326</ACSTransactionId> <EciFlag>05</EciFlag> <WhiteListStatusSource>03</WhiteListStatusSource> <ACSUrl></ACSUrl> <ThreeDSServerTransactionId>9ee72837-7622-4fd7-bbe4-3678f296bd74</ThreeDSServerTransactionId> <CardBin>400000</CardBin> <CardBrand>VISA</CardBrand> <Amount>12367</Amount> <DSTransactionId>c1fdf458-f8c5-4667-9803-245e9d41f464</DSTransactionId> <ThreeDSVersion>2.2.0</ThreeDSVersion> <CurrencyCode>840</CurrencyCode> <OrderId>8000376244612849</OrderId> <ChallengeRequired></ChallengeRequired> <WhiteListStatus>Y</WhiteListStatus> <SignatureVerification>Y</SignatureVerification> </CardinalMPI> |
Test Case 5: Data Only
Test Case 5a: Visa Data Only | ||||||||||
Scenario | Visa Data Only authentication request Implementation of 3DS Method is a requirement for Visa Data Only. | |||||||||
Authentication Experience | Frictionless (Information Only) | |||||||||
Test Values | Visa PAN: | |||||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||||||
ChallengeIndicator =
| ||||||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||||||
| PAResStatus =
| |||||||||
EciFlag =
| ||||||||||
CAVV = <CAVV Value>
| ||||||||||
ThreeDSVersion = <ThreeDSVersion Value>
| ||||||||||
ErrorNo =
ErrorDesc = (value will not be provided)
| ||||||||||
Integration Method Specific Expected Results | ||||||||||
ActionCode = ErrorNumber = ErrorDescription = | ||||||||||
Additional Information | ||||||||||
Merchant Action | Merchant should append the ECI and Cavv values to the authorization message. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
|
Test Case 5b-1: Identity Check Insights (ScoreRequest = N) | ||||||||||
Scenario | Mastercard Data Only authentication request | |||||||||
Authentication Experience | Frictionless | |||||||||
Test Values | Mastercard PAN: | |||||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||||||
MessageCategory =
| ||||||||||
Optional Fields - Lookup Request (cmpi_lookup) | ||||||||||
ScoreRequest =
| ||||||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||||||
| PAResStatus =
| |||||||||
CAVV = <CAVV Value>
| ||||||||||
EciFlag =
| ||||||||||
StatusReason =
| ||||||||||
ThreeDSVersion = <ThreeDSVersion Value>
| ||||||||||
ErrorNo =
ErrorDesc = (value will not be provided)
| ||||||||||
Integration Method Specific Expected Results | ||||||||||
ActionCode = ErrorNumber = ErrorDescription = | ||||||||||
Additional Information | ||||||||||
Merchant Action | Merchant should append the ECI and DS Transaction ID value to the authorization message. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
|
Test Case 5b-2: Identity Check Insights (ScoreRequest = Y) | ||||||||||
Scenario | Mastercard Data Only authentication request
| |||||||||
Authentication Experience | Frictionless | |||||||||
Test Values | Mastercard PAN: | |||||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||||||
MessageCategory =
| ||||||||||
Optional Fields - Lookup Request (cmpi_lookup) | ||||||||||
ScoreRequest =
| ||||||||||
MerchantReasonCode=
| ||||||||||
Expected Results - Lookup Response (cmpi_lookup) | ||||||||||
| PAResStatus =
| |||||||||
CAVV = <CAVV Value>
| ||||||||||
EciFlag =
| ||||||||||
StatusReason =
| ||||||||||
ThreeDSVersion = <ThreeDSVersion Value>
| ||||||||||
ErrorNo =
ErrorDesc = (value will not be provided)
| ||||||||||
Optional Results - Lookup Response (cmpi_lookup) [Only if ScoreRequest = Y] | ||||||||||
IDCI_Score =
| ||||||||||
IDCI_Decision=
| ||||||||||
IDCI_ReasonCode1 =
| ||||||||||
IDCI_ReasonCode2 =
| ||||||||||
Integration Method Specific Expected Results | ||||||||||
ActionCode = ErrorNumber = ErrorDescription = | ||||||||||
Additional Information | ||||||||||
Merchant Action | Merchant should append the ECI and DS Transaction ID values to the authorization message. |
Sample Messages | |||||
Sample Lookup Request Message
| |||||
Sample Lookup Response Message
|
Test Case 6: Split/Delayed Shipment (3RI)
Note |
---|
These Test Cases (6a, 6b) are currently in Beta status and could be subject to change. |
6a. Split/Delayed Shipment (Mastercard) | |||
Scenario | A purchase includes multiple items that are made available to the consumer at different periods. For example, an order contains backordered or preordered items. Note: During the initial purchase, an authentication should be completed using the full amount total (including products not yet to be shipped). | ||
Authentication Experience | Frictionless | ||
Test Values
| EXP Date: 01/**** | ||
Mastercard PAN: | |||
Required Fields - Lookup Request (cmpi_lookup) | |||
| Message Category =
| ||
Device Channel =
| |||
AuthenticationIndicator =
| |||
ThreeRIIndicator =
| |||
Alternate Prior Authentication Data = DSTransactionId from initial transaction (available on Lookup Response)
| |||
Expected Results - Lookup Response (cmpi_lookup) | |||
| Enrolled =
| ||
PAResStatus =
| |||
CAVV = <CAVV Value>
| |||
EciFlag =
| |||
ErrorNo =
| |||
ErrorDesc = (value will not be provided)
| |||
Card Network & Version Specifications | |||
Mastercard Identity Check 2.1 | For Mastercard Identity Check 2.1, 3RI is not supported for Payment Authentication (PA). If you attempt to run a Device Channel of 3RI within Mastercard Identity Check 2.1, you will receive a transStatusReason=21 (3RI Transaction not Supported). In this case, you will also receive a transaction status of “U” rather than “Y”. | ||
Additional Information | |||
Mastercard Identity Check | Mastercard has allocated a new ECI value, ECI 07, for 3RI transactions. This will be present on a Mastercard response message for this particular 3RI scenario. |
Sample Messages | ||
Sample Lookup Message
| ||
Sample Response Message
|
6b. Split/Delayed Shipment (Visa) | ||||
Scenario | A purchase includes multiple items that are made available to the consumer at different periods. For example, an order contains backordered or preordered items. Note: During the initial purchase, an authentication should be completed using the full amount total (including products not yet to be shipped). | |||
Authentication Experience | Frictionless | |||
Test Values
| EXP Date: 01/**** | |||
Visa PAN: 2.2.0: TBD | ||||
Required Fields - Lookup Request (cmpi_lookup) | ||||
| Message Category =
| |||
Device Channel =
| ||||
AuthenticationIndicator =
| ||||
ThreeRIIndicator = EMV 3DS 2.1: EMV 3DS 2.2:
| ||||
Alternate Prior Authentication Ref = ACSTransactionId from initial transaction (available on Lookup Response)
| ||||
Alternate Prior Authentication Time = Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMMSS
| ||||
Alternate Prior Authentication Method =
| ||||
Expected Results - Lookup Response (cmpi_lookup) | ||||
| Enrolled =
| |||
PAResStatus =
| ||||
CAVV = <CAVV Value>
| ||||
EciFlag =
| ||||
ErrorNo =
| ||||
ErrorDesc = (value will not be provided)
|
Sample Messages | ||
Sample Lookup Message
| ||
Sample Response Message
|
EMV® is a registered trademark in the U.S. and other countries and an unregistered trademark elsewhere. The EMV trademark is owned by EMVCo, LLC.