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 =
| ||||||||||
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 = DSTransactionId from initial transaction (available on Lookup Response)
Note: The presence of DS transaction ID in the | ||||||
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: Installment
2a. Installment - Customer Initiated Transaction (Mastercard) | ||||||||||
Scenario | SubsequesAn 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 | Merchant Customer Initiated Frictionless Challenge Transaction | |||||||||
Test Values | EXP Date: 01/**** | |||||||||
PAN: Mastercard PAN: 5200000000002805 | ||||||||||
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 = <CAVV Value>
| ||||||||||
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)
| ||||||||||
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 cmpi_Lookup Request
Code Block | ||
---|---|---|
| ||
<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
Code Block | ||
---|---|---|
| ||
<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
| |||||
Sample Authenticate Response Message
|
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 =
| ||||||
Device Channel =
| ||||||
AuthenticationIndicator =
| ||||||
ThreeRIIndicator =
| ||||||
Alternate Prior Authentication Data = DSTransactionId from initial transaction (available on Lookup Response)
| ||||||
Alternate Prior Authentication Time = Date and time in UTC of the prior cardholder authentication. Format: YYYYMMDDHHMM
| ||||||
Alternate Prior Authentication Method =
| ||||||
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
|
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 =
| |||||||
Device Channel =
| |||||||
AuthenticationIndicator =
| |||||||
ThreeRIIndicator = 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: YYYYMMDDHHMM
| |||||||
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
|
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
| |||
Authentication Experience | Frictionless | |||
Test Values | EXP Date: 01/**** | |||
Visa PAN: | ||||
Required Fields - Lookup Request (cmpi_lookup) | ||||
| Message Category =
| |||
Device Channel =
| ||||
AuthenticationIndicator =
| ||||
ThreeRIIndicator = 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 cmpi_Lookup Request:
Code Block | ||
---|---|---|
| ||
<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:
Code Block | ||
---|---|---|
| ||
<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
| |||||
Authentication Experience | Customer Initiated Frictionless | |||||
Test Values | EXP Date: 01/**** | |||||
MasterCard PAN: | ||||||
Required Fields - Lookup Request (cmpi_lookup) | ||||||
Message Category =
| ||||||
Device Channel =
| ||||||
ChallengeIndicator =
| ||||||
AuthenticationIndicator = 85 (Agent Payment)
| ||||||
PurchaseDate = Format: YYYYMMDDHHMMSS
| ||||||
Expected Results for the Lookup Response | ||||||
PAResStatus =
| ||||||
Enrolled =
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
| ||||||
Cavv = (value will not be provided)
| ||||||
Expected Results - Authenticate Response (cmpi_lookup) | ||||||
PAResStatus =
| ||||||
CAVV = <CAVV Value>
| ||||||
EciFlag =
| ||||||
ErrorNo =
| ||||||
ErrorDesc = (value will not be provided)
|
Sample Request:
Code Block | ||
---|---|---|
| ||
<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:
Code Block | ||
---|---|---|
| ||
<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
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> <OrderId>{{ORDER_ID}}</OrderId> <TransactionType>C</TransactionType> <Version>1.7</Version> </CardinalMPI> |
Sample Authenticate Response
|
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
| |||
Authentication Experience | Merchant Initiated Challenge | |||
Test Values | EXP Date: 01/**** | |||
MasterCard PAN: | ||||
Required Fields - Lookup Request (cmpi_lookup) | ||||
| Message Category =
| |||
Device Channel =
| ||||
AuthenticationIndicator =
| ||||
ThreeRIIndicator = 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 cmpi_Lookup Request:
Code Block | ||
---|---|---|
| ||
<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:
Code Block | ||
---|---|---|
| ||
<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 =
| ||||||
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 cmpi_lookup Request
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> <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
Code Block | ||
---|---|---|
| ||
<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.