1. Home
  2. Deposits For WooCommerce
  3. Auto-charging installments on Stripe

Auto-charging installments on Stripe

After requests from our customers, we have added a new feature on the Deposits plugin for customers who pay with Stripe. Earlier, for all three types of deposits (fixed amount, percentage and payment plans), the admin would have to manually send a reminder to the customers when the balance amount was due, who in turn would have to log in to the website and make the payment. 

With our new feature, we have automated the process. For any order where the deposit has been paid using Stripe as the payment medium, the customer’s card is auto-charged for the remaining balance on the due date. The process plays out differently when the ‘Default Deposit Type’ is set to Fixed Amount and Percentage, and differently when the ‘Default Deposit Type’ is set to Payment Plans.  

First, you have to ‘Enable Auto Payments in Stripe’. Go to WooCommerce –> Settings –> Products –> Deposits to do so.

You can choose to enable Deposits on either the whole order or individual products.

Deposit Settings

As you can see, you can choose the type of Deposit, the Default Deposit Amount and other things under the settings. The rest of the documentation will give you more details about each.

Fixed Amount and Percentage

When you set the Default Deposit Type to Fixed Amount or Percentage, it is up to the admin on when they decide to generate the second invoice. This is what happens.

First, the customer places the order on the shop.  

After the order is placed, the customer receives the following order details.


The admin will receive an email of the order confirmation. This order will be reflected on the WooCommerce dashboard under WooCommerce -> Orders. An email is also automatically sent to the customer, confirming their order. 

Once you click on the order, you will see that the first invoice is generated.

Parent Order

Order Details

Now, when the admin wants the Future Payment to be charged, they will click on the ‘Invoice Remaining Balance’. An order is generated for the remaining amount with the status Pending Payment. At this point an invoice is also created in Stripe in Draft mode.

A cron event is run hourly when the automated payments for remaining amounts is enabled. So once the admin has generated an order for the remaining amount, the cron event will open the invoice for payment in Stripe.

Once the cron is run, the invoice is opened for payment in Stripe. At this stage the invoice status changes from Draft to Scheduled. When the invoice is opened for payment, the customer receives an email confirming that their card will be charged for the remainder payment.

Once Stripe receives the payment (usually takes up to an hour), the invoice status changes from Scheduled to Paid.

Draft changes to Scheduled as shown below.  

Scheduled changes to Paid as shown below. 

After an invoice is marked as paid in Stripe, the order is marked as Complete in WooCommerce.

Completed Order

At the same time, the Stripe payment link is added to the order (making it easy for the admin to track the payments). Order notes are also added, stating the same.

When the Default Deposit Type is set to Payment Plans, the admin does not even need to generate the invoice manually. Orders are generated with the status Scheduled in WooCommerce and invoices are also generated in Draft mode automatically. On the date the payment for an invoice is due, it is opened for payment in Stripe by the plugin. No action is needed from the site admin in this process.

Card Failure

If for some reason, either because the customer has discontinued the Credit Card or it has stopped functioning or it has expired, the Stripe payment will be declined when it tried to auto charge. After that, Stripe tries auto collecting the payment for up to three times. Our plugin updates the order with notes on when the next payment is due. After that, the admin may have to reach out to the customer individually for next steps.

Was this article helpful to you? Yes No

How can we help?