JSON Object

versioningData

versioningData

KeyFormatConditionDescription
threeDSServerTransIDstringMUnique transaction identifier generated by First Cash Solution and passed to the 3DS Server.
acsStartProtocolVersionstringMThe earliest (i.e. oldest) active protocol version that is supported by the ACS, retrieved from the card range data repository.
acsEndProtocolVersionstringMThe most recent active protocol version that is supported for the ACS URL, retrieved from the card range data repository.
dsStartProtocolVersionstringMThe earliest (i.e. oldest) active protocol version that is supported by the DS, retrieved from the card range data repository, or optionally from the Directory Server repository in case this info is not present for the particular card range.
dsEndProtocolVersionstringMThe most recent active protocol version that is supported for the DS, retrieved from the card range data repository, or optionally from the Directory Server repository in case this info is not present for the particular card range.
threeDSMethodURLstringMThe ACS URL that will be used by the 3DS Method. The 3DSMethodURL data element may be null if not supported by the ACS for this specific card range.
hreeDSMethodDataFormstringMValue containing the 3DS Method Data to be sent to ACS in the 3DS Method HTTP form POST. In case 3DS Method URL is not stored in the card range data repository for the particular card range, this field will be null. The 3DS Method Data contain a Base64 encoded JSON object of the 3DS Server Transaction ID and the 3DS Method Notification URL.
threeDSMethodDataobjectMObject containing the data elements to be posted to the 3DS Method URL.
errorDetailsobjectCObject provided by the 3DS Server in case an error occured in response to a versioning request (e.g. Invalid cardholder account number passed, not available card range data, not available 3DS Method URL for cardholder account number, failure in encoding/serialization of the 3DS Method data

threeDSMethodData

KeyFormatConditionDescription
threeDSMethodNotificationURLstringMThe URL that will receive the notification of 3DS Method completion from the ACS. This is sent in the initial request to the ACS from the 3DS Requestor executing the 3DS Method.
threeDSServerTransIDstringMUnique transaction identifier generated by First Cash Solution and passed to the 3DS Server.

errorDetails

KeyFormatConditionDescription
threeDSServerTransIDstringMUnique transaction identifier generated by First Cash Solution and passed to the 3DS Server.
errorCodestringMCode indicating the type of problem identified in the message.
errorComponentstringMCode indicating the 3-D Secure component that identified the error. Values accepted: ·         C = 3DS SDK. ·         S = 3DS Server. ·         D = Directory Server. ·         A = Access Control Server.
errorDescriptionstringMError description.

errorCode

CodeDescription
101Message received invalid.
102Message version number not supported.
103Sent messages limit exceeded. Only used for PReq.
201Required element missing.
202Critical message extension not recognized.
203Format on one or more elements is invalid according to the specs.
204Duplicate data element.
301Transaction id is not recognized.
302Data decryption failure.
303Access denied, invalid endpoint.
304ISO code is not valid.
305Transaction data is not valid.
306Merchant category code is not valid for payment system.
307Serial number is not valid.
402Transaction timed out.
403Transient system failure.
404Permanent system failure.
405System connection failure.
911UnionPay specific error code. Present when Data fields relevance check failed (ECI value and AV appearance are inconsistent with transaction status).
912UnionPay specific error code. Present when duplicated transaction ID (Transaction ID should be unique for each AReq request).

Schema

{

        “$schema”: “http://json-schema.org/draft-07/schema#”,

        “$id”: “https://www.computop-paygate.com/schemas/versioningData.json”,

        “title”: “3DS Versioning”,

        “description”: “3DS Versionierungsdaten”,

        “type”: “object”,

        “properties”: {

               “threeDSServerTransID”: {

                       “type”: [“string”, “null”],

                       “maxLength”: 36

               },

               “acsStartProtocolVersion”: {

                       “type”: [“string”, “null”],

                       “minLength”: 5,

                       “maxLength”: 8

               },

               “acsEndProtocolVersion”: {

                       “type”: [“string”, “null”],

                       “minLength”: 5,

                       “maxLength”: 8

               },

               “dsStartProtocolVersion”: {

                       “type”: [“string”, “null”],

                       “minLength”: 5,

                       “maxLength”: 8

               },

               “dsEndProtocolVersion”: {

                       “type”: [“string”, “null”],

                       “minLength”: 5,

                       “maxLength”: 8

               },

               “threeDSMethodURL”: {

                       “type”: [“string”, “null”],

                       “maxLength”: 256

               },

               “threeDSMethodDataForm”: {

                       “type”: [“string”, “null”]

               },

               “threeDSMethodData”: {

                       “type”: [“object”, “null”],

                       “properties”: {

                               “threeDSMethodNotificationURL” : {

                                      “type”: “string”,

                                      “format”: “uri”

                               },

                               “threeDSServerTransID”: {

                                      “type”: “string”,

                                      “maxLength”: 36

                               }

                       },

                       “required”: [“threeDSMethodNotificationURL”, “threeDSServerTransID”],

                       “additionalProperties”: false

               },

               “errorDetails”: {

                       “type”: “object”,

                       “properties”: {

                               “threeDSServerTransID”: {

                                      “type”: “string”,

                                      “maxLength”: 36

                               },

                               “errorCode”: {

                                      “type”: “string”,

                                      “minLength”: 3,

                                      “maxLength”: 3

                               },

                               “errorComponent”: {

                                      “type”: “string”,

                                      “enum”: [“C”, “S”, “D”, “A”]

                               },

                               “errorDescription”: {

                                      “type”: “string”

                               }

                       },

                       “required”: [“threeDSServerTransID”, “errorCode”, “errorComponent”, “errorDescription”],

                       “additionalProperties”: false

               },

        },

        “required”: [“threeDSServerTransID”, “acsStartProtocolVersion”, “acsEndProtocolVersion”, “dsStartProtocolVersion”, “dsEndProtocolVersion”, “threeDSMethodURL”, “threeDSMethodDataForm”, “threeDSMethodData”],

        “additionalProperties”: false

}

Samples

Succesful versioning retrieved from 3DS Server

{

        “threeDSServerTransID”: “14dd844c-b0fc-4dfe-8635-366fbf43468c”,

        “acsStartProtocolVersion”: “2.1.0”,

        “acsEndProtocolVersion”: “2.1.0”,

        “dsStartProtocolVersion”: “2.1.0”,

        “dsEndProtocolVersion”: “2.1.0”,

        “threeDSMethodURL”: “https://3ds-sim-dev.computop.com//acs/3ds-method”,

        “threeDSMethodDataForm”: “eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly93d3cuY29tcHV0b3AtcGF5Z2F0ZS5jb20vY2JUaHJlZURTLmFzcHg_
YWN0aW9uPW10aGROdGZuIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIxNGRkODQ0Yy1iMGZjLTRkZmUtODYzNS0zNjZmYmY0MzQ2OGMifQ==”,

        “threeDSMethodData”: {

               “threeDSMethodNotificationURL”: “https://www.computop-paygate.com/cbThreeDS.aspx?action=mthdNtfn”,

               “threeDSServerTransID”: “14dd844c-b0fc-4dfe-8635-366fbf43468c”

        }

}

Card number not enrolled for 3DS 2.0 (Fallback to 1.0)

{

        “threeDSServerTransID”: null,

        “acsStartProtocolVersion”: null,

        “acsEndProtocolVersion”: null,

        “dsStartProtocolVersion”: null,

        “dsEndProtocolVersion”: null,

        “threeDSMethodURL”: null,

        “threeDSMethodDataForm”: null,

        “threeDSMethodData”: null,

        “errorDetails”: {

               “threeDSServerTransID”: “20cfe55b-4ba2-425d-bf3a-29479886db56”,

               “errorCode”: “404”,

               “errorComponent”: “S”,

               “errorDescription”: “Kartenkontonummer in Kartenbereich vom Directory Server nicht gefunden”

        }

}