Netherlands ICP Statement

l10n_nl_tax_statement_icp
REPOSITORY
REPOSITORYOCA/l10n-netherlands
GIT
GIThttps://github.com/OCA/l10n-netherlands.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-netherlands/tree/18.0/l10n_nl_tax_statement_icp
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, andrea
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-netherlands
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-netherlands:
    - l10n_nl_tax_statement
OCA/reporting-engine:
    - report_xlsx
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module extends the *Netherlands BTW Statement* module (BTW aangifte
report), by adding the statement for the *Intra-Community transactions
declaration* (ICP declaration).

The ICP declaration report is based on line *3b - Leveringen naar landen
binnen de EU (omzet)* of the BTW aangifte report. The period is also the
same as the one selected in the BTW aangifte report.

This ICP declaration report includes:

- the VAT identification numbers of your customers;
- the total amount of intra-Community supplies from the Netherlands for
  every customer during the selected period.

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
l10n_nl_tax_statement_icp.report_tax_statement_icp l10n_nl_tax_statement_icp.report_tax_statement_icp ir.ui.view qweb New
view_l10n_nl_vat_report_form l10n.nl.vat.statement xpath Inherits l10n_nl_tax_statement.view_l10n_nl_vat_report_form
Models touched (3)

New fields (2)
  • icp_line_ids One2many → l10n.nl.vat.statement.icp.line
    readonly=True string='ICP Lines' args: 'l10n.nl.vat.statement.icp.line', 'statement_id'
  • icp_total Monetary
    compute='_compute_icp_total' help='Total amount in currency of the statement.' string='Total ICP amount'
Public methods (3)
  • icp_update(self)
    Update button
  • post(self)
    Checks configuration when validating the statement
  • reset(self)
    Removes ICP lines if reset to draft

New fields (12)
  • amount_products Monetary
    readonly=True
  • amount_services Monetary
    readonly=True
  • country_code Char
    readonly=True
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency'
  • currency_name Char
    related='currency_id.name' string='Currency Name'
  • format_amount_products Char
    compute='_compute_icp_amount_format'
  • format_amount_services Char
    compute='_compute_icp_amount_format'
  • format_vat Char
    compute='_compute_format_vat'
  • partner_id Many2one → res.partner
    readonly=True required=True args: 'res.partner'
  • partner_name Char
    related='partner_id.name'
  • statement_id Many2one → l10n.nl.vat.statement
    ondelete='cascade' args: 'l10n.nl.vat.statement'
  • vat Char
    readonly=True string='VAT'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (3)
  • format_line_from_obj(self, line, report_data, is_pair_line)
    Write statement line on current row
  • generate_xlsx_report(self, workbook, data, objects)
  • write_array_header(self, report_data)
    Write array header on current line using all defined columns name. Columns are defined with `_get_report_columns` method.
REPOSITORY
REPOSITORYOCA/l10n-netherlands
GIT
GIThttps://github.com/OCA/l10n-netherlands.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-netherlands/tree/16.0/l10n_nl_tax_statement_icp
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, Andrea Stirpe, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-netherlands
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-netherlands:
    - l10n_nl_tax_statement
OCA/reporting-engine:
    - report_xlsx
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
l10n_nl_tax_statement_icp.report_tax_statement_icp l10n_nl_tax_statement_icp.report_tax_statement_icp ir.ui.view qweb New
view_l10n_nl_vat_report_form l10n.nl.vat.statement xpath Inherits l10n_nl_tax_statement.view_l10n_nl_vat_report_form
Models touched (3)

New fields (2)
  • icp_line_ids One2many → l10n.nl.vat.statement.icp.line
    readonly=True string='ICP Lines' args: 'l10n.nl.vat.statement.icp.line', 'statement_id'
  • icp_total Monetary
    compute='_compute_icp_total' help='Total amount in currency of the statement.' string='Total ICP amount'
Public methods (3)
  • icp_update(self)
    Update button
  • post(self)
    Checks configuration when validating the statement
  • reset(self)
    Removes ICP lines if reset to draft

New fields (12)
  • amount_products Monetary
    readonly=True
  • amount_services Monetary
    readonly=True
  • country_code Char
    readonly=True
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency'
  • currency_name Char
    related='currency_id.name' string='Currency Name'
  • format_amount_products Char
    compute='_compute_icp_amount_format'
  • format_amount_services Char
    compute='_compute_icp_amount_format'
  • format_vat Char
    compute='_compute_format_vat'
  • partner_id Many2one → res.partner
    readonly=True required=True args: 'res.partner'
  • partner_name Char
    related='partner_id.name'
  • statement_id Many2one → l10n.nl.vat.statement
    ondelete='cascade' args: 'l10n.nl.vat.statement'
  • vat Char
    readonly=True string='VAT'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (3)
  • format_line_from_obj(self, line, report_data, is_pair_line)
    Write statement line on current row
  • generate_xlsx_report(self, workbook, data, objects)
  • write_array_header(self, report_data)
    Write array header on current line using all defined columns name. Columns are defined with `_get_report_columns` method.
REPOSITORY
REPOSITORYOCA/l10n-netherlands
GIT
GIThttps://github.com/OCA/l10n-netherlands.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-netherlands/tree/15.0/l10n_nl_tax_statement_icp
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSOCA-git-bot, Andrea Stirpe, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-netherlands
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:35
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-netherlands:
    - l10n_nl_tax_statement
OCA/reporting-engine:
    - report_xlsx
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES xlrd
xlsxwriter
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
l10n_nl_tax_statement_icp.report_tax_statement_icp l10n_nl_tax_statement_icp.report_tax_statement_icp ir.ui.view qweb New
view_l10n_nl_vat_report_form l10n.nl.vat.statement xpath Inherits l10n_nl_tax_statement.view_l10n_nl_vat_report_form
Models touched (3)

New fields (2)
  • icp_line_ids One2many → l10n.nl.vat.statement.icp.line
    readonly=True string='ICP Lines' args: 'l10n.nl.vat.statement.icp.line', 'statement_id'
  • icp_total Monetary
    compute='_compute_icp_total' help='Total amount in currency of the statement.' string='Total ICP amount'
Public methods (3)
  • icp_update(self)
    Update button
  • post(self)
    Checks configuration when validating the statement
  • reset(self)
    Removes ICP lines if reset to draft

New fields (11)
  • amount_products Monetary
    readonly=True
  • amount_services Monetary
    readonly=True
  • country_code Char
    readonly=True
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency'
  • currency_name Char
    related='currency_id.name' string='Currency Name'
  • format_amount_products Char
    compute='_compute_icp_amount_format'
  • format_amount_services Char
    compute='_compute_icp_amount_format'
  • partner_id Many2one → res.partner
    readonly=True required=True args: 'res.partner'
  • partner_name Char
    related='partner_id.name'
  • statement_id Many2one → l10n.nl.vat.statement
    ondelete='cascade' args: 'l10n.nl.vat.statement'
  • vat Char
    readonly=True string='VAT'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (3)
  • format_line_from_obj(self, line, report_data, is_pair_line)
    Write statement line on current row
  • generate_xlsx_report(self, workbook, data, objects)
  • write_array_header(self, report_data)
    Write array header on current line using all defined columns name. Columns are defined with `_get_report_columns` method.
REPOSITORY
REPOSITORYOCA/l10n-netherlands
GIT
GIThttps://github.com/OCA/l10n-netherlands.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-netherlands/tree/14.0/l10n_nl_tax_statement_icp
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSAndrea, OCA Transbot, oca-travis, OCA-git-bot, oca-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-netherlands
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-netherlands:
    - l10n_nl_tax_statement
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
l10n_nl_tax_statement_icp.report_tax_statement_icp l10n_nl_tax_statement_icp.report_tax_statement_icp ir.ui.view qweb New
view_l10n_nl_vat_report_form l10n.nl.vat.statement xpath Inherits l10n_nl_tax_statement.view_l10n_nl_vat_report_form
Models touched (2)

New fields (2)
  • icp_line_ids One2many → l10n.nl.vat.statement.icp.line
    readonly=True string='ICP Lines' args: 'l10n.nl.vat.statement.icp.line', 'statement_id'
  • icp_total Monetary
    compute='_compute_icp_total' help='Total amount in currency of the statement.' string='Total ICP amount'
Public methods (3)
  • icp_update(self)
    Update button
  • post(self)
    Checks configuration when validating the statement
  • reset(self)
    Removes ICP lines if reset to draft

New fields (9)
  • amount_products Monetary
    readonly=True
  • amount_services Monetary
    readonly=True
  • country_code Char
    readonly=True
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency'
  • format_amount_products Char
    compute='_compute_icp_amount_format'
  • format_amount_services Char
    compute='_compute_icp_amount_format'
  • partner_id Many2one → res.partner
    readonly=True required=True args: 'res.partner'
  • statement_id Many2one → l10n.nl.vat.statement
    ondelete='cascade' args: 'l10n.nl.vat.statement'
  • vat Char
    readonly=True string='VAT'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-netherlands
GIT
GIThttps://github.com/OCA/l10n-netherlands.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-netherlands/tree/13.0/l10n_nl_tax_statement_icp
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSAndrea, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-netherlands
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:34:14
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-netherlands:
    - l10n_nl_tax_statement
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
l10n_nl_tax_statement_icp.report_tax_statement_icp l10n_nl_tax_statement_icp.report_tax_statement_icp ir.ui.view qweb New
view_l10n_nl_vat_report_form l10n.nl.vat.statement xpath Inherits l10n_nl_tax_statement.view_l10n_nl_vat_report_form
Models touched (2)

New fields (2)
  • icp_line_ids One2many → l10n.nl.vat.statement.icp.line
    readonly=True string='ICP Lines' args: 'l10n.nl.vat.statement.icp.line', 'statement_id'
  • icp_total Monetary
    compute='_compute_icp_total' help='Total amount in currency of the statement.' string='Total ICP amount'
Public methods (3)
  • icp_update(self)
    Update button
  • post(self)
    Checks configuration when validating the statement
  • reset(self)
    Removes ICP lines if reset to draft

New fields (9)
  • amount_products Monetary
    readonly=True
  • amount_services Monetary
    readonly=True
  • country_code Char
    readonly=True
  • currency_id Many2one → res.currency
    readonly=True args: 'res.currency'
  • format_amount_products Char
    compute='_compute_icp_amount_format'
  • format_amount_services Char
    compute='_compute_icp_amount_format'
  • partner_id Many2one → res.partner
    readonly=True required=True args: 'res.partner'
  • statement_id Many2one → l10n.nl.vat.statement
    ondelete='cascade' args: 'l10n.nl.vat.statement'
  • vat Char
    readonly=True string='VAT'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-netherlands
GIT
GIThttps://github.com/OCA/l10n-netherlands.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-netherlands/tree/12.0/l10n_nl_tax_statement_icp
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSStefan Rijnhart, Andrea, OCA Transbot, Weblate, OCA-git-bot, oca-ci
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-netherlands
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-netherlands:
    - l10n_nl_tax_statement
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
l10n_nl_tax_statement_icp.report_tax_statement_icp l10n_nl_tax_statement_icp.report_tax_statement_icp ir.ui.view qweb New
view_l10n_nl_vat_report_form l10n.nl.vat.statement xpath Inherits l10n_nl_tax_statement.view_l10n_nl_vat_report_form
Models touched (2)

New fields (4)
  • icp_line_ids One2many → l10n.nl.vat.statement.icp.line
    readonly=True string='ICP Lines' args: 'l10n.nl.vat.statement.icp.line', 'statement_id'
  • icp_total Monetary
    help='Total amount in currency of the statement.' readonly=True string='Total ICP amount'
  • tag_3b_omzet Many2one → account.account.tag
    compute='_compute_tag_3b_omzet' args: 'account.account.tag'
  • tag_3b_omzet_d Many2one → account.account.tag
    compute='_compute_tag_3b_omzet' args: 'account.account.tag'
Public methods (3)
  • icp_update(self)
    Update button
  • post(self)
    Checks configuration when validating the statement
  • reset(self)
    Removes ICP lines if reset to draft

New fields (9)
  • amount_products Monetary
    readonly=True
  • amount_services Monetary
    readonly=True
  • country_code Char
    readonly=True
  • currency_id Many2one → res.currency
    readonly=True string='Currency' args: 'res.currency'
  • format_amount_products Char
    compute='_compute_icp_amount_format'
  • format_amount_services Char
    compute='_compute_icp_amount_format'
  • partner_id Many2one → res.partner
    readonly=True required=True string='Partner' args: 'res.partner'
  • statement_id Many2one → l10n.nl.vat.statement
    ondelete='cascade' args: 'l10n.nl.vat.statement', 'Statement'
  • vat Char
    readonly=True string='VAT'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-netherlands
GIT
GIThttps://github.com/OCA/l10n-netherlands.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-netherlands/tree/11.0/l10n_nl_tax_statement_icp
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYLocalization
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Onestein
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Onestein
COMMITTERS
COMMITTERSHolger Brunn, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-netherlands
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/l10n-netherlands:
    - l10n_nl_tax_statement
OCA/server-ux:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
l10n_nl_tax_statement_icp.report_tax_statement_icp l10n_nl_tax_statement_icp.report_tax_statement_icp ir.ui.view qweb New
view_l10n_nl_vat_report_form l10n.nl.vat.statement xpath Inherits l10n_nl_tax_statement.view_l10n_nl_vat_report_form
Models touched (2)

New fields (4)
  • icp_line_ids One2many → l10n.nl.vat.statement.icp.line
    readonly=True string='ICP Lines' args: 'l10n.nl.vat.statement.icp.line', 'statement_id'
  • icp_total Monetary
    help='Total amount in currency of the statement.' readonly=True string='Total ICP amount'
  • tag_3b_omzet Many2one → account.account.tag
    compute='_compute_tag_3b_omzet' args: 'account.account.tag'
  • tag_3b_omzet_d Many2one → account.account.tag
    compute='_compute_tag_3b_omzet' args: 'account.account.tag'
Public methods (3)
  • icp_update(self)
    @api.multi
    Update button
  • post(self)
    @api.multi
    Checks configuration when validating the statement
  • reset(self)
    @api.multi
    Removes ICP lines if reset to draft

New fields (9)
  • amount_products Monetary
    readonly=True
  • amount_services Monetary
    readonly=True
  • country_code Char
    readonly=True
  • currency_id Many2one → res.currency
    readonly=True string='Currency' args: 'res.currency'
  • format_amount_products Char
    compute='_compute_icp_amount_format'
  • format_amount_services Char
    compute='_compute_icp_amount_format'
  • partner_id Many2one → res.partner
    readonly=True required=True string='Partner' args: 'res.partner'
  • statement_id Many2one → l10n.nl.vat.statement
    ondelete='cascade' args: 'l10n.nl.vat.statement', 'Statement'
  • vat Char
    readonly=True string='VAT'
Public methods (0)

No public methods.