Stripe partial refund on a paid invoice: how it shows on the invoice
Explains how Stripe partial refunds appear on paid invoices. Use when you refund part of a paid invoice and need to know what the customer sees and how the books record it. Not for full refunds or voiding unpaid invoices.
TL;DR
A partial refund on a paid invoice creates a refund object against the charge; the invoice stays paid with its original total, and the refund appears as a separate credit. The customer sees the original invoice plus a refund receipt, not an edited invoice. For the invoice to reflect the reduced amount in your books, issue a credit note alongside the refund.
Steps
- Issue the partial refund against the charge, specifying the exact amount.
Expected: Money returns to the customer; the refund object records it.
- Check the invoice: status stays paid, amount_paid unchanged, refund listed separately.
Expected: You confirm the invoice itself is not rewritten.
- If your books need the invoice netted down, create a credit note for the refunded amount.
Expected: Receivables reflect the true net.
- Send the customer both the original receipt and the refund confirmation.
Expected: The customer has a complete paper trail.
- Reconcile: refund amount plus credit note should tie to the bank payout adjustment.
Expected: Finance can close the loop.
When to use
- You refund part of a paid invoice
- The customer asks why the invoice still shows the full amount
- Books need the net amount reflected
When not to use
- You refund the full amount (simpler: full refund, invoice still shows paid)
- The invoice is unpaid (void or edit instead)
- You want to change the invoice total itself (invoices are immutable once paid)
Compatibility
Stripe Refunds API; credit notes on invoices. All SDKs and dashboard.
Variant phrasings
### Stripe partial refund invoice still shows paid
### refund part of invoice Stripe books
### credit note with partial refund
Root cause
Paid invoices are immutable financial records: rewriting the total would falsify the audit trail. Stripe models the refund as a separate money movement and offers credit notes as the accounting adjustment, keeping the original invoice intact as evidence of what was agreed and paid.
Edge cases
- Refunds can exceed the Stripe balance; they pull from your bank via the payout
- Partial refunds on invoices with tax need the credit note to carry the tax adjustment
- Disputed payments cannot be refunded until the dispute resolves; the flows conflict
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_NgqFqtQlKtmVFbCghQG9BQ
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.