What Visa reason code 12.2 means
Each clearing record carries a transaction code that tells the issuer whether money moves to the cardholder or from them. When that code is wrong, a refund can land on the statement as a new charge, doubling the cardholder's loss instead of reversing it. Visa also allows 12.2 when a credit was processed as a reversal or a reversal as a credit. The issuer does not need the cardholder to dispute the purchase itself, only to show the posted type is wrong.
Typical triggers for a 12.2 chargeback
-
A staff member keyed a refund on a terminal as a sale.
-
A custom integration sent a negative adjustment with the wrong transaction type.
-
A partial refund was processed as a new charge for the refund amount.
-
A void or reversal was attempted after settlement and posted as a credit instead.
Time limits for Visa 12.2
For processing error codes the issuer typically has 90 days from the processing date to raise the dispute. Your response window is set by your processor, often between 7 and 21 days. In Stripe the deadline appears as the evidence due date on the dispute. Missing it loses the dispute automatically.
Evidence that wins a 12.2 dispute
-
The original sale record with its transaction identifier, amount and date.
-
The refund or credit record showing it posted as a credit to the cardholder.
-
Processor reports that list both transactions with their types.
-
Proof that the disputed charge is a separate, legitimate sale and not a mistyped refund.
-
Order history and customer messages that show what the cardholder agreed to.
What to avoid when you respond
-
Do not issue another refund once the dispute is open, because the disputed amount is already withdrawn.
-
Do not submit only an order confirmation. The issuer needs to see the transaction type.
-
Do not leave out the related refund when it exists, even if it weakens a part of your case.
-
Do not accept a dispute you can win just because the code sounds technical.
How to prevent Visa 12.2 chargebacks
-
Process refunds through your processor's refund function against the original charge, never as a new negative sale.
-
Limit terminal refund permissions to trained staff.
-
Test custom integrations so credits and reversals use the correct API call.
-
Send the customer a refund confirmation with the amount and date.
How 12.2 appears in Stripe
Stripe processes refunds against the original charge, so mistyped transactions are rare on Stripe itself. When a 12.2 dispute does appear, Stripe usually shows it under the reason general, and the raw code sits in the network reason code field of the dispute (payment_method_details.card.network_reason_code). NoChargeback reads that field, finds any refund linked to the charge and attaches both records. See Stripe chargeback protection.
Rebuttal letter opening for Visa 12.2
We are responding to the dispute filed under Visa reason code 12.2. The disputed transaction was processed with the correct transaction code. It is a sale the cardholder authorized, and it is separate from the refund issued on the date shown, which posted to the cardholder account as a credit. Both transaction records are attached below.
Can a merchant win a Visa 12.2 chargeback?
Yes, when the transaction type was correct. Clear records of the sale and of any related refund, with their identifiers and posting types, usually settle the question.
What if the refund really posted as a sale?
Then the cardholder was charged in error and accepting the dispute is usually the right call. Fix the refund flow so it cannot happen again.
Is 12.2 the same as a credit not processed dispute?
No. Credit not processed means no refund arrived. Code 12.2 means a transaction arrived with the wrong type, such as a refund posted as a charge.