KeyFormatConditionDescription
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


KeyFormatConditionDescription
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


KeyFormatConditionDescription
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:

  • C = 3DS SDK.

  • S = 3DS Server.

  • D = Directory Server.

  • A = Access Control Server.

4

errorDescription

string

M

Error description

errorCode

CodeDescription

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"
	}
}


  • No labels