transaction_not_allowed: what this Stripe decline code means and which two fixes exist
lane: request_updatetransaction_not_allowedThe card was declined for an unknown reason. Stripe's suggested next step is for the customer to contact their card issuer for more information.
What it means
The name and the docs disagree, and the disagreement is informative. Stripe's table describes transaction_not_allowed only as a decline for an unknown reason, the same sentence it uses for do_not_honor. The name carries the extra meaning: in the network response vocabulary this family says the transaction is not permitted, with response code 57 as the cardholder-side version, and issuers reach for it when the card exists and works but is not allowed to do the particular thing you asked. outcome.network_decline_code on the Charge holds what your issuer sent, if you want to check.
What not allowed covers is capability. Some debit products ship with card-not-present payments switched off; Stripe's support pages call out Malaysia-issued debit cards as needing online payments activated, and they are not the only example. Some cards permit one-off purchases and refuse stored recurring charges. Some are locked to their home country or to merchant categories. How a given restriction surfaces varies by issuer, and a few arrive as do_not_honor or card_not_supported instead. The pattern to recognise is a card that works at the supermarket and fails at your renewal, and a customer telling you the card is fine. They are right. It is true and irrelevant to your channel.
The block is configuration, which is why time doesn't help. Nothing about waiting flips a setting. It clears when the bank or the cardholder changes the configuration, or when a card that already allows the transaction type replaces this one, and those are the two fixes the customer can choose between.
Why it happens
Online payments switched off
Some debit products ship with card-not-present payments disabled, and Stripe's support pages call out Malaysia-issued debit cards as needing online payments activated. The customer may never have used the card online before your renewal tried to.
Recurring charges refused
Some cards and issuers permit one-off purchases while refusing stored recurring charges. The first payment can succeed on-session and the renewals fail, which looks like a mystery until the capability split is visible.
Cross-border blocks
Cards restricted to domestic use decline charges from a merchant whose Stripe entity sits in another country. Stripe's decline docs note that cards used across borders see more declines generally, and this code is one of the shapes that takes.
Category restrictions
Cards restricted by business type, the way FSA and HSA debit cards are limited to eligible categories, refuse everything outside them. Which code a category block surfaces as varies by issuer.
Corporate controls
Company cards locked by an administrator to categories, merchants or regions decline anything outside the policy. The cardholder often doesn't know the policy exists until your charge finds its edge.
Common mistakes
Retrying the identical ask
The block is a setting, and the same charge meets the same setting. Attempts change nothing and accumulate on a card whose issuer has already answered the question structurally.
Telling the customer the card is broken
It isn't, and they know it isn't, because it works everywhere they use it. There is a problem with your card earns an indignant reply; the accurate message names the capability: their bank does not allow this type of charge on that card.
Hiding the cheaper fix
This decline has two real fixes, asking the bank to enable the transaction type or supplying a card that allows it, and an email that only says update your payment method hides the first one. Customers attached to their card will call the bank if they are told that is an option.
How Lirova handles it
Lirova routes transaction_not_allowed to request_update: zero retries, and an email to the customer. If you expected stop, the surprise is reasonable, and the resolution is that the two lanes schedule the same number of retries, none, and differ only in what the customer is told. This code earns the message because there is something true and useful to say: the bank is refusing this type of charge on that card, and the customer can either have the bank switch the capability on or supply a card that already allows it. That is more than can be said for most hard declines, so we say it. An advice code from the issuer, if one arrives, outranks the lane here as everywhere.
FAQ
What does transaction_not_allowed mean?
The card is not permitted to make this type of transaction, even though the card itself usually works. Stripe's own table describes it only as a decline for an unknown reason, so the name and the raw network code carry the extra meaning, and outcome.network_decline_code holds what the network sent.
Should I retry a transaction_not_allowed decline?
No. The block is configuration, so the same request meets the same setting. The change has to come from the bank, from the cardholder's own settings, or from a card that already allows the transaction type.
Why does the card work in shops but fail on my subscription?
Capability is split by channel. A card can allow purchases at a terminal while having card-not-present or recurring charges switched off, which is common on some debit products. The customer's evidence that the card works is true and irrelevant to your channel.
What should I tell the customer?
The specific thing: their bank does not allow this type of charge on that card. Then name both fixes, asking the bank to enable it or using a card that allows it, because one of the two lets them keep the card they prefer.
Is transaction_not_allowed the same as do_not_honor?
They overlap in practice, because some issuers report cardholder controls as one and some as the other. The difference is aim: do_not_honor could mean anything at all, while transaction_not_allowed points at capability rather than funds, fraud or validity.
Related codes
Updated 2026-09-01