In this article, you will be going to know about:
- What is Response Code/Status?
- What are the general response statuses?
- What are the different response codes/statuses?
What is Response Code/Status?
The response code/status is the authorization code/status that will be received for every transaction once it has been performed.
The response code/status/message can be found in both the "return" response and the "callback" response. As well as on the transaction screen on your dashboard as well.
Callback Response
"payment_result": {
"response_status": "A",
"response_code": "G31822",
"response_message": "Authorised",
},
Return Response
acquirerMessage=
&acquirerRRN=
&cartId=cart_11111
&respCode=G31822
&respMessage=Authorised
&respStatus=A
Response on the Dashboard
Things you should know
- The value (A) of the "response_status" field in the callback is the same as the value (A) of the "respStatus" field in the "return".
- The value (G31822) of the "response_code" field in the callback is the same as the value (G31822) of the "respCode" field in the "return".
The merchant can depend on (response_status/respStatus) as (A) for the authorized transaction.
If the response status (response_status/respStatus) is error/decline (E or D), then the (response_code/respCode) can be used to help determine why it was declined.
What are the general response statuses?
Response Status | Description |
A | Authorized |
H | Hold (Authorised but on hold for further anti-fraud review) |
P | Pending (for refunds) |
V | Voided |
E | Error |
D | Declined |
X | Expired |
What are the different response codes/statuses, and how to handle each of them?
The decline codes (Response code) are for the merchants internal use, it shouldn't be shown to the customers.
The customer should have a general message like "Sorry, we are unable to process your transaction at this time" to protect the merchant.
Code | Status | Response message | Reason/s | Possible Actions | Guides | |
Issuer Bank Txn Ref. | A | Authorized | This is a successful transaction | - | - | |
1 | E | Authentication Failed | This error happened cause the PayTabs system failed to authenticate/identify the sent request information from the merchant side. | Make sure that you are passing the valid authentication information, such as profile ID and integration keys, as clarified in the related Guide. | Authentication failed. Check profile ID and authentication header : PayTabs Support Portal | |
2 | E | Invalid request | Passing invalid request payload format or including invalid data | Make sure that the request payload is parseable and that the request parameters match the data types clarified in the related Guide. | PT2 API Endpoints | Request Parameters : PayTabs Support Portal | |
3 | E | Invalid profile ID | Missing or invalid passed data inside the profile_id parameter | Make sure to pass your profile_id in the correct format clarified in the related Guide. | Request/Response Parameters | Profile ID (profile_id) : PayTabs Support Portal | |
4 | E | Duplicate request | PayTabs system found that the sent request information had been submitted with the same details (cart_id, amount, currency, profile_id) within less than 2 minutes. | Make sure that your payments have a unique cart_id and that you do NOT send the same request in a time interval of less than 2 minutes. | ||
5 | E | Request limit exceeded | The requests initiated in step 7 of the integration, which we call "Follow-up" requests, can not exceed 30 requests per minute for aggregate merchants. | If you are an aggregate merchant, make sure to chunk your follow-up requests not to exceed 30 requests per minute. | - | |
101 | E | Cart ID not valid | The passed cart_id is not accepted by the system due to some rules/constraints or validation checks. | Make sure to use a valid cart_id format as clarified in the related Guide. | Request/Response Parameters | Cart ID (cart_id) : PayTabs Support Portal | |
102 | E | Description not valid | The passed cart_description is not accepted by the system due to some rules/constraints or validation checks. | Make sure to use a valid cart_description format as clarified in the related Guide. | Request/Response Parameters | Cart Description (cart_description) : PayTabs Support Portal | |
103 | E | Name not valid | The passed customer_details.name is not accepted by the system due to some rules/constraints or validation checks, such as names that contain numbers. | Make sure to use a valid and correct format for the first and last names of customers, as clarified in the related Guide. | Request/Response Parameters | Customer Details (customer_details) : PayTabs Support Portal | |
104 | E | Address not valid | The passed customer_details.street1 is not accepted by the system due to some rules/constraints or validation checks, such as those containing symbols. | Make sure to use a valid customer_details.street1 format, as clarified in the related Guide. | Request/Response Parameters | Customer Details (customer_details) : PayTabs Support Portal | |
105 | E | Country not valid | The passed customer_details.country code is not identified by the system due to some rules/constraints or validation checks. | Make sure to use a valid customer_details.country ISO code format, as clarified in the related Guide. | Request/Response Parameters | Customer Details (customer_details) : PayTabs Support Portal | |
106 | E | Email not valid | The passed customer_details.email is not accepted by the system due to some rules/constraints or validation checks. | Make sure to use a valid customer_details.email format, as clarified in the related Guide. | Request/Response Parameters | Customer Details (customer_details) : PayTabs Support Portal | |
107 | E | Phone number not valid | The passed customer_details.phone is not accepted by the system due to some rules/constraints or validation checks. | Make sure to use a valid customer_details.phone format, as clarified in the related Guide. | Request/Response Parameters | Customer Details (customer_details) : PayTabs Support Portal | |
108 | E | IP address not valid | The passed customer_details.email is not accepted by the system due to some rules/constraints or validation checks. | Make sure to use a valid customer_details.ip format, as clarified in the related Guide. | Request/Response Parameters | Customer Details (customer_details) : PayTabs Support Portal | |
109 | E | Invalid transaction mode | You are performing a transaction with a transaction_type that is not configured on your profile, such as Auth transactions, while your profile is configured to Sale only. | Check with your account manager or our support channel about the transaction types allowed on your profile. | ||
110 | E | Invalid transaction type | Passing a typo or a wrong transaction type within the payment request payload. | Make sure to pass a valid configured transaction type value as clarified in the related Guide. | (E): 110 - Invalid transaction type : PayTabs Support Portal | |
111 | E | Invalid transaction class | Passing a typo or a wrong transaction class within the payment request payload. | Make sure to pass a valid configured transaction class value as clarified in the related Guide. | (E): 111 - Invalid transaction class : PayTabs Support Portal | |
112 | E | Method/Class/Currency combination not supported | Passing a combination of transaction class and transaction type along with a payment method and currency code not configured in your profile. | Make sure that the requested transaction class is configured under the same transaction class record, including the currency and the payment method you want in your profile. We call this combination a "Terminal," which configures which bank you will connect with, which transaction class you will type, and which currency you will use. | (E): Method/Class/Currency combination not supported : PayTabs Support Portal | |
113 | E | Invalid transaction reference | Passing invalid or missing transaction references in the requests initiated in step 7 of the integration, which we call "Follow-up" requests. | Make sure to pass the parent/original transaction reference right and to pass the parameter spelled right. | Request/Response Parameters | Transaction Reference (tran_ref) : PayTabs Support Portal | |
114 | E | Amount differs from original | In some APMs that initiate the payment first, then connect to PayTabs, such as the separate integration (not under HPP) of ApplePay and STCPay, if the amount passed to PayTabs from your side is not the same passed to the APM from your side, this error will be thrown. | Make sure that both amounts passed to the APM and PayTabs are the same. | - | |
115 | E | Original transaction not authorised | Passing a transaction reference in the requests initiated in step 7 of the integration, which we call "Follow-up" requests for a NOT "A" transaction. | Performing any follow-up request MUST be on an authorized (A) transaction, so make sure that the original transaction is not any other transaction status but (A). | ||
116 | E | Original transaction already voided | Passing a transaction reference in the requests initiated in step 7 of the integration, which we call "Follow-up" requests for an already voided transaction. | Performing any follow-up request MUST NOT be made on a successfully voided transaction, so make sure that the original transaction has not been voided before. | ||
117 | E | Original transaction mismatch | The transaction reference provided by the third-party provider, such as banks and processors, does not match the original transaction reference you were redirected with. | Report this to your account manager or our support team via the official channels. | - | |
118 | E | Amount greater than available balance | Trying to void or release a transaction with an amount that is greater than the rest of the original amount is still on hold indeed. | Make sure that the new amount is not greater than the rest of the amount is still on hold (the actual original amount deducting any authenticated voids or release transactions' amounts relates |
| |
119 | E | Original transaction can not be voided | Passing a transaction reference in the requests initiated in step 7 of the integration, which we call "Follow-up" requests, which we can NOT void due to some rules/constraints, most probably from the bank side. | Check with your account manager or our support channel about the reason shared by the third party. | - | |
120 | E | Previous transaction is on hold | Passing a transaction reference in the requests initiated in step 7 of the integration, which we call "Follow-up" requests for a transaction that is already on hold/pending some actions to be completed. | Any follow-up request MUST NOT be made on a non-completed transaction, so make sure that the original transaction's status is "A". | ||
121 | E | Transaction mode differs from original | Passing a transaction type in the requests initiated in step 7 of the integration, which we call "Follow-up" requests that differ from the original/parent transaction. | Any follow-up request MUST be compatible with the original/parent transaction, including the transaction type and class. | ||
200 | E | Invalid card number | The customer's card number is invalid,alid and the card processor can’t find the related account. This could also occur if a were used on a live profile or vice versa. | Ensure that both you and your customer use valid/correct live cards for transactions under your live profile or employ one of our test cards for conducting payments under a test profile. | ||
201 | E | Invalid card expiry date | Passing invalid or mismatched card expiry date. | Guide your customer to try again providing valid expiry date for the used card. | - | |
202 | E | Invalid card security code (CVV) | Passing invalid or mismatched card security code (CVV). | Guide your customer to try again providing valid card security code (CVV) for the used card. | - | |
203 | E | Invalid account | The customer's account used in the APM (Alternative Payment Method such as STCPay or ValU) is invalid. | Check with your account manager or our support channel about the reason shared by the third party.
If it's related to your customer, you will have to ask them to use valid account to pay. | - | |
204 | E | Previous transaction in use | Passing a transaction reference in the requests initiated in step 7 of the integration, which we call "Follow-up" requests for a transaction that is already in use with other "Follow-up" request. | You cannot use the same original/parent transaction for multiple "Follow-up" requests simultaneously.
| - | |
205 | E | Invalid payment method | Trying to perform a payment with a payment method that is not yet configured on your profile. | Make sure that the requested payment method is configured under the same transaction class record, including the currency you want in your profile. We call This combination a "Terminal," which configures which bank you will connect with, which transaction class you will type, and which currency you will use. via the requested payment method. | - | |
206 | D | Currency mismatch | Passing a currency code in the requests initiated in step 7 of the integration, which we call "Follow-up" requests that mismatched the original/parent transaction's currency code. | Any follow-up request MUST be compatible with the original/parent transaction in the currency code, including the transaction type and class. | ||
207 | E | Invalid terminal | A general issue in identifying the configured terminal on your profile. | Raise this with your account manager or our support channel. | - | |
208 | E | Invalid return url | The passed return URL is not accepted by the system due to some rules/constraints or validation checks. | Make sure to use a valid return URL format, as clarified in the related Guide. | Request/Response Parameters | The Return URL (return) : PayTabs Support Portal | |
210 | E | Invalid callback url | The passed callback URL is not accepted by the system due to some rules/constraints or validation checks. | Make sure to use a valid callback URL format, as clarified in the related Guide. | Request/Response Parameters | The Callback URL (callback) : PayTabs Support Portal | |
300 | D | Not authorised | An error occurred during the transaction without the reason specified. | Guide your customer to retry the transaction and be careful to enter all the information correctly. If the issue persists, raise this with your account manager or our support channel. | - | |
301 | D | Card expiry date required | Missing card expiry date. | Guide your customer to try again providing valid expiry date for the used card. | - | |
302 | D | Card expired/Incorrect expiry date | Passing invalid or old card expiry date (card already expired). | Guide your customer to try again providing valid expiry date for the used card. | - | |
303 | D | Card is for ATM use only |
The issuer bank has declined the transaction because the card is not authorized for online use. | Ask your customer to check with his card issuer bank, while use another card in the meantime. | - | |
304 | D | Card security code (CVV) required | Missing card security code (CVV). | Guide your customer to try again providing valid security code (CVV) for the used card. | - | |
305 | D | Card security code (CVV) mismatch | Passing invalid or mismatched card security code (CVV). | Guide your customer to try again providing valid card security code (CVV) for the used card. | - | |
306 | D | Address verification (AVS) mismatch | The passed address (customer_details.street1) is not accepted by the system due to some rules/constraints or validation checks. | Make sure that the billing details entered by the cardholders at the point of purchase MUST match the details of their issued cards. | ||
307 | D | Card security code (CVV) and address (AVS) mismatch | The passed address (customer_details.street1) and card CVV are not accepted by the system due to some rules/constraints or validation checks. | Make sure that the billing details entered by the cardholders at the point of purchase MUST match the details of their issued cards. | ||
308 | D | Card is not enabled for e-commerce | The issuer bank has declined the transaction because the card is not authorized for online use. | Ask your customer to check with his card issuer bank, while use another card in the meantime. | - | |
309 | D | 3DSecure authentication not available for this card | Either the issuer bank does NOT support 3DSecure authentication mode at all, or the customer's card does NOT (have active/enrolled in) 3DSecure authentication mode. | Guide your customer to retry again using another card. However, if the same card was accepted before, raise this with your account manager or our support channel. | (D): 309 - 3DSecure authentication not available for this card : PayTabs Support Portal | |
310 | D | 3DSecure authentication rejected | The customer either has entered the wrong OTP (One Time Password) or triggered the cancel option on the 3DSecure page. | Guide your customer to try again providing valid OTP for the used card. | (D): 310 - 3DSecure authentication rejected : PayTabs Support Portal | |
311 | D | Card cancelled | The card’s legitimate owner has canceled this card, so the card issuer has denied the transaction. | Ask your customer to check with his card issuer bank, while use another card in the meantime. | - | |
312 | D | No/invalid account | The customer's account used in the APM (Alternative Payment Method such as STCPay or ValU) is invalid. | Check with your account manager or our support channel about the reason shared by the third party.
If it's related to your customer, you will have to ask them to use valid account to pay. | - | |
313 | D | Transaction not permitted by issuer | The issuer bank prevented the transaction without a specific reason. | Ask your customer to check with his card issuer bank while using another card in the meantime. | - | |
314 | D | Not authorised (Not Honor) | The issuer bank stopped the transaction and informing to “not honor” the card which means not to accept payment. | Ask your customer to check with his card issuer bank while using another card in the meantime. | - | |
315 | D | Not authorised | This a broad referral error code indicating the card issuer has blocked the transaction. | Ask your customer to check with his card issuer bank while using another card in the meantime. | - | |
316 | D | Insufficient funds | The card issuer is blocking the transaction because the account has already exceeded the credit limit, or the pending transaction would put the card over. | Ask your customer to use another card that has funds in the meantime. | - | |
317 | D | Blocked by acquirer | The acquirer bank prevented the transaction without a specific reason. | Check with your bank if you are PSP or check with account manager or our support channel if you are aggregation, while asking your customer to use another card in the meantime. | - | |
318 | X | Authorisation expired | The expiration period for transactions marked as "Pending" has elapsed. | You will need to ask your customer to initiate the transaction all over again. | - | |
319 | D | Unable to void | Passing a transaction reference in the requests initiated in step 7 of the integration, which we call "Follow-up" requests, which we can NOT void due to some rules/constraints. | Check with your account manager or our support channel about the reason. | - | |
320 | D | Unable to refund | Passing a transaction reference in the requests initiated in step 7 of the integration, which we call "Follow-up" requests, which we can NOT refund due to some rules/constraints. | Check with your account manager or our support channel about the reason. | - | |
321 | C | Cancelled | The transaction has been canceled manually by the customer. | The customer hit/triggered the cancel button on the payment page. | - | |
322 | D | Not supported by acquirer | Trying to perform a payment with a transaction type or class that is not supported by the acquirer bank. | Check with your account manager or our support channel about the reason. | - | |
323 | D | Card limits exceeded | The credit card user has exceeded the credit limit (or this transaction would put them over). | Guide your customer to use another credit card. If they have no other cards, they can pay down the card before trying it again. | (E): 323 - Card limits exceeded | |
324 | D | Terminal limits exceeded | The configured terminal on your account has exceeded the credit limit (or this transaction would put them over). | Check with your account manager or our support channel about the available limit and try not exceeding it. | - | |
325 | D | Merchant limits exceeded | You exceeded the credit limit configured to your PayTabs' merchant account (or this transaction would put them over). | Check with your account manager or our support channel about the available limit and try not exceeding it. | (E): 325 - Merchant limits exceeded : PayTabs Support Portal | |
326 | D | Account limits exceeded | You exceeded the credit limit configured to your account (or this transaction would put them over). | Check with your account manager or our support channel about the available limit and try not exceeding it. | - | |
327 | D | OTP timeout | The customer failed to enter the OTP on the 3DSecure page within the allotted time. | Guide your customer to attempt once more and enter the OTP within the designated time frame. | - | |
345 | D | 3DSecure authentication not completed | The customer did not complete the 3DS authentication process after being redirected to their bank's 3DSecure page, likely due to a "connection error" or "issuer page downtime." | Instruct the customer to ensure a stable network connection and wait until they are fully redirected back to the system before closing the tab. Alternatively, suggest trying again later if the issue is due to downtime at the issuing bank. |
| |
400 | E | Internal system error | Something went wrong with the transaction, usually due to a temporary systemic error. | Guide your customer to attempt payment again in few minutes.
If the issue is still persisting, please raise this with your account manager or our support channel. | - | |
401 | E | No response | An error occurred during the transaction without the reason specified. | Guide your customer to attempt payment again in few minutes.
If the issue is still persisting, please raise this with your account manager or our support channel. | - | |
402 | E | Error connecting to service provider | There’s a temporary communication error between PayTabs and the acquirer bank/processor. | Guide your customer to attempt payment again in few minutes.
If the issue is still persisting, please raise this with your account manager or our support channel. | - | |
500 | D | Declined | The bank can’t identify a specific problem, but the transaction still didn’t go through. | Guide your customer to attempt payment again in few minutes.
If the issue is still persisting, please raise this with your account manager or our support channel. | - | |
501 | D | Fraud Report - Issuer | The customer’s bank stopped the transaction because the card or bank account has been flagged as fraudulent. | Guide your customer to call the bank immediately to clear up any potential issues, while using another card in the meantime. | - | |
502 | D | Lost Card | The legitimate owner has reported the card as lost, so the card issuer denied the transaction. | Guide your customer to call the bank immediately to clear up any potential issues, while using another card in the meantime. | - | |
503 | D | Stolen Card | The legitimate owner has reported the card as stolen, so the card issuer denied the transaction. | Guide your customer to call the bank immediately to clear up any potential issues, while using another card in the meantime. | - | |
504 | D | AntiFraud | The system stopped the transaction because the card or bank account has been flagged as fraudulent. | Check with your account manager or our support channel about the reason. | - | |
600 | P | Pending | This transaction has not been finalized and is pending further action. Such situations occur with payment methods like cash payments, which necessitate the customer paying in cash at an authorized store, or with payment methods involving manual refunds processed by the finance team. | Make sure that the customer has completed their transaction using cash payment methods. Manual refunds should be processed within one week. If this period is exceeded, please consult your account manager or our support channel. | - | |
601 | H | On Hold | The transaction has been authorized; however, it has been flagged by our anti-fraud system and is currently on hold pending further manual review or action. | Check with your account manager or our support channel to understand why the transaction is being held. Typically, the option to accept or reject the transaction will be available to you directly from the transaction view. | - |
(E): 118 - Amount greater than available balance |