Stripe · Decline codes
What does the Stripe security_violation decline code mean?
Checked
The Stripe decline code security_violation is listed by Stripe as a decline for an unknown reason; the customer needs to contact their card issuer for more information. The name suggests the bank's security checks refused the payment. It is not something the store can fix. Ask the shopper for another payment method, and don't keep retrying the same card.
- Type
- Hard decline
- Who declined
- The card's bank
- Retry
- No
- Shopper action
- Call the bank, or use another card
- Merchant action
- Offer other payment methods
- PlatformDTC renewal
- No retry; held past due with an update-card link
What PlatformDTC does
PlatformDTC never retries security_violation and does not route it to a backup processor at checkout. On renewals, on the fixed schedule or with Smart retry, it is held past due with no automatic retry, and the customer is sent a one-click update-card link, repeated up to 4 times per billing cycle at least 3 days apart. Its renewal engine also stops on Visa's raw code 63.
Why it happens
Stripe gives no detail beyond "unknown reason". Banks use security-related codes when an internal rule or check rejected the request.
What the shopper can do
Use a different card or wallet. To keep using this card, call your bank and ask why it was declined.
For developers
On Visa, raw network_decline_code 63 means "Security violation (source isn't correct issuer)"; Visa does not list 63 in a named category, so it falls in Category 4. On Mastercard, 63 also means security violation. PlatformDTC still treats raw 63 as a stop on renewals.
Frequently asked questions
- Does security_violation mean the shopper is a fraudster?
- No. Stripe does not give the reason. It can be a bank rule or check that the cardholder can clear with their bank.
- Can a retry fix security_violation?
- Unlikely. Ask for another payment method or have the cardholder contact their bank.
Sources
Related
- restricted_card — The card can't be used for this payment; it may have been reported lost or stolen.
- fraudulent — Stripe's fraud checks suspected the payment was fraudulent and blocked it.
- transaction_not_allowed — The bank declined; the card does not allow this type of transaction.
- do_not_honor — The bank declined the card without saying why.
- service_not_allowed — The card was declined for a reason the bank did not give.
- stolen_card — The card has been reported stolen. It can't be used again.
- stop_payment_order — The bank declined; the code's name points to a stop-payment order on the card.
- testmode_decline — A Stripe test card number was used in a real payment.