# Stripe: lost_card and stolen_card declines

> Stripe declined the card as lost_card or stolen_card. Show the customer a generic decline, never the reason, and don’t retry the same card.

Canonical: https://app369.com/fix/stripe-lost-card-stolen-card/
Last updated: 2026-11-09

lost_card and stolen_card are Stripe decline codes for a card the bank has reported lost or stolen. Stripe says not to tell the customer the reason: show the same message as a generic decline. Never retry that card.

**Short answer**

Show a generic “Your card was declined” message and ask for another payment method. Don’t reveal the lost or stolen reason, and don’t retry the card. Log the decline code for your own review, and check whether the account shows other signs of card testing.

Rather not fix it yourself? [**Stripe Billing Fix and Setup**](https://app369.com/fixed-price/stripe-billing-setup/) handles it at a fixed price, agreed before work starts.

## **What the codes mean, and the fix**

1. 01 ### **The bank reported the card lost**
  > “The payment was declined because the card is reported lost.” [**Stripe, Decline codes (lost_card)**](https://docs.stripe.com/declines/codes) The cardholder reported the card lost, or the bank flagged it. The person paying may be the owner using an old card, or someone else.
2. 02 ### **The message shows the real reason**
  > “Don’t report more detailed information to your customer. Instead, present it in the same manner as generic_decline.” [**Stripe, Decline codes (stolen_card)**](https://docs.stripe.com/declines/codes) Telling a fraudster that a card is flagged helps them test other cards. Use exactly the same text you show for generic_decline, and keep the real code in your server logs. Never send decline_code or the raw Stripe message to the browser.```
// server side: log the real code, send one generic message
const GENERIC = 'Your card was declined. Please try another payment method.';

function declineMessage(err) {
  console.warn('decline', err.decline_code); // server logs only
  return GENERIC; // same text for lost_card, stolen_card and generic_decline
}
```
3. 03 ### **Retrying the card** Retrying a card the bank has reported lost or stolen is unlikely to succeed and adds failed attempts. For a subscription, stop retrying that card and ask the customer to add a new one.
4. 04 ### **Many declines in a short time** A run of lost, stolen or generic declines from new accounts can be card testing. Add rate limits on payment attempts per account and per IP, add CAPTCHA to checkout, turn on Radar rules for card testing, and review the payments in the Dashboard.

Checked against the vendor’s docs on November 9, 2026: [Stripe docs: Decline codes](https://docs.stripe.com/declines/codes).

## **Rather hand it over?**

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

- [$950**Stripe Billing Fix and Setup**Subscriptions, webhooks, customer portal and failed payments set up or fixed, tested in Stripe test mode.**See scope and start**](https://app369.com/fixed-price/stripe-billing-setup/)
- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)
- [from $450**AI-Built App Rescue**A Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.****No issues worth fixing, no charge.**** If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.**See scope and start**](https://app369.com/fixed-price/ai-app-rescue/)

[**All 127 Fiverr reviews**](https://app369.com/reviews/)

Related: [**Stripe generic_decline**](https://app369.com/fix/stripe-card-declined-generic-decline/) · [**Stripe do_not_honor**](https://app369.com/fix/stripe-do-not-honor/) · [**Stripe incorrect_zip**](https://app369.com/fix/stripe-incorrect-zip/) · [**Stripe fraudulent decline**](https://app369.com/fix/stripe-card-declined-fraudulent/)

Questions

## **More on this error**

<details>

<summary>**Should I block the customer? **+</summary>

Not on one decline: an honest customer can use an old card. Watch for repeated declines on one account and act on the pattern.

</details>

<details>

<summary>**What is lost_or_stolen_card? **+</summary>

The same reason, reported by some payment partners under one code. Stripe says to present it as partner_generic_decline, the generic decline for that payment partner.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.

</details>

A different error?

## **Describe it and get a written quote**

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)