Test Case 1: Recurring Payments - 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 merchant's 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 = <MessageCategory>01</MessageCategory> | |
Device Channel = <DeviceChannel>02</DeviceChannel> | |
ChallengeIndicator = <ChallengeIndicator>04</ChallengeIndicator> | |
AuthenticationIndicator = <AuthenticationIndicator>02</AuthenticationIndicator> | |
PurchaseDate = Format: YYYYMMDDHHMMSS <PurchaseDate>20200405112438</PurchaseDate> | |
RecurringFrequency = Example values accepted (31 days):
<RecurringFrequency>31</RecurringFrequency> | |
RecurringEnd = Format: YYYYMMDD Note: It is recommended not to exceed 12 months from PurchaseDate for recurring expiry <RecurringEnd>20210121</RecurringEnd> | |
Expected Results - Lookup Response (cmpi_lookup) | |
Enrolled = <Enrolled>Y</Enrolled> | |
PAResStatus = <PAResStatus>C</PAResStatus> | |
Cavv = (value will not be provided) <Cavv></Cavv> | |
EciFlag = <EciFlag>00</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> | |
Expected Results - Authentication (cmpi_authenticate response) | |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>07</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> | |
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<CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Version>1.7</Version> <Algorithm>SHA-512</Algorithm> <Identifier>{{API_KEY_IDENTIFIER}}</Identifier> <OrgUnit>{{ORG_UNIT_ID}}</OrgUnit> <Signature>{{GENERATED_SIGNATURE_VALUE}}</Signature> <Timestamp>{{TIMESTAMP}}</Timestamp> <TransactionType>C</TransactionType> <OrderNumber>12345678</OrderNumber> <Amount>94160</Amount> <CurrencyCode>840</CurrencyCode> <CardNumber>520000******2805</CardNumber> <CardExpMonth>01</CardExpMonth> <CardExpYear>2023</CardExpYear> <BillingFirstName>John</BillingFirstName> <BillingMiddleName>S</BillingMiddleName> <BillingLastName>Smith</BillingLastName> <BillingAddress1>1600 Pennsylvania Blvd.</BillingAddress1> <BillingAddress2/> <BillingPhone>555-555-5555</BillingPhone> <BillingCity>Washington</BillingCity> <BillingState>DC</BillingState> <BillingPostalCode>10123</BillingPostalCode> <BillingCountryCode>US</BillingCountryCode> <ShippingFirstName>John</ShippingFirstName> <ShippingLastName>Smith</ShippingLastName> <ShippingAddress1>1600 Pennsylvania Blvd.</ShippingAddress1> <ShippingAddress2/> <ShippingPhone>555-555-5555</ShippingPhone> <ShippingCity>Washington</ShippingCity> <ShippingState>DC</ShippingState> <ShippingPostalCode>10123</ShippingPostalCode> <ShippingCountryCode>US</ShippingCountryCode> <Item_Name_1>CC Car A</Item_Name_1> <Item_Desc_1>Model Aqua</Item_Desc_1> <Item_Price_1>10000</Item_Price_1> <Item_Quantity_1>1</Item_Quantity_1> <Item_SKU_1>8675309</Item_SKU_1> <PurchaseDate>20200405112438</PurchaseDate> <CategoryCode>01</CategoryCode> <MessageCategory>01</MessageCategory> <BrowserLanguage>English</BrowserLanguage> <BrowserColorDepth>500</BrowserColorDepth> <BrowserScreenHeight>980</BrowserScreenHeight> <BrowserScreenWidth>1080</BrowserScreenWidth> <BrowserTimeZone>-1:00</BrowserTimeZone> <BrowserJavaEnabled>true</BrowserJavaEnabled> <IPAddress>127.0.0.1</IPAddress> <UserAgent>Jakarta Commons-HttpClient/3.1</UserAgent> <DeviceChannel>02</DeviceChannel> <ChallengeIndicator>04</ChallengeIndicator> <AuthenticationIndicator>02</AuthenticationIndicator> <RecurringEnd>20190121</RecurringEnd> <RecurringFrequency>30</RecurringFrequency> <CategoryCode>1234</CategoryCode> <BrowserHeader>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</BrowserHeader> </CardinalMPI> |
Sample Lookup Response Message <CardinalMPI> <ErrorNo>0</ErrorNo> <TransactionId>IZBMo3zIjEPsnNCcGgN0</TransactionId> <Payload></Payload> <ErrorDesc></ErrorDesc> <Cavv/> <PAResStatus>C</PAResStatus> <Enrolled>Y</Enrolled> <ACSTransactionId>2cf308bf-86fc-4bee-816a-cd38909d0d92</ACSTransactionId> <EciFlag>00</EciFlag> <ACSUrl></ACSUrl> <ThreeDSServerTransactionId>db6e6faf-f7bb-40a1-8c9c-caaad3782458</ThreeDSServerTransactionId> <CardBin>520000</CardBin> <CardBrand>MASTERCARD</CardBrand> <Amount>94160</Amount> <DSTransactionId>1c59a512-ab4f-4370-af97-4cfe69b7276e</DSTransactionId> <ThreeDSVersion>2.2.0</ThreeDSVersion> <CurrencyCode>840</CurrencyCode> <OrderId>8000038870456384</OrderId> <SignatureVerification>Y</SignatureVerification> </CardinalMPI> |
Sample Authenticate Request Message <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> <OrderId>{{ORDER_ID}}</OrderId> <TransactionType>C</TransactionType> <Version>1.7</Version> </CardinalMPI> |
Sample Authenticate Response Message <CardinalMPI> <CardBin>520000</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> <EciFlag>02</EciFlag> <TransactionId>ADF7ZctbyCVa0xKcivw0</TransactionId> <CurrencyCode>840</CurrencyCode> <ACSTransactionId>45be5b5a-bd58-4b9d-a298-da2beb339064</ACSTransactionId> <DSTransactionId>7f03c3aa-1a28-48eb-a5f7-47da91dd49c3</DSTransactionId> <AuthenticationType>03</AuthenticationType> <CardBrand>MC</CardBrand> <PAResStatus>Y</PAResStatus> </CardinalMPI> |
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: NOTE: Normally, merchants would use the same PAN as indicated in Test Case 1a. Initial/First Recurring Transaction. At this time, this functionality is not supported in our test environment. | |
Required Fields - Lookup Request (cmpi_lookup) | |
Message Category = <MessageCategory>01</MessageCategory> | |
Device Channel = <DeviceChannel>3RI</DeviceChannel> | |
Alternate Prior Authentication Data = DSTransactionId from initial transaction (available on Lookup Response) <AlternatePriorAuthenticationData>7f03c3aa-1a28-48eb-a5f7-47da91dd49c3</AlternatePriorAuthenticationData> Note: The presence of DS transaction ID in the | |
AuthenticationIndicator = <AuthenticationIndicator>02</AuthenticationIndicator> | |
ThreeRIIndicator = 01 - Recurring transaction <ThreeRIIndicator>01</ThreeRIIndicator> | |
PurchaseDate = Format: YYYYMMDDHHMMSS <PurchaseDate>20230405112438</PurchaseDate> | |
RecurringFrequency = Example values accepted (31 days):
<RecurringFrequency>31</RecurringFrequency> | |
RecurringEnd = Format: YYYYMMDD Note: It is recommended not to exceed 12 months from PurchaseDate for recurring expiry <RecurringEnd>20240121</RecurringEnd> | |
Expected Results - Lookup Response (cmpi_lookup) | |
Enrolled = <Enrolled>Y</Enrolled> | |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>07</EciFlag> Please note that the ECI flag currently being returned is 02. However, in a Production environment, merchants should anticipate receiving an ECI flag of 07. | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> | |
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 <CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Version>1.7</Version> <ThreeDSVersion>2.2.0</ThreeDSVersion> <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> <TransactionType>C</TransactionType> <Amount>94160</Amount> <CurrencyCode>840</CurrencyCode> <CardExpMonth>06</CardExpMonth> <CardExpYear>2022</CardExpYear> <BillingFirstName>Harry</BillingFirstName> <BillingMiddleName>S</BillingMiddleName> <BillingLastName>Truman</BillingLastName> <BillingAddress1>8100 Tyler Blvd</BillingAddress1> <BillingAddress2 /> <BillingCity>Mentor</BillingCity> <BillingCountryCode>US</BillingCountryCode> <BillingPostalCode>10123</BillingPostalCode> <CategoryCode>0123</CategoryCode> <DeviceChannel>3RI</DeviceChannel> <ThreeRIIndicator>01</ThreeRIIndicator> <RecurringFrequency>31</RecurringFrequency> <RecurringEnd>20220907</RecurringEnd> <AuthenticationIndicator>02</AuthenticationIndicator> <AlternatePriorAuthenticationData>d1734c35-0663-4138-b472-dd6272aa8f77</AlternatePriorAuthenticationData> </CardinalMPI> |
Sample Response Message <CardinalMPI> <ACSOperatorID>MerchantACS</ACSOperatorID> <ErrorDesc></ErrorDesc> <ACSUrl></ACSUrl> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> <ErrorNo>0</ErrorNo> <EciFlag>07</EciFlag> <Enrolled>Y</Enrolled> <CurrencyCode>840</CurrencyCode> <DSTransactionId>c340528c-1c03-4964-9a32-b9907bb5e048</DSTransactionId> <OrderId>8010394438358853</OrderId> <CardBrand>MASTERCARD</CardBrand> <PAResStatus>Y</PAResStatus> <CardBin>520000</CardBin> <SignatureVerification>Y</SignatureVerification> <ThreeDSVersion>2.2.0</ThreeDSVersion> <ThreeDSServerTransactionId>558dccac-45b1-4be4-9949-50a5ee2ec572</ThreeDSServerTransactionId> <Amount>94160</Amount> <ChallengeRequired></ChallengeRequired> <TransactionId>KN3bdqXoE0ZjIptkL9H0</TransactionId> <ACSTransactionId>9331946b-7d0a-4df7-8988-1c94b625e552</ACSTransactionId> <ACSReferenceNumber>Cardinal ACS</ACSReferenceNumber> </CardinalMPI> |
Test Case 2: Installment
2a. Installment - Customer Initiated Transaction (Mastercard) | |
Scenario | An initial authentication for the total amount that the installments will amount to. Once this initial authentication is completed by the customer the subsequent installments will not require authentication and instead will jump right to authorization, per MasterCard’s preferred process. |
Authentication Experience | Customer Initiated Challenge Transaction |
Test Values | EXP Date: 01/**** |
PAN: Mastercard PAN: 5200000000002805 | |
Required Fields - Lookup Request (cmpi_lookup) | |
Message Category = <MessageCategory>01</MessageCategory> | |
Device Channel = <DeviceChannel>02</DeviceChannel> | |
ChallengeIndicator = <ChallengeIndicator>04</ChallengeIndicator> | |
AuthenticationIndicator = <AuthenticationIndicator>02</AuthenticationIndicator> | |
PurchaseDate = Format: YYYYMMDDHHMMSS <PurchaseDate>20200405112438</PurchaseDate> | |
RecurringFrequency = Example values accepted (31 days):
<RecurringFrequency>31</RecurringFrequency> | |
RecurringEnd = Format: YYYYMMDD Note: It is recommended not to exceed 12 months from PurchaseDate for recurring expiry <RecurringEnd>20210121</RecurringEnd> | |
Expected Results - Lookup Response (cmpi_lookup) | |
Enrolled = <Enrolled>Y</Enrolled> | |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>00</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> | |
Expected Results - Authentication (cmpi_authenticate response) | |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>02</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> | |
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. NOTE: DS Txn ID for the initial transaction is always reference in the subsequent recurring NOTE: The AAV & DS Txn ID for each authentication is unique and only usable one time. Each authorization requires a new AAV & DS Transaction ID which will need to be received from a 3RI PA or 3RI IDCI. |
Sample cmpi_Lookup Request
<CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Version>1.7</Version> <Algorithm>SHA-512</Algorithm> <Identifier>{{API_KEY_IDENTIFIER}}</Identifier> <OrgUnit>{{ORG_UNIT_ID}}</OrgUnit> <Signature>{{GENERATED_SIGNATURE_VALUE}}</Signature> <Timestamp>{{TIMESTAMP}}</Timestamp> <TransactionType>C</TransactionType> <OrderNumber>12345678</OrderNumber> <Amount>94160</Amount> <CurrencyCode>840</CurrencyCode> <CardNumber>520000******2805</CardNumber> <CardExpMonth>01</CardExpMonth> <CardExpYear>2023</CardExpYear> <BillingFirstName>John</BillingFirstName> <BillingMiddleName>S</BillingMiddleName> <BillingLastName>Smith</BillingLastName> <BillingAddress1>1600 Pennsylvania Blvd.</BillingAddress1> <BillingAddress2/> <BillingPhone>555-555-5555</BillingPhone> <BillingCity>Washington</BillingCity> <BillingState>DC</BillingState> <BillingPostalCode>10123</BillingPostalCode> <BillingCountryCode>US</BillingCountryCode> <ShippingFirstName>John</ShippingFirstName> <ShippingLastName>Smith</ShippingLastName> <ShippingAddress1>1600 Pennsylvania Blvd.</ShippingAddress1> <ShippingAddress2/> <ShippingPhone>555-555-5555</ShippingPhone> <ShippingCity>Washington</ShippingCity> <ShippingState>DC</ShippingState> <ShippingPostalCode>10123</ShippingPostalCode> <ShippingCountryCode>US</ShippingCountryCode> <Item_Name_1>CC Car A</Item_Name_1> <Item_Desc_1>Model Aqua</Item_Desc_1> <Item_Price_1>10000</Item_Price_1> <Item_Quantity_1>1</Item_Quantity_1> <Item_SKU_1>8675309</Item_SKU_1> <PurchaseDate>20200405112438</PurchaseDate> <CategoryCode>01</CategoryCode> <MessageCategory>01</MessageCategory> <BrowserLanguage>English</BrowserLanguage> <BrowserColorDepth>500</BrowserColorDepth> <BrowserScreenHeight>980</BrowserScreenHeight> <BrowserScreenWidth>1080</BrowserScreenWidth> <BrowserTimeZone>-1:00</BrowserTimeZone> <BrowserJavaEnabled>true</BrowserJavaEnabled> <IPAddress>127.0.0.1</IPAddress> <UserAgent>Jakarta Commons-HttpClient/3.1</UserAgent> <DeviceChannel>02</DeviceChannel> <ChallengeIndicator>04</ChallengeIndicator> <AuthenticationIndicator>03</AuthenticationIndicator> <RecurringEnd>20190121</RecurringEnd> <RecurringFrequency>31</RecurringFrequency> <CategoryCode>1234</CategoryCode> <BrowserHeader>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</BrowserHeader> </CardinalMPI>
Sample Lookup Response Message
<CardinalMPI> <ErrorNo>0</ErrorNo> <TransactionId>IZBMo3zIjEPsnNCcGgN0</TransactionId> <Payload></Payload> <ErrorDesc></ErrorDesc> <Cavv/> <PAResStatus>Y</PAResStatus> <Enrolled>Y</Enrolled> <ACSTransactionId>2cf308bf-86fc-4bee-816a-cd38909d0d92</ACSTransactionId> <EciFlag>00</EciFlag> <ACSUrl></ACSUrl> <ThreeDSServerTransactionId>db6e6faf-f7bb-40a1-8c9c-caaad3782458</ThreeDSServerTransactionId> <CardBin>520000</CardBin> <CardBrand>MC</CardBrand> <Amount>94160</Amount> <DSTransactionId>1c59a512-ab4f-4370-af97-4cfe69b7276e</DSTransactionId> <ThreeDSVersion>2.2.0</ThreeDSVersion> <CurrencyCode>840</CurrencyCode> <OrderId>8000038870456384</OrderId> <SignatureVerification>Y</SignatureVerification> </CardinalMPI>
Sample Authenticate Request Message <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> <OrderId>{{ORDER_ID}}</OrderId> <TransactionType>C</TransactionType> <Version>1.7</Version> </CardinalMPI> |
Sample Authenticate Response Message <CardinalMPI> <CardBin>520000</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> <EciFlag>02</EciFlag> <TransactionId>ADF7ZctbyCVa0xKcivw0</TransactionId> <CurrencyCode>840</CurrencyCode> <ACSTransactionId>45be5b5a-bd58-4b9d-a298-da2beb339064</ACSTransactionId> <DSTransactionId>7f03c3aa-1a28-48eb-a5f7-47da91dd49c3</DSTransactionId> <AuthenticationType>03</AuthenticationType> <CardBrand>MC</CardBrand> <PAResStatus>Y</PAResStatus> </CardinalMPI> |
Test Case 3: Split/Delayed or Partial Shipment (3RI)
3a. Split/Partial 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 = <MessageCategory>01</MessageCategory> | |
Device Channel = <DeviceChannel>3RI</DeviceChannel> | |
AuthenticationIndicator = <AuthenticationIndicator>02</AuthenticationIndicator> | |
ThreeRIIndicator = <ThreeRIIndicator>06</ThreeRIIndicator> | |
Alternate Prior Authentication Data = DSTransactionId from initial transaction (available on Lookup Response) <AlternatePriorAuthenticationData>dsTransID:7f03c3aa-1a28-48eb-a5f7-47da91dd49c3</AlternatePriorAuthenticationData> | |
Alternate Prior Authentication Time = Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMM <AlternatePriorAuthenticationTime>202304051124</AlternatePriorAuthenticationTime> | |
Alternate Prior Authentication Method = <AlternatePriorAuthenticationMethod>02</AlternatePriorAuthenticationMethod> The AlternatePriorAuthenticationMethod value will need to be determined and stored during the initial transaction and sent in on the subsequent request. Merchants should store this value alongside the ACS Transaction Id to meet the requirements of the 3RI request. | |
Expected Results - Lookup Response (cmpi_lookup) | |
Enrolled = <Enrolled>Y</Enrolled> | |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>07</EciFlag> Please note that the ECIFlag currently being returned is 02. However, in a Production environment, merchants should anticipate receiving an ECIFlag of 07. | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> | |
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 <CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Version>1.7</Version> <ThreeDSVersion>2.2.0</ThreeDSVersion> <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> <TransactionType>C</TransactionType> <Amount>94160</Amount> <CurrencyCode>840</CurrencyCode> <CardExpMonth>06</CardExpMonth> <CardExpYear>2022</CardExpYear> <BillingFirstName>Harry</BillingFirstName> <BillingMiddleName>S</BillingMiddleName> <BillingLastName>Truman</BillingLastName> <BillingAddress1>8100 Tyler Blvd</BillingAddress1> <BillingAddress2 /> <BillingCity>Mentor</BillingCity> <BillingCountryCode>US</BillingCountryCode> <BillingPostalCode>10123</BillingPostalCode> <CategoryCode>0123</CategoryCode> <DeviceChannel>3RI</DeviceChannel> <AuthenticationIndicator>01</AuthenticationIndicator> <ThreeRIIndicator>06</ThreeRIIndicator> <AlternatePriorAuthenticationRef>45be5b5a-bd58-4b9d-a298-da2beb339064</AlternatePriorAuthenticationRef> <AlternatePriorAuthenticationData>d1734c35-0663-4138-b472-dd6272aa8f77</AlternatePriorAuthenticationData> <AlternatePriorAuthenticationTime>202304051124</AlternatePriorAuthenticationTime> <AlternatePriorAuthenticationMethod>02</AlternatePriorAuthenticationMethod> </CardinalMPI> |
Sample Response Message <CardinalMPI> <ACSOperatorID>MerchantACS</ACSOperatorID> <ErrorDesc></ErrorDesc> <ACSUrl></ACSUrl> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> <ErrorNo>0</ErrorNo> <EciFlag>07</EciFlag> <Enrolled>Y</Enrolled> <CurrencyCode>840</CurrencyCode> <DSTransactionId>c340528c-1c03-4964-9a32-b9907bb5e048</DSTransactionId> <OrderId>8010394438358853</OrderId> <CardBrand>MASTERCARD</CardBrand> <PAResStatus>Y</PAResStatus> <CardBin>520000</CardBin> <SignatureVerification>Y</SignatureVerification> <ThreeDSVersion>2.2.0</ThreeDSVersion> <ThreeDSServerTransactionId>558dccac-45b1-4be4-9949-50a5ee2ec572</ThreeDSServerTransactionId> <Amount>94160</Amount> <ChallengeRequired></ChallengeRequired> <TransactionId>KN3bdqXoE0ZjIptkL9H0</TransactionId> <ACSTransactionId>9331946b-7d0a-4df7-8988-1c94b625e552</ACSTransactionId> <ACSReferenceNumber>Cardinal ACS</ACSReferenceNumber> </CardinalMPI> |
3b. 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: 4000000000002701 | |
Required Fields - Lookup Request (cmpi_lookup) | |
Message Category = <MessageCategory>01</MessageCategory> | |
Device Channel = <DeviceChannel>3RI</DeviceChannel> | |
AuthenticationIndicator = <AuthenticationIndicator>01</AuthenticationIndicator> | |
ThreeRIIndicator = EMV 3DS 2.2: <ThreeRIIndicator>06</ThreeRIIndicator> | |
Alternate Prior Authentication Ref = ACSTransactionId from initial transaction (available on Lookup Response) <AlternatePriorAuthenticationRef>45be5b5a-bd58-4b9d-a298-da2beb339064</AlternatePriorAuthenticationRef> | |
Alternate Prior Authentication Time = Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMM <AlternatePriorAuthenticationTime>202304051124</AlternatePriorAuthenticationTime> | |
Alternate Prior Authentication Method = <AlternatePriorAuthenticationMethod>02</AlternatePriorAuthenticationMethod> The AlternatePriorAuthenticationMethod value will need to be determined and stored during the initial transaction and sent in on the subsequent request. Merchants should store this value alongside the ACS Transaction Id to meet the requirements of the 3RI request. | |
Expected Results - Lookup Response (cmpi_lookup) | |
Enrolled = <Enrolled>Y</Enrolled> | |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>05</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> |
Sample Messages |
Sample Lookup Message <CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Version>1.7</Version> <ThreeDSVersion>2.2.0</ThreeDSVersion> <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> <TransactionType>C</TransactionType> <Amount>94160</Amount> <CurrencyCode>840</CurrencyCode> <CardExpMonth>06</CardExpMonth> <CardExpYear>2022</CardExpYear> <BillingFirstName>Harry</BillingFirstName> <BillingMiddleName>S</BillingMiddleName> <BillingLastName>Truman</BillingLastName> <BillingAddress1>8100 Tyler Blvd</BillingAddress1> <BillingAddress2 /> <BillingCity>Mentor</BillingCity> <BillingCountryCode>US</BillingCountryCode> <BillingPostalCode>10123</BillingPostalCode> <CategoryCode>0123</CategoryCode> <DeviceChannel>3RI</DeviceChannel> <AuthenticationIndicator>01</AuthenticationIndicator> <ThreeRIIndicator>06</ThreeRIIndicator> <AlternatePriorAuthenticationRef>45be5b5a-bd58-4b9d-a298-da2beb339064</AlternatePriorAuthenticationRef> <AlternatePriorAuthenticationTime>202304051124</AlternatePriorAuthenticationTime> <AlternatePriorAuthenticationMethod>02</AlternatePriorAuthenticationMethod> </CardinalMPI> |
Sample Response Message <CardinalMPI> <ACSOperatorID>MerchantACS</ACSOperatorID> <ErrorDesc></ErrorDesc> <ACSUrl></ACSUrl> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> <ErrorNo>0</ErrorNo> <EciFlag>05</EciFlag> <Enrolled>Y</Enrolled> <CurrencyCode>840</CurrencyCode> <DSTransactionId>c340528c-1c03-4964-9a32-b9907bb5e048</DSTransactionId> <OrderId>8010394438358853</OrderId> <CardBrand>VISA</CardBrand> <PAResStatus>Y</PAResStatus> <CardBin>400120</CardBin> <SignatureVerification>Y</SignatureVerification> <ThreeDSVersion>2.2.0</ThreeDSVersion> <ThreeDSServerTransactionId>558dccac-45b1-4be4-9949-50a5ee2ec572</ThreeDSServerTransactionId> <Amount>94160</Amount> <ChallengeRequired></ChallengeRequired> <TransactionId>KN3bdqXoE0ZjIptkL9H0</TransactionId> <ACSTransactionId>9331946b-7d0a-4df7-8988-1c94b625e552</ACSTransactionId> <ACSReferenceNumber>Cardinal ACS</ACSReferenceNumber> </CardinalMPI> |
Test Case #4 OTA Test Cases
4a. Multi-Party Commerce or OTA (Visa) | |
Scenario | Multi-Party Commerce is when a travel booking merchant creates a multi-party transaction for the cardholder, where participating merchants are required to authorize on flights, hotels, and car rentals etc. This uses case addresses what these participating merchants are required to send for a successful transaction Note: Each participating merchant will be required to send their own CAVV. |
Authentication Experience | Frictionless |
Test Values | EXP Date: 01/**** |
Visa PAN: | |
Required Fields - Lookup Request (cmpi_lookup) | |
| Message Category = <MessageCategory>01</MessageCategory> |
Device Channel = <DeviceChannel>3RI</DeviceChannel> | |
AuthenticationIndicator = <AuthenticationIndicator>01</AuthenticationIndicator> | |
ThreeRIIndicator = EMV 3DS 2.2: <ThreeRIIndicator>11</ThreeRIIndicator> | |
Alternate Prior Authentication Ref = ACSTransactionId from initial transaction (available on Lookup Response) <AlternatePriorAuthenticationRef>45be5b5a-bd58-4b9d-a298-da2beb339064</AlternatePriorAuthenticationRef> | |
Alternate Prior Authentication Time = Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMMSS <AlternatePriorAuthenticationTime>20230405112438</AlternatePriorAuthenticationTime> | |
Alternate Prior Authentication Method = <AlternatePriorAuthenticationMethod>02</AlternatePriorAuthenticationMethod> The AlternatePriorAuthenticationMethod value will need to be determined and stored during the initial transaction and sent in on the subsequent request. Merchants should store this value alongside the ACS Transaction Id to meet the requirements of the 3RI request. | |
Expected Results - Lookup Response (cmpi_lookup) | |
| Enrolled = <Enrolled>Y</Enrolled> |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>05</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> |
Sample cmpi_Lookup Request:
<CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Version>1.7</Version> <ThreeDSVersion>2.2.0</ThreeDSVersion> <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> <TransactionType>C</TransactionType> <Amount>94160</Amount> <CurrencyCode>840</CurrencyCode> <CardExpMonth>06</CardExpMonth> <CardExpYear>2022</CardExpYear> <BillingFirstName>Harry</BillingFirstName> <BillingMiddleName>S</BillingMiddleName> <BillingLastName>Truman</BillingLastName> <BillingAddress1>8100 Tyler Blvd</BillingAddress1> <BillingAddress2 /> <BillingCity>Mentor</BillingCity> <BillingCountryCode>US</BillingCountryCode> <BillingPostalCode>10123</BillingPostalCode> <CategoryCode>0123</CategoryCode> <DeviceChannel>3RI</DeviceChannel> <AuthenticationIndicator>01</AuthenticationIndicator> <ThreeRIIndicator>11</ThreeRIIndicator> <AlternatePriorAuthenticationRef>45be5b5a-bd58-4b9d-a298-da2beb339064</AlternatePriorAuthenticationRef> <AlternatePriorAuthenticationTime>20230405112438</AlternatePriorAuthenticationTime> <AlternatePriorAuthenticationMethod>02</AlternatePriorAuthenticationMethod> </CardinalMPI>
Sample Response:
<CardinalMPI> <ACSOperatorID>MerchantACS</ACSOperatorID> <ErrorDesc></ErrorDesc> <ACSUrl></ACSUrl> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> <ErrorNo>0</ErrorNo> <EciFlag>05</EciFlag> <Enrolled>Y</Enrolled> <CurrencyCode>840</CurrencyCode> <DSTransactionId>c340528c-1c03-4964-9a32-b9907bb5e048</DSTransactionId> <OrderId>8010394438358853</OrderId> <CardBrand>VISA</CardBrand> <PAResStatus>Y</PAResStatus> <CardBin>400120</CardBin> <SignatureVerification>Y</SignatureVerification> <ThreeDSVersion>2.2.0</ThreeDSVersion> <ThreeDSServerTransactionId>558dccac-45b1-4be4-9949-50a5ee2ec572</ThreeDSServerTransactionId> <Amount>94160</Amount> <ChallengeRequired></ChallengeRequired> <TransactionId>KN3bdqXoE0ZjIptkL9H0</TransactionId> <ACSTransactionId>9331946b-7d0a-4df7-8988-1c94b625e552</ACSTransactionId> <ACSReferenceNumber>Cardinal ACS</ACSReferenceNumber> </CardinalMPI>
4b. Multi-Party Commerce or OTA (MasterCard) | |
Scenario | Multi-Party Commerce is when a travel booking merchant creates a multi-party transaction for the cardholder, where participating merchants are required to authorize on flights, hotels, and car rentals etc. This uses case addresses what these participating merchants are required to send for a successful transaction Note: Each participating merchant will be required to send their own CAVV. |
Authentication Experience | Customer Initiated Frictionless |
Test Values | EXP Date: 01/**** |
MasterCard PAN: | |
Required Fields - Lookup Request (cmpi_lookup) | |
Message Category = <MessageCategory>01</MessageCategory> | |
Device Channel = <DeviceChannel>02</DeviceChannel> | |
ChallengeIndicator = <ChallengeIndicator>03</ChallengeIndicator> | |
AuthenticationIndicator = 85 (Agent Payment) <AuthenticationIndicator>85</AuthenticationIndicator> | |
PurchaseDate = Format: YYYYMMDDHHMMSS <PurchaseDate>20200405112438</PurchaseDate> | |
Expected Results for the Lookup Response | |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
Enrolled = <Enrolled>Y</Enrolled> | |
EciFlag = <EciFlag>00</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> | |
Cavv = (value will not be provided) <Cavv></Cavv> | |
Expected Results - Authenticate Response (cmpi_lookup) | |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>02</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> |
Sample Request:
<CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Version>1.7</Version> <Algorithm>SHA-512</Algorithm> <Identifier>{{API_KEY_IDENTIFIER}}</Identifier> <OrgUnit>{{ORG_UNIT_ID}}</OrgUnit> <Signature>{{GENERATED_SIGNATURE_VALUE}}</Signature> <Timestamp>{{TIMESTAMP}}</Timestamp> <TransactionType>C</TransactionType> <OrderNumber>12345678</OrderNumber> <Amount>94160</Amount> <CurrencyCode>840</CurrencyCode> <CardNumber>520000******2805</CardNumber> <CardExpMonth>01</CardExpMonth> <CardExpYear>2023</CardExpYear> <BillingFirstName>John</BillingFirstName> <BillingMiddleName>S</BillingMiddleName> <BillingLastName>Smith</BillingLastName> <BillingAddress1>1600 Pennsylvania Blvd.</BillingAddress1> <BillingAddress2/> <BillingPhone>555-555-5555</BillingPhone> <BillingCity>Washington</BillingCity> <BillingState>DC</BillingState> <BillingPostalCode>10123</BillingPostalCode> <BillingCountryCode>US</BillingCountryCode> <ShippingFirstName>John</ShippingFirstName> <ShippingLastName>Smith</ShippingLastName> <ShippingAddress1>1600 Pennsylvania Blvd.</ShippingAddress1> <ShippingAddress2/> <ShippingPhone>555-555-5555</ShippingPhone> <ShippingCity>Washington</ShippingCity> <ShippingState>DC</ShippingState> <ShippingPostalCode>10123</ShippingPostalCode> <ShippingCountryCode>US</ShippingCountryCode> <Item_Name_1>CC Car A</Item_Name_1> <Item_Desc_1>Model Aqua</Item_Desc_1> <Item_Price_1>10000</Item_Price_1> <Item_Quantity_1>1</Item_Quantity_1> <Item_SKU_1>8675309</Item_SKU_1> <PurchaseDate>20200405112438</PurchaseDate> <CategoryCode>01</CategoryCode> <MessageCategory>01</MessageCategory> <BrowserLanguage>English</BrowserLanguage> <BrowserColorDepth>500</BrowserColorDepth> <BrowserScreenHeight>980</BrowserScreenHeight> <BrowserScreenWidth>1080</BrowserScreenWidth> <BrowserTimeZone>-1:00</BrowserTimeZone> <BrowserJavaEnabled>true</BrowserJavaEnabled> <IPAddress>127.0.0.1</IPAddress> <UserAgent>Jakarta Commons-HttpClient/3.1</UserAgent> <DeviceChannel>02</DeviceChannel> <ChallengeIndicator>03</ChallengeIndicator> <AuthenticationIndicator>85</AuthenticationIndicator> <RecurringEnd>20190121</RecurringEnd> <RecurringFrequency>31</RecurringFrequency> <CategoryCode>1234</CategoryCode> <BrowserHeader>text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</BrowserHeader> </CardinalMPI>
Sample Response:
<CardinalMPI> <ErrorNo>0</ErrorNo> <TransactionId>IZBMo3zIjEPsnNCcGgN0</TransactionId> <Payload></Payload> <ErrorDesc></ErrorDesc> <Cavv/> <PAResStatus>C</PAResStatus> <Enrolled>Y</Enrolled> <ACSTransactionId>2cf308bf-86fc-4bee-816a-cd38909d0d92</ACSTransactionId> <EciFlag>00</EciFlag> <ACSUrl>https://0merchantacsstag.cardinalcommerce.com/MerchantACSWeb/creq.jsp</ACSUrl> <ThreeDSServerTransactionId>db6e6faf-f7bb-40a1-8c9c-caaad3782458</ThreeDSServerTransactionId> <CardBin>520000</CardBin> <CardBrand>MASTERCARD</CardBrand> <Amount>94160</Amount> <DSTransactionId>1c59a512-ab4f-4370-af97-4cfe69b7276e</DSTransactionId> <ThreeDSVersion>2.2.0</ThreeDSVersion> <CurrencyCode>840</CurrencyCode> <OrderId>8000038870456384</OrderId> <SignatureVerification>Y</SignatureVerification> </CardinalMPI>
Sample Authenticate Request
<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> <OrderId>{{ORDER_ID}}</OrderId> <TransactionType>C</TransactionType> <Version>1.7</Version> </CardinalMPI>
Sample Authenticate Response
<CardinalMPI> <CardBin>520000</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> <EciFlag>02</EciFlag> <TransactionId>ADF7ZctbyCVa0xKcivw0</TransactionId> <CurrencyCode>840</CurrencyCode> <ACSTransactionId>45be5b5a-bd58-4b9d-a298-da2beb339064</ACSTransactionId> <DSTransactionId>7f03c3aa-1a28-48eb-a5f7-47da91dd49c3</DSTransactionId> <AuthenticationType>03</AuthenticationType> <CardBrand>MC</CardBrand> <PAResStatus>Y</PAResStatus> </CardinalMPI> |
4c. Multi-Party Commerce or OTA (MasterCard) | |
Scenario | Multi-Party Commerce is when a travel booking merchant creates a multi-party transaction for the cardholder, where participating merchants are required to authorize on flights, hotels, and car rentals etc. This uses case addresses what these participating merchants are required to send for a successful transaction Note: Each participating merchant will be required to send their own CAVV. |
Authentication Experience | Merchant Initiated Challenge |
Test Values | EXP Date: 01/**** |
MasterCard PAN: | |
Required Fields - Lookup Request (cmpi_lookup) | |
| Message Category = <MessageCategory>01</MessageCategory> |
Device Channel = <DeviceChannel>3RI</DeviceChannel> | |
AuthenticationIndicator = <AuthenticationIndicator>85</AuthenticationIndicator> | |
ThreeRIIndicator = EMV 3DS 2.2: <ThreeRIIndicator>85</ThreeRIIndicator> | |
Alternate Prior Authentication Ref = ACSTransactionId from initial transaction (available on Lookup Response) <AlternatePriorAuthenticationRef>45be5b5a-bd58-4b9d-a298-da2beb339064</AlternatePriorAuthenticationRef> | |
Alternate Prior Authentication Time = Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMMSS <AlternatePriorAuthenticationTime>20230405112438</AlternatePriorAuthenticationTime> | |
Alternate Prior Authentication Method = <AlternatePriorAuthenticationMethod>02</AlternatePriorAuthenticationMethod> The AlternatePriorAuthenticationMethod value will need to be determined and stored during the initial transaction and sent in on the subsequent request. Merchants should store this value alongside the ACS Transaction Id to meet the requirements of the 3RI request. | |
Expected Results - Lookup Response (cmpi_lookup) | |
| Enrolled = <Enrolled>Y</Enrolled> |
PAResStatus = <PAResStatus>Y</PAResStatus> | |
CAVV = <CAVV Value> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> | |
EciFlag = <EciFlag>07</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> |
Sample cmpi_Lookup Request:
<CardinalMPI> <MsgType>cmpi_lookup</MsgType> <Version>1.7</Version> <ThreeDSVersion>2.2.0</ThreeDSVersion> <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> <TransactionType>C</TransactionType> <Amount>94160</Amount> <CurrencyCode>840</CurrencyCode> <CardExpMonth>06</CardExpMonth> <CardExpYear>2022</CardExpYear> <BillingFirstName>Harry</BillingFirstName> <BillingMiddleName>S</BillingMiddleName> <BillingLastName>Truman</BillingLastName> <BillingAddress1>8100 Tyler Blvd</BillingAddress1> <BillingAddress2 /> <BillingCity>Mentor</BillingCity> <BillingCountryCode>US</BillingCountryCode> <BillingPostalCode>10123</BillingPostalCode> <CategoryCode>0123</CategoryCode> <DeviceChannel>3RI</DeviceChannel> <AuthenticationIndicator>85</AuthenticationIndicator> <ThreeRIIndicator>85</ThreeRIIndicator> <AlternatePriorAuthenticationData>dsTransID:d1734c35-0663-4138-b472-dd6272aa8f77</AlternatePriorAuthenticationData> </CardinalMPI>
Sample Response:
<CardinalMPI> <ACSOperatorID>MerchantACS</ACSOperatorID> <ErrorDesc></ErrorDesc> <ACSUrl></ACSUrl> <Cavv>Y2FyZGluYWxjb21tZXJjZWF1dGg=</Cavv> <ErrorNo>0</ErrorNo> <EciFlag>07</EciFlag> <Enrolled>Y</Enrolled> <CurrencyCode>840</CurrencyCode> <DSTransactionId>c340528c-1c03-4964-9a32-b9907bb5e048</DSTransactionId> <OrderId>8010394438358853</OrderId> <CardBrand>MASTERCARD</CardBrand> <PAResStatus>Y</PAResStatus> <CardBin>520000</CardBin> <SignatureVerification>Y</SignatureVerification> <ThreeDSVersion>2.2.0</ThreeDSVersion> <ThreeDSServerTransactionId>558dccac-45b1-4be4-9949-50a5ee2ec572</ThreeDSServerTransactionId> <Amount>94160</Amount> <ChallengeRequired></ChallengeRequired> <TransactionId>KN3bdqXoE0ZjIptkL9H0</TransactionId> <ACSTransactionId>9331946b-7d0a-4df7-8988-1c94b625e552</ACSTransactionId> <ACSReferenceNumber>Cardinal ACS</ACSReferenceNumber> </CardinalMPI>
Test Case #5 3RI Transaction not Supported
5. 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 = <MessageCategory>02</MessageCategory> | |
DeviceChannel = <DeviceChannel>3RI</DeviceChannel> | |
ThreeRIIndicator = <ThreeRIIndicator>01</ThreeRIIndicator> | |
Expected Results - Lookup Response (cmpi_lookup) | |
Enrolled = <Enrolled>Y</Enrolled> | |
PAResStatus = <PAResStatus>U</PAResStatus> | |
Cavv = (value will not be provided) <Cavv></Cavv> | |
EciFlag = <EciFlag>07</EciFlag> | |
ErrorNo = <ErrorNo>0</ErrorNo> | |
ErrorDesc = (value will not be provided) <ErrorDesc></ErrorDesc> | |
StatusReason = <StatusReason>21</StatusReason> |
Sample cmpi_lookup Request
<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> <DeviceChannel>3RI</DeviceChannel> <MessageCategory>02</MessageCategory> <ThreeRIIndicator>01</ThreeRIIndicator> <Email>support@cardinalcommerce.com</Email> <IPAddress>1.12.123.255</IPAddress> <TransactionMode>S</TransactionMode> <TransactionType>C</TransactionType> <Version>1.7</Version> </CardinalMPI>
Sample cmpi_Lookup Response
<CardinalMPI> <ErrorNo>0</ErrorNo> <TransactionId>0TmYenYQaThUv4nrJKi0</TransactionId> <Payload/> <ErrorDesc/> <Cavv/> <PAResStatus>U</PAResStatus> <Enrolled>Y</Enrolled> <ACSTransactionId>c05374b4-65b3-4b9b-8dd3-9d2ed9c80d99</ACSTransactionId> <EciFlag>07</EciFlag> <ACSUrl/> <ThreeDSServerTransactionId>62615477-4210-4272-80b0-de04bfab191d</ThreeDSServerTransactionId> <CardBin>400000</CardBin> <CardBrand>VISA</CardBrand> <StatusReason>21</StatusReason> <DSTransactionId>6b8c2d65-58a0-4e00-a183-b325c3b0fbde</DSTransactionId> <ThreeDSVersion>2.1.0</ThreeDSVersion> <OrderId>8000009746159791</OrderId> <ChallengeRequired/> <SignatureVerification>Y</SignatureVerification> </CardinalMPI>
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.