Skip to content
DevMarket
Odoo ModulesWordPress PluginsWordPress ThemesShopify ThemesApp TemplatesScripts & UtilitiesBlogSell on DevMarket

Automatic Payment Reminders (Dunning) for Odoo 19 documentation

A guide to automatic payment reminders: the levels and their texts, when a reminder is sent, promise to pay and hold, the worklist, the email, follow-up tasks and the log.

Documents version 1.0.0Updated Oct 23, 2026

Start here

In plain words: Late payments cost you money and chasing them costs you time. This module reminds customers of overdue invoices by email, automatically, level by level: a friendly note after a week, a second reminder after two, a final notice after a month. You write the texts once, in as many languages as you need, and Odoo does the rest, every day.
The worklist of overdue invoices, the email the customer receives, and the follow-up task for your collector.
The worklist of overdue invoices, the email the customer receives, and the follow-up task for your collector.
Tip: Nothing is sent until you switch it on in the settings. Until then you can read the worklist and send a reminder by hand.

What you get

FeatureWhat it does
Reminder levelsAny number of levels by days after the due date, each with its own subject and text.
Daily scheduleEvery day, customers whose invoices reached a new level get one email.
One email per customerIt lists every overdue invoice, with a link to view and pay it.
Promise to payPut a date on an invoice: no reminder is sent for it until that date has passed.
No remindersA tick on the customer stops automatic reminders for it.
Follow-up taskAt the levels you choose, a task is planned for your collector.
LanguagesTexts and email in the customer's language, Arabic included, right to left.
Worklist and logAll overdue invoices with their next level, and a log of every reminder.

Requirements

ItemDetails
Odoo19.0 (Community or Enterprise)
Apps neededInvoicing (account)
EmailAn outgoing mail server
LicenseOPL-1 (Odoo Proprietary License v1.0)

Install

  1. Unzip the package. Inside is taqnix_payment_reminders.zip; unzip it to get the folder taqnix_payment_reminders.
  2. Copy the folder into one of the addons_path folders of your Odoo server and restart Odoo.
  3. Log in as an administrator, activate Developer mode, open Apps and press Update Apps List.
  4. Remove the “Apps” filter, search Payment Reminders and press Install.
# or from the command line
./odoo-bin -c odoo.conf -d YOUR_DATABASE -i taqnix_payment_reminders --stop-after-init

The reminder levels

In plain words: Open Invoicing → Configuration → Reminder Levels. Three levels are ready: 7, 15 and 30 days after the due date. Change them, or add your own.
Three levels: friendly, second and final.
Three levels: friendly, second and final.
A level: when it is reached, the subject and the message.
A level: when it is reached, the subject and the message.
FieldMeaning
Days after the due dateThe level is reached when an invoice is at least this many days late. Two levels cannot share the same number.
Email subject / MessageThe texts of the email. Change the language at the top of the form to write them for another language.
Create a follow-up taskPlans a task for your collector when this level is sent.
Task forEmpty: the salesperson of the customer, or the person who ran the reminder.
PlaceholderReplaced by
{company}Your company name.
{partner}The customer's name.
{total}The amount overdue, in the company currency.
{count}The number of overdue invoices listed.
{oldest}The days overdue of the oldest invoice.

Settings

In plain words: Open Settings → Payment Reminders.
Switch the reminders on, the smallest amount, the days between two reminders.
Switch the reminders on, the smallest amount, the days between two reminders.
SettingWhat it does
Send payment remindersSwitches the daily reminders on for the company.
Only if the overdue amount is aboveCustomers whose overdue invoices together are below this amount are not reminded.
Days between two remindersA customer is not reminded again before this many days have passed.

When is a reminder sent?

RuleDetail
A level is reachedAn invoice reaches a level when it is at least that many days past its due date.
Once per levelAn invoice is reminded once at each level. It moves to the next level only when its days are reached.
One email per customerIf several invoices are late, they are all in one email, at the highest new level.
Promised invoicesAn invoice with a promise date in the future is left out.
Customers on holdCustomers with No payment reminders are skipped.
Minimum amount and intervalSmall totals are skipped, and a customer is not reminded again within the interval.
Who receives itThe invoice contacts of the customer (contacts of type Invoice address with an email), else the customer's own email address.
No email addressNothing is sent, it is logged, and the invoice is tried again the next day.

The worklist

In plain words: Invoicing → Customers → Overdue Reminders lists every overdue invoice: the days overdue, the last reminder and the level it will reach next.
Before the run: the next level of each invoice.
Before the run: the next level of each invoice.
After the run: the last reminder level and date.
After the run: the last reminder level and date.

The email

A final notice in English: your text, the overdue invoices with a link to view and pay each, and the total.
A final notice in English: your text, the overdue invoices with a link to view and pay each, and the total.
The same for an Arabic-speaking customer, with the Arabic text of the level, right to left.
The same for an Arabic-speaking customer, with the Arabic text of the level, right to left.

On the invoice and the customer

In plain words: On a customer invoice you find Promised to pay on and, once a reminder was sent, the level and the date. Send reminder sends one now.
Promised to pay on: no reminder is sent for this invoice until after that date.
Promised to pay on: no reminder is sent for this invoice until after that date.
After the run: the last reminder level and date, and a note in the chatter.
After the run: the last reminder level and date, and a note in the chatter.
On the customer: the Send reminder button and, in the Invoicing tab, the No payment reminders tick.
On the customer: the Send reminder button and, in the Invoicing tab, the No payment reminders tick.
ButtonWhat it does
Send reminder (invoice or customer)Sends a reminder now for all the overdue invoices of the customer, at the level the oldest has reached (the first level if none yet). It ignores the schedule, the interval and the hold.

The follow-up task

In plain words: Tick Create a follow-up task on a level, usually the last one, and a task is planned on the customer for your collector when that level is sent.
The task on the customer: who to call and what was sent.
The task on the customer: who to call and what was sent.

The log

Every reminder: customer, level, invoices, amount, email, and the result.
Every reminder: customer, level, invoices, amount, email, and the result.
Tip: Find it in Invoicing → Reporting → Reminder Log.

Limits

LimitDetail
Customer invoices onlyCredit notes, vendor bills and draft invoices are ignored.
No attachmentsThe email lists the invoices and links to them; it does not attach the PDFs.
Email onlyReminders are sent by email, not by SMS or WhatsApp.
Company currency for the minimumThe minimum amount is compared in the company currency; the list shows each invoice in its own currency.

For developers

In plain words: Skip this chapter if you only use the module.
ItemDetails
Enginetaqnix.reminder.engine: _plan(company) says who is reminded, _send(...) sends and logs, _cron_send_reminders() is the daily run.
Invoice fieldstx_reminder_level_id, tx_reminder_date, tx_promise_date, tx_days_overdue, tx_next_level_id.
Customer fieldstx_reminder_hold, tx_reminder_last_date.
# who would be reminded today?
plan = env['taqnix.reminder.engine']._plan(env.company)
for partner, (level, invoices) in plan.items():
    print(partner.name, level.name, len(invoices))

# remind a customer now
partner.action_tx_send_reminder()

Troubleshooting

ProblemWhat to do
Nothing is sentCheck that Send payment reminders is on, that a level has been reached, and that Odoo's scheduled actions run.
A customer is never remindedLook for the No payment reminders tick, a promise date, or a total below the minimum amount.
The email did not arriveCheck the log: No email address means the customer has none; otherwise check your outgoing mail server.
The text is in the wrong languageThe language comes from the customer's contact form; write the text of the level in that language.
A reminder was sent twiceA different invoice reached a new level, or you used Send reminder by hand.

Updating and removing

Replace the folder with the new version, restart Odoo and run -u taqnix_payment_reminders. Your levels and settings are kept. To remove it, uninstall it from Apps: the levels and the log are deleted with it.

Support

Installation help and bug fixes are included for 6 months, with lifetime updates. Contact us through the marketplace page where you bought the module or write to support@taqnix.com with your Odoo version and a screenshot.