Tip from SmartRetry Never immediately replay the authorization payload on a Code 21, as ambiguous transaction states create a high risk of duplicate charges. Instead, pause execution and trigger an automated status-lookup query first, retrying only after confirming no open authorization exists on the issuer side.
Visa
Visa Issuer Response Code 21: No Action Taken
Last updated: September 25, 2026
About 21 - "No action taken"
Key details
- 21
- Issuer Response Codes
- 21
- No action taken
What it means
Visa response code 21 signifies that 'No action taken' was performed by the network or issuer. While it can appear as a generic unknown decline reason, processor documentation often maps this to scenarios where an attempt to undo or back out a prior transaction (such as a reversal or void) could not be completed. It indicates an ambiguous transaction state rather than a standard lack of funds or hard fraud decline.
Classification & retryability
Do not blindly retry this code. Before reattempting, reconcile the original authorization, capture, or reversal records using the processor transaction ID and idempotency key to confirm the actual state of the prior request. If the transaction legitimately failed and is not pending, a single controlled reauthorization may be attempted, though success is not guaranteed.
Why does code 21 occur?
- An attempt to reverse, void, or back out a prior transaction could not be completed by the payment network or issuing bank.
- The issuer returned an unmapped or ambiguous network response that the processor defaulted to code 21.
- The transaction state is currently out of sync between the merchant gateway, the processor, and the issuing bank.
How to solve 21?
Reconcile the original authorization, capture, and reversal records using the processor transaction ID, retrieval reference number, timestamps, and idempotency key to confirm whether the prior request is pending or failed. If you are attempting to reverse a transaction, verify if the transaction was already settled or previously voided. For standard payment attempts returning this code, check the full gateway response for additional processor-specific context. If the transaction remains unmatched or stuck, escalate the identifiers to your acquirer or processor for review.
Solving as a merchant
Halt automated retry logic to prevent duplicate authorizations or leaving the original transaction unresolved. Cross-reference your internal logs with the processor's records to identify if this code was triggered by a failed reversal or a generic unknown decline. Escalate to your payment processor's support team if the original transaction status cannot be firmly verified.
Solving as a customer
Wait while the merchant investigates the true status of the transaction. If the merchant confirms the payment failed and cannot be reprocessed, contact the card issuing bank for more information or provide an alternative payment method.
Frequently asked questions about this topic
Author
Kyle Regacho
Focused on payment recovery, decline codes, and authorization optimization at SmartRetry. Helps payment teams turn failed transactions into recovered revenue
Read all articles >Articles you may find interesting:
View all
Turning Payment Declines into Revenue with Context-Aware Retry Logic
Blind retries waste fees and damage issuer trust. By analyzing decline codes and timing reattempts around payroll cycles, payment teams can successfully salvage recurring revenue without customer disruption.

Why Payments Fail: Decoding Decline Codes and Modernizing Retry Logic
Surface-level decline messages conceal critical issuer signals. Discover how intelligent retries, network tokens, and behavioral timing protect MID health and systematically recover lost recurring revenue.

Decoding Payment Declines: Turning Authorization Failures into Recovered Revenue
Blindly retrying failed transactions hurts authorization rates and risks network fines. Discover how decoding issuer responses turns card declines into recovered revenue.

The Real Cost of Payment Declines and How to Recover Lost Revenue
Payment failures cost merchants billions in uncaptured revenue and customer churn. Discover how data-driven retries and response code intelligence help teams recover failed transactions and protect conversion.