# Create invoice payment plans

Learn how to create payment plans for your Stripe invoices.

Invoice payment plans let you split an [invoice](https://docs.stripe.com/api/invoices/object.md) total into separate payments with different due dates. For example, you can collect a deposit followed by the remaining balance, or offer more favorable terms by dividing the amount due into smaller installments over time.

Stripe sends installment reminders and shows customers a history of past payments.

## Limitations

Payment plans have a few limitations. Make sure that the following limitations don’t conflict with your use case:

- Payment plans aren’t supported by Stripe Revenue Recognition or the Stripe Connector for NetSuite.
- Payment plans don’t auto-charge customers with saved payment details. Customers must return to the payment page to make subsequent payments. You can’t use them with `charge_automatically` invoices.
- For Connect users, application fees can’t be set on payment plan-enabled invoices. You can only set fees on PaymentIntents.
- Additional fields associated with payment plans aren’t available in Stripe Sigma.
- Some Billing Analytics charts (Top Subscribers) only register invoices that are fully paid. Other charts are unaffected.
- You can’t apply payment plans to subscription invoices.

# Dashboard


This guide shows how to set up and manage payment plans without any code using the [Dashboard](https://dashboard.stripe.com/test/dashboard).

## Create an invoice and add line item details

In the Dashboard, [create an Invoice](https://docs.stripe.com/invoicing/dashboard.md#create-invoice) and add relevant details such as the customer, desired line items, and their prices and quantities.
![Create an invoice with the Dashboard](https://b.stripecdn.com/docs-statics-srv/assets/invoice-payment-plans-create-invoice.0cd1dd40b3b842f9a0178a1bd99e854b.png)

Create an invoice with the Dashboard

## Enable the invoice to collect in multiple payments

After entering customer and line item details, select **Request in multiple payments** under **Payment collection** in the invoice editor to enable payment plans on the invoice.

By default, Stripe sets up a payment plan where the amount due is evenly divided into two payments due over 2 months.
![Enable multiple payments in the Dashboard](https://b.stripecdn.com/docs-statics-srv/assets/invoice-payment-plans-collect-multiple-payments.fded0e25f8a3536a467857b4f3b2941a.png)

Enable multiple payments in the Dashboard

## Configure individual payments and due dates

To customize the payment plan, click **Edit payment plans**. You can customize a payment plan in the following ways:

- **Payment frequency**: Choose **Weekly**, **Every 2 weeks**, **Monthly**, **Every 2 months**, **Every 6 months**, or **Custom**. The frequency sets the spacing between installment due dates.
- **Individual installments**: Each installment has a label, due date, and amount. You can add up to 50 installments with **+ Add installment**.
- **Amounts**: Toggle between fixed amounts (**$**) and percentages (**%**) with the selector above the amount column. When you set a value for one installment, the remaining installments redistribute evenly.
- **Labels**: Add a descriptive label to individual installments, such as “Deposit”. These labels appear on the invoice PDF and payment page.

Select **Split total evenly** to distribute the invoice total equally across all installments. The total across all installments must equal the invoice amount before you can save the plan.
![Configure the payment plan through the Dashboard](https://b.stripecdn.com/docs-statics-srv/assets/invoice-payment-plans-configure.7bb71aa54719ae893e3d4a9f2f083308.png)

Configure the payment plan through the Dashboard

## Finalize the invoice

After customizing the payment plan, you can finalize and send the invoice by clicking **Review invoice**. You can’t finalize an invoice if the amounts of the individual payments don’t add up to the total amount due on the invoice (for example, if line items changed after you set up the payment plan).


## Post-finalization actions on invoices

After you finalize an invoice, you can still update its payment plan through the API while the invoice is `open`. Update the payment plan to change the schedule or metadata without voiding the invoice and starting over. Schedule updates can change amounts and due dates for installments that are already paid, not only unpaid installments.

The schedule describes how to allocate the invoice balance, not an immutable record of individual payments. When installment amounts change, Stripe reapplies existing payments using first-in, first-out allocation. Earlier payments fill earlier installments before applying to later installments. Updating the schedule doesn’t collect another payment or refund an existing payment.

An installment that was previously `paid` can become `open` or `past_due` if its updated amount exceeds the payments allocated to it. Reducing an installment’s amount can move some of its allocated payments to later installments.

For example, if a customer has only paid a 1,000 USD deposit and you increase that installment to 1,500 USD, it has 500 USD left to collect. Its status depends on whether its due date has passed. Reduce later installments by a total of 500 USD so that the schedule still matches the invoice total. Review the returned `installments` array after each update instead of relying on previously stored amounts or statuses.

## Track installment payment status

Use the payment plan’s `installments` array to determine which payments are overdue. Each installment has its own `due_date`, `amount_due`, `amount_paid`, `amount_forgiven`, and `status`. An installment with an unpaid balance becomes `past_due` after its due date.

The invoice’s `status` describes the invoice lifecycle, not installment delinquency. An invoice can remain `open` even when every installment is `past_due`. Don’t wait for `invoice.status` to change to detect overdue installments. Likewise, don’t use the invoice’s top-level `due_date` as the installment schedule. Use the resolved due dates in `installments` for payment tracking and collection workflows.

## Reconcile payment plans with bank transfers

When you enable automatic reconciliation, Stripe can apply bank transfer funds to an invoice payment plan using the invoice number in the transfer reference or an amount match against the customer’s available cash balance. For amount matching, Stripe considers the invoice’s full remaining balance, the total of all past-due installments, or the total of all past-due installments plus the next unpaid installment.

Stripe applies reconciled funds to installments in order of their due dates. For example, an invoice has two installments: 400 USD due now and 600 USD due later. Without [automatic partial reconciliation](https://docs.stripe.com/invoicing/bank-transfer.md#partial-payments):

- 250 USD doesn’t fund the invoice
- 400 USD pays the first installment
- 500 USD pays the first installment, with the remaining 100 USD added to the customer’s cash balance

When you enable automatic partial reconciliation and the customer includes the invoice number in the transfer memo, Stripe can apply an eligible amount that doesn’t match one of those amounts. In the previous example, 250 USD partially funds the first installment, and 500 USD pays the first installment and applies 100 USD to the second installment.

Stripe considers remaining funds for other eligible invoices using the [automatic reconciliation order](https://docs.stripe.com/invoicing/bank-transfer.md#automatic-transfer-reconciliation). Unmatched funds remain in the customer’s cash balance. Your underpayment threshold only applies when the available funds can settle the invoice’s full remaining balance. It doesn’t reduce the amount required for an individual installment.

## Notifications

Stripe emails your customer about each installment using the reminder schedule in your [invoice reminder settings](https://dashboard.stripe.com/settings/billing/invoice). Payment plans use the same schedule as your other invoices, applied to each installment due date instead of the invoice due date. Changes to these settings affect both ordinary invoice reminders and payment plan installment reminders, even if the settings page doesn’t mention payment plans. Disabling **Invoice reminders** turns off installment reminder emails too.

Email reminders and the `payment_plan.installment_will_be_due` webhook have separate configurations. Enabling invoice reminder emails doesn’t configure the advance-due webhook. During private preview, confirm with your Stripe contact that the payment plan advance-due event lead time is configured for your account before testing this event.

## Listen for payment plan events

Stripe sends the following events for payment plans. Each event contains the full [PaymentPlan](https://docs.stripe.com/api/payment-plan/object.md) object, including its `installments` array, so you can read the status of every installment from a single event.

| Event | Stripe sends it when |
| --- | --- |
| `payment_plan.created` | You create a payment plan. |
| `payment_plan.updated` | You change a payment plan, including its schedule. |
| `payment_plan.installment_will_be_due` | An open installment reaches the configured number of days before its due date. Stripe doesn’t schedule this event if the account’s advance-due event lead time is unset or zero. |
| `payment_plan.installment_due` | An installment reaches its due date. |
| `payment_plan.installment_paid` | Your customer pays an installment. |

If a schedule change leaves an installment with nothing left to collect and no money moves, Stripe sends `payment_plan.updated` and doesn’t send `payment_plan.installment_paid`.

[Verify webhook signatures](https://docs.stripe.com/events/manage-webhook-endpoints.md#signature-errors) to confirm that events came from Stripe.

### Test installment due events

Use a [test clock](https://docs.stripe.com/billing/testing/test-clocks/api-advanced-usage.md) to test time-based payment plan events. Advancing time alone doesn’t enable `payment_plan.installment_will_be_due`. First confirm that your account has a positive advance-due event lead time configured.

1. Configure a test webhook endpoint to receive `payment_plan.installment_will_be_due` and `payment_plan.installment_due`.
2. Create a test clock and a customer associated with that clock. Create the invoice for that customer, add invoice items, and attach a payment plan with a future installment due date. You don’t need a subscription.
3. Finalize the invoice to schedule the events. Keep the installment unpaid, and choose a due date far enough in the future that the advance-due event time is still ahead of the clock’s current time.
4. Advance the clock to the installment’s due date minus the configured lead time. For example, with a 3-day lead time and an installment due 7 days after finalization, advance to 4 days after finalization. Wait for the clock to finish advancing, then check for `payment_plan.installment_will_be_due` at your webhook endpoint.
5. Advance to the installment’s due date and check for `payment_plan.installment_due`.

If the advance-due event doesn’t arrive, check the account’s event lead time, invoice finalization, installment status, and webhook endpoint’s selected events. Passing the due date doesn’t substitute for configuring the lead time before the events are scheduled.

## Disclaimer

By using invoice payment plans, you acknowledge the following:

- This feature isn’t a buy now, pay later service. Stripe isn’t responsible to you or your customer for failure to pay or failure to deliver goods or services. To enable buy now, pay later for B2C invoices, read our [buy now, pay later guide](https://docs.stripe.com/payments/buy-now-pay-later.md).
- Some payment methods, such as Affirm, Revolut Pay, and Afterpay, might have contractual or regulatory restrictions on their use in installment-based payment arrangements. Review your provider’s terms to confirm compliance before enabling payment plans for your customers.

### Australia

This feature isn’t intended to provide you or your customers with any form of credit or alter the price of a good or service. Neither you nor your customers are charged additional fees associated with payment plans.

### Japan

By reflecting a payment schedule, you can extend more flexible net terms or collect a deposit and allow a single invoice to be paid over multiple due dates.

If you provide a financial product or service, consult with your legal advisors regarding applicable restrictions and requirements before setting up invoices. Installment payments, lending, credit, and buy now, pay later services are subject to regulation in Japan, and you might need to register or obtain approvals before engaging in those services.
