If a problem occurs during 3DS processing an error response will be returned. Here is a brief breakdown of the different Error field values:

Possible Error Components:

The 3DS component which identified the error.

This is not the component where the error originated.

If the value is "S" the Ravelin 3DS Server identified an error in the directory server response. The directory server will have been notified.

If the value is "D" or "A" the Directory Server or ACS identified an error and Ravelin have been notified. If the value is "C" the Ravelin SDK identified an error while validating data received from the ACS during or before a challenge takes place. In such a case, the Ravelin SDK will will notify the requestor application and where applicable the ACS itself.

See the errorDescription and errorDetail for more information.

S 3DS Server
D Directory Server
A Access Control Server
C 3DS SDK

Possible Error Codes:

The 3DS Error code. This can be used to group 3DS errors into certain categories.

Check the errorDescription and errorDetail fields for more information on the individual error.

101 Invalid message
102 3DS message version not supported
201 A required field is missing
202 Critical message extensions not recognised
203 The format of one or more of the fields is invalid
204 One or more fields is duplicated
301 A transaction ID was invalid (threeDSServerTransID, dsTransID, acsTransID or sdkTransID)
302 Data decryption failure
303 Access denied
304 ISO country or currency code was invalid
305 Transaction data was invalid
306 Merchant Category Code (MCC) was invalid for the payment system
402 Transaction timed out
403 Transient system failure
404 Permanent system failure
405 System connection failure

Error Message Types:

The 3DS message type which was identified as containing an error.

AReq Authentication Request
ARes Authentication Response
CReq Challenge Request
CRes Challenge Response

You can find example errors and how to avoid them in our developer docs here.