You try to pay for a subscription or a purchase, and Stripe returns do_not_honor, generic_decline, or insufficient_funds. These codes are not a verdict — they are a hint: sometimes the card issuer is responsible, sometimes the merchant's settings, and sometimes your balance. Below is what each means and how to act so repeated attempts don't make things worse.
Step 1. Understand what the code means
Stripe passes along the decline code from the card issuer. The three most common:
- do_not_honor — the issuer declined the transaction without specifying a reason. Often triggered by fraud prevention or restrictions on the type of operation (e.g., recurring payment or foreign merchant).
- generic_decline — a general decline. The bank doesn't provide details; the cause could be anything from a limit to mismatched data.
- insufficient_funds — not enough funds in the account (including a possible hold for verification).
If you're paying with a virtual card, first check the balance and limits in the issuer's app. For VirtCardPay, as with other services, check the website for limits and terms — numbers change.
Step 2. Verify your details and settings
Before retrying the payment, check:
- Whether the cardholder name, expiry date, and CVV match what's on the card.
- Whether your issuer supports recurring payments (if you're setting up a subscription).
- Whether the daily or monthly limit on the card has been reached.
- Whether you have enough funds with a buffer: some merchants temporarily hold a larger amount for verification.
- Whether the merchant accepts cards from your payment region (Visa/Mastercard, issuer country).
Step 3. Act based on the code
do_not_honor
Contact your card issuer's support and ask whether the bank is blocking the transaction. If it's a virtual card, check that online payments and cross-border payments are enabled. Sometimes changing the amount or currency helps if the merchant allows it. Don't make more than 2–3 attempts in a row: frequent declines can lead to a temporary card block.
generic_decline
Check whether the card has expired and whether the limit has been exceeded. Try placing the order again after some time. If the decline repeats, ask your issuer for information about the cause — sometimes the bank sees more than Stripe shows.
insufficient_funds
Top up your balance with a buffer (e.g., 10–20% more than the amount). Keep in mind that some services hold an amount for card verification — it will be returned, but you need enough funds in the balance.
Table: what to check on decline
| Code | Likely cause | What to do |
|---|---|---|
| do_not_honor | Bank fraud prevention, restriction on operation type | Contact issuer support, check card settings |
| generic_decline | General decline: limit, data, expiry | Verify details, check limits, retry later |
| insufficient_funds | Not enough funds | Top up balance with a buffer |
If the payment didn't go through: common mistakes
- Many repeated attempts in a row. This increases the risk of blocking the card and the merchant.
- Ignoring limits. Even with sufficient balance, the daily limit may be exhausted.
- Incorrect cardholder details. Check how the name is written on the card: first/last name order, transliteration.
- Trying to pay at a merchant that doesn't accept cards from your region. Check the merchant's website for accepted cards.
FAQ
Can I find out the exact reason for the decline?
Stripe shows the code passed by the bank. Often only the issuer knows the exact reason — contact support.
How many times can I retry the payment?
It's recommended to make no more than 2–3 attempts, then pause and contact support. Frequent declines can lead to a temporary block.
What if the balance is sufficient but the payment still fails?
Check the card limits and settings, and whether the merchant accepts cards from your region. If the problem persists, contact your issuer.
Service names are the property of their respective owners and are mentioned only to describe the payment scenario; VirtCardPay is not affiliated with them.
Payment guides
- What to Do If You Are Charged Twice for One Transaction
- How to Withdraw Funds from Your Card Back to USDT
- Apple TV+ Price Hike: What It Means for Subscribers and How to Save
A virtual card in 2 minutes
Pay for subscriptions, AI tools, travel, and international stores. Top up with USDT or TON.