Dolibarr SysAmandineDolibarr SysAmandine
SysAmandine
Recouvrement & risque client
Collections & customer risk

Gestion des Impayés

Unpaid Invoices Management

Vos relances partent toutes seules, par paliers de plus en plus fermes — et vous voyez exactement ce qui va partir avant que ça parte.

Your reminders go out on their own, with increasingly firm escalation levels — and you see exactly what will go out before it does.

  • Dolibarr 23+
  • Licence GPL v3 + licence SysAmandine
  • Langues : FR · EN
  • Languages: FR · EN
Gestion des Impayés — module Dolibarr SysAmandine

😖 Le problème

😖 The problem

Relancer les impayés à la main, c'est la corvée qu'on repousse : on relance trop tard, jamais deux fois de la même façon, on ne sait plus qui a déjà reçu quoi. Et pendant ce temps on continue à livrer un client qui doit déjà trois factures, faute d'avoir le chiffre sous les yeux au moment de valider sa commande.

Chasing unpaid invoices by hand is the chore everyone postpones: reminders go out late, never twice the same way, nobody remembers who already received what. Meanwhile you keep delivering to a customer who already owes three invoices, simply because the figure wasn't in front of you when you approved their order.

✅ La solution

✅ The solution

Chaque nuit, le module repère les factures échues et prépare une seule relance par client, listant toutes ses factures en retard, au palier atteint : rappel courtois, relance ferme, mise en demeure avec lettre PDF, alerte contentieux. Vous validez d'un clic — ou vous ne faites rien du tout. En parallèle, chaque client reçoit une note de A à E fondée sur son comportement réel, et la validation d'une commande peut être refusée quand le risque est là.

Every night, the module spots overdue invoices and prepares a single reminder per customer, listing all their late invoices, at the level reached: courteous reminder, firm reminder, formal notice with PDF letter, litigation alert. You approve in one click — or you do nothing at all. Meanwhile every customer gets a grade from A to E based on actual behaviour, and order approval can be refused when the risk is real.

✨ Ce que fait le module

✨ What the module does

🎭 Répétition générale

🎭 Dry run

Avant tout envoi, un écran montre ce qui partira : quel client, quel palier, quel montant, le message réel — et surtout ce qui ne partira pas, avec la raison : client en pause, montant sous le seuil, facture en litige, palier pas encore atteint. Rien n'est envoyé depuis cet écran. C'est le même code qui décide là et qui exécute ensuite : ce que vous voyez est ce qui partira.

Before anything is sent, a screen shows what will go out: which customer, which level, which amount, the real message — and above all what will not, with the reason: customer paused, amount below threshold, invoice disputed, level not reached yet. Nothing is sent from that screen. The same code decides here and executes later: what you see is what will go out.

📬 Une relance par client

📬 One reminder per customer

Un seul e-mail listant toutes ses factures échues, jamais un message par facture. Et une facture ne reçoit jamais deux fois le même palier.

A single e-mail listing all their overdue invoices, never one message per invoice. And an invoice never receives the same level twice.

📈 Escalade paramétrable

📈 Configurable escalation

Rappel courtois à J+7, relance ferme à J+21, mise en demeure avec lettre PDF à J+35, alerte contentieux interne à J+50. Délais, types d'action, sujets et textes entièrement modifiables.

Courteous reminder at D+7, firm reminder at D+21, formal notice with PDF letter at D+35, internal litigation alert at D+50. Delays, action types, subjects and texts fully editable.

🧪 Mode bac à sable

🧪 Sandbox mode

Tant qu'une adresse d'essai est renseignée, aucun message ne peut atteindre un client, copie comprise : tout arrive chez vous, avec le destinataire réel rappelé en tête. De quoi essayer le module sur vos vraies données sans écrire à personne.

As long as a test address is set, no message can reach a customer, copies included: everything lands in your inbox, with the real recipient recalled at the top. Try the module on your real data without writing to anyone.

🅰️ Score de solvabilité

🅰️ Credit score

Une note de A (parfait payeur) à E (très risqué), calculée sur le comportement réel : retards passés, retard moyen, part du chiffre d'affaires actuellement en échu, mises en demeure. Recalculée à chaque facture et à chaque paiement.

A grade from A (perfect payer) to E (very risky), computed from actual behaviour: past delays, average delay, share of revenue currently overdue, formal notices. Refreshed on every invoice and every payment.

🛑 Blocage des mauvais payeurs

🛑 Blocking bad payers

La validation d'une commande (et d'un devis en option) est refusée avec un message clair : retard trop ancien, note trop basse, plafond d'encours dépassé. Un droit « débloquer » permet de passer outre, et chaque client peut être forcé en « toujours » ou « jamais ».

Order approval (and quotes, optionally) is refused with a clear message: overdue too long, grade too low, outstanding limit exceeded. An "unblock" permission overrides it, and each customer can be forced to "always" or "never".

🧭 Assistant de configuration

🧭 Setup wizard

Quatre étapes pour démarrer, chaque réglage annonçant son effet sur vos données réelles — « avec ce seuil, 3 clients sur 11 ne seraient jamais relancés » — et l'aperçu des messages se faisant sur un vrai client en retard, pas sur un exemple.

Four steps to get started, each setting stating its effect on your real data — "with this threshold, 3 customers out of 11 would never be reminded" — and message previews on a genuinely overdue customer, not a sample.

🤝 Litiges, pauses, exclusions

🤝 Disputes, pauses, exclusions

Une facture contestée se met en litige, un client qui a négocié un échéancier se met en pause jusqu'à une date, un client sensible passe en « ne jamais relancer ». Un délai et un montant minimums évitent le harcèlement pour trois francs.

A contested invoice can be flagged as disputed, a customer on a payment plan paused until a date, a sensitive customer set to "never remind". A minimum delay and amount avoid hounding anyone over pocket change.

📊 Tableau de bord

📊 Dashboard

Indicateurs clés, balance âgée, pires payeurs, file des relances à valider. Une fiche risque en onglet de chaque fiche client, un widget sur la page d'accueil, un bandeau d'alerte sur les fiches des clients concernés.

Key indicators, aged balance, worst payers, queue of reminders to approve. A risk tab on every customer card, a home page widget, an alert banner on the cards of the customers concerned.

🖼️ En images

🖼️ Screenshots

Captures à venir — le module est actif sur la démo.

Screenshots coming soon — the module is live on the demo.

🚀 Comment l'utiliser

🚀 How to use it

Suivez l'assistant

Follow the wizard

Quatre écrans : à partir de quel montant relancer, à combien de jours de retard chaque palier se déclenche, qui reçoit quoi, et si vous validez ou si le module envoie seul.

Four screens: from which amount to remind, how many days late each level fires, who gets what, and whether you approve or the module sends on its own.

Faites la répétition générale

Run the dry run

Vous voyez la liste exacte de ce qui partirait, message par message, et la raison pour chaque client écarté. Rien n'est envoyé tant que vous n'avez pas cliqué.

You see the exact list of what would go out, message by message, and the reason for every customer skipped. Nothing is sent until you click.

Laissez tourner

Let it run

La tâche planifiée prend le relais chaque nuit. Un digest quotidien vous résume ce qui est parti, ce qui attend, et les dossiers arrivés au palier contentieux.

The scheduled job takes over every night. A daily digest sums up what went out, what is waiting, and which cases reached the litigation level.

🧩 Prérequis & compatibilité

🧩 Requirements & compatibility

Amandine Aupetit

Conçu par Amandine

Made by Amandine

Ingénieure système, réseau et web à Nouméa, experte Dolibarr depuis 15 ans. J'ai construit ce module parce que la trésorerie d'une petite entreprise ne devrait pas dépendre du courage qu'on a, le vendredi soir, d'écrire à un client qui ne paie pas.

Systems, network and web engineer in Nouméa, Dolibarr expert for 15 years. I built this module because a small business's cash flow shouldn't depend on whether you find the courage, on a Friday evening, to write to a customer who isn't paying.

En savoir plus sur moi →More about me →

❓ FAQ

Le module peut-il envoyer une relance à mon insu ?

Can the module send a reminder without my knowledge?

Seulement si vous le lui demandez. Par défaut, il prépare les relances et attend votre validation. Le mode « tout automatique » s'active explicitement, et même dans ce cas la répétition générale vous montre à l'avance ce qui partira. Le bac à sable permet en plus de tout essayer sans qu'aucun message ne quitte votre installation.

Only if you ask it to. By default it prepares reminders and waits for your approval. "Fully automatic" mode is enabled explicitly, and even then the dry run shows you in advance what will go out. The sandbox lets you try everything without a single message leaving your installation.

Que se passe-t-il si un client conteste une facture ?

What if a customer disputes an invoice?

Marquez-la « en litige » : elle sort des relances, mais reste comptée dans son risque — parce que la somme est toujours due tant que le litige n'est pas tranché. Vous pouvez aussi mettre le client en pause jusqu'à une date, le temps d'un échéancier négocié.

Flag it as "disputed": it leaves the reminder flow but still counts towards their risk — because the money is still owed until the dispute is settled. You can also pause the customer until a date, for the duration of a negotiated payment plan.

Le blocage des commandes ne va-t-il pas me faire perdre des ventes ?

Won't order blocking cost me sales?

Il ne se déclenche que sur les critères que vous fixez, et il faut deux conditions réunies pour un blocage par retard : un montant échu au-dessus de votre seuil et un retard assez ancien. Un vieux retard sur une petite somme oubliée ne bloque donc rien. Un droit dédié permet de passer outre au cas par cas, et n'importe quel client peut être exempté définitivement.

It only triggers on the criteria you set, and a delay-based block requires two conditions: an overdue amount above your threshold and a delay old enough. An old delay on a small forgotten amount blocks nothing. A dedicated permission overrides it case by case, and any customer can be permanently exempted.

Une question avant d'acheter ?

A question before buying?

Écrivez-moi via le formulaire de contact, je réponds personnellement.

Write to me via the contact form, I reply personally.

▶️ Essayez-le maintenant

▶️ Try it now

Sur la démo Dolibarr, module activé.

On the Dolibarr demo, module enabled.

Ouvrir la démoOpen the demo

Identifiants : demo / demodemo

Login: demo / demodemo