OdooWiki OCA HUB
Accounting/Localizations License: AGPL-3

This modules extends the base localization modules with a few VAT specific functions that are required by the Portuguese Tax Authorities, including:

  • The use of pre-defined legally accepted reasons for issuing credit notes, as required for fields 40/41 of the VAT statement (Portaria nº 255/2013).

NOTE: scheduled to replaced by the future core module l10n_pt_certification.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Adds Portuguese VAT legal data to Odoo: a list of official VAT exemption reasons (M01–M99) and VAT adjustment norms for credit notes, plus a fiscal zone on taxes. It blocks posting a Portuguese customer invoice that has untaxed lines without an exemption reason.

This module extends the Portuguese accounting localization with the legal information the Portuguese tax authority expects on invoices and VAT statements.

  • It provides a pre-loaded list of official VAT exemption reasons, each with a code (M01 to M99) and a legal description. You can manage this list from the Accounting menu under "VAT Exempt Reason".
  • On a Portuguese customer invoice, if any invoice line has no tax, an "VAT Exempt Reason" field appears. When you try to post such an invoice without choosing a reason, Odoo raises an error: "A tax exemption reason must be provided."
  • You can set a default exemption reason on each sales journal; it is then proposed automatically on invoices that contain untaxed lines.
  • For credit notes (customer or vendor refunds), a "VAT Adjustment Norm" field appears. It lets you pick the legal norm used for fields 40/41 of the VAT statement. The available norms are pre-loaded (articles 78, 78-A, 78-B, 78-C) and can be managed from the Accounting menu under "VAT Adjustment Norms".
  • Taxes get a "Fiscal Zone" field (Portugal Continental, Açores, Madeira), defaulting to Portugal Continental.

All these fields are only shown for Portuguese companies. Accountants can read the exemption reasons and adjustment norms; only accounting managers can create or change them.

Depends on

accountl10n_pt

Required by other modules

Menus it adds

menu_action_vat_exempt_reasonmenu_action_vat_adjustment_norm
Models and fields (5)
  • account.tax · extends an existing modell10n_pt_fiscal_zone (Fiscal Zone)
  • account.move · extends an existing modelis_l10npt_vat_enabled, vat_adjustment_norm_id (VAT Adjustment Norm), l10npt_vat_exempt_reason (VAT Exempt Reason), l10npt_has_tax_exempt_lines
  • account.journal · extends an existing modell10npt_vat_exempt_reason (VAT Exempt Reason)
  • account.vat.adjustment_norm · new modelname, note (Description), active, move_type, in_refunds (Use on third party refunds), out_refunds (Use on company refunds)
  • account.l10n_pt.vat.exempt.reason · new modelcode, name, note (Description), active

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 7 confirmed, 2 with no information of 9 versions.

Sources · Odoo 19.0

Confirmed on 2026-11-03 in branch 19.0 of OCA/l10n-portugal.

terminal Installation and usage

OCA documentation · Odoo 19.0

On an Invoice, the VAT adjustment reason is available for selection.

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.