Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
Overview
Billing
OverviewAbout the Billing APIs
Subscriptions
Invoicing
    Overview
    How Invoicing works
    API quickstart
    Integrate with the API
    Invoicing without code
    Invoice lifecycle
    Preview invoices
    Edit invoices
    Schedule invoice finalization
    Status transitions and finalization
    Send customer emails
    Generate credit notes
    Invoice customers
    Customers
    Customer credit balance
    Customer tax IDs
    Invoice payments
    Hosted Invoice Page
    Create invoice payment plans
    Accept partial payments
    Payment methods for invoices
    Automated collections
    Invoice customization
    Customize invoices
    Invoice rendering templates
    Group invoice line items
    Summarize line items
    Global invoicing
    Best practices
    Multi-currency customers
    Other invoicing features
    Products and prices
    Manage bulk invoice line items
    Taxes
Usage-based billing
Quotes
Customer management
Billing with other products
Revenue recovery
Automations
Test your integration
Tax
Overview
Use Stripe tax
Manage compliance
Reporting
Overview
Select a report
Configure reports
Reports API
Reports for multiple accounts
Revenue recognition
Data
OverviewSchema
Custom reports
Data Pipeline
Data management
HomeRevenueInvoicing

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

Before you can charge a customer from the Dashboard, make sure they have a saved payment method.

  1. In the Dashboard, go to Billing > Invoices.
  2. Select an invoice with an open status.
  3. On the invoice details page, click Charge customer.
  4. In the Charge customer for invoice dialog, update the Amount. You can charge any amount less than or equal to the total of the remaining balance on the invoice.
  5. Click Charge customer.

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_invoice.

Partial payments aren’t supported for subscription invoices that are charged automatically. If you use the API, the collection_method is set to charge_automatically.

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_remaining 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 or paid 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, or uncollectible.

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_due 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_overpaid type.

Your integration can listen to the invoice.overpaid webhook to handle overpayments using a custom integration.

For example, to refund an overpayment:

  1. Listen for the invoice.overpaid webhook.
  2. Use the amount_overpaid field to determine the refund amount.
  3. 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.
  4. Adjust the customer’s balance and subtract the overpayment credit.
  5. Create a refund.

Issue a credit note

When you issue a credit note, Stripe attempts to reduce the invoice’s amount_remaining 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_payment_amount tells you how much you’ll use to reduce the invoice’s amount_remaining, and the post_payment_amount 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_amount, 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.
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Join our early access program.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc