Public preview
Adds the ability to detach a PaymentIntent from an Invoice Public preview
What’s new
You can now detach a PaymentIntent from an Invoice using the new detach payment API method. When you detach a payment from an invoice, the PaymentIntent becomes available for use with other invoices or payment flows, and the invoice returns to an unpaid state.
When you detach a payment, Stripe generates an invoice_payment.detached event.
Impact
You can now detach a payment from an invoice, allowing you to reopen paid invoices. This provides more flexibility in managing payment and reconciliation flows.
Detaching a payment reopens an invoice if it creates an unpaid balance, transitioning the invoice’s status from paid to open. Stripe automatically generates a new default PaymentIntent for the remaining amount.
Changes
| Endpoint | Change | Resource |
|---|---|---|
| detach_payment | Added | Invoice |
| Change | Event type | |
| invoice_payment. detached | Added | InvoicePayment |
Upgrade
- View your current API version in Workbench.
- If you use an SDK, upgrade to the corresponding SDK version for this API version.
- If you don’t use an SDK, update your API requests to include Stripe-Version: 2026-01-28. preview
- Upgrade the API version used for webhook endpoints .
- Test your integration against the new version.
- If you use Connect, test your Connect integration .
- In Workbench, perform the upgrade . You can roll back the version for 72 hours.
Learn more about Stripe API upgrades.
