Italy - E-invoicing

l10n_it_edi
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/l10n_it_edi
VERSION
VERSION 0.5
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSOdoo Translation Bot, Josse Colpaert, Xavier Morel, Nicolas Lempereur, qdp-odoo, Aaron Bohy, Laurent Smet, Julien Castiaux, Andrea Grazioso (agr-odoo), Paul Morelle, Anh Thao Pham (pta), Gorash, Pierre Paridans, odoo, william-andre, John Laterre (jol), Maximilien (malb), Thomas Becquevort (thbe), Gauthier Wala (gawa), Ali Alfie (alal), Yosua Nicolaus, Dylan Kiss (dyki), Paolo Gatti, micheledic, guva-odoo, Paul Stroobant, Louis (loti), Sven Fuehr, Mohamed GadAlrab, kcv-odoo, Louis Gobert, Harsh Shah, dijo-odoo, aamo-odoo, Mathieu Coutant, yagp-odoo, Claire (clbr), gteboul, Abdo Mongy, Antoine Dupuis, Léo Gizard, AhmedElemary57, Maira Salazar (srma), Ahmed Abdelaziz Hasaneen, Mohammad Abdulmoneim (abdu), khsr-odoo, Michaël Mattiello, Pierre Pulinckx, Anton Romanova (roan), Corentin Heinix (cohe), Corentin Lombard, Carmine, Sherif Gabr, MaximeNoirhomme, Krzysztof Magusiak (krma), Omar (OSAH), Hazem Ibrahim, Ester Andreetto, bhra-odoo, mojem, MAGREMENT, Jacob Was (jacw), suma-odoo, Alberto Giardino, shzi-odoo
WEBSITE
WEBSITEhttp://www.odoo.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_it
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
    - account_edi_ubl_cii
    - account_edi_proxy_client
    - certificate
    - account_debit_note
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
E-invoice implementation
    

Code Analysis

Views touched (21)
XML IDNameModelTypeStatus
account_invoice_FatturaPA_origin_document account_invoice_FatturaPA_origin_document ir.ui.view qweb New
account_invoice_form_l10n_it account.move.form.l10n.it account.move data Inherits account.view_move_form
account_invoice_it_FatturaPA_export account_invoice_it_FatturaPA_export ir.ui.view qweb New
account_invoice_it_FatturaPA_sede account_invoice_it_FatturaPA_sede ir.ui.view qweb New
account_invoice_it_simplified_FatturaPA_export account_invoice_it_simplified_FatturaPA_export ir.ui.view qweb New
account_invoice_line_it_FatturaPA account_invoice_line_it_FatturaPA ir.ui.view qweb New
account_invoice_line_it_simplified_FatturaPA account_invoice_line_it_simplified_FatturaPA ir.ui.view qweb New
account_view_tax_form_l10n_it_edi_extended account.tax.form.l10n.it.edi.extended account.tax xpath Inherits l10n_it.account_tax_form_l10n_it
address_form_fields Show l10n_it fields ir.ui.view qweb Inherits portal.address_form_fields
l10n_it_ddt ddt.form.l10n.it l10n_it.ddt form New
l10n_it_ddt_list_view l10n_it.ddt.list.view l10n_it.ddt list New
l10n_it_document_type_form l10n_it.document.type.form l10n_it.document.type form New
l10n_it_document_type_tree Document Type Tree l10n_it.document.type list New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
res_company_form_l10n_it res.company.form.l10n.it res.company data Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.proxy.user res.config.settings xpath Inherits account.res_config_settings_view_form
res_partner_form_l10n_it res.partner.form.l10n.it res.partner data Inherits account.view_partner_property_form
res_partner_tree_l10n_it res.partner.list.l10n.it res.partner xpath Inherits base.view_partner_tree
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account.view_account_invoice_filter
view_account_journal_form_l10n_it account.journal.form account.journal xpath Inherits account.view_account_journal_form
view_invoice_tree_inherit account.move.list.inherit account.move field Inherits account.view_invoice_tree
Models touched (11)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (19)
  • l10n_it_cig Char
    copy=False help='Tender Unique Identifier' string='CIG'
  • l10n_it_cup Char
    copy=False help='Public Investment Unique Identifier' string='CUP'
  • l10n_it_ddt_id Many2one → l10n_it.ddt
    copy=False string='DDT' args: 'l10n_it.ddt'
  • l10n_it_document_type Many2one → l10n_it.document.type
    comodel_name='l10n_it.document.type' compute='_compute_l10n_it_document_type' copy=False readonly=False store=True
  • l10n_it_edi_attachment_file Binary
    attachment=True copy=False
  • l10n_it_edi_attachment_name Char
    string='FatturaPA Attachment'
  • l10n_it_edi_button_label Char
    compute='_compute_l10n_it_edi_button_label'
  • l10n_it_edi_header Html
    copy=False help='User description of the current state, with hints to make the flow progress' readonly=True
  • l10n_it_edi_is_self_invoice Boolean
    compute='_compute_l10n_it_edi_is_self_invoice'
  • l10n_it_edi_proxy_mode Selection
    depends=['company_id'] related='company_id.l10n_it_edi_proxy_user_id.edi_mode'
  • l10n_it_edi_state Selection
    copy=False help='This state is updated by default, but you can force the value. ' inverse='_inverse_l10n_it_edi_state' selection=[('being_sent', 'Being Sent To SdI'), ('requires_user_signature', 'Requires user signature'), ('processing', 'SdI Processing'), ('rejected', 'SdI Rejected'), ('forwarded', 'SdI Accepted, Forwarded to Partner'), ('forward_failed', 'SdI Accepted, Forward to Partner Failed'), ('forward_attempt', 'SdI Accepted, Forwarding to Partner'), ('accepted_by_pa_partner', 'SdI Accepted, Accepted by the PA Partner'), ('rejected_by_pa_partner', 'SdI Accepted, Rejected by the PA Partner'), ('accepted_by_pa_partner_after_expiry', 'SdI Accepted, PA Partner Expired Terms')] string='SDI State' tracking=True
  • l10n_it_edi_transaction Char
    copy=False string='FatturaPA Transaction'
  • l10n_it_origin_document_date Date
    copy=False string='Origin Document Date'
  • l10n_it_origin_document_name Char
    copy=False string='Origin Document Name'
  • l10n_it_origin_document_type Selection
    copy=False selection=[('purchase_order', 'Purchase Order'), ('contract', 'Contract'), ('agreement', 'Agreement')] string='Origin Document Type'
  • l10n_it_partner_is_public_administration Boolean
    compute='_compute_l10n_it_partner_is_public_administration' help='Only partners that have a 6-chars long l10n_it_pa_index actually belong to the Public Administration'
  • l10n_it_partner_pa Boolean
    compute='_compute_l10n_it_partner_pa'
  • l10n_it_payment_method Selection
    compute='_compute_l10n_it_payment_method' readonly=False selection=L10N_IT_PAYMENT_METHOD_SELECTION store=True
  • l10n_it_stamp_duty Float
    string='Dati Bollo'
Public methods (6)
  • action_check_l10n_it_edi(self)
  • action_invoice_download_fatturapa(self)
  • action_l10n_it_edi_send(self)
    Checks that the invoice data is coherent. Attaches the XML file to the invoice. Sends the invoice to the SdI.
  • button_draft(self)
  • cron_l10n_it_edi_download_and_update(self)
    Crons run with sudo(), with empty recordset. Remember that.
  • get_extra_print_items(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • l10n_it_payment_method Selection
    default='MP05' selection=L10N_IT_PAYMENT_METHOD_SELECTION string='Italian Payment Method'
Public methods (0)

No public methods.

New fields (3)
  • l10n_it_pension_fund_type Selection
    help='Pension Fund Type. Only for Italian accounting EDI.' string='Pension fund type (Italy)' args: PENSION_FUND_TYPE_SELECTION
  • l10n_it_withholding_reason Selection
    help='Withholding tax reason. Only for Italian accounting EDI.' string='Withholding tax reason (Italy)' args: WITHHOLDING_REASON_SELECTION
  • l10n_it_withholding_type Selection
    help='Withholding tax type. Only for Italian accounting EDI.' string='Withholding tax type (Italy)' args: WITHHOLDING_TYPE_SELECTION
Public methods (0)

No public methods.

New fields (1)
  • proxy_type Selection
    ondelete={'l10n_it_edi': 'cascade'} selection_add=[('l10n_it_edi', 'Italian EDI')]
Public methods (0)

No public methods.

New fields (3)
  • date Date
    help='Transport document date' required=True string='Data DDT'
  • invoice_id One2many → account.move
    string='Invoice Reference' args: 'account.move', 'l10n_it_ddt_id'
  • name Char
    help='Transport document number' required=True size=20 string='Numero DDT'
Public methods (0)

No public methods.

New fields (3)
  • code Char
    required=True
  • name Char
    help='The document type name' required=True translate=True
  • type Selection
    selection=[('sale', 'Sale'), ('purchase', 'Purchase')]
Public methods (0)

No public methods.

New fields (13)
  • l10n_it_codice_fiscale Char
    help='Fiscal code of your company' readonly=False related='partner_id.l10n_it_codice_fiscale' size=16 store=True string='Codice Fiscale'
  • l10n_it_eco_index_liquidation_state Selection
    string='Liquidation state' args: [('LS', 'The company is in a state of liquidation'), ('LN', 'The company is not in a state of liquidation')]
  • l10n_it_eco_index_number Char
    help='This field must contain the number under which the seller/provider is listed on the register of companies.' size=20 string='Number in register of companies'
  • l10n_it_eco_index_office Many2one → res.country.state
    domain="[('country_id','=','IT')]" string='Province of the register-of-companies office' args: 'res.country.state'
  • l10n_it_eco_index_share_capital Float
    help='Mandatory if the seller/provider is a company with share capital (SpA, SApA, Srl), this field must contain the amount of share capital actually paid up as resulting from the last financial statement' string='Share capital actually paid up'
  • l10n_it_eco_index_sole_shareholder Selection
    string='Shareholder' args: [('NO', 'Not a limited liability company'), ('SU', 'Socio unico'), ('SM', 'Più soci')]
  • l10n_it_edi_proxy_user_id Many2one → account_edi_proxy_client.user
    comodel_name='account_edi_proxy_client.user' compute='_compute_l10n_it_edi_proxy_user_id'
  • l10n_it_edi_purchase_journal_id Many2one → account.journal
    comodel_name='account.journal' compute='_compute_l10n_it_edi_purchase_journal_id' domain=[('type', '=', 'purchase')] readonly=False store=True string='Italian Default Purchase Journal'
  • l10n_it_edi_register Boolean
    default=False
  • l10n_it_has_eco_index Boolean
    help='The seller/provider is a company listed on the register of companies and as such must also indicate the registration data on all documents (art. 2250, Italian Civil Code)'
  • l10n_it_has_tax_representative Boolean
    help='The seller/provider is a non-resident subject which carries out transactions in Italy with relevance for VAT purposes and which takes avail of a tax representative in Italy'
  • l10n_it_tax_representative_partner_id Many2one → res.partner
    string='Tax representative partner' args: 'res.partner'
  • l10n_it_tax_system Selection
    help='Please select the Tax system to which you are subjected.' selection=TAX_SYSTEM string='Tax System'
Public methods (0)

No public methods.

New fields (4)
  • l10n_it_edi_purchase_journal_id Many2one
    readonly=False related='company_id.l10n_it_edi_purchase_journal_id'
  • l10n_it_edi_register Boolean
    compute='_compute_l10n_it_edi_register' inverse='_set_l10n_it_edi_register' readonly=False
  • l10n_it_edi_show_purchase_journal_id Boolean
    compute='_compute_l10n_it_edi_show_purchase_journal_id'
  • use_root_proxy_user Boolean
    compute='_compute_use_root_proxy_user'
Public methods (0)

No public methods.

New fields (4)
  • invoice_edi_format Selection
    selection_add=[('it_edi_xml', 'Italy (Factura PA)')]
  • l10n_it_codice_fiscale Char
    size=16 string='Codice Fiscale'
  • l10n_it_pa_index Char
    help='Must contain the 6-character (or 7) code, present in the PA Index in the information relative to the electronic invoicing service, associated with the office which, within the addressee administration, deals with receiving (and processing) the invoice.' size=7 string='Destination Code (SDI)'
  • l10n_it_pec_email Char
    string='PEC e-mail'
Public methods (2)
  • create_company(self)
  • validate_codice_fiscale(self)
    @api.constrains('l10n_it_codice_fiscale')
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/l10n_it_edi
VERSION
VERSION 0.4
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Josse Colpaert, Xavier ALT, Xavier Morel, Nicolas Lempereur, Yannick Tivisse, Laurent Smet, Jorge Pinna Puissant, Jairo Llopis, Xavier-Do, Andrea Grazioso (agr-odoo), Paul Morelle, Anh Thao Pham (pta), Gorash, Pierre Paridans, odoo, Jigar Vaghela, Julien Van Roy, aliya, John Laterre (jol), Ruben Gomes, Thomas Beckers, Vincent Larcin, Maximilien (malb), Thomas Becquevort (thbe), Gauthier Wala (gawa), Ali Alfie (alal), Claire Bretton (clbr), Yosua Nicolaus, Antoine Dupuis (andu), Antoine Boonen, Dylan Kiss (dyki), Paolo Gatti, Paolo Gatti (pgi), Soam (sold), micheledic, sesn-odoo, guva-odoo, Paul Stroobant, axtr, Sven Fuehr, AMZIL Ayoub, Seif (segn), Mohamed GadAlrab, Louis Gobert, Louis (wil), Harsh Shah, aamo-odoo, Mathieu Coutant, Claire (clbr), gteboul, Abdo Mongy, Antoine Dupuis, Léo Gizard, AhmedElemary57, Ricardo Gomes Rodrigues, Logan Staelens, Tony Masci, khsr-odoo, Anton Romanova (roan), Corentin Heinix (cohe), Corentin Lombard, Carmine, Sherif Gabr, MaximeNoirhomme, Mahdi Alijani (malj), Ester Andreetto, bhra-odoo, Laurent Smet (LAS), Michele Di Croce, Alberto Giardino, shzi-odoo, Megaaaaaa
WEBSITE
WEBSITEhttp://www.odoo.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_it
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
    - account_edi_proxy_client
    - certificate
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
E-invoice implementation
    

Code Analysis

Views touched (16)
XML IDNameModelTypeStatus
account_invoice_FatturaPA_origin_document account_invoice_FatturaPA_origin_document ir.ui.view qweb New
account_invoice_form_l10n_it account.move.form.l10n.it account.move data Inherits account.view_move_form
account_invoice_it_FatturaPA_export account_invoice_it_FatturaPA_export ir.ui.view qweb New
account_invoice_it_FatturaPA_sede account_invoice_it_FatturaPA_sede ir.ui.view qweb New
account_invoice_it_simplified_FatturaPA_export account_invoice_it_simplified_FatturaPA_export ir.ui.view qweb New
account_invoice_line_it_FatturaPA account_invoice_line_it_FatturaPA ir.ui.view qweb New
account_invoice_line_it_simplified_FatturaPA account_invoice_line_it_simplified_FatturaPA ir.ui.view qweb New
l10n_it_ddt ddt.form.l10n.it l10n_it.ddt form New
l10n_it_ddt_list_view l10n_it.ddt.list.view l10n_it.ddt list New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
res_company_form_l10n_it res.company.form.l10n.it res.company data Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.proxy.user res.config.settings xpath Inherits account.res_config_settings_view_form
res_partner_form_l10n_it res.partner.form.l10n.it res.partner data Inherits account.view_partner_property_form
res_partner_tree_l10n_it res.partner.list.l10n.it res.partner xpath Inherits base.view_partner_tree
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account.view_account_invoice_filter
view_invoice_tree_inherit account.move.list.inherit account.move field Inherits account.view_invoice_tree
Models touched (8)

New fields (15)
  • l10n_it_cig Char
    copy=False help='Tender Unique Identifier' string='CIG'
  • l10n_it_cup Char
    copy=False help='Public Investment Unique Identifier' string='CUP'
  • l10n_it_ddt_id Many2one → l10n_it.ddt
    copy=False string='DDT' args: 'l10n_it.ddt'
  • l10n_it_edi_attachment_file Binary
    attachment=True copy=False
  • l10n_it_edi_attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' compute=<expr> depends=['l10n_it_edi_attachment_file'] string='FatturaPA Attachment'
  • l10n_it_edi_header Html
    copy=False help='User description of the current state, with hints to make the flow progress' readonly=True
  • l10n_it_edi_is_self_invoice Boolean
    compute='_compute_l10n_it_edi_is_self_invoice'
  • l10n_it_edi_state Selection
    copy=False help='This state is updated by default, but you can force the value. ' inverse='_inverse_l10n_it_edi_state' selection=[('being_sent', 'Being Sent To SdI'), ('requires_user_signature', 'Requires user signature'), ('processing', 'SdI Processing'), ('rejected', 'SdI Rejected'), ('forwarded', 'SdI Accepted, Forwarded to Partner'), ('forward_failed', 'SdI Accepted, Forward to Partner Failed'), ('forward_attempt', 'SdI Accepted, Forwarding to Partner'), ('accepted_by_pa_partner', 'SdI Accepted, Accepted by the PA Partner'), ('rejected_by_pa_partner', 'SdI Accepted, Rejected by the PA Partner'), ('accepted_by_pa_partner_after_expiry', 'SdI Accepted, PA Partner Expired Terms')] string='SDI State' tracking=True
  • l10n_it_edi_transaction Char
    copy=False string='FatturaPA Transaction'
  • l10n_it_origin_document_date Date
    copy=False string='Origin Document Date'
  • l10n_it_origin_document_name Char
    copy=False string='Origin Document Name'
  • l10n_it_origin_document_type Selection
    copy=False selection=[('purchase_order', 'Purchase Order'), ('contract', 'Contract'), ('agreement', 'Agreement')] string='Origin Document Type'
  • l10n_it_partner_is_public_administration Boolean
    compute='_compute_l10n_it_partner_is_public_administration' help='Only partners that have a 6-chars long l10n_it_pa_index actually belong to the Public Administration'
  • l10n_it_partner_pa Boolean
    compute='_compute_l10n_it_partner_pa'
  • l10n_it_stamp_duty Float
    string='Dati Bollo'
Public methods (6)
  • action_check_l10n_it_edi(self)
  • action_invoice_download_fatturapa(self)
  • action_l10n_it_edi_send(self)
    Checks that the invoice data is coherent. Attaches the XML file to the invoice. Sends the invoice to the SdI.
  • button_draft(self)
  • cron_l10n_it_edi_download_and_update(self)
    Crons run with sudo(), with empty recordset. Remember that.
  • get_extra_print_items(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • proxy_type Selection
    ondelete={'l10n_it_edi': 'cascade'} selection_add=[('l10n_it_edi', 'Italian EDI')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • date Date
    help='Transport document date' required=True string='Data DDT'
  • invoice_id One2many → account.move
    string='Invoice Reference' args: 'account.move', 'l10n_it_ddt_id'
  • name Char
    help='Transport document number' required=True size=20 string='Numero DDT'
Public methods (0)

No public methods.

New fields (11)
  • l10n_it_codice_fiscale Char
    help='Fiscal code of your company' readonly=False related='partner_id.l10n_it_codice_fiscale' size=16 store=True string='Codice Fiscale'
  • l10n_it_eco_index_liquidation_state Selection
    string='Liquidation state' args: [('LS', 'The company is in a state of liquidation'), ('LN', 'The company is not in a state of liquidation')]
  • l10n_it_eco_index_number Char
    help='This field must contain the number under which the seller/provider is listed on the register of companies.' size=20 string='Number in register of companies'
  • l10n_it_eco_index_office Many2one → res.country.state
    domain="[('country_id','=','IT')]" string='Province of the register-of-companies office' args: 'res.country.state'
  • l10n_it_eco_index_share_capital Float
    help='Mandatory if the seller/provider is a company with share capital (SpA, SApA, Srl), this field must contain the amount of share capital actually paid up as resulting from the last financial statement' string='Share capital actually paid up'
  • l10n_it_eco_index_sole_shareholder Selection
    string='Shareholder' args: [('NO', 'Not a limited liability company'), ('SU', 'Socio unico'), ('SM', 'Più soci')]
  • l10n_it_edi_proxy_user_id Many2one → account_edi_proxy_client.user
    comodel_name='account_edi_proxy_client.user' compute='_compute_l10n_it_edi_proxy_user_id'
  • l10n_it_has_eco_index Boolean
    help='The seller/provider is a company listed on the register of companies and as such must also indicate the registration data on all documents (art. 2250, Italian Civil Code)'
  • l10n_it_has_tax_representative Boolean
    help='The seller/provider is a non-resident subject which carries out transactions in Italy with relevance for VAT purposes and which takes avail of a tax representative in Italy'
  • l10n_it_tax_representative_partner_id Many2one → res.partner
    string='Tax representative partner' args: 'res.partner'
  • l10n_it_tax_system Selection
    help='Please select the Tax system to which you are subjected.' selection=TAX_SYSTEM string='Tax System'
Public methods (0)

No public methods.

New fields (6)
  • company_parent_id Many2one
    readonly=True related='company_id.parent_id'
  • is_edi_proxy_active Boolean
    compute='_compute_is_edi_proxy_active'
  • l10n_it_edi_demo_mode Selection
    compute='_compute_l10n_it_edi_demo_mode' inverse='_set_l10n_it_edi_register_demo_mode' readonly=False args: [('demo', 'Demo'), ('test', 'Test (experimental)'), ('prod', 'Official')]
  • l10n_it_edi_proxy_current_state Char
    compute='_compute_l10n_it_edi_proxy_current_state'
  • l10n_it_edi_register Boolean
    compute='_compute_l10n_it_edi_register' inverse='_set_l10n_it_edi_register_demo_mode'
  • use_root_proxy_user Boolean
    compute='_compute_use_root_proxy_user'
Public methods (1)
  • button_create_proxy_user(self)

New fields (4)
  • invoice_edi_format Selection
    selection_add=[('it_edi_xml', 'Italy (Factura PA)')]
  • l10n_it_codice_fiscale Char
    size=16 string='Codice Fiscale'
  • l10n_it_pa_index Char
    help='Must contain the 6-character (or 7) code, present in the PA Index in the information relative to the electronic invoicing service, associated with the office which, within the addressee administration, deals with receiving (and processing) the invoice.' size=7 string='Destination Code'
  • l10n_it_pec_email Char
    string='PEC e-mail'
Public methods (2)
  • create_company(self)
  • validate_codice_fiscale(self)
    @api.constrains('l10n_it_codice_fiscale')
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/l10n_it_edi
VERSION
VERSION 0.4
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Josse Colpaert, Denis Ledoux, Xavier ALT, qdp-odoo, GitHub, Laurent Smet, Jorge Pinna Puissant, Victor Feyens, Andrea Grazioso (agr-odoo), Paul Morelle, Anh Thao Pham (pta), Rémy Voet (ryv), Gorash, Pierre Paridans, Ricardo Gomes Rodrigues (rigr), william-andre, Julien Van Roy, MerlinGuillaume, aliya, Nshimiyimana Séna, Thomas Beckers, dbkosky, niyasraphy, jbw-odoo, alsh-odoo, Louis Wicket (wil), Maximilien (malb), Mahamadasif Ansari, Gauthier Wala (gawa), Saurabh Mishra, Daniel Kosky (dako), Claire Bretton (clbr), Yosua Nicolaus, Antoine Dupuis (andu), Antoine Boonen, Dylan Kiss (dyki), Paolo Gatti, Paolo Gatti (pgi), Julien Alardot (jual), Soam (sold), micheledic, Renilkumar Kajavadra, sesn-odoo, guva-odoo, Paul Stroobant, axtr, Sven Fuehr, AMZIL Ayoub, Seif (segn), Louis Gobert, Victorien (viso), Mathieu Coutant, Claire (clbr), gteboul, Léo Gizard, AhmedElemary57, Logan Staelens, Kawtar Drissi El Bouzaidi (kdeb), Tony Masci, Carmine, Sherif Gabr, Ester Andreetto, bhra-odoo
WEBSITE
WEBSITEhttp://www.odoo.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_it
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
    - account_edi_proxy_client
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
E-invoice implementation
    

Code Analysis

Views touched (17)
XML IDNameModelTypeStatus
account_invoice_FatturaPA_origin_document account_invoice_FatturaPA_origin_document ir.ui.view qweb New
account_invoice_form_l10n_it account.move.form.l10n.it account.move data Inherits account.view_move_form
account_invoice_it_FatturaPA_export account_invoice_it_FatturaPA_export ir.ui.view qweb New
account_invoice_it_FatturaPA_sede account_invoice_it_FatturaPA_sede ir.ui.view qweb New
account_invoice_it_simplified_FatturaPA_export account_invoice_it_simplified_FatturaPA_export ir.ui.view qweb New
account_invoice_line_it_FatturaPA account_invoice_line_it_FatturaPA ir.ui.view qweb New
account_invoice_line_it_simplified_FatturaPA account_invoice_line_it_simplified_FatturaPA ir.ui.view qweb New
account_move_send_inherit_l10n_it_edi account.move.send.form.inherit.l10n_it_edi account.move.send xpath Inherits account.account_move_send_form
l10n_it_ddt ddt.form.l10n.it l10n_it.ddt form New
l10n_it_ddt_list_view l10n_it.ddt.list.view l10n_it.ddt tree New
report_invoice_document report_invoice_document ir.ui.view qweb Inherits account.report_invoice_document
res_company_form_l10n_it res.company.form.l10n.it res.company data Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.proxy.user res.config.settings xpath Inherits account.res_config_settings_view_form
res_partner_form_l10n_it res.partner.form.l10n.it res.partner data Inherits account.view_partner_property_form
res_partner_tree_l10n_it res.partner.tree.l10n.it res.partner xpath Inherits base.view_partner_tree
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account.view_account_invoice_filter
view_invoice_tree_inherit account.move.tree.inherit account.move field Inherits account.view_invoice_tree
Models touched (8)

New fields (14)
  • l10n_it_cig Char
    copy=False help='Tender Unique Identifier' string='CIG'
  • l10n_it_cup Char
    copy=False help='Public Investment Unique Identifier' string='CUP'
  • l10n_it_ddt_id Many2one → l10n_it.ddt
    copy=False string='DDT' args: 'l10n_it.ddt'
  • l10n_it_edi_attachment_file Binary
    attachment=True copy=False
  • l10n_it_edi_attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' compute=<expr> depends=['l10n_it_edi_attachment_file'] string='FatturaPA Attachment'
  • l10n_it_edi_header Html
    copy=False help='User description of the current state, with hints to make the flow progress' readonly=True
  • l10n_it_edi_is_self_invoice Boolean
    compute='_compute_l10n_it_edi_is_self_invoice'
  • l10n_it_edi_state Selection
    copy=False help='This state is updated by default, but you can force the value. ' selection=[('being_sent', 'Being Sent To SdI'), ('requires_user_signature', 'Requires user signature'), ('processing', 'SdI Processing'), ('rejected', 'SdI Rejected'), ('forwarded', 'SdI Accepted, Forwarded to Partner'), ('forward_failed', 'SdI Accepted, Forward to Partner Failed'), ('forward_attempt', 'SdI Accepted, Forwarding to Partner'), ('accepted_by_pa_partner', 'SdI Accepted, Accepted by the PA Partner'), ('rejected_by_pa_partner', 'SdI Accepted, Rejected by the PA Partner'), ('accepted_by_pa_partner_after_expiry', 'SdI Accepted, PA Partner Expired Terms')] string='SDI State' tracking=True
  • l10n_it_edi_transaction Char
    copy=False string='FatturaPA Transaction'
  • l10n_it_origin_document_date Date
    copy=False string='Origin Document Date'
  • l10n_it_origin_document_name Char
    copy=False string='Origin Document Name'
  • l10n_it_origin_document_type Selection
    copy=False selection=[('purchase_order', 'Purchase Order'), ('contract', 'Contract'), ('agreement', 'Agreement')] string='Origin Document Type'
  • l10n_it_partner_pa Boolean
    compute='_compute_l10n_it_partner_pa'
  • l10n_it_stamp_duty Float
    string='Dati Bollo'
Public methods (4)
  • action_check_l10n_it_edi(self)
  • action_l10n_it_edi_send(self)
    Checks that the invoice data is coherent. Attaches the XML file to the invoice. Sends the invoice to the SdI.
  • button_draft(self)
  • cron_l10n_it_edi_download_and_update(self)
    Crons run with sudo(), with empty recordset. Remember that.

New fields (8)
  • l10n_it_edi_actionable_errors Json
    compute='_compute_l10n_it_edi_xml_export'
  • l10n_it_edi_checkbox_send Boolean
    compute='_compute_l10n_it_edi_checkbox_send' help='Send the e-invoice XML to the Italian Tax Agency.' readonly=False store=True args: 'Send To Tax Agency'
  • l10n_it_edi_checkbox_xml_export Boolean
    compute='_compute_l10n_it_edi_checkbox_xml_export' readonly=False store=True args: 'E-invoice XML'
  • l10n_it_edi_enable_send Boolean
    compute='_compute_l10n_it_edi_enable_readonly_send'
  • l10n_it_edi_enable_xml_export Boolean
    compute='_compute_l10n_it_edi_xml_export'
  • l10n_it_edi_readonly_send Boolean
    compute='_compute_l10n_it_edi_enable_readonly_send'
  • l10n_it_edi_readonly_xml_export Boolean
    compute='_compute_l10n_it_edi_xml_export'
  • l10n_it_edi_warning_message Html
    compute='_compute_l10n_it_edi_warning_message'
Public methods (0)

No public methods.

New fields (1)
  • proxy_type Selection
    ondelete={'l10n_it_edi': 'cascade'} selection_add=[('l10n_it_edi', 'Italian EDI')]
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • date Date
    help='Transport document date' required=True string='Data DDT'
  • invoice_id One2many → account.move
    string='Invoice Reference' args: 'account.move', 'l10n_it_ddt_id'
  • name Char
    help='Transport document number' required=True size=20 string='Numero DDT'
Public methods (0)

No public methods.

New fields (11)
  • l10n_it_codice_fiscale Char
    help='Fiscal code of your company' readonly=False related='partner_id.l10n_it_codice_fiscale' size=16 store=True string='Codice Fiscale'
  • l10n_it_eco_index_liquidation_state Selection
    string='Liquidation state' args: [('LS', 'The company is in a state of liquidation'), ('LN', 'The company is not in a state of liquidation')]
  • l10n_it_eco_index_number Char
    help='This field must contain the number under which the seller/provider is listed on the register of companies.' size=20 string='Number in register of companies'
  • l10n_it_eco_index_office Many2one → res.country.state
    domain="[('country_id','=','IT')]" string='Province of the register-of-companies office' args: 'res.country.state'
  • l10n_it_eco_index_share_capital Float
    help='Mandatory if the seller/provider is a company with share capital (SpA, SApA, Srl), this field must contain the amount of share capital actually paid up as resulting from the last financial statement' string='Share capital actually paid up'
  • l10n_it_eco_index_sole_shareholder Selection
    string='Shareholder' args: [('NO', 'Not a limited liability company'), ('SU', 'Socio unico'), ('SM', 'Più soci')]
  • l10n_it_edi_proxy_user_id Many2one → account_edi_proxy_client.user
    comodel_name='account_edi_proxy_client.user' compute='_compute_l10n_it_edi_proxy_user_id'
  • l10n_it_has_eco_index Boolean
    help='The seller/provider is a company listed on the register of companies and as such must also indicate the registration data on all documents (art. 2250, Italian Civil Code)'
  • l10n_it_has_tax_representative Boolean
    help='The seller/provider is a non-resident subject which carries out transactions in Italy with relevance for VAT purposes and which takes avail of a tax representative in Italy'
  • l10n_it_tax_representative_partner_id Many2one → res.partner
    string='Tax representative partner' args: 'res.partner'
  • l10n_it_tax_system Selection
    help='Please select the Tax system to which you are subjected.' selection=TAX_SYSTEM string='Tax System'
Public methods (0)

No public methods.

New fields (4)
  • is_edi_proxy_active Boolean
    compute='_compute_is_edi_proxy_active'
  • l10n_it_edi_demo_mode Selection
    compute='_compute_l10n_it_edi_demo_mode' inverse='_set_l10n_it_edi_register_demo_mode' readonly=False args: [('demo', 'Demo'), ('test', 'Test (experimental)'), ('prod', 'Official')]
  • l10n_it_edi_proxy_current_state Char
    compute='_compute_l10n_it_edi_proxy_current_state'
  • l10n_it_edi_register Boolean
    compute='_compute_l10n_it_edi_register' inverse='_set_l10n_it_edi_register_demo_mode'
Public methods (1)
  • button_create_proxy_user(self)

New fields (3)
  • l10n_it_codice_fiscale Char
    size=16 string='Codice Fiscale'
  • l10n_it_pa_index Char
    help='Must contain the 6-character (or 7) code, present in the PA Index in the information relative to the electronic invoicing service, associated with the office which, within the addressee administration, deals with receiving (and processing) the invoice.' size=7 string='Destination Code'
  • l10n_it_pec_email Char
    string='PEC e-mail'
Public methods (2)
  • create_company(self)
  • validate_codice_fiscale(self)
    @api.constrains('l10n_it_codice_fiscale')
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/l10n_it_edi
VERSION
VERSION 0.3
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo
MAINTAINERS
MAINTAINERSOdoo
COMMITTERS
COMMITTERSMartin Trigaux, Thibault Delavallée, Josse Colpaert, Xavier ALT, Nicolas Lempereur, Laurent Smet, Jairo Llopis, Andrea Grazioso (agr-odoo), William Henrotin, oco-odoo, Anh Thao Pham (pta), Alvaro Fuentes, Guillaume (guva), Nicolas (vin), william-andre, Paolo (pgi), Julien Van Roy, MerlinGuillaume, mafo-odoo, Audric Onockx (auon), aliya, william, Nshimiyimana Séna, Abdelouahab (abla), John Laterre (jol), dbkosky, jbw-odoo, Louis Wicket (wil), Mahamadasif Ansari, Thomas Becquevort (thbe), Gauthier Wala (gawa), Pierre-Yves Dufays, Saurabh Mishra, Antoine Dupuis (andu), Paolo Gatti, Paolo Gatti (pgi), Davan CHIEM DAO, Soam (sold), micheledic, Renilkumar Kajavadra, guva-odoo, Paul Stroobant, MAHAMADASIF ANSARI, Sven Fuehr, AMZIL Ayoub, Louis Gobert, Claire (clbr), Tony Masci
WEBSITE
WEBSITEhttp://www.odoo.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_it
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
    - account_edi
    - account_edi_proxy_client
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES cryptography
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
E-invoice implementation
    

Code Analysis

Views touched (18)
XML IDNameModelTypeStatus
account_invoice_FatturaPA_origin_document account_invoice_FatturaPA_origin_document ir.ui.view qweb New
account_invoice_form_l10n_it account.move.form.l10n.it account.move data Inherits account.view_move_form
account_invoice_it_FatturaPA_export account_invoice_it_FatturaPA_export ir.ui.view qweb New
account_invoice_it_FatturaPA_sede account_invoice_it_FatturaPA_sede ir.ui.view qweb New
account_invoice_it_simplified_FatturaPA_export account_invoice_it_simplified_FatturaPA_export ir.ui.view qweb New
account_invoice_line_it_FatturaPA account_invoice_line_it_FatturaPA ir.ui.view qweb New
account_invoice_line_it_simplified_FatturaPA account_invoice_line_it_simplified_FatturaPA ir.ui.view qweb New
account_tax_form_l10n_it account.tax.form.l10n.it account.tax data Inherits account.view_tax_form
l10n_it_ddt ddt.form.l10n.it l10n_it.ddt form New
l10n_it_ddt_list_view l10n_it.ddt.list.view l10n_it.ddt tree New
res_company_form_l10n_it res.company.form.l10n.it res.company data Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.proxy.user res.config.settings xpath Inherits account.res_config_settings_view_form
res_partner_form_l10n_it res.partner.form.l10n.it res.partner data Inherits base.view_partner_form
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account_edi.view_account_invoice_filter
view_account_invoice_filter account.invoice.select.inherit account.move xpath Inherits account_edi.view_account_invoice_filter
view_in_bill_tree_inherit account.move.tree.inherit account.move field Inherits account.view_in_invoice_bill_tree
view_invoice_tree_inherit account.move.tree.inherit account.move field Inherits account.view_invoice_tree
view_out_invoice_tree_inherit account.move.tree.inherit account.move field Inherits account_edi.view_out_invoice_tree_inherit
Models touched (9)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • l10n_it_ddt_id Many2one → l10n_it.ddt
    copy=False readonly=True states={'draft': [('readonly', False)]} string='DDT' args: 'l10n_it.ddt'
  • l10n_it_edi_attachment_id Many2one → ir.attachment
    copy=False ondelete='restrict' string='FatturaPA Attachment' args: 'ir.attachment'
  • l10n_it_edi_transaction Char
    copy=False string='FatturaPA Transaction'
  • l10n_it_einvoice_id Many2one → ir.attachment
    compute='_compute_l10n_it_einvoice' string='Electronic invoice' args: 'ir.attachment'
  • l10n_it_einvoice_name Char
    compute='_compute_l10n_it_einvoice'
  • l10n_it_stamp_duty Float
    readonly=True states={'draft': [('readonly', False)]} string='Dati Bollo'
Public methods (1)
  • invoice_generate_xml(self)

New fields (4)
  • l10n_it_has_exoneration Boolean
    help='Tax has a tax exoneration.' string='Has exoneration of tax (Italy)'
  • l10n_it_kind_exoneration Selection
    default='N1' help='Exoneration type' selection=[('N1', '[N1] Escluse ex art. 15'), ('N2', '[N2] Non soggette'), ('N2.1', '[N2.1] Non soggette ad IVA ai sensi degli artt. Da 7 a 7-septies del DPR 633/72'), ('N2.2', '[N2.2] Non soggette – altri casi'), ('N3', '[N3] Non imponibili'), ('N3.1', '[N3.1] Non imponibili – esportazioni'), ('N3.2', '[N3.2] Non imponibili – cessioni intracomunitarie'), ('N3.3', '[N3.3] Non imponibili – cessioni verso San Marino'), ('N3.4', '[N3.4] Non imponibili – operazioni assimilate alle cessioni all’esportazione'), ('N3.5', '[N3.5] Non imponibili – a seguito di dichiarazioni d’intento'), ('N3.6', '[N3.6] Non imponibili – altre operazioni che non concorrono alla formazione del plafond'), ('N4', '[N4] Esenti'), ('N5', '[N5] Regime del margine / IVA non esposta in fattura'), ('N6', '[N6] Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)'), ('N6.1', '[N6.1] Inversione contabile – cessione di rottami e altri materiali di recupero'), ('N6.2', '[N6.2] Inversione contabile – cessione di oro e argento puro'), ('N6.3', '[N6.3] Inversione contabile – subappalto nel settore edile'), ('N6.4', '[N6.4] Inversione contabile – cessione di fabbricati'), ('N6.5', '[N6.5] Inversione contabile – cessione di telefoni cellulari'), ('N6.6', '[N6.6] Inversione contabile – cessione di prodotti elettronici'), ('N6.7', '[N6.7] Inversione contabile – prestazioni comparto edile esettori connessi'), ('N6.8', '[N6.8] Inversione contabile – operazioni settore energetico'), ('N6.9', '[N6.9] Inversione contabile – altri casi'), ('N7', '[N7] IVA assolta in altro stato UE (prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-octies, comma 1 lett. a, b, art. 74-sexies DPR 633/72)')] string='Exoneration'
  • l10n_it_law_reference Char
    size=100 string='Law Reference'
  • l10n_it_vat_due_date Selection
    default='I' string='VAT due date' args: [('I', '[I] IVA ad esigibilità immediata'), ('D', '[D] IVA ad esigibilità differita'), ('S', '[S] Scissione dei pagamenti')]
Public methods (0)

No public methods.

New fields (3)
  • date Date
    help='Transport document date' required=True string='Data DDT'
  • invoice_id One2many → account.move
    string='Invoice Reference' args: 'account.move', 'l10n_it_ddt_id'
  • name Char
    help='Transport document number' required=True size=20 string='Numero DDT'
Public methods (1)
  • name_get(self)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (10)
  • l10n_it_codice_fiscale Char
    help='Fiscal code of your company' readonly=False related='partner_id.l10n_it_codice_fiscale' size=16 store=True string='Codice Fiscale'
  • l10n_it_eco_index_liquidation_state Selection
    string='Liquidation state' args: [('LS', 'The company is in a state of liquidation'), ('LN', 'The company is not in a state of liquidation')]
  • l10n_it_eco_index_number Char
    help='This field must contain the number under which the seller/provider is listed on the register of companies.' size=20 string='Number in register of companies'
  • l10n_it_eco_index_office Many2one → res.country.state
    domain="[('country_id','=','IT')]" string='Province of the register-of-companies office' args: 'res.country.state'
  • l10n_it_eco_index_share_capital Float
    help='Mandatory if the seller/provider is a company with share capital (SpA, SApA, Srl), this field must contain the amount of share capital actually paid up as resulting from the last financial statement' string='Share capital actually paid up'
  • l10n_it_eco_index_sole_shareholder Selection
    string='Shareholder' args: [('NO', 'Not a limited liability company'), ('SU', 'Socio unico'), ('SM', 'Più soci')]
  • l10n_it_has_eco_index Boolean
    help='The seller/provider is a company listed on the register of companies and as such must also indicate the registration data on all documents (art. 2250, Italian Civil Code)'
  • l10n_it_has_tax_representative Boolean
    help='The seller/provider is a non-resident subject which carries out transactions in Italy with relevance for VAT purposes and which takes avail of a tax representative in Italy'
  • l10n_it_tax_representative_partner_id Many2one → res.partner
    string='Tax representative partner' args: 'res.partner'
  • l10n_it_tax_system Selection
    help='Please select the Tax system to which you are subjected.' selection=TAX_SYSTEM string='Tax System'
Public methods (0)

No public methods.

New fields (4)
  • is_edi_proxy_active Boolean
    compute='_compute_is_edi_proxy_active'
  • l10n_it_edi_proxy_current_state Char
    compute='_compute_l10n_it_edi_proxy_current_state'
  • l10n_it_edi_sdicoop_demo_mode Selection
    compute='_compute_l10n_it_edi_sdicoop_demo_mode' inverse='_set_l10n_it_edi_sdicoop_register_demo_mode' readonly=False args: [('demo', 'Demo'), ('test', 'Test (experimental)'), ('prod', 'Official')]
  • l10n_it_edi_sdicoop_register Boolean
    compute='_compute_l10n_it_edi_sdicoop_register' inverse='_set_l10n_it_edi_sdicoop_register_demo_mode'
Public methods (1)
  • button_create_proxy_user(self)

New fields (3)
  • l10n_it_codice_fiscale Char
    size=16 string='Codice Fiscale'
  • l10n_it_pa_index Char
    help='Must contain the 6-character (or 7) code, present in the PA Index in the information relative to the electronic invoicing service, associated with the office which, within the addressee administration, deals with receiving (and processing) the invoice.' size=7 string='Destination Code'
  • l10n_it_pec_email Char
    string='PEC e-mail'
Public methods (1)
  • validate_codice_fiscale(self)
    @api.constrains('l10n_it_codice_fiscale')
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/l10n_it_edi
VERSION
VERSION 0.3
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo
MAINTAINERS
MAINTAINERSOdoo
COMMITTERS
COMMITTERSMartin Trigaux, Thibault Delavallée, Josse Colpaert, Xavier ALT, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Yannick Tivisse, wan, Xavier-Do, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Ivan Yelizariev, Gorash, Benjamin Frantzen (bfr), Guillaume (guva), william-andre, Paolo (pgi), Julien Van Roy, MerlinGuillaume, mafo-odoo, Audric Onockx (auon), william, Nshimiyimana Séna, Abdelouahab (abla), John Laterre (jol), Thomas Beckers, dbkosky, jbw-odoo, Antoine Dupuis (andu), Paolo Gatti, Paolo Gatti (pgi), Davan CHIEM DAO, guva-odoo, Sven Fuehr
WEBSITE
WEBSITEhttp://www.odoo.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_it
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
    - fetchmail
    - account_edi
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
E-invoice implementation
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_invoice_form_l10n_it account.move.form.l10n.it account.move data Inherits account.view_move_form
account_invoice_it_FatturaPA_export account_invoice_it_FatturaPA_export ir.ui.view qweb New
account_invoice_it_FatturaPA_sede account_invoice_it_FatturaPA_sede ir.ui.view qweb New
account_invoice_it_simplified_FatturaPA_export account_invoice_it_simplified_FatturaPA_export ir.ui.view qweb New
account_invoice_line_it_FatturaPA account_invoice_line_it_FatturaPA ir.ui.view qweb New
account_invoice_line_it_simplified_FatturaPA account_invoice_line_it_simplified_FatturaPA ir.ui.view qweb New
account_tax_form_l10n_it account.tax.form.l10n.it account.tax data Inherits account.view_tax_form
fetchmail_server_form_l10n_it fetchmail.server.form.l10n.it fetchmail.server data Inherits fetchmail.view_email_server_form
invoice_kanban_l10n_it account.invoice.kanban.l10n.it account.move data Inherits account.view_account_move_kanban
invoice_supplier_tree_l10n_it account.invoice.supplier.tree.l10n.it account.move data Inherits account.view_move_tree
l10n_it_ddt ddt.form.l10n.it l10n_it.ddt form New
l10n_it_ddt_list_view l10n_it.ddt.list.view l10n_it.ddt tree New
res_company_form_l10n_it res.company.form.l10n.it res.company data Inherits base.view_company_form
res_partner_form_l10n_it res.partner.form.l10n.it res.partner data Inherits base.view_partner_form
view_account_invoice_filter_l10n_it account.invoice.select.l10n.it account.move xpath Inherits account.view_account_invoice_filter
Models touched (9)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (5)
  • l10n_it_ddt_id Many2one → l10n_it.ddt
    copy=False readonly=True states={'draft': [('readonly', False)]} string='DDT' args: 'l10n_it.ddt'
  • l10n_it_einvoice_id Many2one → ir.attachment
    compute='_compute_l10n_it_einvoice' string='Electronic invoice' args: 'ir.attachment'
  • l10n_it_einvoice_name Char
    compute='_compute_l10n_it_einvoice'
  • l10n_it_send_state Selection
    copy=False default='to_send' string='FatturaPA Send State' args: [('new', 'New'), ('other', 'Other'), ('to_send', 'Not yet send'), ('sent', 'Sent, waiting for response'), ('invalid', 'Sent, but invalid'), ('delivered', 'This invoice is delivered'), ('delivered_accepted', 'This invoice is delivered and accepted by destinatory'), ('delivered_refused', 'This invoice is delivered and refused by destinatory'), ('delivered_expired', 'This invoice is delivered and expired (expiry of the maximum term for communication of acceptance/refusal)'), ('failed_delivery', 'Delivery impossible, ES certify that it has received the invoice and that the file could not be delivered to the addressee')]
  • l10n_it_stamp_duty Float
    readonly=True states={'draft': [('readonly', False)]} string='Dati Bollo'
Public methods (2)
  • invoice_generate_xml(self)
  • send_pec_mail(self)

New fields (4)
  • l10n_it_has_exoneration Boolean
    help='Tax has a tax exoneration.' string='Has exoneration of tax (Italy)'
  • l10n_it_kind_exoneration Selection
    default='N1' help='Exoneration type' selection=[('N1', '[N1] Escluse ex art. 15'), ('N2', '[N2] Non soggette'), ('N2.1', '[N2.1] Non soggette ad IVA ai sensi degli artt. Da 7 a 7-septies del DPR 633/72'), ('N2.2', '[N2.2] Non soggette – altri casi'), ('N3', '[N3] Non imponibili'), ('N3.1', '[N3.1] Non imponibili – esportazioni'), ('N3.2', '[N3.2] Non imponibili – cessioni intracomunitarie'), ('N3.3', '[N3.3] Non imponibili – cessioni verso San Marino'), ('N3.4', '[N3.4] Non imponibili – operazioni assimilate alle cessioni all’esportazione'), ('N3.5', '[N3.5] Non imponibili – a seguito di dichiarazioni d’intento'), ('N3.6', '[N3.6] Non imponibili – altre operazioni che non concorrono alla formazione del plafond'), ('N4', '[N4] Esenti'), ('N5', '[N5] Regime del margine / IVA non esposta in fattura'), ('N6', '[N6] Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)'), ('N6.1', '[N6.1] Inversione contabile – cessione di rottami e altri materiali di recupero'), ('N6.2', '[N6.2] Inversione contabile – cessione di oro e argento puro'), ('N6.3', '[N6.3] Inversione contabile – subappalto nel settore edile'), ('N6.4', '[N6.4] Inversione contabile – cessione di fabbricati'), ('N6.5', '[N6.5] Inversione contabile – cessione di telefoni cellulari'), ('N6.6', '[N6.6] Inversione contabile – cessione di prodotti elettronici'), ('N6.7', '[N6.7] Inversione contabile – prestazioni comparto edile esettori connessi'), ('N6.8', '[N6.8] Inversione contabile – operazioni settore energetico'), ('N6.9', '[N6.9] Inversione contabile – altri casi'), ('N7', '[N7] IVA assolta in altro stato UE (vendite a distanza ex art. 40 c. 3 e 4 e art. 41 c. 1 lett. b, DL 331/93; prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-sexies lett. f, g, art. 74-sexies DPR 633/72)')] string='Exoneration'
  • l10n_it_law_reference Char
    size=100 string='Law Reference'
  • l10n_it_vat_due_date Selection
    default='I' string='VAT due date' args: [('I', '[I] IVA ad esigibilità immediata'), ('D', '[D] IVA ad esigibilità differita'), ('S', '[S] Scissione dei pagamenti')]
Public methods (0)

No public methods.

New fields (2)
  • l10n_it_is_pec Boolean
    help="If PEC Server, only mail from '...@pec.fatturapa.it' will be processed." args: 'PEC server'
  • l10n_it_last_uid Integer
    default=1 string='Last message UID IT'
Public methods (1)
  • fetch_mail(self)
    WARNING: meant for cron usage only - will commit() after each email!

New fields (0)

No new fields.

Public methods (1)
  • build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')

New fields (3)
  • date Date
    help='Transport document date' required=True string='Data DDT'
  • invoice_id One2many → account.move
    string='Invoice Reference' args: 'account.move', 'l10n_it_ddt_id'
  • name Char
    help='Transport document number' required=True size=20 string='Numero DDT'
Public methods (1)
  • name_get(self)

New fields (13)
  • l10n_it_address_recipient_fatturapa Char
    help='Enter Government PEC-mail address. Ex: sdi01@pec.fatturapa.it' string='Government PEC-mail'
  • l10n_it_address_send_fatturapa Char
    help='Enter your company PEC-mail address. Ex: yourcompany@pec.mail.it' string='Company PEC-mail'
  • l10n_it_codice_fiscale Char
    help='Fiscal code of your company' readonly=False related='partner_id.l10n_it_codice_fiscale' size=16 store=True string='Codice Fiscale'
  • l10n_it_eco_index_liquidation_state Selection
    string='Liquidation state' args: [('LS', 'The company is in a state of liquidation'), ('LN', 'The company is not in a state of liquidation')]
  • l10n_it_eco_index_number Char
    help='This field must contain the number under which the seller/provider is listed on the register of companies.' size=20 string='Number in register of companies'
  • l10n_it_eco_index_office Many2one → res.country.state
    domain="[('country_id','=','IT')]" string='Province of the register-of-companies office' args: 'res.country.state'
  • l10n_it_eco_index_share_capital Float
    help='Mandatory if the seller/provider is a company with share capital (SpA, SApA, Srl), this field must contain the amount of share capital actually paid up as resulting from the last financial statement' string='Share capital actually paid up'
  • l10n_it_eco_index_sole_shareholder Selection
    string='Shareholder' args: [('NO', 'Not a limited liability company'), ('SU', 'Socio unico'), ('SM', 'Più soci')]
  • l10n_it_has_eco_index Boolean
    help='The seller/provider is a company listed on the register of companies and as such must also indicate the registration data on all documents (art. 2250, Italian Civil Code)'
  • l10n_it_has_tax_representative Boolean
    help='The seller/provider is a non-resident subject which carries out transactions in Italy with relevance for VAT purposes and which takes avail of a tax representative in Italy'
  • l10n_it_mail_pec_server_id Many2one → ir.mail_server
    help='Configure your PEC-mail server to send electronic invoices.' string='Server PEC' args: 'ir.mail_server'
  • l10n_it_tax_representative_partner_id Many2one → res.partner
    string='Tax representative partner' args: 'res.partner'
  • l10n_it_tax_system Selection
    help='Please select the Tax system to which you are subjected.' selection=TAX_SYSTEM string='Tax System'
Public methods (0)

No public methods.

New fields (3)
  • l10n_it_codice_fiscale Char
    size=16 string='Codice Fiscale'
  • l10n_it_pa_index Char
    help='Must contain the 6-character (or 7) code, present in the PA Index in the information relative to the electronic invoicing service, associated with the office which, within the addressee administration, deals with receiving (and processing) the invoice.' size=7 string='PA index'
  • l10n_it_pec_email Char
    string='PEC e-mail'
Public methods (1)
  • validate_codice_fiscale(self)
    @api.constrains('l10n_it_codice_fiscale')
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/l10n_it_edi
VERSION
VERSION 0.3
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo
MAINTAINERS
MAINTAINERSOdoo
COMMITTERS
COMMITTERSMartin Trigaux, Thibault Delavallée, Josse Colpaert, Christophe Simonis, Goffin Simon, Ravi Gohil, Nicolas Martinelli, Nicolas Lempereur, qdp-odoo, Yannick Tivisse, Laurent Smet, Jorge Pinna Puissant, Adrian Torres, wan, Julien Castiaux, Xavier-Do, Luis Torres, Victor Feyens, Andrea Grazioso (agr-odoo), fw-bot, Anh Thao Pham (pta), Ivan Yelizariev, Naglis Jonaitis, Benjamin Frantzen (bfr), Kevin Baptiste, Guillaume (guva), Jigar Vaghela, Paolo (pgi), Julien Van Roy, MerlinGuillaume, mafo-odoo, william, qsb-odoo, Abdelouahab (abla), Thomas Beckers, dbkosky, jbw-odoo, Antoine Dupuis (andu), Paolo Gatti, Paolo Gatti (pgi), Davan CHIEM DAO
WEBSITE
WEBSITEhttp://www.odoo.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_it
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
    - fetchmail
    - account_edi
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
E-invoice implementation
    

Code Analysis

Views touched (15)
XML IDNameModelTypeStatus
account_invoice_form_l10n_it account.move.form.l10n.it account.move data Inherits account.view_move_form
account_invoice_it_FatturaPA_export account_invoice_it_FatturaPA_export ir.ui.view qweb New
account_invoice_it_FatturaPA_sede account_invoice_it_FatturaPA_sede ir.ui.view qweb New
account_invoice_it_simplified_FatturaPA_export account_invoice_it_simplified_FatturaPA_export ir.ui.view qweb New
account_invoice_line_it_FatturaPA account_invoice_line_it_FatturaPA ir.ui.view qweb New
account_invoice_line_it_simplified_FatturaPA account_invoice_line_it_simplified_FatturaPA ir.ui.view qweb New
account_tax_form_l10n_it account.tax.form.l10n.it account.tax data Inherits account.view_tax_form
fetchmail_server_form_l10n_it fetchmail.server.form.l10n.it fetchmail.server data Inherits fetchmail.view_email_server_form
invoice_kanban_l10n_it account.invoice.kanban.l10n.it account.move data Inherits account.view_account_move_kanban
invoice_supplier_tree_l10n_it account.invoice.supplier.tree.l10n.it account.move data Inherits account.view_move_tree
l10n_it_ddt ddt.form.l10n.it l10n_it.ddt form New
l10n_it_ddt_list_view l10n_it.ddt.list.view l10n_it.ddt tree New
res_company_form_l10n_it res.company.form.l10n.it res.company data Inherits base.view_company_form
res_partner_form_l10n_it res.partner.form.l10n.it res.partner data Inherits base.view_partner_form
view_account_invoice_filter_l10n_it account.invoice.select.l10n.it account.move xpath Inherits account.view_account_invoice_filter
Models touched (9)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (5)
  • l10n_it_ddt_id Many2one → l10n_it.ddt
    copy=False readonly=True states={'draft': [('readonly', False)]} string='DDT' args: 'l10n_it.ddt'
  • l10n_it_einvoice_id Many2one → ir.attachment
    compute='_compute_l10n_it_einvoice' string='Electronic invoice' args: 'ir.attachment'
  • l10n_it_einvoice_name Char
    compute='_compute_l10n_it_einvoice'
  • l10n_it_send_state Selection
    copy=False default='to_send' string='FatturaPA Send State' args: [('new', 'New'), ('other', 'Other'), ('to_send', 'Not yet send'), ('sent', 'Sent, waiting for response'), ('invalid', 'Sent, but invalid'), ('delivered', 'This invoice is delivered'), ('delivered_accepted', 'This invoice is delivered and accepted by destinatory'), ('delivered_refused', 'This invoice is delivered and refused by destinatory'), ('delivered_expired', 'This invoice is delivered and expired (expiry of the maximum term for communication of acceptance/refusal)'), ('failed_delivery', 'Delivery impossible, ES certify that it has received the invoice and that the file could not be delivered to the addressee')]
  • l10n_it_stamp_duty Float
    default=0 readonly=True states={'draft': [('readonly', False)]} string='Dati Bollo'
Public methods (2)
  • invoice_generate_xml(self)
  • send_pec_mail(self)

New fields (4)
  • l10n_it_has_exoneration Boolean
    help='Tax has a tax exoneration.' string='Has exoneration of tax (Italy)'
  • l10n_it_kind_exoneration Selection
    default='N1' help='Exoneration type' selection=[('N1', '[N1] Escluse ex art. 15'), ('N2', '[N2] Non soggette'), ('N2.1', '[N2.1] Non soggette ad IVA ai sensi degli artt. Da 7 a 7-septies del DPR 633/72'), ('N2.2', '[N2.2] Non soggette – altri casi'), ('N3', '[N3] Non imponibili'), ('N3.1', '[N3.1] Non imponibili – esportazioni'), ('N3.2', '[N3.2] Non imponibili – cessioni intracomunitarie'), ('N3.3', '[N3.3] Non imponibili – cessioni verso San Marino'), ('N3.4', '[N3.4] Non imponibili – operazioni assimilate alle cessioni all’esportazione'), ('N3.5', '[N3.5] Non imponibili – a seguito di dichiarazioni d’intento'), ('N3.6', '[N3.6] Non imponibili – altre operazioni che non concorrono alla formazione del plafond'), ('N4', '[N4] Esenti'), ('N5', '[N5] Regime del margine / IVA non esposta in fattura'), ('N6', '[N6] Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)'), ('N6.1', '[N6.1] Inversione contabile – cessione di rottami e altri materiali di recupero'), ('N6.2', '[N6.2] Inversione contabile – cessione di oro e argento puro'), ('N6.3', '[N6.3] Inversione contabile – subappalto nel settore edile'), ('N6.4', '[N6.4] Inversione contabile – cessione di fabbricati'), ('N6.5', '[N6.5] Inversione contabile – cessione di telefoni cellulari'), ('N6.6', '[N6.6] Inversione contabile – cessione di prodotti elettronici'), ('N6.7', '[N6.7] Inversione contabile – prestazioni comparto edile esettori connessi'), ('N6.8', '[N6.8] Inversione contabile – operazioni settore energetico'), ('N6.9', '[N6.9] Inversione contabile – altri casi'), ('N7', '[N7] IVA assolta in altro stato UE (vendite a distanza ex art. 40 c. 3 e 4 e art. 41 c. 1 lett. b, DL 331/93; prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-sexies lett. f, g, art. 74-sexies DPR 633/72)')] string='Exoneration'
  • l10n_it_law_reference Char
    size=100 string='Law Reference'
  • l10n_it_vat_due_date Selection
    default='I' string='VAT due date' args: [('I', '[I] IVA ad esigibilità immediata'), ('D', '[D] IVA ad esigibilità differita'), ('S', '[S] Scissione dei pagamenti')]
Public methods (0)

No public methods.

New fields (2)
  • l10n_it_is_pec Boolean
    help="If PEC Server, only mail from '...@pec.fatturapa.it' will be processed." args: 'PEC server'
  • l10n_it_last_uid Integer
    default=1 string='Last message UID'
Public methods (1)
  • fetch_mail(self)
    WARNING: meant for cron usage only - will commit() after each email!

New fields (0)

No new fields.

Public methods (1)
  • build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')

New fields (3)
  • date Date
    help='Transport document date' required=True string='Data DDT'
  • invoice_id One2many → account.move
    string='Invoice Reference' args: 'account.move', 'l10n_it_ddt_id'
  • name Char
    help='Transport document number' required=True size=20 string='Numero DDT'
Public methods (1)
  • name_get(self)

New fields (13)
  • l10n_it_address_recipient_fatturapa Char
    help='Enter Government PEC-mail address. Ex: sdi01@pec.fatturapa.it' string='Government PEC-mail'
  • l10n_it_address_send_fatturapa Char
    help='Enter your company PEC-mail address. Ex: yourcompany@pec.mail.it' string='Company PEC-mail'
  • l10n_it_codice_fiscale Char
    help='Fiscal code of your company' readonly=False related='partner_id.l10n_it_codice_fiscale' size=16 store=True string='Codice Fiscale'
  • l10n_it_eco_index_liquidation_state Selection
    string='Liquidation state' args: [('LS', 'The company is in a state of liquidation'), ('LN', 'The company is not in a state of liquidation')]
  • l10n_it_eco_index_number Char
    help='This field must contain the number under which the seller/provider is listed on the register of companies.' size=20 string='Number in register of companies'
  • l10n_it_eco_index_office Many2one → res.country.state
    domain="[('country_id','=','IT')]" string='Province of the register-of-companies office' args: 'res.country.state'
  • l10n_it_eco_index_share_capital Float
    default=0.0 help='Mandatory if the seller/provider is a company with share capital (SpA, SApA, Srl), this field must contain the amount of share capital actually paid up as resulting from the last financial statement' string='Share capital actually paid up'
  • l10n_it_eco_index_sole_shareholder Selection
    string='Shareholder' args: [('NO', 'Not a limited liability company'), ('SU', 'Socio unico'), ('SM', 'Più soci')]
  • l10n_it_has_eco_index Boolean
    default=False help='The seller/provider is a company listed on the register of companies and as such must also indicate the registration data on all documents (art. 2250, Italian Civil Code)'
  • l10n_it_has_tax_representative Boolean
    default=False help='The seller/provider is a non-resident subject which carries out transactions in Italy with relevance for VAT purposes and which takes avail of a tax representative in Italy'
  • l10n_it_mail_pec_server_id Many2one → ir.mail_server
    help='Configure your PEC-mail server to send electronic invoices.' string='Server PEC' args: 'ir.mail_server'
  • l10n_it_tax_representative_partner_id Many2one → res.partner
    string='Tax representative partner' args: 'res.partner'
  • l10n_it_tax_system Selection
    help='Please select the Tax system to which you are subjected.' selection=TAX_SYSTEM string='Tax System'
Public methods (0)

No public methods.

New fields (3)
  • l10n_it_codice_fiscale Char
    size=16 string='Codice Fiscale'
  • l10n_it_pa_index Char
    help='Must contain the 6-character (or 7) code, present in the PA Index in the information relative to the electronic invoicing service, associated with the office which, within the addressee administration, deals with receiving (and processing) the invoice.' size=7 string='PA index'
  • l10n_it_pec_email Char
    string='PEC e-mail'
Public methods (1)
  • validate_codice_fiscale(self)
    @api.constrains('l10n_it_codice_fiscale')
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/l10n_it_edi
VERSION
VERSION 0.3
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo
MAINTAINERS
MAINTAINERSOdoo
COMMITTERS
COMMITTERSRaphael Collet, Martin Trigaux, Thibault Delavallée, Josse Colpaert, Christophe Simonis, Xavier Morel, Nicolas Martinelli, Nicolas Lempereur, qdp-odoo, Yannick Tivisse, RomainLibert, Jorge Pinna Puissant, Adrian Torres, wan, Julien Castiaux, Xavier-Do, Andrea Grazioso (agr-odoo), fw-bot, Anh Thao Pham (pta), Naglis Jonaitis, Thanh Dodeur, Benjamin Frantzen (bfr), Paolo (pgi), dbkosky
WEBSITE
WEBSITEhttp://www.odoo.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_it
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
E-invoice implementation
    

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
account_invoice_form_l10n_it account.move.form.l10n.it account.move data Inherits account.view_move_form
account_invoice_it_FatturaPA_export account_invoice_it_FatturaPA_export ir.ui.view qweb New
account_invoice_it_FatturaPA_sede account_invoice_it_FatturaPA_sede ir.ui.view qweb New
account_invoice_line_it_FatturaPA account_invoice_line_it_FatturaPA ir.ui.view qweb New
account_tax_form_l10n_it account.tax.form.l10n.it account.tax data Inherits account.view_tax_form
fetchmail_server_form_l10n_it fetchmail.server.form.l10n.it fetchmail.server data Inherits fetchmail.view_email_server_form
invoice_kanban_l10n_it account.invoice.kanban.l10n.it account.move data Inherits account.view_account_move_kanban
invoice_supplier_tree_l10n_it account.invoice.supplier.tree.l10n.it account.move data Inherits account.view_move_tree
l10n_it_ddt ddt.form.l10n.it l10n_it.ddt form New
l10n_it_ddt_list_view l10n_it.ddt.list.view l10n_it.ddt tree New
res_company_form_l10n_it res.company.form.l10n.it res.company data Inherits base.view_company_form
res_partner_form_l10n_it res.partner.form.l10n.it res.partner data Inherits base.view_partner_form
view_account_invoice_filter_l10n_it account.invoice.select.l10n.it account.move xpath Inherits account.view_account_invoice_filter
Models touched (7)

New fields (5)
  • l10n_it_ddt_id Many2one → l10n_it.ddt
    copy=False readonly=True states={'draft': [('readonly', False)]} string='DDT' args: 'l10n_it.ddt'
  • l10n_it_einvoice_id Many2one → ir.attachment
    copy=False string='Electronic invoice' args: 'ir.attachment'
  • l10n_it_einvoice_name Char
    copy=False readonly=True
  • l10n_it_send_state Selection
    copy=False default='to_send' args: [('new', 'New'), ('other', 'Other'), ('to_send', 'Not yet send'), ('sent', 'Sent, waiting for response'), ('invalid', 'Sent, but invalid'), ('delivered', 'This invoice is delivered'), ('delivered_accepted', 'This invoice is delivered and accepted by destinatory'), ('delivered_refused', 'This invoice is delivered and refused by destinatory'), ('delivered_expired', 'This invoice is delivered and expired (expiry of the maximum term for communication of acceptance/refusal)'), ('failed_delivery', 'Delivery impossible, ES certify that it has received the invoice and that the file could not be delivered to the addressee')]
  • l10n_it_stamp_duty Float
    default=0 readonly=True states={'draft': [('readonly', False)]} string='Dati Bollo'
Public methods (3)
  • invoice_generate_xml(self)
  • post(self)
  • send_pec_mail(self)

New fields (4)
  • l10n_it_has_exoneration Boolean
    help='Tax has a tax exoneration.' string='Has exoneration of tax (Italy)'
  • l10n_it_kind_exoneration Selection
    default='N1' help='Exoneration type' selection=[('N1', '[N1] Escluse ex art. 15'), ('N2', '[N2] Non soggette'), ('N2.1', '[N2.1] Non soggette ad IVA ai sensi degli artt. Da 7 a 7-septies del DPR 633/72'), ('N2.2', '[N2.2] Non soggette – altri casi'), ('N3', '[N3] Non imponibili'), ('N3.1', '[N3.1] Non imponibili – esportazioni'), ('N3.2', '[N3.2] Non imponibili – cessioni intracomunitarie'), ('N3.3', '[N3.3] Non imponibili – cessioni verso San Marino'), ('N3.4', '[N3.4] Non imponibili – operazioni assimilate alle cessioni all’esportazione'), ('N3.5', '[N3.5] Non imponibili – a seguito di dichiarazioni d’intento'), ('N3.6', '[N3.6] Non imponibili – altre operazioni che non concorrono alla formazione del plafond'), ('N4', '[N4] Esenti'), ('N5', '[N5] Regime del margine / IVA non esposta in fattura'), ('N6', '[N6] Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)'), ('N6.1', '[N6.1] Inversione contabile – cessione di rottami e altri materiali di recupero'), ('N6.2', '[N6.2] Inversione contabile – cessione di oro e argento puro'), ('N6.3', '[N6.3] Inversione contabile – subappalto nel settore edile'), ('N6.4', '[N6.4] Inversione contabile – cessione di fabbricati'), ('N6.5', '[N6.5] Inversione contabile – cessione di telefoni cellulari'), ('N6.6', '[N6.6] Inversione contabile – cessione di prodotti elettronici'), ('N6.7', '[N6.7] Inversione contabile – prestazioni comparto edile esettori connessi'), ('N6.8', '[N6.8] Inversione contabile – operazioni settore energetico'), ('N6.9', '[N6.9] Inversione contabile – altri casi'), ('N7', '[N7] IVA assolta in altro stato UE (vendite a distanza ex art. 40 c. 3 e 4 e art. 41 c. 1 lett. b, DL 331/93; prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-sexies lett. f, g, art. 74-sexies DPR 633/72)')] string='Exoneration'
  • l10n_it_law_reference Char
    size=100 string='Law Reference'
  • l10n_it_vat_due_date Selection
    default='I' string='VAT due date' args: [('I', '[I] IVA ad esigibilità immediata'), ('D', '[D] IVA ad esigibilità differita'), ('S', '[S] Scissione dei pagamenti')]
Public methods (0)

No public methods.

New fields (2)
  • l10n_it_is_pec Boolean
    help="If PEC Server, only mail from '...@pec.fatturapa.it' will be processed." args: 'PEC server'
  • l10n_it_last_uid Integer
    default=1 string='Last message UID'
Public methods (1)
  • fetch_mail(self)
    WARNING: meant for cron usage only - will commit() after each email!

New fields (0)

No new fields.

Public methods (1)
  • build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')

New fields (3)
  • date Date
    help='Transport document date' required=True string='Data DDT'
  • invoice_id One2many → account.move
    ondelete='cascade' string='Invoice Reference' args: 'account.move', 'l10n_it_ddt_id'
  • name Char
    help='Transport document number' required=True size=20 string='Numero DDT'
Public methods (1)
  • name_get(self)

New fields (13)
  • l10n_it_address_recipient_fatturapa Char
    help='Enter Government PEC-mail address. Ex: sdi01@pec.fatturapa.it' string='Government PEC-mail'
  • l10n_it_address_send_fatturapa Char
    help='Enter your company PEC-mail address. Ex: yourcompany@pec.mail.it' string='Company PEC-mail'
  • l10n_it_codice_fiscale Char
    help='Fiscal code of your company' readonly=False related='partner_id.l10n_it_codice_fiscale' size=16 store=True string='Codice Fiscale'
  • l10n_it_eco_index_liquidation_state Selection
    string='Liquidation state' args: [('LS', 'The company is in a state of liquidation'), ('LN', 'The company is not in a state of liquidation')]
  • l10n_it_eco_index_number Char
    help='This field must contain the number under which the seller/provider is listed on the register of companies.' size=20 string='Number in register of companies'
  • l10n_it_eco_index_office Many2one → res.country.state
    domain="[('country_id','=','IT')]" string='Province of the register-of-companies office' args: 'res.country.state'
  • l10n_it_eco_index_share_capital Float
    default=0.0 help='Mandatory if the seller/provider is a company with share capital (SpA, SApA, Srl), this field must contain the amount of share capital actually paid up as resulting from the last financial statement' string='Share capital actually paid up'
  • l10n_it_eco_index_sole_shareholder Selection
    string='Shareholder' args: [('NO', 'Not a limited liability company'), ('SU', 'Socio unico'), ('SM', 'Più soci')]
  • l10n_it_has_eco_index Boolean
    default=False help='The seller/provider is a company listed on the register of companies and as such must also indicate the registration data on all documents (art. 2250, Italian Civil Code)'
  • l10n_it_has_tax_representative Boolean
    default=False help='The seller/provider is a non-resident subject which carries out transactions in Italy with relevance for VAT purposes and which takes avail of a tax representative in Italy'
  • l10n_it_mail_pec_server_id Many2one → ir.mail_server
    help='Configure your PEC-mail server to send electronic invoices.' string='Server PEC' args: 'ir.mail_server'
  • l10n_it_tax_representative_partner_id Many2one → res.partner
    string='Tax representative partner' args: 'res.partner'
  • l10n_it_tax_system Selection
    help='Please select the Tax system to which you are subjected.' selection=TAX_SYSTEM string='Tax System'
Public methods (0)

No public methods.

New fields (3)
  • l10n_it_codice_fiscale Char
    size=16 string='Codice Fiscale'
  • l10n_it_pa_index Char
    help='Must contain the 6-character (or 7) code, present in the PA Index in the information relative to the electronic invoicing service, associated with the office which, within the addressee administration, deals with receiving (and processing) the invoice.' size=7 string='PA index'
  • l10n_it_pec_email Char
    string='PEC e-mail'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/l10n_it_edi
VERSION
VERSION 0.3
CATEGORY
CATEGORYLocalization
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo
MAINTAINERS
MAINTAINERSOdoo
COMMITTERS
COMMITTERSMartin Trigaux, Josse Colpaert, Christophe Simonis, Ravi Gohil, Nicolas Martinelli, Lucas Perais (lpe), Christophe Monniez, Jorge Pinna Puissant, Xavier-Do, jvm-odoo, Andrea Grazioso (agr-odoo), alt-odoo, Anh Thao Pham (pta), Benjamin Frantzen (bfr), jbm-odoo
WEBSITE
WEBSITEhttp://www.odoo.com/
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_it
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
E-invoice implementation
    

Code Analysis

Views touched (14)
XML IDNameModelTypeStatus
account_invoice_form_l10n_it account.invoice.form.l10n.it account.invoice data Inherits account.invoice_form
account_invoice_it_FatturaPA_export account_invoice_it_FatturaPA_export ir.ui.view qweb New
account_invoice_it_FatturaPA_sede account_invoice_it_FatturaPA_sede ir.ui.view qweb New
account_invoice_line_it_FatturaPA account_invoice_line_it_FatturaPA ir.ui.view qweb New
account_invoice_supplier_form_l10n_it account.invoice.supplier.form.l10n.it account.invoice data Inherits account.invoice_supplier_form
account_tax_form_l10n_it account.tax.form.l10n.it account.tax data Inherits account.view_tax_form
fetchmail_server_form_l10n_it fetchmail.server.form.l10n.it fetchmail.server data Inherits fetchmail.view_email_server_form
invoice_kanban_l10n_it account.invoice.kanban.l10n.it account.invoice data Inherits account.invoice_kanban
invoice_supplier_tree_l10n_it account.invoice.supplier.tree.l10n.it account.invoice data Inherits account.invoice_tree
l10n_it_ddt ddt.form.l10n.it l10n_it.ddt form New
l10n_it_ddt_list_view l10n_it.ddt.list.view l10n_it.ddt tree New
res_company_form_l10n_it res.company.form.l10n.it res.company data Inherits base.view_company_form
res_partner_form_l10n_it res.partner.form.l10n.it res.partner data Inherits base.view_partner_form
view_account_invoice_filter_l10n_it account.invoice.select.l10n.it account.invoice xpath Inherits account.view_account_invoice_filter
Models touched (8)

New fields (5)
  • l10n_it_ddt_id Many2one → l10n_it.ddt
    copy=False readonly=True states={'draft': [('readonly', False)]} string='DDT' args: 'l10n_it.ddt'
  • l10n_it_einvoice_id Many2one → ir.attachment
    copy=False string='Electronic invoice' args: 'ir.attachment'
  • l10n_it_einvoice_name Char
    copy=False readonly=True
  • l10n_it_send_state Selection
    copy=False default='to_send' args: [('new', 'New'), ('other', 'Other'), ('to_send', 'Not yet send'), ('sent', 'Sent, waiting for response'), ('invalid', 'Sent, but invalid'), ('delivered', 'This invoice is delivered'), ('delivered_accepted', 'This invoice is delivered and accepted by destinatory'), ('delivered_refused', 'This invoice is delivered and refused by destinatory'), ('delivered_expired', 'This invoice is delivered and expired (expiry of the maximum term for communication of acceptance/refusal)'), ('failed_delivery', 'Delivery impossible, ES certify that it has received the invoice and that the file could not be delivered to the addressee')]
  • l10n_it_stamp_duty Float
    default=0 readonly=True size=15 states={'draft': [('readonly', False)]} string='Dati Bollo'
Public methods (3)
  • invoice_generate_xml(self)
    @api.multi
  • invoice_validate(self)
    @api.multi
  • send_pec_mail(self)
    @api.multi

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (4)
  • l10n_it_has_exoneration Boolean
    help='Tax has a tax exoneration.' string='Has exoneration of tax (Italy)'
  • l10n_it_kind_exoneration Selection
    default='N1' help='Exoneration type' selection=[('N1', '[N1] Escluse ex art. 15'), ('N2', '[N2] Non soggette'), ('N2.1', '[N2.1] Non soggette ad IVA ai sensi degli artt. Da 7 a 7-septies del DPR 633/72'), ('N2.2', '[N2.2] Non soggette – altri casi'), ('N3', '[N3] Non imponibili'), ('N3.1', '[N3.1] Non imponibili – esportazioni'), ('N3.2', '[N3.2] Non imponibili – cessioni intracomunitarie'), ('N3.3', '[N3.3] Non imponibili – cessioni verso San Marino'), ('N3.4', '[N3.4] Non imponibili – operazioni assimilate alle cessioni all’esportazione'), ('N3.5', '[N3.5] Non imponibili – a seguito di dichiarazioni d’intento'), ('N3.6', '[N3.6] Non imponibili – altre operazioni che non concorrono alla formazione del plafond'), ('N4', '[N4] Esenti'), ('N5', '[N5] Regime del margine / IVA non esposta in fattura'), ('N6', '[N6] Inversione contabile (per le operazioni in reverse charge ovvero nei casi di autofatturazione per acquisti extra UE di servizi ovvero per importazioni di beni nei soli casi previsti)'), ('N6.1', '[N6.1] Inversione contabile – cessione di rottami e altri materiali di recupero'), ('N6.2', '[N6.2] Inversione contabile – cessione di oro e argento puro'), ('N6.3', '[N6.3] Inversione contabile – subappalto nel settore edile'), ('N6.4', '[N6.4] Inversione contabile – cessione di fabbricati'), ('N6.5', '[N6.5] Inversione contabile – cessione di telefoni cellulari'), ('N6.6', '[N6.6] Inversione contabile – cessione di prodotti elettronici'), ('N6.7', '[N6.7] Inversione contabile – prestazioni comparto edile esettori connessi'), ('N6.8', '[N6.8] Inversione contabile – operazioni settore energetico'), ('N6.9', '[N6.9] Inversione contabile – altri casi'), ('N7', '[N7] IVA assolta in altro stato UE (vendite a distanza ex art. 40 c. 3 e 4 e art. 41 c. 1 lett. b, DL 331/93; prestazione di servizi di telecomunicazioni, tele-radiodiffusione ed elettronici ex art. 7-sexies lett. f, g, art. 74-sexies DPR 633/72)')] string='Exoneration'
  • l10n_it_law_reference Char
    size=100 string='Law Reference'
  • l10n_it_vat_due_date Selection
    default='I' string='VAT due date' args: [('I', '[I] IVA ad esigibilità immediata'), ('D', '[D] IVA ad esigibilità differita'), ('S', '[S] Scissione dei pagamenti')]
Public methods (0)

No public methods.

New fields (2)
  • l10n_it_is_pec Boolean
    help="If PEC Server, only mail from '...@pec.fatturapa.it' will be processed." args: 'PEC server'
  • l10n_it_last_uid Integer
    default=1 string='Last message UID'
Public methods (1)
  • fetch_mail(self)
    @api.multi
    WARNING: meant for cron usage only - will commit() after each email!

New fields (0)

No new fields.

Public methods (1)
  • build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False, attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None, body_alternative=None, subtype_alternative='plain')

New fields (3)
  • date Date
    help='Transport document date' required=True string='Data DDT'
  • invoice_id One2many → account.invoice
    ondelete='cascade' string='Invoice Reference' args: 'account.invoice', 'l10n_it_ddt_id'
  • name Char
    help='Transport document number' required=True size=20 string='Numero DDT'
Public methods (1)
  • name_get(self)
    @api.multi

New fields (13)
  • l10n_it_address_recipient_fatturapa Char
    help='Enter Government PEC-mail address. Ex: sdi01@pec.fatturapa.it' string='Government PEC-mail'
  • l10n_it_address_send_fatturapa Char
    help='Enter your company PEC-mail address. Ex: yourcompany@pec.mail.it' string='Company PEC-mail'
  • l10n_it_codice_fiscale Char
    help='Fiscal code of your company' readonly=False related='partner_id.l10n_it_codice_fiscale' size=16 store=True string='Codice Fiscale'
  • l10n_it_eco_index_liquidation_state Selection
    string='Liquidation state' args: [('LS', 'The company is in a state of liquidation'), ('LN', 'The company is not in a state of liquidation')]
  • l10n_it_eco_index_number Char
    help='This field must contain the number under which the seller/provider is listed on the register of companies.' size=20 string='Number in register of companies'
  • l10n_it_eco_index_office Many2one → res.country.state
    domain="[('country_id','=','IT')]" string='Province of the register-of-companies office' args: 'res.country.state'
  • l10n_it_eco_index_share_capital Float
    default='0.0' help='Mandatory if the seller/provider is a company with share capital (SpA, SApA, Srl), this field must contain the amount of share capital actually paid up as resulting from the last financial statement' size=15 string='Share capital actually paid up'
  • l10n_it_eco_index_sole_shareholder Selection
    string='Shareholder' args: [('NO', 'Not a limited liability company'), ('SU', 'Socio unico'), ('SM', 'Più soci')]
  • l10n_it_has_eco_index Boolean
    default=False help='The seller/provider is a company listed on the register of companies and as such must also indicate the registration data on all documents (art. 2250, Italian Civil Code)'
  • l10n_it_has_tax_representative Boolean
    default=False help='The seller/provider is a non-resident subject which carries out transactions in Italy with relevance for VAT purposes and which takes avail of a tax representative in Italy'
  • l10n_it_mail_pec_server_id Many2one → ir.mail_server
    help='Configure your PEC-mail server to send electronic invoices.' string='Server PEC' args: 'ir.mail_server'
  • l10n_it_tax_representative_partner_id Many2one → res.partner
    string='Tax representative partner' args: 'res.partner'
  • l10n_it_tax_system Selection
    help='Please select the Tax system to which you are subjected.' selection=TAX_SYSTEM string='Tax System'
Public methods (0)

No public methods.

New fields (3)
  • l10n_it_codice_fiscale Char
    size=16 string='Codice Fiscale'
  • l10n_it_pa_index Char
    help='Must contain the 6-character (or 7) code, present in the PA Index in the information relative to the electronic invoicing service, associated with the office which, within the addressee administration, deals with receiving (and processing) the invoice.' size=7 string='PA index'
  • l10n_it_pec_email Char
    string='PEC e-mail'
Public methods (0)

No public methods.