What Visa reason code 12.3 means
The currency in the clearing record has to match the currency of the sale. If a customer checked out at a price in euros and the transaction cleared in US dollars, or the other way around, the amount on the statement differs from what they expected. Visa also uses 12.3 for Dynamic Currency Conversion problems, when the cardholder was not offered a choice between their home currency and the merchant's currency, or did not actively accept the conversion.
Typical triggers for a 12.3 chargeback
-
The storefront showed prices in one currency while the charge was created in another.
-
A multi currency checkout fell back to the default currency without telling the customer.
-
Dynamic Currency Conversion was applied automatically at a terminal or checkout.
-
A receipt did not show the currency, the exchange rate or the converted amount.
Time limits for Visa 12.3
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 and is often between 7 and 21 days. In Stripe the deadline appears as the evidence due date on the dispute. A missed deadline loses the dispute automatically.
Evidence that wins a 12.3 dispute
-
The checkout page or cart record showing the price and currency the customer saw.
-
The order confirmation email with the amount and currency code.
-
The charge record showing the same currency in the authorization and clearing.
-
For currency conversion, proof the cardholder was offered a choice and actively selected it, with the rate and converted amount shown.
-
Your terms that state the currency of sale.
What to avoid when you respond
-
Do not argue that the exchange rate was fair. The question is which currency was agreed.
-
Do not rely on a currency symbol alone, since several currencies share the dollar sign. Show the currency code.
-
Do not refund after the dispute is opened.
-
Do not ignore a real mismatch. If the charge used the wrong currency, accepting the dispute is cheaper than a lost response.
How to prevent Visa 12.3 chargebacks
-
Create each charge in the same currency the customer sees at checkout.
-
Show three letter currency codes on product pages, checkout and receipts.
-
Offer currency conversion only as an explicit choice with the rate visible, never as a default.
-
Use a statement descriptor customers recognize, so a currency surprise does not turn into a dispute.
How 12.3 appears in Stripe
Stripe usually shows Visa 12.3 under the reason general, and the raw network code is always in the network reason code field of the dispute (payment_method_details.card.network_reason_code). NoChargeback reads that field, pulls the charge currency and amount, and matches them with the order confirmation from your store. See Stripe chargeback protection and Shopify chargeback protection.
Rebuttal letter opening for Visa 12.3
We are responding to the dispute filed under Visa reason code 12.3. The cardholder placed the order with the price displayed in the currency shown on the attached checkout record, received an order confirmation in that same currency, and the transaction was authorized and cleared in that currency. No currency conversion was applied by the merchant.
Can a merchant win a Visa 12.3 chargeback?
Yes. When your checkout, confirmation and charge records all show the same currency, the issuer has no grounds for the dispute.
Does a bank exchange fee count as incorrect currency?
No. If the merchant charged in its stated currency and the issuer converted the amount, the conversion fee comes from the issuer, not from a processing error by the merchant.
What evidence matters for Dynamic Currency Conversion?
Proof the cardholder was offered their own currency and the merchant currency, saw the rate and amount, and chose the conversion. A receipt with those details is the key document.