Overview

To help merchants to better identify authorization declines and prevent incurring system integrity fees, Visa now provides additional Decline Category Codes, which instruct the merchant whether or not to retry a declined authorization attempt on a Visa card account.

This article provides detailed information on the CardPointe Gateway's implementation of these Decline Category Codes, and any changes you may need to make to your integrated application or business processes.

As of 10/22/2022, this feature is available for merchants processing on the following platforms:

  • First Data North
  • First Data Rapid Connect
  • Chase Paymentech Salem
  • Chase Paymentech Tampa
  • TSYS
  • Vantiv

Understanding Visa Decline Rules and Responses

Visa has implemented rules and penalties to prevent merchants from reattempting declined transactions using incorrect data or accounts that will never be approved (for example a closed account).

Visa Excessive Reattempts Rule

As of April 2022, Visa assess fees on decline reattempts under its Excessive Reattempts Rule. An excessive reattempt is defined as one of either of the following:

  • A reattempt of a declined transaction that returned a Decline Category Code of 1 (never retry).
  • Each reattempt after the 15th in a 30 day period for a transaction that returned a Decline Category Code of 2 (wait and retry) or 3 (correct and retry).

For each transaction that meets one of these criteria, the merchant is subject to an excessive reattempt fee. This fee is assessed per  transaction, and is displayed on the merchant statement as "VI NEVER APPROVE REATTEMPT FEE."

Visa Decline Category Codes

To help merchants properly handle declined transactions and avoid excessive reattempt fees, Visa provides additional Decline Category Codes in the authorization response. These codes indicate whether or not the merchant should reattempt the transaction, and why.

The following table describes each code, its description, and some example cases:

Decline Category CodeDescriptionReattempt HandlingExamples
1

The issuer will never approve.

In this case, you should not reattempt the transaction using the same account information; it will never be approved by the issuer. 

Reattempting this transaction will incur a fee.

Instead, advise the cardholder to contact their issuer or provide an alternate payment method.

Some possible reasons for this code include:

  • The account has been closed.

  • The account has not been activated.

  • There is a stop payment order on this account.

2

The issuer cannot approve at this time.

In this case, you may wait and retry this transaction at a later time; the issuer may approve the transaction on a future attempt.

Note: You may reattempt this transaction a maximum of 15 times in a 30-day period before incurring excessive reattempt fees, unless you receive an updated declineCategory of 1, in which case you should no longer reattempt this transaction.

Some possible reasons for this code include:

  • The account has exceeded its daily transaction limit.

  • The cardholder exceeded the number of allowable PIN entry attempts.

  • The account currently has insufficient funds.

  • A system error occurred while authorizing the transaction.

3

The issuer cannot approve based on details provided.

In this case, you can check the account information for errors, correct any invalid data, and reattempt the transaction using the corrected data; the issuer might approve the transaction if all errors are corrected.

Note: You may reattempt this transaction a maximum of 15 times in a 30-day period before incurring excessive reattempt fees, unless you receive an updated declineCategory of 1, in which case you should no longer reattempt this transaction.

Some possible reasons for this code include:

  • The account number is invalid.

  • The card is expired.

  • The CVV entered is incorrect.

  • The PIN entered is incorrect.

Integrated Payment Application Changes

The following topics describe important changes to the CardPointe Gateway API and related integrated payment applications to support the Visa Decline Category Codes.

CardPointe Gateway API

For declined Visa transactions, the CardPointe Gateway API now returns two new fields, declineCategory and declineCategoryText in the response from the following endpoints:

  • auth
  • refund
  • inquire
  • inquireByOrderId

The following table describes these new fields and potential values in detail:

FieldMax LengthTypeDescription
declineCategory1N

A numeric decline category code returned by the issuer.

One of the following values:

  • 1 - Issuer Will Never Approve.

    In this case, the merchant should never reattempt to authorize the transaction, and the cardholder must provide an alternate payment method. This code can be returned for accounts that are blocked, never existed, or are otherwise flagged as invalid by the issuer.

  • 2 - Issuer Cannot Approve at this Time.

    In this case, the merchant may reattempt the authorization at a later time. Reasons for this decline can include velocity controls, credit risk holds, or system errors.

  • 3 - Issuer Cannot Approve Based on Details Provided.

    In this case, the card has been declined due to incorrect data, such as the CVV, expiry, or PIN. The merchant may attempt the authorization, after obtaining the corrected data.

  • 4 - Generic Response returned for some processors.

declineCategoryText25AN

A text description to provide more information on the decline.

One of the following:

  • Do not retry - Returned for declineCategory 1.
  • Wait to retry - Returned for declineCategory 2.
  • Fix the request and retry - Returned for declineCategory 3.

For First Data Rapid Connect UAT transactions only, "declineCategory":"4" and "declineCategoryText":"" may be returned.

Expand the following table to review the relationship between some typical processor decline responses and their respective Visa Decline Category codes:

Processor Response Codes by Visa Decline Category Code

Processor Response CodeDescriptionVisa Decline Category Code
Chase Paymentech Salem (PMT)

501

"Pickup card"1
502"Card reported lost"1
596"Suspected fraud"1
602"Invalid issuer code"1
231"Invalid merchant code"2
509"Over activity limit"2
510"Over frequency limit"2
522"Card expired"3
591"Invalid card number"3
Chase Paymentech Tampa (PTAM)
04"Pick up card"1
07"Suspected fraud"1
12"Invalid transaction"1
15"No such card issuer"1
43"Lost/stolen card"1
57"Invalid txn for card"1
03"Invalid merchant"2
09"Velocity limit exceeded"2
19"Re-enter transaction"2
14"Invalid card number"3
54"Wrong expiration"3
First Data North (FNOR)
12

"Invalid transaction"

1
57"Invalid txn for card"1
63"Service not allowed"1
03"Invalid merchant"2
28"Please retry"2
61"Exceeds withdrawal limit"2
91"System error"2
14"Invalid card number"3
54"Wrong expiration"3
First Data Rapid Connect (RPCT)
102"Suspected fraud"1
208"Lost card"1
209"Stolen card"1
704

"Pick up card"

1
902"Invalid transaction"1
109"Do no honor"2
116"Not sufficient funds"2
512"Service not allowed"2
101"Expired card"3
117"Incorrect PIN"3

131

"Invalid account number"3
TSYS (VPS)
04"Pick up card"1
07"Suspected fraud"1
12"Invalid transaction"1
15"No such card issuer"1
41"Card reported lost"1
43"Card reported stolen"1
57"Invalid txn for card"1
03

"Invalid merchant"

2
19"Re-enter transaction"2
51"Insufficient funds"2
59"Service not allowed"2
61"Exceeds withdrawal limit"2
62"Invalid service code"2
65"Activity limit exceeded"2
75"PIN tries exceeded"2
78"No account"2
91"Issuer unavailable"2
14"Invalid card number"3
54"Wrong expiration"3
55"Incorrect PIN3
82"CVV incorrect"3
VANT
07"Suspected fraud"1
41"Pick up card - Lost"1
03"Invalid merchant"2
75"PIN try limit exceeded"2
14"Invalid card number"3
54"Expired card"3

Testing Decline Category Codes

The CardPointe Gateway UAT environment supports testing response scenarios using specific transaction amounts. Because the Visa decline category codes correspond to the authorization response, you can simulate various decline scenarios to retrieve the corresponding declineCategory and declineCategoryText values.

For example, to simulate the above scenario on the First Data North emulator, submit a test transaction with a Visa test card and "amount":"1014" to simulate a response with "respcode":"14" and "declineCategory":"2".

See Processing Host Response Codes for a list of possible response codes by processor.

See Testing With Amount-Driven Response Codes in the Testing Your Integration guide for additional information and examples.

CardPointe Integrated Terminal API

The following changes are in development and are subject to change.

A future update to the CardPointe Integrated Terminal API will include the declineCategory and declineCategoryText fields in the authorization response returned by the authCard and authManual endpoints.

You can use the CardPointe Gateway API inquire or inquireByOrderId request to retrieve the declineCategory and declineCategoryText fields for a transaction processed on the CardPointe Integrated Terminal.

CardPointe Application Changes

An update to the CardPointe Mobile app to display these fields is planned for an upcoming release. 

The CardPointe web app now displays the following fields on the Transaction Detail page's Transaction History, to help merchants determine whether or not to reattempt the transaction with the given account information:

  • Decline Category Code - Displays the decline category code and a reason for the decline.
  • Decline Category Text - Displays instructions for the merchant.
CP 1.61 - Visa Decline Codes