Comment on page
Result Codes
The result codes are part of the response body's JSON (field
result
) containing a code
and a description
explaining the code.A result code has the format
ddd.ddd.ddd
, i.e. 3 groups of 3-digit numbers. The codes are split into rough groups by the first number, then into more detailed sub-groups by the second number, then into the exact code by the third number.Example:
800.100.153
means: 800
-> Bank declined, 100
-> it declined the authorization, 153
-> it declined authorization because the CVV is wrongYou can pull a JSON with the result codes as listed in the table below by sending a GET request to https://test.oppwa.com/v1/resultcodes.
In many cases however you don't need the precise evaluation for each and every code, but just for a certain subgroup. Therefore the following list presents the result codes in a grouped way that you typically can evaluate by just taking the first two number-groups.
The regular expression pattern for filtering out this group is:
/^(000\.000\.|000\.100\.1|000\.[36])/
Result Code | Result Description |
000.000.000 | Transaction succeeded |
000.000.100 | successful request |
000.100.105 | Chargeback Representment is successful |
000.100.106 | Chargeback Representment cancellation is successful |
000.100.110 | Request successfully processed in 'Merchant in Integrator Test Mode' |
000.100.111 | Request successfully processed in 'Merchant in Validator Test Mode' |
000.100.112 | Request successfully processed in 'Merchant in Connector Test Mode' |
000.300.000 | Two-step transaction succeeded |
000.300.100 | Risk check successful |
000.300.101 | Risk bank account check successful |
000.300.102 | Risk report successful |
000.310.100 | Account updated |
000.310.101 | Account updated (Credit card expired) |
000.310.110 | No updates found, but account is valid |
000.600.000 | transaction succeeded due to external update |
The regular expression pattern for filtering out this group is:
/^(000\.400\.0[^3]|000\.400\.100)/
Result Code | Result Description |
000.400.000 | Transaction succeeded (please review manually due to fraud suspicion) |
000.400.010 | Transaction succeeded (please review manually due to AVS return code) |
000.400.020 | Transaction succeeded (please review manually due to CVV return code) |
000.400.040 | Transaction succeeded (please review manually due to amount mismatch) |
000.400.050 | Transaction succeeded (please review manually because transaction is pending) |
000.400.060 | Transaction succeeded (approved at merchant's risk) |
000.400.070 | Transaction succeeded (waiting for external risk review) |
000.400.080 | Transaction succeeded (please review manually because the service was unavailable) |
000.400.081 | Transaction succeeded (please review manually, as the risk status not available yet due network timeout) |
000.400.082 | Transaction succeeded (please review manually, as the risk status not available yet due processing timeout) |
000.400.090 | Transaction succeeded (please review manually due to external risk check) |
000.400.100 | Transaction succeeded, risk after payment rejected |
The regular expression pattern for filtering out this group is:
/^(000\.200)/
. These codes mean that there is an open session in the background, meaning within half an hour there will be a status change, if nothing else happens, to timeout.Result Code | Result Description |
000.200.000 | transaction pending |
000.200.001 | Transaction pending for acquirer, the consumer is not present |
000.200.100 | successfully created checkout |
000.200.101 | successfully updated checkout |
000.200.102 | successfully deleted checkout |
000.200.103 | checkout is pending |
000.200.200 | Transaction initialized |
There is another kind of pending regular expression pattern for filtering out this group is:
/^(800\.400\.5|100\.400\.500)/
. These codes describe a situation where the status of a transaction can change even after several days.Result Code | Result Description |
100.400.500 | waiting for external risk |
800.400.500 | Waiting for confirmation of non-instant payment. Denied for now. |
800.400.501 | Waiting for confirmation of non-instant debit. Denied for now. |
800.400.502 | Waiting for confirmation of non-instant refund. Denied for now. |
The regular expression pattern for filtering out this group is:
/^(000\.400\.[1][0-9][1-9]|000\.400\.2)/
Result Code | Result Description |
000.400.101 | card not participating/authentication unavailable |
000.400.102 | user not enrolled |
000.400.103 | Technical Error in 3D system |
000.400.104 | Missing or malformed 3DSecure Configuration for Channel |
000.400.105 | Unsupported User Device - Authentication not possible |
000.400.106 | invalid payer authentication response(PARes) in 3DSecure Transaction |
000.400.107 | Communication Error to VISA/Mastercard Directory Server |
000.400.108 | Cardholder Not Found - card number provided is not found in the ranges of the issuer |
000.400.109 | Card is not enrolled for 3DS version 2 |
000.400.200 | risk management check communication error |
The regular expression pattern for filtering out this group is:
/^(800\.[17]00|800\.800\.[123])/
Result Code | Result Description |
800.100.100 | transaction declined for unknown reason |
800.100.150 | transaction declined (refund on gambling tx not allowed) |
800.100.151 | transaction declined (invalid card) |
800.100.152 | transaction declined by authorization system |
800.100.153 | transaction declined (invalid CVV) |
800.100.154 | transaction declined (transaction marked as invalid) |
800.100.155 | transaction declined (amount exceeds credit) |
800.100.156 | transaction declined (format error) |
800.100.157 | transaction declined (wrong expiry date) |
800.100.158 | transaction declined (suspecting manipulation) |
800.100.159 | transaction declined (stolen card) |
800.100.160 | transaction declined (card blocked) |
800.100.161 | transaction declined (too many invalid tries) |
800.100.162 | transaction declined (limit exceeded) |
800.100.163 | transaction declined (maximum transaction frequency exceeded) |
800.100.164 | transaction declined (merchants limit exceeded) |
800.100.165 | transaction declined (card lost) |
800.100.166 | transaction declined (Incorrect personal identification number) |
800.100.167 | transaction declined (referencing transaction does not match) |
800.100.168 | transaction declined (restricted card) |
800.100.169 | transaction declined (card type is not processed by the authorization center) |
800.100.170 | transaction declined (transaction not permitted) |
800.100.171 | transaction declined (pick up card) |
800.100.172 | transaction declined (account blocked) |
800.100.173 | transaction declined (invalid currency, not processed by authorization center) |
800.100.174 | transaction declined (invalid amount) |
800.100.175 | transaction declined (invalid brand) |
800.100.176 | transaction declined (account temporarily not available. Please try again later) |
800.100.177 | transaction declined (amount field should not be empty) |
800.100.178 | transaction declined (PIN entered incorrectly too often) |
800.100.179 | transaction declined (exceeds withdrawal count limit) |
800.100.190 | transaction declined (invalid configuration data) |
800.100.191 | transaction declined (transaction in wrong state on aquirer side) |
800.100.192 | transaction declined (invalid CVV, Amount has still been reserved on the customer's card and will be released in a few business days. Please ensure the CVV code is accurate before retrying the transaction) |
800.100.195 | transaction declined (UserAccount Number/ID unknown) |
800.100.196 | transaction declined (registration error) |
800.100.197 | transaction declined (registration cancelled externally) |
800.100.198 | transaction declined (invalid holder) |
800.100.199 | transaction declined (invalid tax number) |
800.100.200 | Refer to Payer due to reason not specified |
800.100.201 | Account or Bank Details Incorrect |
800.100.202 | Account Closed |
800.100.203 | Insufficient Funds |
800.100.204 | Mandate Expired |
800.100.205 | Mandate Discarded |
800.100.206 | Refund of an authorized payment requested by the customer |
800.100.207 | Refund requested |
800.100.208 | Direct debit not enabled for the specified account or bank |
800.100.402 | cc/bank account holder not valid |
800.100.403 | transaction declined (revocation of authorisation order) |
800.100.500 | Card holder has advised his bank to stop this recurring payment |
800.100.501 | Card holder has advised his bank to stop all recurring payments for this merchant |
800.700.100 | transaction for the same session is currently being processed, please try again later. |
800.700.101 | family name too long |
800.700.201 | given name too long |
800.700.500 | company name too long |
800.800.102 | Invalid street |
800.800.202 | Invalid zip |
800.800.302 | Invalid city |
The regular expression pattern for filtering out this group is:
/^(900\.[1234]00|000\.400\.030)/
Result Code | Result Description |
000.400.030 | Transaction partially failed (please reverse manually due to failed automatic reversal) |
900.100.100 | unexpected communication error with connector/acquirer |
900.100.200 | error response from connector/acquirer |
900.100.201 | error on the external gateway (e.g. on the part of the bank, acquirer,...) |
900.100.202 | invalid transaction flow, the requested function is not applicable for the referenced transaction. |
900.100.203 | error on the internal gateway |
900.100.300 | timeout, uncertain result |
900.100.301 | Transaction timed out without response from connector/acquirer. It was reversed. |
900.100.310 | Transaction timed out due to internal system misconfiguration. Request to acquirer has not been sent. |
900.100.400 | timeout at connectors/acquirer side |
900.100.500 | timeout at connectors/acquirer side (try later) |
900.100.600 | connector/acquirer currently down |
900.200.100 | Message Sequence Number of Connector out of sync |
900.300.600 | user session timeout |
900.400.100 | unexpected communication error with external risk provider |
The regular expression pattern for filtering out this group is:
/^(800\.[56]|999\.|600\.1|800\.800\.[84])/
Result Code | Result Description |
600.100.100 | Unexpected Integrator Error (Request could not be processed) |
800.500.100 | direct debit transaction declined for unknown reason |
800.500.110 | Unable to process transaction - ran out of terminalIds - please contact acquirer |
800.600.100 | transaction is being already processed |
800.800.400 | Connector/acquirer system is under maintenance |
800.800.800 | The payment system is currenty unavailable, please contact support in case this happens again. |
800.800.801 | The payment system is currenty unter maintenance. Please apologize for the inconvenience this may cause. If you were not informed of this maintenance window in advance, contact your sales representative. |
999.999.888 | UNDEFINED PLATFORM DATABASE ERROR |
999.999.999 | UNDEFINED CONNECTOR/ACQUIRER ERROR |
The regular expression pattern for filtering out this group is:
/^(100\.39[765])/
Result Code | Result Description |
100.395.101 | Bank not supported for Giropay |
100.395.102 | Account not enabled for Giropay e.g. test account |
100.395.501 | Previously pending online transfer transaction timed out |
100.395.502 | Acquirer/Bank reported timeout on online transfer transaction |
100.396.101 | Cancelled by user |
100.396.102 | Not confirmed by user |
100.396.103 | Previously pending transaction timed out |
100.396.104 | Uncertain status - probably cancelled by user |
100.396.106 | User did not agree to payment method terms |
100.396.201 | Cancelled by merchant |
100.397.101 | Cancelled by user due to external update |
100.397.102 | Rejected by connector/acquirer due to external update |
The regular expression pattern for filtering out this group is:
/^(300\.100\.100)/
Result Code | Result Description |
300.100.100 | Transaction declined (additional customer authentication required) |
The regular expression pattern for filtering out this group is:
/^(100\.400\.[0-3]|100\.38|100\.370\.100|100\.370\.11)/
Result Code | Result Description |
100.370.100 | transaction declined |
100.370.110 | transaction must be executed for German address |
100.370.111 | system error( possible incorrect/missing input data) |
100.380.100 | transaction declined |
100.380.101 | transaction contains no risk management part |
100.380.110 | transaction must be executed for German address |
100.380.201 | no risk management process type specified |
100.380.305 | no frontend information provided for asynchronous transaction |
100.380.306 | no authentication data provided in risk management transaction |
100.380.401 | User Authentication Failed |
100.380.501 | risk management transaction timeout |
100.400.000 | transaction declined (Wrong Address) |
100.400.001 | transaction declined (Wrong Identification) |
100.400.002 | transaction declined (Insufficient credibility score) |
100.400.005 | transaction must be executed for German address |
100.400.007 | System error ( possible incorrect/missing input data) |
100.400.020 | transaction declined |
100.400.021 | transaction declined for country |
100.400.030 | transaction not authorized. Please check manually |
100.400.039 | transaction declined for other error |
100.400.040 | authorization failure |
100.400.041 | transaction must be executed for German address |
100.400.042 | transaction declined by SCHUFA (Insufficient credibility score) |
100.400.043 | transaction declined because of missing obligatory parameter(s) |
100.400.044 | transaction not authorized. Please check manually |
100.400.045 | SCHUFA result not definite. Please check manually |
100.400.051 | SCHUFA system error (possible incorrect/missing input data) |
100.400.060 | authorization failure |
100.400.061 | transaction declined (Insufficient credibility score) |
100.400.063 | transaction declined because of missing obligatory parameter(s) |
100.400.064 | transaction must be executed for Austrian, German or Swiss address |
100.400.065 | result ambiguous. Please check manually |
100.400.071 | system error (possible incorrect/missing input data) |
100.400.080 | authorization failure |
100.400.081 | transaction declined |
100.400.083 | transaction declined because of missing obligatory parameter(s) |
100.400.084 | transaction can not be executed for given country |
100.400.085 | result ambiguous. Please check manually |
100.400.086 | transaction declined (Wrong Address) |
100.400.087 | transaction declined (Wrong Identification) |
100.400.091 | system error (possible incorrect/missing input data) |
100.400.100 | transaction declined - very bad rating |
100.400.120 | authorization failure |
100.400.121 | account blacklisted |
100.400.122 | transaction must be executed for valid German account |
100.400.123 | transaction declined because of missing obligatory parameter(s) |
100.400.130 | system error (possible incorrect/missing input data) |
100.400.139 | system error (possible incorrect/missing input data) |
100.400.140 | transaction declined by GateKeeper |
100.400.141 | Challenge by ReD Shield |
100.400.142 | Deny by ReD Shield |
100.400.143 | Noscore by ReD Shield |
100.400.144 | ReD Shield data error |
100.400.145 | ReD Shield connection error |
100.400.146 | Line item error by ReD Shield |
100.400.147 | Payment void and transaction denied by ReD Shield |
100.400.148 | Payment void and transaction challenged by ReD Shield |
100.400.149 | Payment void and data error by ReD Shield |
100.400.150 | Payment void and connection error by ReD Shield |
100.400.151 | Payment void and line item error by ReD Shield |
100.400.152 | Payment void and error returned by ReD Shield |
100.400.241 | Challenged by Threat Metrix |
100.400.242 | Denied by Threat Metrix |
100.400.243 | Invalid sessionId |
100.400.260 | authorization failure |
100.400.300 | abort checkout process |
100.400.301 | reenter age/birthdate |
100.400.302 | reenter address (packstation not allowed) |
100.400.303 | reenter address |
100.400.304 | invalid input data |
100.400.305 | invalid foreign address |
100.400.306 | delivery address error |
100.400.307 | offer only secure methods of payment |
100.400.308 | offer only secure methods of payment; possibly abort checkout |
100.400.309 | confirm corrected address; if not confirmed, offer secure methods of payment only |
100.400.310 | confirm bank account data; if not confirmed, offer secure methods of payment only |
100.400.311 | transaction declined (format error) |
100.400.312 | transaction declined (invalid configuration data) |
100.400.313 | currency field is invalid or missing |
100.400.314 | amount invalid or empty |
100.400.315 | invalid or missing email address (probably invalid syntax) |
100.400.316 | transaction declined (card missing) |
100.400.317 | transaction declined (invalid card) |
100.400.318 | invalid IP number |
100.400.319 | transaction declined by risk system |
100.400.320 | shopping cart data invalid or missing |
100.400.321 | payment type invalid or missing |
100.400.322 | encryption method invalid or missing |
100.400.323 | certificate invalid or missing |
100.400.324 | Error on the external risk system |
100.400.325 | External risk system not available |
100.400.326 | Risk bank account check unsuccessful |
100.400.327 | Risk report unsuccessful |
100.400.328 | Risk report unsuccessful (invalid data) |
The regular expression pattern for filtering out this group is:
/^(800\.400\.1)/
Result Code | Result Description |
800.400.100 | AVS Check Failed |
800.400.101 | Mismatch of AVS street value |
800.400.102 | Mismatch of AVS street number |
800.400.103 | Mismatch of AVS PO box value fatal |
800.400.104 | Mismatch of AVS zip code value fatal |
800.400.105 | Mismatch of AVS settings (AVSkip, AVIgnore, AVSRejectPolicy) value |
800.400.110 | AVS Check Failed. Amount has still been reserved on the customer's card and will be released in a few business days. Please ensure the billing address is accurate before retrying the transaction. |
800.400.150 | Implausible address data |
800.400.151 | Implausible address state data |
The regular expression pattern for filtering out this group is:
/^(800\.400\.2|100\.380\.4|100\.390)/
Result Code | Result Description |
100.380.401 | User Authentication Failed |
100.390.101 | purchase amount/currency mismatch |
100.390.102 | PARes Validation failed |
100.390.103 | PARes Validation failed - problem with signature |
100.390.104 | XID mismatch |
100.390.105 | Transaction rejected because of technical error in 3DSecure system |
100.390.106 | Transaction rejected because of error in 3DSecure configuration |
100.390.107 | Transaction rejected because cardholder authentication unavailable |
100.390.108 | Transaction rejected because merchant not participating in 3DSecure program |
100.390.109 | Transaction rejected because of VISA status 'U' or AMEX status 'N' or 'U' in 3DSecure program |
100.390.110 | Cardholder Not Found - card number provided is not found in the ranges of the issuer |
100.390.111 | Communication Error to VISA/Mastercard Directory Server |
100.390.112 | Technical Error in 3D system |
100.390.113 | Unsupported User Device - Authentication not possible |
100.390.115 | Authentication failed due to invalid message format |
100.390.116 | Access denied to the authentication system |
100.390.117 | Authentication failed due to invalid data fields |
800.400.200 | Invalid Payer Authentication in 3DSecure transaction |
The regular expression pattern for filtering out this group is:
/^(100\.100\.701|800\.[32])/
Result Code | Result Description |
100.100.701 | suspecting fraud, this card may not be processed |
800.200.159 | account or user is blacklisted (card stolen) |
800.200.160 | account or user is blacklisted (card blocked) |
800.200.165 | account or user is blacklisted (card lost) |
800.200.202 | account or user is blacklisted (account closed) |
800.200.208 | account or user is blacklisted (account blocked) |
800.200.220 | account or user is blacklisted (fraudulent transaction) |
800.300.101 | account or user is blacklisted |
800.300.102 | country blacklisted |
800.300.200 | email is blacklisted |
800.300.301 | ip blacklisted |
800.300.302 | ip is anonymous proxy |
800.300.401 | bin blacklisted |
800.300.500 | transaction temporary blacklisted (too many tries invalid CVV) |
800.300.501 | transaction temporary blacklisted (too many tries invalid expire date) |
800.310.200 | Account closed |
800.310.210 | Account not found |
800.310.211 | Account not found (BIN/issuer not participating) |
The regular expression pattern for filtering out this group is:
/^(800\.1[123456]0)/
Result Code | Result Description |
800.110.100 | duplicate transaction |
800.120.100 | Rejected by Throttling. |
800.120.101 | maximum number of transactions per account already exceeded |
800.120.102 | maximum number of transactions per ip already exceeded |
800.120.103 | maximum number of transactions per email already exceeded |
800.120.200 | maximum total volume of transactions already exceeded |
800.120.201 | maximum total volume of transactions per account already exceeded |
800.120.202 | maximum total volume of transactions per ip already exceeded |
800.120.203 | maximum total volume of transactions per email already exceeded |
800.120.300 | chargeback rate per bin exceeded |
800.120.401 | maximum number of transactions or total volume for configured MIDs or CIs exceeded |
800.130.100 |