Error codes for card-present transactions

Here are the common errors in card-present transactions and how to resolve them

HTTP Status codes

Below, we present the most common HTTP status codes, their associated standard messages, and a description of the response.

Here are the codes you might receive.

CodeMessageDetail
200OKThe process was successful; it worked as expected, according to the HTTP method.
400Bad Request
The server cannot interpret the request (incorrect syntax, too large size, missing parameters).
401Authorization Required
The credentials must be authenticated, or authentication failed.
403Forbidden
You do not have the necessary permissions to perform this action.
404Not Found
Resource or page not found.
409Conflict
The request cannot be processed due to a conflict with the resource (e.g., multiple simultaneous updates).
410Gone
The requested resource has been deleted from the server and will no longer be available.
412Precondition failed
It indicates that access to the target resource has been denied.
429Too Many Requests
Too many requests have been sent in a short period of time.
430Request Header Fields Too Large
This status code indicates that the server is unwilling to process the request because its header fields are too large.
500Internal Server Error
An unexpected error occurred on the server.
502Bad Gateway
The server (acting as a proxy or gateway) received an invalid response from the upstream server.
503Service Temporarily Unavailable
The server is not available (usually because it is undergoing maintenance or because it is overloaded).
504Gateway Timeout
The server (acting as a proxy or gateway) did not receive a timely response from the other server.

Kushki pre-processing codes

The following error codes are generated directly by Kushki during the internal validation stage, before the transaction is sent to the processor or the card brand.

These codes are usually related to payload validation, business rules, time limits, or the status of previous transactions in our database.

When one of these errors occurs, you will receive it in the response body with a structure similar to the following:

{
"code": "E047",
"details": {
"Origin": "Process Reverse | Transaction",
"Message": "Code: K007, Message: \"Error al obtener la transacción actualizada\", StatusCode: 500, Reverse: false"
},
"message": "Unreachable processor timeout"
}
CodeMessageDescriptionSuggestion / What to do?
E001Invalid request body.Occurs when one or more mandatory fields are not sent in the request body.Review the Kushki documentation detailing the mandatory and optional fields for this endpoint.
E001An error occurred while saving the transaction to the database.An error occurred during the initial saving of the transaction in DynamoDB.Review the internal logs to verify the error returned by the database.
E002An error occurred while sending and/or getting the transaction from the gateway.The gateways responded with an error other than K007.Check which error code the gateways returned in the response.
E002An unexpected error has occurred.An error occurred other than those mentioned in the standard documentation.Review the transaction Lambda function logs for more details.
E006An error occurred while retrieving the transaction from the database.An error occurred while querying the original transaction. This is common when attempting Void, Refund, or Capture operations.Review the logs to validate DynamoDB’s response when querying the record.
E011An error occurred while updating the transaction.Error (other than Timeout) when trying to update the transaction status in DynamoDB.Review the update trx Lambda function logs.
E014An error occurred while validating the original transaction.Occurs only in Reauthorizations, when the previous transaction is not a preauthorization/reauthorization or is not available.Verify that the transaction sent for reauthorization meets the described criteria.
E015The previous transaction is not approved.Occurs in Void, Refund, or Capture requests when the linked original transaction is not in an approved status.Make sure to send void, refund, or capture operations only for successful transactions.
E016Refund not available.Occurs due to:
  • The minimum allowed time (1 day) to execute a Refund has not yet passed.
  • The transaction date exceeds the allowed days limit (varies by country).
  • The original transaction is NOT a Charge, Capture, Checkout, or PosTip.
Validate that the transaction meets the allowed time and type conditions for refunds.
E017Transaction not available for voiding.An attempt is made to void a transaction with an amount greater than the sale. Unlike E023, it can occur if 2 voids come in simultaneously.Verify the remaining amount available to void and avoid sending duplicate requests.
E018Void not available.A request is made to void a transaction type not supported for this operation.You can only void transaction types: Charge, Preauth, Reauth, Capture, CheckIn, CheckOut, Tip, or PosTip.
E020Transaction not available for capture.An attempt is made to capture a transaction whose time limit has already expired (the limit varies by processing country).Make sure not to exceed the stipulated time window to make the capture.
E023Void amount exceeds sale amount.A Void (total or partial) or a Refund is sent for a value that exceeds the original sale amount.Adjust the request amount; it must not exceed the original value.
E024Invalid card reading data.The track data (magnetic stripe/chip) sent is incorrect or poorly formatted.Validate and send the card reading data correctly.
E041Operation not allowed.Occurs due to:
  • Capture on a transaction that is not a preauthorization.
  • The capture amount exceeds the total + n% of the original preauthorization.
  • Attempted partial Void of a preauthorization.
  • Use of an unsupported transaction_type.
  • Transaction directed to an unknown brand.
Adjust the request parameters according to the business rules of the desired operation.
E042The currency code is different from the initial transaction.A subsequent operation (Void, Refund, or Capture) is sent where the currency field does not match the original sale.The currency field must be exactly the same as the one used in the Sale.
E044Void not allowed.An attempt is made to perform a Void directly on a Reauthorization.Reauthorizations do not support direct voids.
E046Reversal not available due to time excess.An attempt is made to process a manual reversal after the maximum allowed time (29 seconds from the original transaction).Do not attempt manual reversals once the 29 seconds have elapsed.
E047Unreachable processor timeout.The gateways returned K007 (Timeout waiting for a response from the brand), or the database exceeded the allowed time to update.Review the API or gateway logs to identify the bottleneck.
E048The previous transaction is already reversed.Attempted Void or Refund on a previously reversed transaction. It also applies if a duplicate Smart Void is sent (same client_transaction_id).Validate the current status of the transaction before trying to void it again.
E049Transaction not available for cashback.The transaction does not meet the required characteristics to process a cash withdrawal (Cashback).Cashback requires: Charge type, Approved via Chip/Contactless, Visa/Mastercard brand, domestic transaction, and NOT deferred.
E055Currency type not allowed.A currency code (currency) is sent that differs from the local currency of the country where the merchant operates.Configure the official currency corresponding to the country of your merchant credential.
E322An error occurred processing the transaction (Security Rule).A failure occurred in the intermediate layer of the SecurityRule middleware.Escalate the incident and review the logs of the corresponding Lambda function.

Codes returned by Kushki in card-present transactions

The response codes received from processors and issuers will appear in thekushki_response object, as shown in the following example.

"kushki_response": {
"code": "01",
"message": "Refer to card issuer"
},

Error 006

This error code appears when Kushki blocks the card, for example if the brand is not supported.

"kushki_response": {
"code": "006",
"message": "Card brand not supported"
},

In case this code comes from the Card franchises (Visa, Mastercard or Prosa (Mexico), it will have two digits. Below you will find the most common response codes, including declinations:

ISO Error CodeDescriptionSource
00Approved or completed successfullyVisa, Mastercard
01Refer to card issuerVisa, Mastercard
02Refer to card issuer, special conditionVisa
03Invalid merchantVisa, Mastercard
04Pick up card (no fraud)Visa, Mastercard
05Do not honorVisa, Mastercard
06ErrorVisa
07Pick up card, special condition (fraud account)Visa
08Honor with IDMastercard
10Partial ApprovalVisa, Mastercard
11Approved (VIP)Visa
12Invalid transactionVisa, Mastercard
13Invalid amountVisa, Mastercard
14Invalid card numberVisa, Mastercard
15Invalid issuerVisa, Mastercard
19Re-enter transactionVisa
21No action takenVisa
25Unable to locate record in fileVisa
28File is temporarily unavailable for update or inquiryVisa
30Format errorVisa, Mastercard
33Expired cardVisa
34Suspected fraudVisa
35Card acceptor contact acquirerVisa
36Restricted cardVisa
37Card acceptor call acquirer securityVisa
38Allowable PIN tries exceededVisa
39No credit accountVisa
40Command rejectedVisa
41Lost cardVisa, Mastercard
43Stolen cardVisa, Mastercard
46Closed accountVisa
51Insufficient funds/over credit limitVisa, Mastercard
52No checking accountVisa
53No savings accountVisa
54Expired card or expiration date missingVisa, Mastercard
55Invalid PINVisa, Mastercard
57Transaction not permitted to issuer/cardholderVisa, Mastercard
58Transaction not permitted to acquirer/terminalVisa, Mastercard
59Suspected fraudVisa
61Exceeds withdrawal amount limitVisa, Mastercard
62Restricted cardVisa, Mastercard
63Security violationVisa, Mastercard
64Transaction does not fulfill AML requirementVisa
65Exceeds withdrawal count limitVisa, Mastercard
70PIN data requiredVisa
71Issuer PIN Not ChangedMastercard
74Different value than that used for PIN encryption errorsVisa
75Allowable number of PIN-entry tries exceededVisa, Mastercard
76Unsolicited reversalVisa, Mastercard
77Invalid/nonexistent ‘From Account’ specifiedMastercard
78Blocked, first used or special conditionVisa, Mastercard
79Reversed (by switch)Visa
80No financial impactVisa
81Cryptographic errorVisa, Mastercard
82Policy / Negative online authentication failureVisa, Mastercard
83Fraud/SecurityMastercard
84Invalid Authorization Life CycleMastercard
85Not declined, valid for all zero amount transactionsVisa, Mastercard
86Cannot verify PINVisa, Mastercard
87Purchase Amount Only, No Cash Back AllowedMastercard
88Cryptographic failureMastercard
89Unacceptable PINMastercard
91Authorization System or issuer system inoperativeVisa, Mastercard
92Unable to route transactionVisa, Mastercard
93Transaction cannot be completed—violation of lawVisa
94Duplicate transmission detectedVisa, Mastercard
96System errorVisa, Mastercard
N0Force STIPVisa
N3Cash service not availableVisa
N4Cash request exceeds issuer or approved limitVisa
N7Decline for CVV2 failureVisa
N8Transaction amount exceeds pre-authorized approval amountVisa
R0Stop payment orderVisa
R1Revocation of authorization orderVisa
R2Transaction does not qualify for Visa PINVisa
R3Revocation of all authorizations orderVisa
Z3Unable to go online; offline-declinedVisa

Response codes returned by Kushki for cancellations and reversal attempts

The response codes received from processors and issuers will appear in the kushki_response object, as shown in the following example.

"kushki_response": {
"code": "01",
"message": "Refer to card issuer"
},

Below you will find information on the codes and messages sent by Kushki to describe the response codes for requests made with card-present transactions. In the “What to Do?” column, you will find a detailed explanation of the causes and the procedure you should follow.

CodeMessageDetail
000Approved Transaction
Indicates that the transaction was successfully approved.
01Refer to card issuer
The cardholder should contact their card issuer to understand why the transaction was declined.
04Capture card
The cardholder should try the transaction again.
05Do not honor
The cardholder should try the transaction again.
12Invalid transaction
The transaction is not allowed by the payment processor or the card issuer. Please contact the card issuer.
32Expired card
The cardholder should use an alternative card.
41Lost card
The cardholder should contact their card issuer to review the case.
57Transaction not permitted to cardholder
The cardholder should contact their card issuer to review the case.
62Restricted card
The cardholder should contact their card issuer to review the case.
91Authorization System or issuer system inoperative
)
The cardholder should try the transaction again.
92Unable to route transaction
The cardholder should try again or contact the issuer.
6PVerification data failed
Retry the transaction.
E016Refund not available
Check that the refund is within the allowed timeframe.
Test Data

Make any necessary adjustments to your system using the test data.