Prepaid and virtual cards: how to detect them and reduce churn risk
Prepaid and single-use virtual cards often fail at renewal. How to detect them with Stripe's card funding field, why risk is higher, and what to do at signup.
Some cards are designed to work once, or only up to a set amount. That is a feature for the cardholder: it protects them from unwanted charges and forgotten trials. For a subscription business, it means the first payment succeeds and the renewal may not.
This article covers what prepaid and virtual cards are, what Stripe actually tells you about a card, why these cards carry more renewal risk, and what you can reasonably do at signup without turning away good customers.
The card types, briefly
| Type | What it is | Why it matters for renewals |
|---|---|---|
| Prepaid card | Loaded with a balance in advance | Renewal fails if the balance is not topped up |
| Single-use virtual card | A card number that works for one transaction | Designed to decline the next charge |
| Merchant-locked virtual card | A number that only works with one merchant | Can renew fine, but the customer can pause or close it at any time |
| Virtual card from a bank or neobank | A digital card linked to a regular account | Behaves mostly like a normal card |
| Regular debit or credit card | A physical or digital bank card | Standard renewal behavior |
Services such as Privacy.com describe single-use cards that close after the first transaction, merchant-locked cards, spending limits, and the ability to pause or close a card at any time. People use them precisely to control recurring charges. That is legitimate, and worth respecting in how you design your signup and billing.
What Stripe tells you about a card
The funding field
Every card PaymentMethod on Stripe has a card.funding field. According to the Stripe API reference, its possible values are credit, debit, prepaid and unknown. You get it without asking the customer anything.
You can read it right after the customer adds a card:
{
"id": "pm_123",
"type": "card",
"card": {
"brand": "visa",
"country": "US",
"funding": "prepaid",
"exp_month": 8,
"exp_year": 2028,
"last4": "4242",
"fingerprint": "Xt5EWLLDS7FJjR1c"
}
}
This is an illustrative, shortened object. Field values are made up.
A few things to keep in mind:
unknownmeans the network did not say. Do not treat it as prepaid.- The value depends on the card data Stripe receives. Treat it as a strong hint, not a guarantee.
- The same field is available as
:card_funding:in Stripe Radar rules, so you can review or block prepaid cards at payment time if you use Radar.
What Stripe does not tell you
As far as Stripe’s public API reference shows, there is no field that marks a card as virtual or single-use. A single-use virtual card may simply appear as a credit or debit card from its issuer. That means you cannot reliably detect disposable virtual cards from card data alone.
What you can use instead:
- Behavior over time. A card that is paused or closed shortly after the first charge will show up as declines on renewal. You learn from your own history which issuers and card types behave this way.
- The card
fingerprint. Stripe gives each card number a fingerprint, which you can use to check whether two customers are using the same card number. If the same fingerprint signs up for several free trials, you have a pattern worth looking at. A disposable card will produce a new fingerprint each time, which is also a pattern: many short-lived cards with no repeat use. - Card removal. A customer who deletes their only card soon before renewal is a signal, whatever the card type.
Why risk is higher
The reasons are mechanical, not moral:
- Prepaid balances run out. If the card holds exactly the first payment, the renewal declines with insufficient funds.
- Single-use cards stop working by design. The next charge is declined no matter when you retry.
- Customers can pause or close virtual cards at will. That makes canceling as easy as flipping a switch, without going through your cancel flow, so you never learn why they left.
- Retries do not help much. Retries work for temporary problems. A closed card is not temporary.
None of this means people using these cards are bad customers. Many are careful with money and simply want control. Some will happily keep paying if the value is clear and they trust you not to make cancellation hard.
We have not found a reliable public statistic for how much more often prepaid or virtual cards churn, and we would rather not make one up. Measure it in your own data: compare renewal failure rates by card.funding value over a few months.
What to do at signup
1. Measure before you act
Store the funding type (and the payment method type: card, wallet, bank debit) for every new subscription. After two or three renewal cycles, compare:
| Payment method group | New subscriptions | First renewal failed | Churned within 90 days |
|---|---|---|---|
| Credit | [your data] | [your data] | [your data] |
| Debit | [your data] | [your data] | [your data] |
| Prepaid | [your data] | [your data] | [your data] |
| Unknown | [your data] | [your data] | [your data] |
| Wallets / bank debit | [your data] | [your data] | [your data] |
If prepaid cards do not behave differently for you, there is nothing to fix.
2. Do not block by default
Blocking all prepaid cards turns away customers who would have paid, including people who do not have access to a credit card. Start with softer measures and only block if your data shows a clear problem, for example abuse of free trials.
3. Match the trial to the risk
The highest-risk combination is usually a free trial plus a card that will not work on day 31. Options:
- Ask for payment up front, with a refund window, instead of a free trial for higher-risk signups.
- Offer a shorter trial for prepaid cards.
- Offer the trial without a card, and ask for payment at conversion, when the customer has seen the value.
Whichever you choose, be transparent. Hidden rules feel unfair when customers notice them.
4. Offer better payment methods
Some customers will happily use a wallet (Apple Pay, Google Pay, Stripe Link) or a bank debit such as SEPA Direct Debit if you offer it. Make these options visible at checkout.
5. Communicate before renewal
For subscriptions on prepaid cards, a reminder a few days before renewal (“Your plan renews on [date] for [amount]”) gives the customer time to top up or switch cards. It also builds trust, which is the opposite of what people using these cards expect.
6. Make cancellation honest
People who use virtual cards to protect themselves from hard-to-cancel subscriptions will close the card if they cannot find the cancel button. A clear, one-click cancel option, ideally with a relevant offer first, keeps the conversation inside your product. See cancel flow best practices.
7. Use Radar rules carefully
If you use Stripe Radar and see real abuse, rules on :card_funding: can send prepaid cards to manual review or block them for specific products such as free trials. Review the results regularly so you do not block legitimate customers.
A signup checklist
-
card.fundingand payment method type are stored for every new subscription. - Renewal failure and 90-day churn are compared by payment method group.
- Trial rules are adjusted only where your data shows higher risk.
- Wallets and bank debits are offered at checkout.
- High-risk subscriptions get a reminder before the first renewal.
- Cancellation is easy and visible.
- Repeated fingerprints across free trials are reviewed.
- Customers who remove their card before renewal are flagged.
For the full failed payment process, see the complete guide to recovering failed payments on Stripe and what involuntary churn is and how to reduce it.
How NoChurn helps
NoChurn gives every new customer a churn score from 0 to 100 at signup. Payment method is one of the inputs: prepaid and disposable virtual cards start as high risk, neobank cards as medium, and Stripe Link, Apple Pay, Google Pay, bank cards and SEPA as low. Those levels are then learned from your own account’s history, so the score reflects how your customers actually behave. Signup source and any custom data you send also feed into it.
NoChurn also flags customers who remove their card before renewal and starts a save flow before the payment fails. It connects to Stripe in one click, and pricing depends only on MRR. See the churn score, custom data and pricing.