1. Processing Code - The processing code is simply a concatenation of the Status Code and the Reason Code. Processing codes have the format: 00.00 e.g. 90.00 with the first two digits representing the status and the last two digits representing the reason.
2. Return Code - The return tag is a more specific message that provides the merchant with more granular information on the overall result of the transaction.
Please note that the availability and use of the particular Status, Reason and Return codes also depend on whether they are supported by the applicable processing partner. Hence, some of these may not be available for your payment method / partner bank / payment method operator.
NOTE: it is possible to pull a list of all available return codes in JSON format, via the following GET request: https://eu-test.oppwa.com/v1/resultcodes
Please see below for the table (.pdf version attached at the bottom of this article)
Following is a list of the most relevant Result codes that you will encounter when processing payments with Peach Payments.
Please note - this is NOT an exhaustive list
You can download the file with the link at the bottom of the article.
To determine whether a transaction was successful or not please use the following link: Determine Transaction Status from Result Code
CODE | DESCRIPTION | NOTES |
000.000.000 | Transaction succeeded | This and 000.400.* are the only codes when a trasnaction is SUCCESSFUL - All others below are REJECTS - See yellow highlights in Sheet 1 |
000.100.110 | Request successfully processed in 'Merchant in Integrator Test Mode' | |
500.100.201 | Channel/Merchant is disabled (no processing possible) | |
600.200.202 | Channel/Merchant not configured for this payment type | Example would be if Amex is not enabled and a customer tried to process Amex |
600.200.400 | Unsupported Payment Type | Example would be if you try to execute a payment type (such as Rebill) that is not supported for that payment method |
600.200.500 | Invalid payment data. You are not configured for this currency or sub type (country or brand) | Example would be if Amex is not enabled and a customer tried to process Amex or if cards issued in a particular country are blocked |
800.121.100 | Channel not configured for given source type. Please contact your account manager. | |
100.300.101 | invalid test mode (please use LIVE or INTEGRATOR_TEST or CONNECTOR_TEST) | |
100.300.300 | invalid reference id | Example - Refund did not reference a successful debit |
100.300.400 | missing or invalid channel id | Merchant credentials not correct with transaction request |
100.300.601 | invalid or missing user pwd | |
200.100.302 | invalid Request/Transaction/Payment/Presentation tag (not present or [partially] empty) | Merchant credentials not correct with transaction request |
800.900.300 | user authorization failed | Merchant credentials not correct with transaction request |
700.100.600 | referenced mode does not match with requested payment mode | |
700.100.700 | referenced transaction is of inappropriate type | |
700.100.701 | referenced a DB transaction without explicitly providing an account. Not allowed to used referenced account. | |
700.400.100 | cannot capture (PA value exceeded, PA reverted or invalid workflow?) | If you try to Capture an Authorization (PA) that is already captured(CP) or reversed (RV) ot try to capture a value greater than the PA amount |
700.400.200 | cannot refund (refund volume exceeded or tx reversed or invalid workflow?) | If you try to Refund a transaction that is already Refunded(RF) or Reversed (RV) or try to refund a value greater than the original amount |
700.400.300 | cannot reverse (already refunded|reversed or invalid workflow?) | If you try to Reverse a transaction that is already Refunded(RF) or Reversed (RV) or try to reverse a value greater than the original amount |
700.400.520 | refund needs at least one successful transaction of type (CP or DB or RB or RC) | If you try to Refund a transaction that was unsuccessful originally |
700.400.570 | cannot reference a waiting/pending transaction | You try te execute another transaction based on a transaction that is still processing (i.e. refund while the debit is not completed yet) |
700.400.700 | initial and referencing channel-ids do not match | If you try to refund a transaction on a different channel as the original debit or similarly try to capture and authorization on a different channel - the reason is that merchant accounts are connected to each channel and it would send the transaction to the bank with the wrong credentials |
800.110.100 | duplicate transaction | If the exact same transaction request is sent to our system (same card, holder, order ID and amount) within 60 secs then we reject to protect against merchant's system glitches such as rogue scripts etc. |
800.120.103 | maximum number of transactions per email already exceeded | Transaction is rejected if it fails velocity checking for email ID in Risk Management |
100.550.300 | request contains no amount or too low amount | Amount has to be >0.00 |
100.550.400 | request contains no currency | Currency code needs to be provided for each transaction |
800.160.120 | Invalid payment data for configured Recurring Transaction Dispatching Type | If the API parameters were incorrect for recurring / one-click transactions |
100.100.100 | request contains no creditcard, bank account number or bank name | |
100.100.101 | invalid creditcard, bank account number or bank name | |
100.100.201 | invalid month | |
100.100.301 | invalid year | |
100.100.303 | card expired | |
100.100.400 | request contains no cc/bank account holder | No card data provided in transaction request |
100.100.401 | cc/bank account holder too short or too long | |
100.100.402 | cc/bank account holder not valid | |
100.100.500 | request contains no credit card brand | Brand - i.e. VISA , MASTER , AMEX etc was not specified in the transaction request |
100.100.501 | invalid credit card brand | User specified VISA but gave a mastercard number and vice versa |
100.100.700 | invalid cc number/brand combination | Number of digits of the CVV/CVC did not match card type i.e. Amex has 4 digits and Master and Visa have 3 digits |
800.700.100 | transaction for the same session is currently being processed, please try again later. | Duplicate request while another request is still being processed |
800.300.101 | account or user is blacklisted | Card is blacklisted |
800.300.200 | email is blacklisted | Email address is blacklist |
800.300.401 | bin blacklisted | BIN number (first 6 digits of the card) is blacklisted - this is used if a merchant wants to blacklist / block all African Bank cards or all FNB cards etc |
800.300.501 | transaction temporary blacklisted (too many tries invalid expire date) | |
100.150.101 | invalid length for specified registration id (must be 32 chars) | |
100.150.200 | registration does not exist | No stored card found for that token |
100.150.202 | registration is already deregistered | Stored card was already deleted |
100.150.203 | registration is not valid, probably initially rejected | Initially rejected / did not pass 3DS and therefore the token is not valid |
100.150.204 | account registration reference pointed to no registration transaction | |
100.350.100 | referenced session is REJECTED (no action possible). | Example - Try to refund a rejected Debit |
100.350.101 | referenced session is CLOSED (no action possible) | |
000.400.000 | Transaction succeeded (please review manually due to fraud suspicion) | This transaction was processed by the bank but we have flagged it for risk / fraud suspiscion |
900.100.100 | unexpected communication error with connector/acquirer | Bankserv may be down and not reachable at this time |
900.100.200 | error response from connector/acquirer | |
900.100.300 | no response from connector/acquirer [uncertain result] | Nedbank / ABSA systems may be down and not available for processing at this time |
100.380.305 | no frontend information provided for asynchronous transaction | Merchants using XML API did not provide the right parameters for a 3DS transaction |
100.380.501 | risk management transaction timeout | User dropped out of the 3DS process i.e. did not receive OTP or did not enter it into the bank's page (ECI value will be 01 or 06 since Merchant attempted 3DS but user did not complete) |
100.380.401 | User Authentication Failed | User entered the wrong OTP or their card is blocked by the bank (ECI 07) |
100.390.103 | PARes Validation failed - problem with signature | The 3DS data returned for this transaction was incorrect and was not validated by the bank |
100.390.105 | Transaction rejected because of technical error in 3DSecure system | There was a technical error with Bankserv / Bank or both at this time for this card or possible for all cards |
100.390.109 | Transaction rejected because of VISA status 'U' in 3DSecure program | |
100.390.112 | Technical Error in 3D system | |
100.396.101 | Cancelled by user | |
100.396.102 | Not confirmed by user | |
100.396.103 | Previously pending transaction timed out | |
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.165 | transaction declined (card lost) | |
800.100.166 | transaction declined (Incorrect personal identification number) | |
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) |