Error Codes

The following snippet gives an overview of the errors detected and reported by the MPI. For every error there is an error code defined. In case the MPI detects an error, the error will be logged together with the error code in the application log.

See also Log4j Configuration for details.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/**
 * Error code used to denote a missing value in the MPI web-service input (e.g. no PAN passed).
 */
MISSING_INPUT_VALUE_ERROR             (hasCode("INP-MISS")),
 
/**
 * Error code used to denote an illegal value in the MPI web-service input (e.g. non-numeric
 * character used in PAN).
 */
ILLEGAL_INPUT_VALUE_ERROR             (hasCode("INP-IV")),
 
/**
 * Error code used to denote a missing value in the response of the Directory Server (VERes) or
 * the response of the ACS (PARes). I.e. a required value is absent or empty.
 */
MISSING_RESPONSE_VALUE_ERROR          (hasCode("RES-MISS")),
 
/**
 * Error code used to denote an illegal value in the response of the Directory Server (VERes) or
 * the response of the ACS (PARes). I.e. a value doesn't conform to the 3-D Secure protocol's
 * format specification.
 */
ILLEGAL_RESPONSE_VALUE_ERROR          (hasCode("RES-IV")),
 
/**
 * Error code used to denote a missing or unrecognized root element in the response returned by
 * the Directory Server.
 */
INVALID_ROOT_ERROR                    (hasCode("RES-ROOT")),
 
/**
 * Error code used to denote an invalid message received by the Directory Server or the ACS (e.g.
 * CRRes received instead of VERes).
 */
INVALID_MESSAGE_ERROR                 (hasCode("RES-MSG")),
 
/**
 * Error code used to denote a critical extension in the response from the Directory Server or the
 * ACS that is not recognized by the MPI.
 */
UNRECOGNIZED_CRITICAL_EXTENSION_ERROR (hasCode("RES-EXT")),
 
/**
 * Error code used to denote an unsupported protocol version in the response from the Directory
 * Server or the ACS.
 */
UNSUPPORTED_PROTOCOL_VERSION_ERROR    (hasCode("RES-VER")),
 
/**
 * Error code used to denote an Error Message response received from the Directory Server or the ACS.
 * Note: The error code will be suffixed with the error code received in the Error Message.
 * I.e. the error code would be ER-3 if the Error Message received contains the error code 3.
 *
 * The following table lists all the 3-D Secure error codes as defined in 3-D Secure protocol specification
 * from VISA.
 *
 *  Error code | Error description
 * -------------------------------
 *      1      | Root element invalid
 *      2      | Message element not a defined message
 *      3      | Required element missing
 *      4      | Critical element not recognized
 *      5      | Format of one or more elements is invalid according to the specification
 *      6      | Protocol version too old
 *     50      | Acquirer not participating
 *     51      | Merchant not participating
 *     52      | Password missing
 *     53      | Incorrect password
 *     58      | Incorrect Common Name value in Client Certificate
 *     98      | Transient system failure
 *     99      | Permanent system failure
 */
ERROR_RESPONSE_ERROR                  (hasCode("ER")),        // with suffix
 
/**
 * Error code used to denote an error converting the response sent by the Directory Server to a
 * 3-D Secure protocol message.
 */
DS_HTTP_MESSAGE_CONVERSION_ERROR      (hasCode("DS-MSG")),
 
/**
 * Error code used to denote an HTTP error code returned while communicating with the Directory
 * Server. Note: The error code will be suffixed with the HTTP status code. I.e. the error code
 * would be DS-HTTP-404 if the HTTP status code returned is 404.
 */
DS_HTTP_STATUS_CODE_ERROR             (hasCode("DS-HTTP")),   // with suffix
 
/**
 * Error code used to denote a timeout while communicating with the Directory Server.
 */
DS_TIMEOUT_ERROR                      (hasCode("DS-TIME")),
 
/**
 * Error code used to denote an uncategorized error while communicating with the Directory Server.
 */
DS_REST_CLIENT_ERROR                  (hasCode("DS-REST")),
 
/**
 * Error used to denote an error while converting the encoded PaRes returned by the ACS to a 3-D
 * Secure protocol message.
 */
PARES_CONVERSION_ERROR                (hasCode("PARES-CONV")),
 
/**
 * Error used to denote a timeout while waiting for the response by the ACS.
 */
PARES_TIMEOUT_ERROR                   (hasCode("PARES-TIME")),
 
/**
 * Error code used to denote an error accessing the session when validating the PARes (e.g. no
 * such session, session expired or already consumed).
 */
SESSION_ERROR                         (hasCode("SESS")),
 
/**
 * Error code used to denote an error during the validation of certificate(s) of the returned PARes.
 */
INVALID_SIGNATURE_CERTIFICATE_ERROR   (hasCode("SIG-CRT")),
 
/**
 * Error code used to denote that signature element is syntactically invalid (e.g. it can't be unmarshalled
 * or the structure is not as expected.)
 */
ILLEGAL_SIGNATURE_ERROR               (hasCode("SIG-IV")),
 
/**
 * Error code used to denote an invalid signature.
 */
INVALID_SIGNATURE_ERROR               (hasCode("SIG")),
 
/**
 * Error code used to denote any other uncategorized exception.
 */
SYSTEM_ERROR                          (hasCode("SYS"));