Can Odoo's document numbers really restart by year, month, or day? Let me find out
In enterprise management systems, document numbers often serve not only as identification codes but also frequently carry functions such as process management, financial reconciliation, and audit tracking.
So the question is: In Odoo, can we make document numbers automatically renumber every year, month, or even every day?
Many people who first encounter Odoo often ask:
-
- Can sales orders (SO) be renumbered annually, starting from SO/2025/001?
- Can the invoice number be reset by month?
- Is there a way to start numbering from 1 every day to meet the serial number requirements of certain industries?
- What modes does Odoo 17 actually support? Do you still need to write code?
These questions repeatedly appear in communities and forums, so I decided to compile a comprehensive explanation for Odoo 17.
Can Odoo reset numbering by year/month/day?
The answer is Yes! And it's fully built-in, no development required!
The core mechanism for all numbering in Odoo is Sequence.
Simply turn on developer mode to find these sequences, and the sequences themselves support the following reset periods:
- Yearly
- Monthly
- Daily (by day)
- No reset
In other words, Odoo can natively achieve:
-
- Numbering restarts from 1 each year
- Numbering restarts from 1 each month
- Numbering restarts from 1 each day
- Never reset, continuous cumulative growth
So, can all documents be operated in this way?
Why can't I see the numbering settings in some interfaces, such as invoices?
Many people here are confused:
"I seem to be able to find the sequence for sales orders, but where is the sequence for invoices? Why is it not in the UI?"
Actually, the reason is:
- Odoo does not place the sequence on the document interface for you to modify
- But the numbering of all documents still comes from the sequence (ir.sequence)
Therefore, although there is no front-end entry for invoices, bills, and accounting entries, the underlying system is still controlled by the same sequence mechanism.
In other words:
Not finding the sequence does not mean it does not exist.
Not being able to find the UI entry does not mean it cannot be modified.
Simply enter Developer Mode → "Settings → Technical → Sequences" to find the numbering rules for all documents.
What else can sequences do?
Many people don't know that Odoo's sequences are actually very powerful; they can not only be reset but also customize numbering formats through variables.
For example, you can set the prefix to:
-
- SO/%(year)s/
- INV/%(year)s/%(month)s/
- WH/%(year)s/%(month)s/%(day)s/
- %(company_id)s/%(year)s/%(month)s/N°
You can even customize the number length, for example:
-
- 001, 0001, 000001
This enables the construction of a rigorous, audit-compliant, and identifiable numbering system.
A few pitfalls to note
1. Modifying the sequence will not affect historical documents
If the business wishes to "reorganize historical numbers," it is almost always not recommended or even not allowed (especially in the accounting module).
2. In a multi-company environment, each company's sequence is independent
You need to adjust them separately.
3. Modification numbers of certain modules may have legal implications
For example, in some countries, strict regulations on invoices do not allow arbitrary changes to the numbering format.
So, how should Odoo's document numbering be planned?
This is one of the most common doubts when an enterprise is being established:
- Do you want to reset annually?
- Is it necessary to include the month?
- Should each business type (e.g., domestic vs. international orders) have separate sequences?
- Do you need to add a company code?
These must be determined based on business scenarios, audit rules, and cross-company processes.
Conclusion: Odoo's sequences are very powerful, but you need to use them correctly
If you are planning Odoo's numbering system, you might ask yourself:
- Does our numbering really need to be reset every year?
- Are there accounting compliance requirements?
- Do business personnel need to infer time from the number?
- Is it necessary to unify the format in the case of multiple companies?
By thinking through these issues and leveraging the flexibility of Odoo sequences, you can implement almost any numbering rule.
