title | Development NoticeThe 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. |
Virtual SDK 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.
Fields Required)Field Name | Description | Required | Field 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. | Y | JSON Object(6000) |
SdkTransId | Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction. | Y | String(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. | Y | String(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. | Y | String(32) |
SdkEncData | JWE object containing data encrypted by the SDK for the DS to decrypt. | Y | String(64000) |
SdkMaxTimeout | Maximum time the SDK will wait for all message (in minutes). Accepted Values: Greater than or = 05 | Y | N(2) |
DeviceChannel | Determines the channel that the transaction came through. Possible Values: SDK NOTE: The value of SDK is required for Cardinal Virtual SDK transactions | Y | AN(10) |
DeviceRenderOptions | Defines the SDK UI types that the device supports for displaying specific challenge user interfaces within the SDK | N | JSON Object |
Virtual SDK Lookup Response Fields
Field Name | Description | Required | Field 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
| C | String(5000) |
ACSReferenceNumber | Unique identifier assigned by the EMVCo secretariat upon testing and approval | C | String(32) |
ACSTransactionID | Unique transaction identifier assigned by the ACS to identify a single transaction. | C | String(36) |
ThreeDSServerTransactionId | Unique transaction identifier assigned by the 3DS Server to identify a single transaction. | C | String(36) |
Example
Code Block |
---|
theme | Emacs |
---|
title | Virtual SDK Lookup Request Example |
---|
linenumbers | true |
---|
collapse | true |
---|
|
<CardinalMPI>
<ProcessorId>123</ProcessorId>
<MerchantId>MERCHANT_ID</MerchantId>
<TransactionPwd>123456789</TransactionPwd>Virtual SDK Lookup Request Example
Lookup Request Example
Code Block |
---|
|
<CardinalMPI>
<Algorithm>SHA-512</Algorithm>
<Identifier>{{API_KEY_IDENTIFIER}}</Identifier>
<OrgUnit>{{ORG_UNIT_ID}}</OrgUnit>
<Signature>{{GENERATED_SIGNATURE_VALUE}}</Signature>
<Timestamp>{{TIMESTAMP}}</Timestamp>
<Version>1.7</Version>
<MsgType>cmpi_lookup</MsgType>
<TransactionType>C</TransactionType>
<OrderNumber>abc123doerayme</OrderNumber>
|
<AcctNumber>4012000000010288<<AcctNumber>4012##88</AcctNumber>
|
<PurchaseAmount>0<<PurchaseAmount>1400</PurchaseAmount>
<PurchaseCurrency>840</PurchaseCurrency>
|
<CardNumber>4012000000010288<<CardNumber>4012##88</CardNumber>
<CardExpMonth>09</CardExpMonth>
<CardExpYear>2020</CardExpYear>
<BillingCity>Mentor</BillingCity>
<BillingAddress1>8100 Tyler |
Blvd 100<Blvd</BillingAddress1>
<BillingAddress2></BillingAddress2>
|
<BillAddrPostCode>44094<<BillAddrPostCode>44060</BillAddrPostCode>
<BillingCountryCode>840</BillingCountryCode>
<BillAddrState>OH</BillAddrState>
|
<CardholderName>
<BillingFirstName>John Doe<<BillingFirstName>John</BillingFirstName>
|
<BillingLastName>John Doe<<BillingLastName>Doe</BillingLastName>
|
<BillingFullName>John Doe</BillingFullName> |
<
<CardholderName></CardholderName>
|
<ShippingCity>44094<<ShippingCity>44060</ShippingCity>
<ShippingAddress1>8100 Tyler |
Blvd 100<Blvd</ShippingAddress1>
<ShippingAddress2></ShippingAddress2>
|
<ShippingPostalCode>44094<<ShippingPostalCode>44060</ShippingPostalCode>
|
<DFReferenceId><<BillingPostalCode>44060</ |
DFReferenceId>
<BillingPostalCode>44094</BillingPostalCode>
<BillingState>OH</BillingState>
<ShippingState>OH</ShippingState>
<Email>cardinal.mobile.test@gmail.com</Email>
<ShippingCountryCode>840</ShippingCountryCode>
|
<Amount>0</Amount>
<CurrencyCode>840<<Amount>1400</Amount>
<AcquirerId>12345</AcquirerId>
<AcquirerMerchantId>1234</AcquirerMerchantId>
<CategoryCode>5712</CategoryCode>
<CountryCodeOverride>840</CountryCodeOverride>
<MerchantName>Store Front</MerchantName>
<MessageCategory>01</MessageCategory>
<ProductCode>01</ProductCode>
<CurrencyCode>826</CurrencyCode>
|
<SourceVersion>2.10<SourceVersion><ChallengeRenderInterface>01<<OverridePaymentMethod></ |
ChallengeRenderInterface><ChallengeRenderType>01<ChallengeRenderType><ChallengeRenderType>02<ChallengeRenderType><ChallengeRenderType>03<ChallengeRenderType><ChallengeRenderType>04<ChallengeRenderType><ChallengeRenderType>05<ChallengeRenderType><ThreeDSVersion>21.0<ThreeDSVersion><DeviceChannel>sdk<<AuthenticationIndicator>01</ |
DeviceChannel>AuthenticationIndicator>
<MerchantUrl>http://www.cardinalcommerce.com</MerchantUrl>
<!-- Virtual SDK Lookup Request Fields -->
|
<AcquirerId>88888<AcquirerId><AcquirerMerchantId>89111<<ChallengeRenderInterface>03</ |
AcquirerMerchantId>ChallengeRenderInterface>
|
<CategoryCode>5712<<ChallengeRenderType>01</ |
CategoryCode><CountryCodeOverride>840<<ChallengeRenderType>02</ |
CountryCodeOverride><MerchantName>Sid<<ChallengeRenderType>03</ |
MerchantName><MessageCategory>01<<ChallengeRenderType>04</ |
MessageCategory><ProductCode>01<<ChallengeRenderType>05</ |
ProductCode>
ChallengeRenderType>
<SdkMaxTimeout>25</SdkMaxTimeout>
|
<AuthenticationIndicator>01</AuthenticationIndicator>
<SdkTransId>e1c72b78-8534-49d2-ae18-1e9050e13c61<<SdkTransId>78d42267-6d59-486e-8dba-3a3f427cf375</SdkTransId>
<SdkEncData>ENCRYPTED DATA</SdkEncData>
|
<SdkEphemPubKey>{"kty":"EC","crv":"P-256","x":"qkStspK65NrI8Dej0oRYGkoEvmWvl18JY_ |
NohgCJdJMwqAJLf0KvBibZk-kiiBLfVr1aFjq_MXsgxVWNBHhJpaMb8G6FMwSiD7CyxGji6GYMSyW1A380wuMw9HVQNM02zLJ0YAcMaPUCybnAelPpjHKZqUu7aRjZkE"}</SdkEphemPubKey>
|
<SdkAppId>6d9f1f0fb15c4200a2d8953181edfc6e<<SdkReferenceNumber>SdkReferenceNumber<<SdkReferenceNumber>3DS_LOA_SDK_CACC_020100_00063</SdkReferenceNumber>
</CardinalMPI> |
Virtual SDK Lookup Request 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.
Field Name | Description | Required | Field Definition |
---|
DeviceChannel | Determines the channel that the transaction came through. Possible Values: SDK NOTE: The value of SDK is required for Cardinal Virtual SDK transactions | Y | AN(10) |
ChallengeRenderInterface | Defines the SDK UI types that the device supports for displaying specific challenge user interfaces within the SDK. Equivalent to DeviceRenderOptions.sdkInterface in the EMVCo specification. Possible Values: 01 = Native 02 = HTML 03 = Both
| Y | N(2) |
ChallengeRenderType | Specifies a particular SDK UI types that the device supports for displaying challenge user interfaces within the SDK. Multiple fields of this name are allowed. Equivalent to DeviceRenderOptions.sdkUiType in the EMVCo specification. Possible Values: | Y | N(2) |
SdkMaxTimeout | Maximum time the SDK will wait for all message (in minutes). Accepted Values: Greater than or = 05 | Y | N(2) |
SdkTransId | Universally unique transaction identifier assigned by the 3DS SDK to identify a single transaction. | Y | String(36) |
SdkEncData | JWE object containing data encrypted by the SDK for the DS to decrypt. | Y | String(64000) |
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. | Y | JSON Object(6000) |
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. | Y | String(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. | Y | String(32) |
/Response(cmpi_lookup) | | CCen:Lookup Request |
---|
|
/Response