| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Inventory (stock) |
| Community Apps Dependencies | Show |
| Lines of code | 9469 |
| Technical Name |
l10n_ro_declaration_D100 |
| License | OPL-1 |
| Website | https://www.nexterp.ro |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Inventory (stock) |
| Community Apps Dependencies | Show |
| Lines of code | 9469 |
| Technical Name |
l10n_ro_declaration_D100 |
| License | OPL-1 |
| Website | https://www.nexterp.ro |
Romania - D100 / 710 ANAF Declaration
Romania - D100 / 710 ANAF Declaration
Overview
This module generates the D100 (Declarația privind obligațiile de plată la bugetul de stat) and the D710 (rectificativa lui D100) for Romanian ANAF. A single wizard handles both forms because ANAF publishes one combined nomenclator and one shared XML structure — only the root element and namespace differ.
D100 is filed by Romanian taxpayers (legal entities and authorized
individuals) to declare and pay obligations to the state budget on a
monthly, quarterly, semi-annual or annual basis. The same <declaratie100>
XML may carry one or several obligations: corporate income tax (cod 102/103/105),
micro-enterprise tax (121), dividend tax (150/604), excise duties (211–270),
withholding taxes for residents and non-residents (412, 631–642, 690),
construction tax (701), disability fund (810), gambling, mining and oil
royalties, special funds and many sector-specific levies — about 107
obligation codes in total.
The module ships the full obligation nomenclator as configuration data,
computes the legal payment deadline (scadenta) per cod_oblig, generates
the unique 23-digit nr_evid record number, builds the XML conformant to
the ANAF XSD and saves it on the wizard for download. D710 is emitted by
opening the dedicated menu entry, which switches the declaration type
before generating.
Built & supported by NextERP Romania
Romanian Odoo specialists, here for the long run — from implementation to localization and day-to-day production support.
What we do
Odoo Solutions
From quick-start rollouts to multi-company deployments and custom modules built for your processes.
Romanian Localization
SAF-T (D406), e-Factura, e-Transport, D300 / D390 / D394, ANAF integration, full chart of accounts and fiscal positions.
Our Services
Implementation, customization, migration, integration, support and consultancy — Romanian-speaking, SLA-backed.
Features
- D100 and D710 in one wizard —
l10n.ro.anaf.d100.v2emits both forms (<declaratie100>namespacemfp:anaf:dgti:d100:declaratie:v2and<declaratie710>namespacemfp:anaf:dgti:d710:declaratie:v1). The declaration type selects the root element only. - Complete obligation nomenclator — about 107 records in
l10n.ro.anaf.d100.configcovering income tax, micro-enterprise tax, dividend tax, excises, withholding taxes, gambling, construction, special funds, royalties, disability fund (810), Pillar 2 (131,132), electricity producer levies and recent 2026 additions (logistics tax707, energy transition fund708). - Computed payment deadline (
scadenta) — derived fromperiod_type(Lmonthly /Tquarterly /Ssemi-annual /Aannual): the 25th of the next month, rolling forward at quarter end and across year boundaries. - Unique 23-digit
nr_evid— generated per obligation line with checksum, in the ANAF format10<cod:3>01<MM><YY><scadenta:6>0000<checksum:2>. - Auto-computation from accounting — for obligations with a standard PCG
RO account range (corporate income tax
441100–441199, micro tax441800–441899, dividend tax446200–446299, disability fund446500–446599) the wizard fills the obligation lines from posted move lines over the wizard period. - Manual lines for industry-specific obligations (excise, gambling, mining royalties, offshore wind, electricity producers, medicine clawback) that depend on each company's analytical accounts.
- PDF preview report — the
d100_v2_reportandd100_v2_report_exciseQWeb templates render the populated wizard for internal review and archiving. - Special situations supported — successor filing (
d_succ,cifS), cancellation of reserve (d_anulare), dissolution without liquidation (d_dizolv) and legal basis (temei) for article 105 alin.(6) cases. - XSD validation before download — output is checked against the ANAF
schema
d100_24022022.xsd(D100) ord710_20012025.xsd(D710); a new XSD is added as a sibling submodule undermodels/v<N>/when ANAF publishes one.
Configuration
1. Prerequisites
Complete the setup described in the l10n_ro_declaration base module shipped with this one:
- Romanian VAT/CUI on the company.
- At least one ANAF signature record (declarant name, function, CNP/CUI) under Accounting → Configuration → Romania → ANAF Signatures.
- The company bank account used for budget payments.
- The CAEN code, address, phone and e-mail on the company record.
2. Review the obligation nomenclator
About 107 D100 obligation codes are loaded as configuration records in
l10n.ro.anaf.d100.config. Open
Accounting → Configuration → Romania → D100 — Obligation Configuration
and check the records relevant to your company:
| Field | Description |
|---|---|
cod_oblig |
ANAF obligation code (103, 121, 412, 810, …) |
name |
Tax or contribution label |
cod_bugetar |
ANAF budget account (5503 for the general state budget; specific codes for dedicated funds) |
period_type |
L monthly / T quarterly / S semi-annual / A annual |
account_code_from / account_code_to |
PCG RO account range used by the auto-compute action (optional) |
sign |
1 for amounts owed, -1 for deductions / refunds |
3. Map your analytical accounts
Out of the box only the obligations using standardized PCG RO sub-accounts are pre-mapped (about 12 of the 107):
| PCG range | Obligations |
|---|---|
441100–441199 (impozit pe profit) |
102, 103, 105, 107, 108, 115 |
441800–441899 (impozit micro) |
121, 125, 127 |
446200–446299 (impozit pe dividende) |
150, 604 |
446500–446599 (fond handicap) |
810 |
The remaining sector-specific obligations (excise duties, gambling fees,
mining and oil royalties, offshore wind, electricity producer levies,
medicine clawback, etc.) are intentionally left without an account range
because PCG RO does not standardize sub-accounts below 4 digits. For each
obligation your company is liable for, open the config record and fill
Account Code From / To with the analytical range you book the liability
on (typically a sub-account of 446 or 447). If you leave the range
empty the obligation still works — the amount has to be entered manually
on the wizard line.
4. D710 menu entry
D710 is the rectifying form of a previously submitted D100. The module
adds a dedicated menu Accounting → Reports → Romania → D710 Declaration
that opens the same wizard pre-set to emit the <declaratie710> root
element and namespace. No separate nomenclator is needed — compute_from_config
searches across both declarations.
5. Run the declaration
After configuration, generate the declaration as described in USAGE.md.
How it works
Open Accounting → Reports → Romania → D100 Declaration for the regular form, or Accounting → Reports → Romania → D710 Declaration for the rectifying form. The wizard layout is identical — only the namespace and root element of the generated XML differ.

Steps
-
Header fields
- Declaration / Version — defaults to
D100 / Versiunea 2(or D710 v1). - Date From / Date To — defaults to the previous calendar month; change to a quarter / semester / year if you file for a longer period.
- Signature — pick the ANAF signature configured for the declarant.
- Bank Account — the company account from which obligations are paid.
- Declaration / Version — defaults to
-
Special situations — toggle only if applicable:
- Temei — set to art. 105 alin.(6) Codul de Procedură Fiscală when filing under that legal basis.
- Succesor — filing on behalf of a successor entity (art.90 alin.4)
populates
d_succandcifSin the XML. - D_anulare — for the specific case in art.42 alin.4^1 Cod Fiscal (cancellation of reserve).
- D_dizolv — set to Yes when filing at the point of dissolution.
-
Compute from accounting — click Compute from Accounting. The wizard reads
account_code_from–account_code_tofor each nomenclator line and fills the obligation lines table. The wizard re-opens with the populated lines so you can review. -
Adjust the obligations table
- Add lines for sector-specific obligations (excise, gambling, mining, etc.) that aren't pre-mapped.
- Override
suma_dat,suma_ded,suma_plataorsuma_restas needed. - Remove lines that don't apply.
-
Get Report — generates the XML, validates it against
d100_24022022.xsd(D100) ord710_20012025.xsd(D710) and attaches the file to the wizard for download.
-
PDF preview — the bundled
d100_v2_reportandd100_v2_report_exciseQWeb templates can be printed from the wizard for internal review and archiving. -
Validate with DUKIntegrator, sign with the digital signature (Sectigo / certSIGN / other token), then upload to ANAF at the Depunere declarații portal under D100 or D710.
Generated XML — key fields
- Root
<declaratie100>(or<declaratie710>) with attributesluna,an,cui,den,adresa,nume_declar,prenume_declar,functie_declarandtotalPlata_A. - One
<obligatie>child per obligation line withcod_oblig,cod_bugetar,scadenta(DD.MM.YYYY), the 23-digitnr_evidand thesuma_*amounts (zero amounts are omitted).
Deadlines (scadenta)
| Period | Default deadline | Special case |
|---|---|---|
| Monthly (L) | 25 of the next month | December rolls into January |
| Quarterly (T) | 25 of the month after the quarter end | — |
| Semi-annual (S) | 25 of the next month | — |
| Annual (A) | 25 of the next month | — |
Versions
19.0.1.1.0 (2026-05-24)
- Changelog tracking starts at this release.
Discover the NextERP suite
Other modules from the same publisher, built to work together.
NextERP Romania
Odoo implementation, customization, Romanian localization and long-term support since 2018.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Please log in to comment on this module