How does VEC retry a failed renewal charge?
A common assumption from users coming from other SaaS billing systems: "my renewal failed, the system will keep retrying for a few days." That is not how Valid Email Checker handles renewals. We attempt the renewal exactly once on the scheduled billing date. If it fails, the recovery path is manual — you pay the pending invoice when you are ready. The cron does not retry the card again on its own.
The one-attempt design
The renewal cron runs on schedule. For each subscription due, it makes one off-session charge attempt against the default card via the active processor (Stripe or Paddle). The outcome falls into one of three buckets:
- Success. The charge clears. The subscription stays Active, monthly bucket is replenished, next billing date moves forward 30 days. Done.
- Card failure. The charge declines. A pending invoice is created with a 7-day due date, the subscription flips to Past Due, and the invoice email is sent.
- No saved card / crypto preference. No charge attempt. A pending invoice is created instead, with the same 7-day due date.
Why there is no automatic retry
Once the pending invoice exists, the renewal cron explicitly skips that account on every subsequent run. The guard checks for any pending or overdue invoice tied to the user — if one exists, the cron does not attempt another card charge. The reasoning:
- Repeated failed charges on the same card raise fraud flags at the issuer side. After two or three failed attempts in a week, banks sometimes temporarily lock the card or escalate to a verification call.
- If the underlying problem is a hard one (expired card, closed account, address mismatch), retries cannot succeed — they just produce noise. The user needs to update the card before any retry has a chance.
- Customers should pick the moment of payment. Some want to pay immediately; others want to confirm fraud-block resolution with their bank first; others want to switch to crypto. A manual retry path gives them that control.
How users actually retry
The retry is literally you paying the pending invoice. The flow lives at how to pay a pending invoice manually. When you settle the invoice, the subscription reactivates immediately — Past Due flips back to Active, current_period_end resets to 30 days from the payment, the missed renewal is considered resolved. Any plan you had scheduled (downgrade pending) applies on this retroactive renewal.
If you would prefer auto-retry behaviour, the auto-refill feature has it — auto-refill retries up to 3 times on a 1h / 24h schedule, but that is a separate flow from subscription renewals. Subscriptions stay single-attempt by design.
Related questions
Still stuck? Email support
