Key | Format | Condition | Description | |
---|---|---|---|---|
1 | threeDSServerTransID | string | M | Unique transaction identifier generated by BNP and passed to the 3DS Server |
2 | acsStartProtocolVersion | string | M | The earliest (i.e. oldest) active protocol version that is supported by the ACS, retrieved from the card range data repository. |
3 | acsEndProtocolVersion | string | M | The most recent active protocol version that is supported for the ACS URL, retrieved from the card range data repository. |
4 | dsStartProtocolVersion | string | M | The 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. |
5 | dsEndProtocolVersion | string | M | The 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. |
6 | threeDSMethodURL | string | M | The 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. |
7 | hreeDSMethodDataForm | string | M | Value 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. |
8 | threeDSMethodData | object | M | Object containing the data elements to be posted to the 3DS Method URL |
9 | errorDetails | object | C | Object 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
Key | Format | Condition | Description | |
---|---|---|---|---|
1 | threeDSMethodNotificationURL | string | M | The 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. |
2 | threeDSServerTransID | string | M | Unique transaction identifier generated by BNP and passed to the 3DS Server |
errorDetails
Key | Format | Condition | Description | |
---|---|---|---|---|
1 | threeDSServerTransID | string | M | Unique transaction identifier generated by BNP and passed to the 3DS Server |
2 | errorCode | string | M | Code indicating the type of problem identified in the message |
3 | errorComponent | string | M | Code indicating the 3-D Secure component that identified the error. Values accepted:
|
4 | errorDescription | string | M | Error description |
errorCode
Code | Description |
---|---|
101 | Message received invalid |
102 | Message version number not supported |
103 | Sent messages limit exceeded. Only used for PReq |
201 | Required element missing |
202 | Critical message extension not recognized |
203 | Format on one or more elements is invalid according to the specs |
204 | Duplicate data element |
301 | Transaction id is not recognized |
302 | Data decryption failure |
303 | Access denied, invalid endpoint |
304 | ISO code is not valid |
305 | Transaction data is not valid |
306 | Merchant category code is not valid for payment system |
307 | Serial number is not valid |
402 | Transaction timed out |
403 | Transient system failure |
404 | Permanent system failure |
405 | System connection failure |
911 | UnionPay specific error code. Present when Data fields relevance check failed (ECI value and AV appearance are inconsistent with transaction status). |
912 | UnionPay 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://paymentpage.axepta.bnpparibas/schemas/versioningData.json", "title": "3DS Versioning", "description": "3DS Versioning Data", "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": "Card account number not found in card ranges from Directory Server" } }