| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Inventory (stock) |
| Community Apps Dependencies | Show |
| Lines of code | 4767 |
| Technical Name |
l10n_ro_declaration_D300 |
| License | OPL-1 |
| Website | https://www.nexterp.ro |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) • Inventory (stock) |
| Community Apps Dependencies | Show |
| Lines of code | 4767 |
| Technical Name |
l10n_ro_declaration_D300 |
| License | OPL-1 |
| Website | https://www.nexterp.ro |
| Versions | 18.0 19.0 |
Romania - D300 ANAF Declaration
Romania - D300 ANAF Declaration
Overview
This module generates the D300 declaration (Decont de taxă pe valoarea adăugată) for Romanian ANAF. D300 is the periodic VAT return filed by every Romanian VAT-registered taxpayer to declare collected output VAT, deductible input VAT, intra-Community acquisitions and supplies, imports, reverse charge operations, special schemes and the resulting VAT to pay or refund for the period.
The filing period is determined by the taxpayer's status with ANAF —
monthly (L) for most companies, quarterly (T) if turnover is
below the legal threshold, semi-annual (S) or annual (A) for
special regimes. The wizard infers the tip_decont and bif_e codes
automatically from the date range.
The wizard reads all posted account moves over the period, aggregates the
balances by tax tag (01, 03_1, 09_1, 10_1, …) and maps the totals
into the D300 lines (R1 to R75+, R35_2/R38_2 opening balances on
accounts 4423/4424, ramburs, plata pro-rata, soldul perioadei). Output
is an XML conformant to the latest published ANAF XSD; the module ships
schema versions 6 through 12 (current: d300_v12_11022026.xsd, in force
from 2026-01-01) and selects the appropriate one based on the wizard's
end date.
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
- Periodic VAT return — wizard
l10n.ro.anaf.d300generates the<declaratie300>XML for monthly, quarterly, semi-annual or annual filers. The period type (L/T/S/A) is inferred from the number of months in the wizardDate From/Date Torange. - Six schema versions bundled —
v6(2019-08-19),v7(2021-07-12),v9(2023-09-25),v10(2024-06-05),v11(2025-08-01),v12(2026-01-01). The wizard picks the version whosedate_fromis the most recent that does not exceed the period end date. - Tag-driven aggregation — D300 lines are computed entirely from the
Romanian VAT tax tags (
01,03_1,09_1,10_1,11_1,12_4,12_5,20_1,22_1,24_1,25_1,241_*,251_*,26_*, …) attached to every account move line through the standard ANAF tax report. - Mixed taxpayer support — the
pro_ratafield (0–100) is applied to deductible input VAT; the wizard re-runs the same balance aggregation for non-deductible VAT separately to align with R35/R38. - Opening balances of accounts 4423 / 4424 —
R35_2_oldandR38_2_oldare pre-filled from posted entries before the wizard period (the account opening date is the lower bound). They can be overridden manually if the carried sold differs. - Reverse-charge product flags computed automatically —
bifa_cereale,bifa_mob,bifa_disp,bifa_consare derived fromproduct.l10n_ro_anaf_codeon invoiced products in the period (cereals / mobile phones / laptops / game consoles). - VAT on payment (TVA la încasare) — invoices flagged as
on_paymentare aggregated from their reconciled payments, not from the invoice date, via the mixin'sget_payment_valshelper. - Special situations — successor filing (
succesor_id, populatescuiSuccesor), legal basis (temei), simplified declaration (bifa_interne), refund request (solicit_ramb). - XSD validation before download — output is checked against the matching ANAF XSD; the wizard raises an error if any operations don't fit the schema.
Configuration
1. Prerequisites
Complete the setup described in the l10n_ro_declaration base module shipped with this one:
- Romanian VAT/CUI on the company.
- The VAT period registered with ANAF (monthly or quarterly) — D300
uses the wizard
Date From/Date Torange, which must align with your registered period. - At least one ANAF signature record (declarant name, function, CNP) under Accounting → Configuration → Romania → ANAF Signatures.
- A bank account on the company (required field on the wizard).
- A successor partner record if you file on behalf of a successor entity (art.90 alin.4 Codul de Procedură Fiscală).
2. Tax tags and chart of accounts
D300 is driven entirely by the Romanian VAT tags defined in the
standard ANAF tax report shipped with l10n_ro_account_enterprise. Each
sale and purchase tax used by your company must carry the correct tag
(01 - BAZA / 01 - TVA, 09_1, 10_1, 11_1, 12_4, 12_5, 20_1,
22_1, 24_1, 25_1, etc.). The module extends the tax report binding
in l10n_ro_tax_report.xml so that the same report can be exported as a
D300 XML.
The non-deductible-VAT logic also relies on the standard PCG RO accounts
442300 (TVA de recuperat) and 442400 (TVA de plată) — the wizard
reads the opening balances on those accounts to populate R35_2_old and
R38_2_old. Make sure your chart of accounts is the OMF 1802/2014 PCG
RO.
3. ANAF cross-checking option (operating mode)
D300 includes the optiune and schimb_optiune flags from the
companion D394 module, that record whether the taxpayer accepts ANAF
cross-checking with declarations submitted by partners. Set the company
default in Settings → Accounting → Romanian Localization; the wizard
inherits the value.
4. Wizard location
Open the wizard at Accounting → Reports → Romania → D300 Declaration.

The wizard automatically picks the right XSD version based on the
selected period end date. Six schema versions are bundled — v6
(2019), v7 (2021), v9 (2023), v10 (2024), v11 (2025) and v12
(in force from 2026-01-01).
5. Run the declaration
After configuration, generate the declaration as described in USAGE.md.
How it works
Open Accounting → Reports → Romania → D300 Declaration.

Steps
-
Header fields
- Declaration / Version — defaults to
D300 / Versiunea …matching the date range (the latest is Versiunea 12). - Date From / Date To — defaults to the previous calendar month;
set to a quarter (3 months), semester (6 months) or year (12 months)
if your registered VAT period is longer. The wizard computes
tip_decont(L/T/S/A) automatically. - Signature — pick the ANAF signature record.
- Bank Account — required; the company account printed on the declaration.
- Succesor — fill only if filing under art.90 alin.4 Codul de Procedură Fiscală.
- Declaration / Version — defaults to
-
D300 options
- Depus reprezentant — Yes when filed by a fiscal representative (hidden on older schema versions).
- Temei —
Normalor art.105 alin.(6) lit.b Cod Procedură Fiscală. - Bifa interne (
Declaration Type) —NormalorSimplified. - Pro Rata — 0–100, applied to deductible VAT for mixed taxpayers.
- Solicit rambursare —
DAif you tick the refund request box. - R35_2_old / R38_2_old — opening balances on
442300(TVA de recuperat) and442400(TVA de plată). Pre-filled from posted entries before the period; override if you carry a different sold.
-
Special operation flags (auto) —
bifa_cereale,bifa_mob,bifa_disp,bifa_consare computed from the products invoiced in the period using thel10n_ro_anaf_code(cereals/sugar/mobile phones/laptops/consoles — reverse charge categories). No manual action is needed. -
Get Report — generates the XML, validates against the matching ANAF XSD (
d300_v6…d300_v12) and attaches the file to the wizard. Internally the wizard:- Reads every posted account move over the period.
- Aggregates balances by tax tag (
01,03_1,09_1,10_1,11_1,12_4,12_5,20_1,22_1,24_1,25_1, …) using the helpers inl10n.ro.anaf.mixin. - Maps each tag total to the corresponding D300 line (
R1,R2, …,R75, including the 2025/2026 additionsR69–R77). - Adjusts non-deductible VAT and pro-rata, then computes the final payable / refundable.
-
Validate with DUKIntegrator — run ANAF's local validator before signing.
-
Sign with the digital signature (Sectigo / certSIGN / other token).
-
Upload to ANAF at the Depunere declarații portal under D300.
Generated XML — key fields
- Root
<declaratie300>withluna,an,tip_decont,bif_e,pro_rata,solicit_ramb,temei,bifa_interne,depusReprezentant, taxpayer identification and signature fields. - All
R*value attributes (base + VAT pairs) for every line of the decont — collected, paid, intra-Community, reverse charge, imports, special schemes — plus opening / closing soldul de TVA.
Schema versions
| Version | XSD | In force from |
|---|---|---|
| v6 | d300_20190819.xsd |
2019-08-19 |
| v7 | d300_v7_12072021.xsd |
2021-07-12 |
| v9 | d300_v9_25092023.xsd |
2023-09-25 |
| v10 | d300_v10_05062024.xsd |
2024-06-05 |
| v11 | d300_v11_01082025.xsd |
2025-08-01 |
| v12 | d300_v12_11022026.xsd |
2026-01-01 |
Screenshots
Captured from a running Odoo instance.
Action run declaration300
Versions
19.0.1.0.4 (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