How to take a deposit and partial payments with Stripe on PrestaShop

A customer hesitates over a large order: a deposit at checkout and the balance later, or equal instalments collected by Stripe, change the decision. Here are the rules, the steps and what happens when a payment fails or when the licence expires.

Comment encaisser un acompte et des paiements partiels avec Stripe

A customer looks at a made-to-measure table, a pre-order or a trip, then closes the page: paying the whole amount today is too much. Stripe deposits and partial payments lets them pay part of the order now, then the balance or equal instalments, collected on your own Stripe account. You will see when the plan helps, how to set it up in the back office, and what happens when a charge fails or when the licence runs out.

How do deposits and payment instalments work?

A deposit is a share of the price paid with the order, the rest being due later; an instalment plan splits the same amount into equal payments, with no interest and no fees.

In the module, each rule picks one of the two formulas. The deposit is set as a percentage of the price, for example 30 %, or as a fixed amount per unit. The balance becomes due in one of three ways.

  • A number of days after the order, for example 30 days.
  • On a fixed date, useful for a pre-order with a known delivery date.
  • When the order reaches a chosen state, for example “Ready to ship”.

A rule can also offer 2 to 12 equal payments, spaced by a number of days or months. The first is paid with the order and absorbs the rounding difference so the total is exact. The plan appears on the product page, then in the cart with shipping, in your store’s price and date formats. The module page shows the result.

Why offer partial payments on a PrestaShop store?

Because a large cart closes more easily when the customer does not have to pay the whole sum on the same day, and because the money stays on your Stripe account, with no credit intermediary.

The module is aimed at expensive products, made-to-measure work, pre-orders, travel and services. The customer sees the plan before ordering, gets a schedule in their account and e-mails at each step. You follow the amounts left to collect and the late ones from a single page.

A concrete case. A workshop sells made-to-measure tables. Its rule asks for a 30 % deposit with the order, with the balance due when the order reaches the “Ready to ship” state. The wood is ordered with the deposit, then the balance is charged to the saved card when the workshop changes the state, with no manual reminder. If the card is refused, the customer receives a payment link and the module retries the charge after the delay set in the settings.

Who is the module for, and who is it not for?

It is meant for a merchant who already sells through Stripe, with HTTPS and a scheduled task; it does not suit a store without a Stripe account or one looking for a credit product.

The module involves no credit institution: you grant the schedule yourself, collected on your Stripe account. It never refunds a payment on its own: a refund is decided in Stripe or from the schedule screen. It does not replace PayPal or a direct debit mandate managed by your bank; to collect on a SumUp account, SumUp payments is a separate module. Without a scheduled task, no reminder is sent and no automatic charge runs. For a customer credit line with a limit, look at B2B payment terms instead.

Legal point. A deferred payment may fall under consumer credit rules, depending on its length and your country. In the European Union, from 20 November 2026, Directive (EU) 2023/2225 governs this deferred payment. It exempts a payment without interest or fees granted by the seller only when it is settled within 50 days of delivery, or within 14 days if your company is not an SME. By default, the module refuses schedules whose last payment falls more than 50 days after the order. Change that duration only after checking the law that applies to your store.

How do I install the module and connect Stripe?

Install the ZIP from the Module Manager, activate the licence, then enter the Stripe test key, the webhook and the scheduled task before creating your first rule.

  1. In the back office, open Modules > Module Manager, click Upload a module and select the ZIP file. PrestaShop installs the module and its order states.
  2. Click Configure, enter the License Key and the License Secret, then click Activate License.
  3. In Settings > Stripe account, choose Test mode, paste your test secret key and click Test the connection.
  4. In Stripe, open Developers > Webhooks > Add an endpoint, paste the address copied from the settings, select the nine listed events, then paste the signing secret in the settings.
  5. Copy the Scheduled task address and call it every hour, or at least once a day, from your server or hosting cron.
  6. Place an order with the test card 4242 4242 4242 4242, then open its schedule in Payments. Only then switch to Live mode with your live key and a live-mode webhook with its own secret.

The Health of the integration panel, at the top of the settings, checks the key of the mode in use, the Stripe connection, the webhook secret, the webhooks received, the last run of the scheduled task, the order states, HTTPS and the active rules. The module pages then open from the Deposits & payment plans menu, with the Payments, Rules, E-mails and Settings tabs.

An active licence shows the masked key, the end date and the Stripe integration health of the module.
An active licence shows the masked key, the end date and the Stripe integration health of the module.

How do I set up a deposit or instalment rule?

A rule combines the target products, the formula, the collection method, the proposal shown to the customer and the accepted order amounts.

  • Products: the whole store, some categories or some products, with exclusions.
  • Formula: deposit then balance, or equal payments.
  • Collection: automatic charge of the saved card or SEPA mandate, or a payment link sent before each due date.
  • Proposal: the customer can also pay the whole order at once, or the plan is the only way to pay with this module.
  • Order amount minimum and maximum, and priority when several rules cover the same product.

The form shows an example of the amounts before saving. Start with a narrow rule, on one category or a few products, and check the result on the product page and at the payment step. The module pages and their settings are described in the documentation.

How do I follow payments and recover a failed one?

The Payments page shows what is left to collect, late amounts and the automatic charges of the next seven days; a refused charge sends the customer a payment link and schedules a retry.

The list filters by order, customer, formula, status or date, and exports to CSV. A schedule screen shows each payment with its due date, amount and status. It lets you charge now, send the payment link, move the due date, record a payment received outside Stripe, refund, send the schedule to the customer or stop it. The history keeps the payments, the e-mails and every action.

The scheduled task sends a reminder before each due date, then late notices spaced out and limited in number. It also applies the module order states: “Partially paid – payments scheduled”, “Fully paid (payment schedule)”, “Payment overdue” and “Payment being confirmed (Stripe)”. You receive an alert for payments to check, disputes and refused charges, with a daily summary of late payments.

What happens if the licence expires or is no longer valid?

The module switches itself off completely: deposits and schedules are no longer offered at checkout, automatic charges, payment links, reminders and module pages stop, and your rules, schedules, payment history and settings are kept.

That complete cutoff is the behaviour of version 2.0.1; earlier versions kept automatic charges and payment links running without a valid licence.

The configuration page stays available with the licence form. As soon as the licence is valid, it switches the module back on. Stripe notifications are not received while the module is disabled: Stripe retries them for three days, then stops and may disable the endpoint. Check the webhook in your Stripe dashboard after a reactivation.

A paid licence is not switched off because of a transient answer from the licence server. A passed end date is checked again before concluding, and an error, a rate limit, a clock skew or an unreachable server keep the licence valid for seven days from the first failure.

An expired licence: the warning lists what stops and the form switches the module back on.
An expired licence: the warning lists what stops and the form switches the module back on.

On reactivation, the schedules are brought in line with the orders changed meanwhile. A cancelled order stops its charges, an order moved to a paid state is closed, a changed amount recomputes the remaining payments. Payments that fell due during the stop are charged or requested at the next run of the scheduled task, once each. Reminders resume at their next slot, without a burst.

Frequently asked questions

Why did my deposit options disappear from the payment page?
Three causes are the most common: the module is disabled, the licence is no longer valid, or no rule covers the cart. Check the module state in Modules > Module Manager, then the Configure page: an expired licence stops deposits and schedules. Open Rules next and check the targeted products, the minimum and maximum order amount, and the priority between rules.
What happens to payments in progress if my licence expires?
They stop: no more automatic charge, no payment link, no reminder, and the My payments page is closed. Your schedules, history and settings stay in the database. After renewal, the configuration page switches the module back on; due payments are handled at the next scheduled task, once each, and schedules are brought in line with orders changed meanwhile.
How do I set a deposit and a balance on a precise date?
Create a rule in Rules, choose Deposit and balance, then the deposit amount as a percentage or a fixed amount. For the balance, pick a fixed date, a number of days after the order or an order state. Save, then check the plan shown on the product page and at the payment step before opening the rule to the whole store.
How do I recover a refused charge?
The module sends the customer a payment link and retries the charge after the number of days set in the settings. You follow the status in Payments: the schedule screen lets you charge now, resend the link or move the due date. A SEPA direct debit stays in confirmation until the bank answers, and a final failure leaves the payment late with its reminders.
What is the difference between a deposit and an instalment plan?
A deposit splits the order in two: one part now, the balance at the date or state you choose. An instalment plan splits the amount into 2 to 12 equal payments, the first with the order. Both go through Stripe and add no interest and no fees; the choice depends mainly on the amount and on when you commit your own costs.

Products in this article

Find the module your store needs

Browse the modules