Device Data Capture (DDC)

The Device Data Capture provides for the customers to integrate one of these requirements for our 3DSS API integration. The 2C2P's 3DSS can collect the 3DS 2.0 (EMV 3DS) required browser data elements to make the 3DS 2.0 request and invoke the 3DS Method URL if available on the card issuer.

The 3DSS will utilize this method to embed the necessary Method URL into an iframe on the merchant's website if the Issuing Bank opts to implement it. (In accordance with EMV 3DS guidelines, it is the responsibility of the merchant to host and activate the Method URL on their website should the Issuing Bank decide to utilize it).

Note:
• Please refer to the step number 1.4 in the above diagram.
• Please refer to the Appendix A for JWT creation/validation.

Request

Required data in DDC iframe

Field NameData TypeLengthExampleDescriptionRequirement
ddcIdStringvarchar(36)afe5aee0-a505-4085-
97f6-08d5b8981a66
This field is unique id for DDC (Reference Id for that session)Required
cardBINStringvarchar(11)410000Card BINRequired
callbackUrlStringmax 2048 charshttps://{callback url}URL for the 3DS Requestor PGWRequired
JWTStringmax 2048 charseyJhbGciOiJIUzI1NiIsInR5cCI6I
kpXVCJ9.eyJzdWIiOiIxMjM0N
TY3ODkwIiwibmFtZSI6IkpvaG
4gRG9lIiwiaWF0IjoxNTE2MjM
5MDIyfQ.SflKxwRJSMeKKF2QT
4fwpMeJf36POk6yJV_adQssw5c
JWT tokenRequired
<iframe name='deviceDataCollectionFrame' height="5" width="5" style="visibility: hidden; position: absolute; left: -1024px; top:-1024px;"></iframe>
<form id="deviceDataCaptureForm" target='deviceDataCollectionFrame' name="devicedatacapture" method="POST" action="{URL}">
<!--
POST Parameters: bin=First 6 digits to full pan of the payment card number.
For merchants unable to utilize the First 6 of the Cardnumber, optional Rest API is available to generate a session identifier representing the session.
JWT=JWT generated per merchant specification.
-->
 <input type="hidden" name="bin" value="410000" />
 <input type="hidden" name="callbackUrl" value="specify the return URL for 3DS Requestor" />
 <input type="hidden" name="ddcId" value=" Reference Id for that session" />
 <input type="hidden" name="jwt" value="JWT generated per merchant spec" />
</form>

<script>window.onload = function () {
    // Auto submit form on page load
    document.getElementById('deviceDataCaptureForm').submit();
  }
</script>

Callback

Common JWT Claims

Claim NameField NameDescriptionRequired
issIssuerThe JWT's issuer identifier contains the API key or name that can specify the issuer.Y
audAudienceThis field will populate by 2C2P on the response JWT to contain the request jti field. This field helps the merchant to match between request's JWTs and response JWTs.Y
expExpirationThe expiry time specified for identifying the expiration by a maximum of 2 hours, and the recommendation is 10 minutes.N
iatIssued AtThe timestamp of when the JWT was generated. This helps to determine a JWT expiry.Y
jtiJWT IdThe unique ID for this JWT. The field should not replicate each time a JWT is generated.Y
Field NameData TypeLengthExampleDescriptionRequirement
ddcIdStringvarchar(36)This field is unique id for DDCRequired
statusStringvarchar(36)The status of DDC processRequired
dataCollectionObjectRequired
ddcBooleanDDC Collection completedRequired
threeDsMethodUrlBooleanDDC Collection for ACS completedRequired
errorNumberNumberError number indicating the result. 0 is success
errorDescriptionStringA text description of the ErrorNumber field.
{
  "iss": "b319259f-639b-4907-b914-a5fcbb151c93",
  "iat": 1535052764,
  "exp": 1535059964,
  "jti": "31dd6191-c217-47b9-9fdd-751767e641b2"
  "aud": "36db6974-c220-4b3e-b45e-66f3c9a58ad2",
  "payload": {
    "status":"success",
    "ddcId": " 8a871cfb-7a34-48d9-81cf-dafe5badedee
    "dataCollection": {
        "ddc": true
        "threeDsMethodUrl": true
    },
   "errorNumber" : 0,
   "errorDescription" : "success",
}
}