Stripe card_velocity_exceeded Error — Causes, Fix & MRR Impact
The Stripe card_velocity_exceeded error occurs when the customer has exceeded the card's balance, credit limit, or transaction limit, causing the issuer to decline and potential MRR loss for SaaS businesses processing subscription payments.
What this means
The card's balance, credit limit, or transaction limit was exceeded. The customer may need to pay down the card, wait for limits to reset, or use another payment method.
Why it happens
Credit limit reached
The customer's credit card is at or over its credit limit, so the issuer declined the new charge.
Transaction or velocity limit
The issuer enforces a per-transaction or per-day limit that was exceeded.
Balance over limit
For debit or prepaid cards, the available balance was exceeded by the charge amount.
Multiple charges in short period
Several charges in a short time triggered the issuer's velocity or fraud controls.
MRR Impact
Limit and velocity declines reduce MRR; retries with backoff and offering an alternative payment method can recover some revenue.
Velocity and limit declines are common; retries and alternative payment options help protect MRR.
Avg. recovery rate: Variable; retries and dunning help; recovery improves when customer adds another card or resolves with bank.
Urgency: within 24hHow to fix it
- 1
Handle decline_code in webhook or response
When decline_code is card_velocity_exceeded, trigger retry logic with backoff and optionally send a dunning email asking the customer to ensure funds or use another card.
- 2
Implement retries with backoff
Retry the payment after a delay (e.g. 24–72 hours). Use Stripe's smart retry or your own schedule. Do not retry immediately; limits often reset daily or per cycle.
- 3
Prompt for alternative payment method
In-app or email: suggest adding another card or payment method so the subscription can be charged even if one card is at its limit.
- 4
Avoid exposing internal reason
You can show a message like 'Your card was declined. Please try another card or contact your bank.' Do not need to mention velocity or limit explicitly.
- 5
Monitor and tune retry schedule
Track recovery rate for card_velocity_exceeded. Adjust retry timing and dunning frequency based on what works for your cohort.
Detect card_velocity_exceeded automatically
Track card_velocity_exceeded volume; correlate with billing cycles or plan changes. Compare recovery vs insufficient_funds.
Monitor your Stripe health free →FAQ
What is Stripe card_velocity_exceeded?
Should I retry card_velocity_exceeded?
How does card_velocity_exceeded differ from insufficient_funds?
Does this affect SaaS MRR?
Related errors
The Stripe insufficient_funds error occurs when the card or account has insufficient available balance to complete the charge, causing failed renewals and lost MRR for SaaS businesses processing subscription payments.
Affects MRRgeneric_declineThe Stripe generic_decline error occurs when the card is declined for an unspecified reason or blocked by Stripe Radar or Adaptive Acceptance, causing failed charges and MRR risk for SaaS businesses processing subscription payments.
Affects MRR