Decline code
Call Issuer
Stripe declined this payment with an instruction for the cardholder to call their bank before the charge can go through. This code puts the next step in the cardholder's hands, not the merchant's. Stripe's official definition is: "the card was declined for an unknown reason." In practice, this code typically means the issuing bank wants to speak with the cardholder directly before allowing the charge, often tied to a security hold, a verification step, or something on the account that only the cardholder can clear by contacting the bank themselves. The merchant has no visibility into what specifically triggered the hold and no way to resolve it directly.
Why it happens
On recurring billing, `call_issuer` can surface for reasons like a bank's security system flagging the transaction for extra verification, a card that was recently reissued and needs a confirmation call, or an account-level hold the bank placed for reasons unrelated to this specific merchant at all. It's frustrating precisely because the fix sits entirely outside the merchant's control: only the cardholder, on the phone with their own bank, can typically clear it.
How to fix it
Not productively until the cardholder has actually contacted their bank. An automated retry with no change in circumstances will most likely hit the same hold again, since nothing about a repeated charge attempt satisfies whatever verification the bank is waiting on. The customer needs to be told, clearly, that their bank wants to hear from them directly. A vague "your payment failed, please update your card" message is the wrong message here, since updating the card won't help if the same bank places the same hold on the replacement. Be specific in the customer communication: their bank has asked them to call, and once they've done that, the charge (or a retry of it) should go through normally. Giving a specific, accurate explanation here tends to produce faster resolution than a generic dunning message would.
How Foxhound recovers it
This code has no dedicated bucket in the recovery engine's classification sets, so it fails closed rather than defaulting to a silent retry: no repeat charge runs against a code Foxhound cannot classify. Recovery goes straight to the same email sequence expired cards get, carrying the hosted card-update link, until this code earns its own bucket.
Questions
See what this looks like on your account
The free audit shows what Stripe already recovered and what is still dying, no signup required.
Run your free audit