Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


Warning
titleDevelopment Notice

The Cardinal Virtual SDK is currently in Beta and is subject to changes within the codebase and documentation. Please reach out to your AE if there are any questions.

Step 2


Overview

:
Tip
titleUniversal Reference Guide

The documentation below covers many communication methods when it comes to talking with the Cardinal systems. There may be fields that include notes for "Cruise Standard" and "Cruise Hybrid" that may not be applicable to this integration.

Include PageCCen:Consumer AuthenticationCCen:Consumer Authentication

Virtual SDK Required Fields

The table below includes the required fields for the Virtual SDK implementation. These have been separated from the rest of the lookup documentation as they are specific to the Virtual SDK.

Virtual SDK Lookup Request Fields

Field NameDescriptionRequiredField Definition

SdkEphemPubKey

The public key component of the ephemeral key pair generated by the 3DS SDK and used to establish session keys between the 3DS SDK and ACS.

YAN(256)

SdkTransId

Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction.

YAN(36)

SdkAppId

Universally Unique ID created upon all installations and updates of the 3DS Requestor App on a Consumer Device. This will be newly generated and stored by the 3DS SDK for each installation or update.

YAN(36)

SdkReferenceNumber

Identifies the vendor and version for the 3DS SDK that is integrated into a 3DS Requestor App, assigned by EMVCo when the 3DS SDK is approved.

YAN(32)sdkEncDatasdkMaxTimeoutDeviceChannel(?)deviceRenderOptions

Virtual SDK Lookup Response Fields

Field NameDescriptionRequiredField Definition

ACSSignedContent

Contains the JWS object created by the ACS and returned on the ARes message.

The JWS object contains the following data:

  • ACS URL
  • ACS Ephemeral Public Key
  • SDK Ephemeral Public Key
YAN(5000)ACSReferenceNumberUnique identifier assigned by the EMVCo secretariat upon testing and approval CAN(32)ACSTransactionIDThreeDSServerTransactionID
Note

Update the example below after the final review 

Code Block
themeEmacs
titleVirtual SDK Lookup Request Example
linenumberstrue
collapsetrue
<CardinalMPI> <ProcessorId>2**</ProcessorId>

To get started with the Cardinal Virtual SDK we will need device data from the SDK. This data allows the issuer to build and enhance their risk models based on the consumers device information.  


The Device Data will use the EMV 3DS requirements and specification for collecting and encrypting the device data on the user's device.  Below you'll find the SDK - Device Information which represents the types of data and field names, where the Protocol and Core Functions Specification (Chapter 6.2 - Security Functions) will be used to the collection and encryption of the Device Data. 



Tip
titleDevice Data URLs

Please reach out to our Cardinal Account Executive for a list of URLs to use while testing and deploying Device Data Collection



Table of Contents

Device Parameters JSON Structure

JSON KeysDescription
DV

Data Version

DD

Device Data

DPNA

Device Parameter Not Available

SW

Security Warning

Device Parameter Unavailability Reasons

Reason Code

Description

RE01

Market or regional restriction on the parameter.

RE02

The platform version does not support the parameter or the parameter has been deprecated.

RE03

Parameter collection not possible without prompting the user for permission.

RE04

The parameter value returned is null or blank.

Android Sample

Code Block
{
    "DV": "1.0",
    "DD": {
        
<MerchantId>u**********</MerchantId>
//Common Data Fields 
     
<TransactionPwd>1*******</TransactionPwd>
   "C001": "Android",
    
<Version>1.7</Version>
    "C002": "HTC One_M8",
  
<MsgType>cmpi_lookup</MsgType>
      "C004": "5.0.1",
 
<TransactionType>C</TransactionType>
       "C005": 
<OrderNumber>abc123doerayme</OrderNumber>
"en-US",
        
<CardNumber>4**************8</CardNumber>
"C006": "Eastern Standard Time",
      
<CardExpMonth>0*</CardExpMonth>
  "C007": "06797903-fb61-41ed-94c2-4d2b74e27d18",
     
<CardExpYear>2***</CardExpYear>
   "C009": "John's Android Device"
  
<BillingCity>Mentor</BillingCity>
      ...
  
<BillingAddress1>8100
 
Tyler
 
Blvd</BillingAddress1>
    //Android-specific Device Parameters
  
<BillingAddress2></BillingAddress2>
      "A060": "REL",
 
<BillAddrPostCode>44060</BillAddrPostCode>
       "A119": 
<BillingCountryCode>840</BillingCountryCode>
"1",
        
<BillAddrState>OH</BillAddrState>
"A117": -1,
        
<BillingFirstName>John</BillingFirstName>
"A118": 0,
       
<BillingLastName>Doe</BillingLastName>
 "A115": "1",
      
<BillingFullName>John
 
Doe</BillingFullName>
 "A116": 0,
      
<ShippingCity>44060</ShippingCity>
  "A113": "0",
     
<ShippingAddress1>8100
 
Tyler
 
Blvd</ShippingAddress1>
 "A114": "30000",
		...
    },
<ShippingAddress2></ShippingAddress2>
    "DPNA": {
   
<ShippingPostalCode>44060</ShippingPostalCode>
     "C010": "RE01",
  
<DFReferenceId>c17dea31-9cf6-0c1b8f2d3c5</DFReferenceId>
      "C011": "RE03"
 
<BillingPostalCode>44060</BillingPostalCode>
   },
    
<BillingState>OH</BillingState>
"SW": [
        
<ShippingState>OH</ShippingState>
"SW01",
        
<Email>cardinal.mobile.test@gmail.com</Email>
"SW04"
    ]
}

iOS Sample 

Code Block
{
  
<ShippingCountryCode>840</ShippingCountryCode>
  "DV": "1.0",
    
<Amount>0</Amount>
"DD": {
        
<CurrencyCode>840<
//
CurrencyCode>
Common Data Feilds 
     
<AuthenticationInfo></AuthenticationInfo>
   "C001": "Android",
    
<OverridePaymentMethod></OverridePaymentMethod>
    "C002": "HTC One_M8",
  
<AddressMatch></AddressMatch>
      "C004": "5.0.1",
 
<Installment></Installment>
       "C005": 
<MerchantRiskInfo></MerchantRiskInfo>
"en-US",
        
<RecurringEnd></RecurringEnd>
"C006": "Eastern Standard Time",
      
<RecurringFrequency></RecurringFrequency>
  "C007": "06797903-fb61-41ed-94c2-4d2b74e27d18",
     
<ChallengeRenderInterface>01</ChallengeRenderInterface>
   "C009": "John's Android Device"
  
<ChallengeRenderType>01</ChallengeRenderType>
      ...
  
<DeviceChannel>sdk</DeviceChannel>
      //iOS-specific Device Parameters
<ChallengeIndicator></ChallengeIndicator>
        
<CategoryCode>5712</CategoryCode>
"I008": "12.0",
        
<MessageCategory>01</MessageCategory>
"I012": [
       
<ProductCode>01</ProductCode>
     "en"
   
<SdkMaxTimeout>25</SdkMaxTimeout>
     ],
   
<AuthenticationIndicator>01</AuthenticationIndicator>
     "I001": "2A9678FB-15D2-4554-8F70-F438AB62A146",
  
<ThreeRIIndicator></ThreeRIIndicator>
  },
    "DPNA": {
<NPAIndicator></NPAIndicator>
        
<SdkTransId>6f9aee49-b4f0-41dd-9602-b9b6d2f65726</SdkTransId>
"C010": "RE01",
        
<SdkEphemPubKey>{
"
kty
C011": "
EC","crv":"P-256","x":"D6n3bfcLaUdltrqJ2602JpqYZ-kA-7J73oDS44_l-MY","y":"tEbbZRgffJr9vdzdJ68if8t7LaZJ-4DGGJZvg5Ly6AA"}</SdkEphemPubKey>
RE03"
    },
    "SW": [
        "SW01",
    
<SdkAppId>12aa43db-3423-4d33-94fc-838a12a25e9c</SdkAppId>
    "SW04"
    
<SdkReferenceNumber>SDKREFERENCENUMBER</SdkReferenceNumber> </CardinalMPI> Include PageCCen:Lookup Request/ResponseCCen:Lookup Request/Response
]
}


EMVCo Documents 


SDK—Device Information V 1.5

View file
nameEMVCo_3DS_SDKDeviceInfo_1_5_20213009 (1).pdf
height250


Protocol and Core Functions Specification V 2.2.0

View file
nameEMVCo_3DS_Spec_v220_122018.pdf
height250