Invalid Expiry Year
What This Means
The expiration year provided is not valid, typically because it is in the past or an unrealistic future date. This checkout-time error indicates the customer entered incorrect expiration details. SaaS businesses should validate expiry dates client-side.
Retrying will likely fail again. The customer needs to update their payment method or contact their bank.
Common Causes
- 1Customer entered a year that has already passed
- 2Customer transposed the month and year values
- 3Customer entered a two-digit year where a four-digit year was expected or vice versa
Recovery Tactics
- 1Use Stripe Elements which validates the full expiry date automatically
- 2Add client-side validation that rejects past dates and unrealistic future dates
- 3Display a helpful error message suggesting the customer check their physical card
How healthy is your Stripe account?
Get a free churn health report. Find pending cancellations, failed payments, and expiring cards putting your MRR at risk.
Run Free AuditRelated Decline Codes
FAQ
What year range should I accept?
Accept the current year through 20 years in the future. Cards typically have a 3-5 year validity, but there is no harm in accepting a wider range since Stripe will validate against the card network.
Should I use a two-digit or four-digit year input?
Two-digit year inputs (e.g., 27 for 2027) are the standard convention on physical cards and in most checkout forms. Stripe Elements uses this format by default.
How healthy is your Stripe account?
Get a free churn health report. Find pending cancellations, failed payments, and expiring cards putting your MRR at risk.
Run Free Audit