Accept partial payments for invoices
Learn how to capture partial payments made on an invoice.
Most invoices are paid with a single payment. For larger invoices, you can accept multiple, smaller payments. You can use both the Dashboard and the API to accept partial payments.
Capture partial payments 
Partial payments for subscription invoices 
For invoices that Stripe send automatically after finalization, you can accept partial payments for active subscriptions. If you use the API, the collection_method is set to send_
.
Partial payments aren’t supported for subscription invoices that are charged automatically. If you use the API, the collection_
is set to charge_
.
The subscription lifecycle is mostly the same for subscription invoices with partial payments. However, invoices are considered paid only when they’re fully paid. If you use the API, this means amount_
is 0
and status=paid
.
Invoice payment statuses 
Each invoice payment has a status you can use to determine whether a payment has succeeded without having to fetch the associated PaymentIntent.
Some statuses also restrict the actions you can take:
- When an invoice has
open
orpaid
payments, you can’t void or edit the invoice. - When an invoice has
open
payments, you can’t mark it uncollectible.
If a payment fully pays the invoice, the status moves to paid
. The status for subscription invoices won’t change after a payment is applied.
You can change a payment’s status from open
to canceled
by canceling its associated PaymentIntent.
Track partially paid invoices 
You can check the status of invoices with partial payments on the Invoices page in the Dashboard. Add an Amount remaining column to display the remaining amount on the invoice.
After your customer partially pays an invoice, they see the remaining amount on the invoice and a partially paid
status in their customer portal.
You can take one of the following actions on an invoice with a partially paid
status:
- Send the invoice to a customer for payment.
- Change some elements of the invoice. To make more substantive changes, create a new invoice and void the old one.
- Change the invoice’s status to
paid
,void
, oruncollectible
.
For any invoice payments that aren’t made by the due date, the overdue
status takes precedence.
If you use the API, view the amounts_
and payments
fields for invoice status details.
Prevent invoice overpayment 
If an invoice has multiple open
payments, it’s possible to inadvertently overpay the invoice. You can avoid overpayment by canceling payments that you don’t need.
When an overpayment happens, Stripe automatically credits the excess funds to the customer’s credit balance. The balance transactions for these credits have an invoice_
type.
Your integration can listen to the invoice.overpaid webhook to handle overpayments using a custom integration.
For example, to refund an overpayment:
- Listen for the
invoice.
webhook.overpaid - Use the amount_overpaid field to determine the refund amount.
- Retrieve the customer’s invoice_credit_balance. If the customer’s balance is less than the refund amount, the overpayment isn’t refunded because it might be applied to another invoice.
- Adjust the customer’s balance and subtract the overpayment credit.
- Create a refund.
Issue a credit note 
When you issue a credit note, Stripe attempts to reduce the invoice’s amount_
based on the credit note’s amount
. If the credit note amount is greater than the invoice’s remaining amount, you must refund the excess to your customer.
You can preview a credit note to determine how much to refund to your customer. The pre_
tells you how much you’ll use to reduce the invoice’s amount_
, and the post_
tells you how much to refund to your customer.
Learn more about how credit notes work.
Refunds 
When you create a credit note with a refund_
, Stripe attempts to refund the invoice’s most recent payment. If you already issued a refund for that payment, or the refund amount exceeds the payment amount, the refund fails. To create a credit note in this situation, create the refunds separately and link them to the credit note using the refunds parameter.
Invoices with a refunded
status require no action on your part.
Limitations 
Be aware of the following limitations when using partial payments:
- The Stripe Connector for NetSuite doesn’t support partial payments.
- Your customers can’t pay a partial amount on the Hosted Invoice Page.