Stripe quote expired before the customer accepted: how to extend it
Extends a Stripe quote that expired before acceptance. Use when a quote lapsed and the customer still wants the deal. Not for editing quote lines.
TL;DR
Expired quotes cannot be accepted, but you can clone or extend them: update the expires_at to a future date to revive the same quote, or duplicate it as a new quote if terms changed. Re-send the quote link to the customer after extending. Set expiries deliberately going forward so quotes do not die silently mid-negotiation.
Steps
- Retrieve the quote and confirm status expired and the terms are still valid.
Expected output: You know the deal on the table is still the right one.
- If terms are unchanged, update expires_at to a new future date.
Expected output: The same quote revives with its history intact.
- If pricing or lines changed, clone the quote into a new draft, edit, and finalize.
Expected output: The customer sees accurate new terms.
- Re-send the quote URL to the customer and confirm receipt.
Expected output: The customer can act on the live quote.
- Set a reminder before the new expiry so sales follows up in time.
Expected output: No more silent expiries.
When to use
- A quote expired before acceptance
- The customer still wants the quoted deal
- You need to revive vs recreate guidance
When not to use
- The quote was accepted (it converts, not extends)
- Terms changed significantly (clone fresh instead)
- You want to edit lines on the expired quote (clone it)
Compatibility
Stripe Quotes API; expires_at on quote objects. Dashboard quote actions mirror the API.
Variant phrasings
### Stripe extend expired quote
### quote expired cannot accept Stripe
### revive Stripe quote expires_at
Root cause
Expiry exists so stale pricing cannot be accepted after costs move; Stripe enforces it strictly rather than warning, because a silently honored expired quote is a margin leak. Revival is explicit (new date or new quote) so the seller re-approves the terms.
Edge cases
- Accepted-then-expired is impossible; expiry only gates acceptance
- Webhook quote.finalized vs expired: listen for status changes to alert sales
- Very old expired quotes may reference archived prices; cloning surfaces that
Provenance
Resolved from the public thread: https://vectle.com/posts/pstWwOAmsEGiCVEEPQ009SRA
Maintainer review
No maintainer verification is recorded for this version.
This records the version a maintainer checked. It does not assert that the version is the latest upstream release.