Stripe payment links let you sell anything without building a checkout page. You generate a URL, share it, and collect money. Simple. But buried in the link settings is an expiration option most operators never touch—and that’s a mistake.
Payment link expiration does two things: it creates urgency for time-sensitive offers, and it prevents confusion when pricing or terms change. Set correctly, it can lift conversions. Set carelessly, it kills them.
How payment link expiration works
When you create a Stripe payment link, you can set an expiration date and time. After that point, the link returns a message telling the buyer it’s no longer available. The product, price, and subscription settings remain unchanged in your Stripe dashboard—only the link stops working.
Stripe gives you three expiration options:
- No expiration — the link works indefinitely
- After a specific date and time — you pick an exact cutoff
- After a certain number of uses — the link deactivates after X successful payments
The third option is rarely useful unless you’re selling a fixed number of spots (a cohort course, a live workshop, a limited consulting package). The first two are where most operators make their choice—and where most get it wrong.
When to set an expiration date
Use expiration when the offer itself has a deadline. Launch pricing that ends Friday. Early-bird tickets for an event. A discount code you’re running for 72 hours. A beta program with a cap on participants.
In these cases, expiration reinforces the urgency you’re already creating in your messaging. If your email says “price goes up Sunday at midnight,” the payment link should expire Sunday at 11:59 PM in your time zone. Otherwise, someone who bookmarks the link can return three weeks later and pay the old price—or worse, pay the old price for a product that no longer matches the description.
Expiration also prevents billing confusion. If you raise your subscription price from $15 to $25 per month, every old payment link still floating around the internet will charge $15. Someone clicking a six-month-old tweet can subscribe at the wrong price, and you won’t know until you audit your transactions. Setting expiration on price-change announcements cleans this up automatically.
When NOT to set expiration
If the offer is evergreen, don’t add artificial urgency by setting a deadline you don’t intend to honor. Operators sometimes set a 30-day expiration “just in case,” then regenerate the same link with a new expiration date when it runs out. This creates busywork and breaks inbound links.
Permanent products—courses, memberships, one-time purchases with stable pricing—should use non-expiring links. You can always deactivate a link manually in Stripe if you need to pull it, but starting with an arbitrary countdown adds friction without benefit.
The exception: if you’re testing messaging or pricing and want to force yourself to revisit the offer in 90 days, expiration can act as a forcing function. Just be clear with yourself that it’s an internal deadline, not a customer-facing one.
The non-obvious tactic: expiration as a segmentation signal
Here’s a use case most operators miss. If you send the same payment link to two audiences—your email list and a Reddit post—you can’t tell which source drove the sale unless you use UTM parameters or create separate links.
Creating separate links with different expiration dates lets you segment behavior without touching your analytics stack. Send a 48-hour expiring link to your email list and a 7-day expiring link to social. When you check Stripe’s payment link analytics, you’ll see which link performed and when it stopped converting.
This isn’t a replacement for proper attribution tracking, but it works when you need a quick answer and don’t want to spin up a Zapier flow or tag every URL.
A few operational notes
Stripe doesn’t send you a notification when a payment link expires. If you set a date, add a calendar reminder to check performance and decide whether to extend, replace, or retire the offer.
Expired links return a generic Stripe error page. You can’t customize the message, so if you want to redirect visitors somewhere else—an updated offer, a waitlist, an apology—you’ll need to remove the old link from circulation and replace it with a redirect or new page. Don’t rely on the Stripe expiration page to do marketing work for you.
Finally, expiration applies to the link, not the product. If someone starts a checkout session before expiration and completes it five minutes after, Stripe still processes the payment. The cutoff happens at the moment someone clicks, not when they submit payment details.
Set expiration when the offer has a real deadline. Skip it when the product is evergreen. And if you’re testing, use expiration to force a review date instead of letting old links quietly underperform.
Want more tactical breakdowns like this? Subscribe to One Two Three Send—one article every day, no fluff, no filler.
