ITA - Fattura elettronica - Base

l10n_it_fatturapa
REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/16.0/l10n_it_fatturapa
VERSION
VERSION 1.4.1
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
COMMITTERS
COMMITTERSeLBati, Sergio Zanchetta, Weblate, OCA-git-bot, Simone Rubino, micheledic, oca-ci, Marco Colombo, odooNextev, Borruso, PicchiSeba, TennyMKT, Marco Marinello
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:11:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-financial-tools:
    - account_fiscal_year
OCA/l10n-italy:
    - l10n_it_account
    - l10n_it_fiscalcode
    - l10n_it_ipa
    - l10n_it_rea
    - l10n_it_account_tax_kind
    - l10n_it_vat_payability
    - l10n_it_fiscal_payment_term
OCA/partner-contact:
    - partner_firstname
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
    - attachment_indexation
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES asn1crypto
xmlschema
codicefiscale
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
**Italiano**

Modulo base per gestire le fatture elettroniche.

<https://www.fatturapa.gov.it>

Consultare anche i file README di l10n_it_fatturapa_out e
l10n_it_fatturapa_in.

**English**

Base module to handle Electronic Invoices.

<https://www.fatturapa.gov.it>

See also l10n_it_fatturapa_out and l10n_it_fatturapa_in README files.

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
fatturapa_attachment_view_form Form view for SdI file fatturapa.attachment form New
fatturapa_related_document_type_inline_view_tree Inline editable tree view for fatturapa.related_document_type fatturapa.related_document_type tree Inherits fatturapa_related_document_type_view_tree
fatturapa_related_document_type_view_form Form view for fatturapa.related_document_type fatturapa.related_document_type form New
fatturapa_related_document_type_view_tree Tree view for fatturapa.related_document_type fatturapa.related_document_type tree New
view_account_config_settings view_account_config_settings res.config.settings xpath Inherits account.res_config_settings_view_form
view_company_form_e_invoice view_company_form_e_invoice res.company notebook Inherits base.view_company_form
view_invoice_form_fatturapa account.invoice.fatturapa account.move field Inherits account.view_move_form
view_partner_form_e_inv res.partner.form.e.invoice res.partner xpath Inherits base.view_partner_form
view_partner_form_fatturapa partner.form.fatturapa res.partner notebook Inherits account.view_partner_property_form
view_partner_ipa_form_ftpa view_partner_ipa_form_ftpa res.partner field Inherits l10n_it_ipa.view_partner_ipa_form
Models touched (19)

New fields (38)
  • activity_progress_ids One2many → fatturapa.activity.progress
    copy=False args: 'fatturapa.activity.progress', 'invoice_id', 'Phase of Activity Progress'
  • art73 Boolean
    copy=False help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the seller/provider to issue in the same year several documents with same number)' readonly=True args: 'Art. 73'
  • carrier_id Many2one → res.partner
    copy=False string='Carrier' args: 'res.partner'
  • delivery_address Text
    copy=False args: 'Delivery Address for E-invoice'
  • delivery_datetime Datetime
    copy=False args: 'Delivery Date Time'
  • description Char
    copy=False size=100
  • efatt_rounding Float
    copy=False help='Possible total amount rounding on the document (negative sign allowed)' readonly=True args: 'Rounding'
  • efatt_stabile_organizzazione_cap Char
    copy=False help='ZIP Code' readonly=True string='Organization ZIP'
  • efatt_stabile_organizzazione_civico Char
    copy=False help='Street number of the address (no need to specify if already present in the address field)' readonly=True string='Organization Street Number'
  • efatt_stabile_organizzazione_comune Char
    copy=False help='Municipality or city to which the Stable Organization refers' readonly=True string='Organization Municipality'
  • efatt_stabile_organizzazione_indirizzo Char
    copy=False help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy. Address of the stable organization in Italy (street name, square, etc.)' readonly=True string='Organization Address'
  • efatt_stabile_organizzazione_nazione Char
    copy=False help='Country code according to the ISO 3166-1 alpha-2 code standard' readonly=True string='Organization Country'
  • efatt_stabile_organizzazione_provincia Char
    copy=False help='Acronym of the Province to which the municipality indicated in the information element 1.2.3.4 <Comune> belongs. Must be filled if the information element 1.2.3.6 <Nazione> is equal to IT' readonly=True string='Organization Province'
  • electronic_invoice_subjected Boolean
    readonly=True related='commercial_partner_id.electronic_invoice_subjected' args: 'Subjected to Electronic Invoice'
  • fatturapa_doc_attachments One2many → fatturapa.attachments
    copy=False args: 'fatturapa.attachments', 'invoice_id', 'Electronic Invoice Attachments'
  • fatturapa_payments One2many → fatturapa.payment.data
    copy=False args: 'fatturapa.payment.data', 'invoice_id', 'Electronic Invoice Payment Data'
  • fatturapa_summary_ids One2many → fatturapa.summary.data
    copy=False args: 'fatturapa.summary.data', 'invoice_id', 'Electronic Invoice Summary Data'
  • ftpa_incoterms Char
    copy=False string='E-inv Incoterms'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_id', 'Related DDT'
  • ftpa_withholding_ids One2many → withholding.data.line
    copy=False args: 'withholding.data.line', 'invoice_id', 'Withholding'
  • gross_weight Float
    copy=False
  • intermediary Many2one → res.partner
    args: 'res.partner'
  • net_weight Float
    copy=False
  • number_items Integer
    copy=False args: 'Number of Items'
  • pickup_datetime Datetime
    copy=False args: 'Pick up'
  • protocol_number Char
    copy=False size=64
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_id'
  • related_invoice_code Char
    copy=False
  • related_invoice_date Date
    copy=False
  • sender Selection
    args: [('CC', 'Assignee / Partner'), ('TZ', 'Third Person')]
  • tax_representative_id Many2one → res.partner
    string='Tax Representative' args: 'res.partner'
  • total_travel Char
    copy=False size=15 args: 'Travel in hours or Km'
  • transport_date Date
    copy=False
  • transport_reason Char
    copy=False size=80 args: 'Reason'
  • transport_vehicle Char
    copy=False size=80 args: 'Vehicle'
  • unit_weight Char
    copy=False size=10 args: 'Weight Unit'
  • vehicle_registration Date
    copy=False
  • welfare_fund_ids One2many → welfare.fund.data.line
    copy=False args: 'welfare.fund.data.line', 'invoice_id', 'Welfare Fund'
Public methods (1)
  • open_form_current(self)

New fields (5)
  • admin_ref Char
    copy=False size=20 args: 'Admin. ref.'
  • discount_rise_price_ids One2many → discount.rise.price
    copy=False args: 'discount.rise.price', 'invoice_line_id', 'Discount or Supplement Details'
  • ftpa_line_number Integer
    copy=False readonly=True args: 'Line Number'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_line_id', 'Related DDT'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_line_id', 'Related Documents Type'
Public methods (0)

No public methods.

New fields (5)
  • amount Float
    digits='Discount'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • invoice_line_id Many2one → account.move.line
    index=True ondelete='cascade' args: 'account.move.line', 'Related Invoice from line'
  • name Selection
    args: [('SC', 'Discount'), ('MG', 'Supplement')], 'Type'
  • percentage Float
Public methods (0)

No public methods.

New fields (2)
  • fatturapa_activity_progress Integer
    args: 'Activity Progress'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
Public methods (0)

No public methods.

New fields (4)
  • att_name Char
    related='ir_attachment_id.name' store=True string='SdI file name'
  • ftpa_preview_link Char
    compute='_compute_ftpa_preview_link' readonly=True args: 'Preview link'
  • id Id
  • ir_attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachment'
Public methods (7)
  • cleanup_xml(self, xml_string)
    @api.model
  • extract_cades(data)
    @staticmethod
  • ftpa_preview(self)
  • get_fattura_elettronica_preview(self, attachment)
    @api.model
  • get_xml_string(self, attachment=None)
  • remove_xades_sign(self, xml)
    @api.model
  • strip_xml_content(self, xml)
    @api.model

New fields (4)
  • compression Char
    size=10
  • format Char
    size=10
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • ir_attachment_id Many2one → ir.attachment
    ondelete='cascade' required=True args: 'ir.attachment', 'Attachment'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (3)
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • payment_methods One2many → fatturapa.payment.detail
    args: 'fatturapa.payment.detail', 'payment_data_id', 'Payments Details'
  • payment_terms Many2one → fatturapa.payment_term
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_term'
Public methods (0)

No public methods.

New fields (24)
  • account_move_line_id Many2one → account.move.line
    string='Payment Line' args: 'account.move.line'
  • fatturapa_pm_id Many2one → fatturapa.payment_method
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_method'
  • max_payment_date Date
    args: 'Maximum Date for Payment'
  • payment_amount Float
  • payment_bank Many2one → res.partner.bank
    args: 'res.partner.bank'
  • payment_bank_abi Char
    args: 'ABI'
  • payment_bank_bic Char
    args: 'BIC'
  • payment_bank_cab Char
    args: 'CAB'
  • payment_bank_iban Char
    args: 'IBAN'
  • payment_bank_name Char
    args: 'Bank Name'
  • payment_code Char
  • payment_data_id Many2one → fatturapa.payment.data
    index=True ondelete='cascade' args: 'fatturapa.payment.data', 'Related Payments Data'
  • payment_days Integer
    args: 'Payment Term Days'
  • payment_due_date Date
  • payment_term_start Date
  • penalty_amount Float
    args: 'Amount of Penalty'
  • penalty_date Date
    args: 'Effective Date of Penalty'
  • post_office_code Char
    size=20
  • prepayment_discount Float
  • recepit_cf Char
    args: 'Receipt Issuer FC'
  • recepit_name Char
    args: 'Receipt Issuer Name'
  • recepit_surname Char
    args: 'Receipt Issuer Surname'
  • recepit_title Char
    args: 'Receipt Issuer Title'
  • recipient Char
    size=200
Public methods (0)

No public methods.

New fields (5)
  • date Date
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • invoice_line_id Many2one → account.move.line
    index=True ondelete='cascade' args: 'account.move.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (10)
  • cig Char
    size=15 args: 'CIG Code'
  • code Char
    size=100 args: 'Order Agreement Code'
  • cup Char
    size=15 args: 'CUP Code'
  • date Date
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' readonly=True args: 'account.move', 'Related Invoice'
  • invoice_line_id Many2one → account.move.line
    index=True ondelete='cascade' readonly=True args: 'account.move.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
  • numitem Char
    size=20 args: 'Item Num.'
  • type Selection
    required=True args: [('order', 'Order'), ('contract', 'Contract'), ('agreement', 'Agreement'), ('reception', 'Reception'), ('invoice', 'Related Invoice')], 'Document Type'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • setlineRef(self, n)

New fields (9)
  • amount_tax Float
  • amount_untaxed Float
  • incidental_charges Float
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • law_reference Char
    size=128 args: 'Law reference'
  • non_taxable_nature Selection
    selection='_get_tax_kinds' string='Non taxable nature'
  • payability Selection
    string='VAT payability' args: [('I', 'Immediate payability'), ('D', 'Deferred payability'), ('S', 'Split payment')]
  • rounding Float
  • tax_rate Float
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (8)
  • fatturapa_art73 Boolean
    args: 'Art. 73'
  • fatturapa_fiscal_position_id Many2one → fatturapa.fiscal_position
    help='Fiscal position used by electronic invoice' args: 'fatturapa.fiscal_position', 'Electronic Invoice Fiscal Position'
  • fatturapa_preview_style Selection
    default='Foglio_di_stile_fatturaordinaria_v1.2.2.xsl' required=True string='Preview Format Style for Fattura Ordinaria' args: [('Foglio_di_stile_fatturaordinaria_v1.2.2.xsl', 'Fattura Ordinaria'), ('FoglioStileAssoSoftware.xsl', 'AssoSoftware'), ('FoglioStileSouthTyrol-bilingue.xsl', 'South-Tyrol')]
  • fatturapa_pub_administration_ref Char
    size=20 args: 'Public Administration Reference Code'
  • fatturapa_sender_partner Many2one → res.partner
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' args: 'res.partner', 'Third Party/Sender'
  • fatturapa_simple_preview_style Selection
    default='fatturasemplificata_v1.0.xsl' required=True string='Preview Format Style for Fattura Semplificata' args: [('fatturasemplificata_v1.0.xsl', 'Fattura Semplificata')]
  • fatturapa_stabile_organizzazione Many2one → res.partner
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' args: 'res.partner', 'Stable Organization'
  • fatturapa_tax_representative Many2one → res.partner
    args: 'res.partner', 'Legal Tax Representative'
Public methods (0)

No public methods.

New fields (13)
  • fatturapa_art73 Boolean
    help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the company to issue in the same year several documents with same number)' readonly=False related='company_id.fatturapa_art73' string='Art. 73'
  • fatturapa_fiscal_position_id Many2one
    help='Fiscal position used by electronic invoice' readonly=False related='company_id.fatturapa_fiscal_position_id' string='Fiscal Position'
  • fatturapa_preview_style Selection
    readonly=False related='company_id.fatturapa_preview_style' required=True string='Preview Format Style for Fattura Ordinaria'
  • fatturapa_pub_administration_ref Char
    readonly=False related='company_id.fatturapa_pub_administration_ref' string='Public Administration Reference Code'
  • fatturapa_rea_capital Float
    readonly=False related='company_id.rea_capital' string='REA Capital'
  • fatturapa_rea_liquidation Selection
    readonly=False related='company_id.rea_liquidation_state' string='REA Liquidation'
  • fatturapa_rea_number Char
    readonly=False related='company_id.rea_code' string='REA Number'
  • fatturapa_rea_office Many2one
    readonly=False related='company_id.rea_office' string='REA Office'
  • fatturapa_rea_partner Selection
    readonly=False related='company_id.rea_member_type' string='REA Copartner'
  • fatturapa_sender_partner Many2one
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' readonly=False related='company_id.fatturapa_sender_partner' string='Third Party/Sender'
  • fatturapa_simple_preview_style Selection
    default='fatturasemplificata_v1.0.xsl' readonly=False related='company_id.fatturapa_simple_preview_style' required=True string='Preview Format Style for Fattura Semplificata'
  • fatturapa_stabile_organizzazione Many2one
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' readonly=False related='company_id.fatturapa_stabile_organizzazione' string='Stable Organization'
  • fatturapa_tax_representative Many2one
    help='The fields must be entered only when the seller/provider makes use of a tax representative in Italy' readonly=False related='company_id.fatturapa_tax_representative' string='Legal Tax Representative'
Public methods (1)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (15)
  • codice_destinatario Char
    default=STANDARD_ADDRESSEE_CODE help=<expr> args: 'Addressee Code'
  • electronic_invoice_data_complete Boolean
    compute='_compute_electronic_invoice_data_complete'
  • electronic_invoice_no_contact_update Boolean
    args: 'Do not update the contact from Electronic Invoice Details'
  • electronic_invoice_obliged_subject Boolean
    args: 'Obliged Subject'
  • electronic_invoice_subjected Boolean
    args: 'Enable electronic invoicing'
  • electronic_invoice_use_this_address Boolean
    help='Set this when the main company has got several Addressee Codes or PEC' args: 'Use this e-invoicing data when invoicing to this address'
  • eori_code Char
    size=20 args: 'EORI Code'
  • license_number Char
    size=20 args: 'License Code'
  • pa_partner_code Char
    size=20 args: 'PA Code for Partner'
  • pec_destinatario Char
    help=<expr> args: 'Addressee PEC'
  • register Char
    size=60 args: 'Professional Register'
  • register_code Char
    size=60 args: 'Register Registration Number'
  • register_fiscalpos Many2one → fatturapa.fiscal_position
    string='Register Fiscal Position' args: 'fatturapa.fiscal_position'
  • register_province Many2one → res.country.state
    args: 'res.country.state'
  • register_regdate Date
    args: 'Register Registration Date'
Public methods (3)
  • onchange_country_id_e_inv(self)
    @api.onchange('country_id')
  • onchange_e_inv_obliged_subject(self)
    @api.onchange('electronic_invoice_obliged_subject')
  • onchange_electronic_invoice_subjected(self)
    @api.onchange('electronic_invoice_subjected')

New fields (9)
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • kind_id Many2one → account.tax.kind
    string='Non taxable nature' args: 'account.tax.kind'
  • name Many2one → welfare.fund.type
    string='Welfare Fund Type' args: 'welfare.fund.type'
  • pa_line_code Char
    size=20 args: 'PA Code for this Record'
  • subjected_withholding Char
    size=2 args: 'Subjected to Withholding'
  • welfare_Iva_tax Float
    args: 'VAT Tax Rate'
  • welfare_amount_tax Float
    args: 'Welfare Tax Amount'
  • welfare_rate_tax Float
    args: 'Welfare Tax Rate'
  • welfare_taxable Float
Public methods (0)

No public methods.

New fields (2)
  • description Char
  • name Char
Public methods (1)
  • name_get(self)

New fields (3)
  • amount Float
    args: 'Withholding amount'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • name Selection
    selection=[('RT01', 'Natural Person'), ('RT02', 'Legal Person'), ('RT03', 'INPS'), ('RT04', 'ENASARCO'), ('RT05', 'ENPAM'), ('RT06', 'OTHER')] string='Withholding Type'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/14.0/l10n_it_fatturapa
VERSION
VERSION 2.4.0
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
COMMITTERS
COMMITTERSeLBati, Sergio Zanchetta, tafaRU, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi, sergiocorato, Simone Rubino, oca-ci, Giovanni, Alessandro Uffreduzzi, Marco Colombo, oca-git-bot, daniel-chionne, PicchiSeba, Eduard Brahas, Daniel Chionne, TennyMKT, Salvo Rapisarda
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:58
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-financial-tools:
    - account_fiscal_year
OCA/l10n-italy:
    - l10n_it_account
    - l10n_it_fiscalcode
    - l10n_it_ipa
    - l10n_it_rea
    - l10n_it_account_tax_kind
    - l10n_it_vat_payability
    - l10n_it_fiscal_payment_term
OCA/partner-contact:
    - partner_firstname
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
    - base_vat
    - attachment_indexation
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES asn1crypto
xmlschema
codicefiscale
openupgradelib
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
fatturapa_attachment_view_form Form view for SdI file fatturapa.attachment form New
fatturapa_related_document_type_inline_view_tree Inline editable tree view for fatturapa.related_document_type fatturapa.related_document_type tree Inherits fatturapa_related_document_type_view_tree
fatturapa_related_document_type_view_form Form view for fatturapa.related_document_type fatturapa.related_document_type form New
fatturapa_related_document_type_view_tree Tree view for fatturapa.related_document_type fatturapa.related_document_type tree New
view_account_config_settings view_account_config_settings res.config.settings xpath Inherits account.res_config_settings_view_form
view_company_form_e_invoice view_company_form_e_invoice res.company notebook Inherits base.view_company_form
view_invoice_form_fatturapa account.invoice.fatturapa account.move field Inherits account.view_move_form
view_partner_form_e_inv res.partner.form.e.invoice res.partner xpath Inherits base.view_partner_form
view_partner_form_fatturapa partner.form.fatturapa res.partner notebook Inherits account.view_partner_property_form
view_partner_ipa_form_ftpa view_partner_ipa_form_ftpa res.partner field Inherits l10n_it_ipa.view_partner_ipa_form
Models touched (19)

New fields (38)
  • activity_progress_ids One2many → fatturapa.activity.progress
    copy=False args: 'fatturapa.activity.progress', 'invoice_id', 'Phase of Activity Progress'
  • art73 Boolean
    copy=False help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the seller/provider to issue in the same year several documents with same number)' readonly=True args: 'Art. 73'
  • carrier_id Many2one → res.partner
    copy=False string='Carrier' args: 'res.partner'
  • delivery_address Text
    copy=False args: 'Delivery Address for E-invoice'
  • delivery_datetime Datetime
    copy=False args: 'Delivery Date Time'
  • description Char
    copy=False size=100 args: 'Description'
  • efatt_rounding Float
    copy=False help='Possible total amount rounding on the document (negative sign allowed)' readonly=True args: 'Rounding'
  • efatt_stabile_organizzazione_cap Char
    copy=False help='ZIP Code' readonly=True string='Organization ZIP'
  • efatt_stabile_organizzazione_civico Char
    copy=False help='Street number of the address (no need to specify if already present in the address field)' readonly=True string='Organization Street Number'
  • efatt_stabile_organizzazione_comune Char
    copy=False help='Municipality or city to which the Stable Organization refers' readonly=True string='Organization Municipality'
  • efatt_stabile_organizzazione_indirizzo Char
    copy=False help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy. Address of the stable organization in Italy (street name, square, etc.)' readonly=True string='Organization Address'
  • efatt_stabile_organizzazione_nazione Char
    copy=False help='Country code according to the ISO 3166-1 alpha-2 code standard' readonly=True string='Organization Country'
  • efatt_stabile_organizzazione_provincia Char
    copy=False help='Acronym of the Province to which the municipality indicated in the information element 1.2.3.4 <Comune> belongs. Must be filled if the information element 1.2.3.6 <Nazione> is equal to IT' readonly=True string='Organization Province'
  • electronic_invoice_subjected Boolean
    readonly=True related='commercial_partner_id.electronic_invoice_subjected' args: 'Subjected to Electronic Invoice'
  • fatturapa_doc_attachments One2many → fatturapa.attachments
    copy=False args: 'fatturapa.attachments', 'invoice_id', 'Electronic Invoice Attachments'
  • fatturapa_payments One2many → fatturapa.payment.data
    copy=False args: 'fatturapa.payment.data', 'invoice_id', 'Electronic Invoice Payment Data'
  • fatturapa_summary_ids One2many → fatturapa.summary.data
    copy=False args: 'fatturapa.summary.data', 'invoice_id', 'Electronic Invoice Summary Data'
  • ftpa_incoterms Char
    copy=False string='E-inv Incoterms'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_id', 'Related DDT'
  • ftpa_withholding_ids One2many → withholding.data.line
    copy=False args: 'withholding.data.line', 'invoice_id', 'Withholding'
  • gross_weight Float
    copy=False args: 'Gross Weight'
  • intermediary Many2one → res.partner
    string='Intermediary' args: 'res.partner'
  • net_weight Float
    copy=False args: 'Net Weight'
  • number_items Integer
    copy=False args: 'Number of Items'
  • pickup_datetime Datetime
    copy=False args: 'Pick up'
  • protocol_number Char
    copy=False size=64 args: 'Protocol Number'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_id', 'Related Documents'
  • related_invoice_code Char
    copy=False args: 'Related Invoice Code'
  • related_invoice_date Date
    copy=False args: 'Related Invoice Date'
  • sender Selection
    args: [('CC', 'Assignee / Partner'), ('TZ', 'Third Person')], 'Sender'
  • tax_representative_id Many2one → res.partner
    string='Tax Representative' args: 'res.partner'
  • total_travel Char
    copy=False size=15 args: 'Travel in hours or Km'
  • transport_date Date
    copy=False args: 'Transport Date'
  • transport_reason Char
    copy=False size=80 args: 'Reason'
  • transport_vehicle Char
    copy=False size=80 args: 'Vehicle'
  • unit_weight Char
    copy=False size=10 args: 'Weight Unit'
  • vehicle_registration Date
    copy=False args: 'Vehicle Registration'
  • welfare_fund_ids One2many → welfare.fund.data.line
    copy=False args: 'welfare.fund.data.line', 'invoice_id', 'Welfare Fund'
Public methods (1)
  • open_form_current(self)

New fields (5)
  • admin_ref Char
    copy=False size=20 args: 'Admin. ref.'
  • discount_rise_price_ids One2many → discount.rise.price
    copy=False args: 'discount.rise.price', 'invoice_line_id', 'Discount or Supplement Details'
  • ftpa_line_number Integer
    copy=False readonly=True args: 'Line Number'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_line_id', 'Related DDT'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_line_id', 'Related Documents Type'
Public methods (0)

No public methods.

New fields (5)
  • amount Float
    digits='Discount' args: 'Amount'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • invoice_line_id Many2one → account.move.line
    index=True ondelete='cascade' args: 'account.move.line', 'Related Invoice from line'
  • name Selection
    args: [('SC', 'Discount'), ('MG', 'Supplement')], 'Type'
  • percentage Float
    args: 'Percentage'
Public methods (0)

No public methods.

New fields (2)
  • fatturapa_activity_progress Integer
    args: 'Activity Progress'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
Public methods (0)

No public methods.

New fields (3)
  • att_name Char
    related='ir_attachment_id.name' store=True string='SdI file name'
  • ftpa_preview_link Char
    compute='_compute_ftpa_preview_link' readonly=True args: 'Preview link'
  • ir_attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachment'
Public methods (7)
  • cleanup_xml(self, xml_string)
    @api.model
  • extract_cades(data)
    @staticmethod
  • ftpa_preview(self)
  • get_fattura_elettronica_preview(self, attachment)
    @api.model
  • get_xml_string(self, attachment=None)
  • remove_xades_sign(self, xml)
    @api.model
  • strip_xml_content(self, xml)
    @api.model

New fields (4)
  • compression Char
    size=10 args: 'Compression'
  • format Char
    size=10 args: 'Format'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • ir_attachment_id Many2one → ir.attachment
    ondelete='cascade' required=True args: 'ir.attachment', 'Attachment'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (3)
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • payment_methods One2many → fatturapa.payment.detail
    args: 'fatturapa.payment.detail', 'payment_data_id', 'Payments Details'
  • payment_terms Many2one → fatturapa.payment_term
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_term'
Public methods (0)

No public methods.

New fields (24)
  • account_move_line_id Many2one → account.move.line
    string='Payment Line' args: 'account.move.line'
  • fatturapa_pm_id Many2one → fatturapa.payment_method
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_method'
  • max_payment_date Date
    args: 'Maximum Date for Payment'
  • payment_amount Float
    args: 'Payment Amount'
  • payment_bank Many2one → res.partner.bank
    string='Payment Bank' args: 'res.partner.bank'
  • payment_bank_abi Char
    args: 'ABI'
  • payment_bank_bic Char
    args: 'BIC'
  • payment_bank_cab Char
    args: 'CAB'
  • payment_bank_iban Char
    args: 'IBAN'
  • payment_bank_name Char
    args: 'Bank Name'
  • payment_code Char
    args: 'Payment Code'
  • payment_data_id Many2one → fatturapa.payment.data
    index=True ondelete='cascade' args: 'fatturapa.payment.data', 'Related Payments Data'
  • payment_days Integer
    args: 'Payment Term Days'
  • payment_due_date Date
    args: 'Payment Due Date'
  • payment_term_start Date
    args: 'Payment Term Start'
  • penalty_amount Float
    args: 'Amount of Penalty'
  • penalty_date Date
    args: 'Effective Date of Penalty'
  • post_office_code Char
    size=20 args: 'Post Office Code'
  • prepayment_discount Float
    args: 'Prepayment Discount'
  • recepit_cf Char
    args: 'Receipt Issuer FC'
  • recepit_name Char
    args: 'Receipt Issuer Name'
  • recepit_surname Char
    args: 'Receipt Issuer Surname'
  • recepit_title Char
    args: 'Receipt Issuer Title'
  • recipient Char
    size=200 args: 'Recipient'
Public methods (0)

No public methods.

New fields (5)
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • invoice_line_id Many2one → account.move.line
    index=True ondelete='cascade' args: 'account.move.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (10)
  • cig Char
    size=15 args: 'CIG Code'
  • code Char
    size=100 args: 'Order Agreement Code'
  • cup Char
    size=15 args: 'CUP Code'
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' readonly=True args: 'account.move', 'Related Invoice'
  • invoice_line_id Many2one → account.move.line
    index=True ondelete='cascade' readonly=True args: 'account.move.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
  • numitem Char
    size=20 args: 'Item Num.'
  • type Selection
    required=True args: [('order', 'Order'), ('contract', 'Contract'), ('agreement', 'Agreement'), ('reception', 'Reception'), ('invoice', 'Related Invoice')], 'Document Type'
Public methods (2)
  • create(self, vals)
    @api.model
  • setlineRef(self, n)

New fields (9)
  • amount_tax Float
    args: 'Amount Tax'
  • amount_untaxed Float
    args: 'Amount Untaxed'
  • incidental_charges Float
    args: 'Incidental Charges'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • law_reference Char
    size=128 args: 'Law reference'
  • non_taxable_nature Selection
    selection='_get_tax_kinds' string='Non taxable nature'
  • payability Selection
    string='VAT payability' args: [('I', 'Immediate payability'), ('D', 'Deferred payability'), ('S', 'Split payment')]
  • rounding Float
    args: 'Rounding'
  • tax_rate Float
    args: 'Tax Rate'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (8)
  • fatturapa_art73 Boolean
    args: 'Art. 73'
  • fatturapa_fiscal_position_id Many2one → fatturapa.fiscal_position
    help='Fiscal position used by electronic invoice' args: 'fatturapa.fiscal_position', 'Fiscal Position'
  • fatturapa_preview_style Selection
    default='Foglio_di_stile_fatturaordinaria_v1.2.2.xsl' required=True string='Preview Format Style for Fattura Ordinaria' args: [('Foglio_di_stile_fatturaordinaria_v1.2.2.xsl', 'Fattura Ordinaria'), ('FoglioStileAssoSoftware.xsl', 'AssoSoftware'), ('FoglioStileSouthTyrol-bilingue.xsl', 'South-Tyrol')]
  • fatturapa_pub_administration_ref Char
    size=20 args: 'Public Administration Reference Code'
  • fatturapa_sender_partner Many2one → res.partner
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' args: 'res.partner', 'Third Party/Sender'
  • fatturapa_simple_preview_style Selection
    default='fatturasemplificata_v1.0.xsl' required=True string='Preview Format Style for Fattura Semplificata' args: [('fatturasemplificata_v1.0.xsl', 'Fattura Semplificata')]
  • fatturapa_stabile_organizzazione Many2one → res.partner
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' args: 'res.partner', 'Stable Organization'
  • fatturapa_tax_representative Many2one → res.partner
    args: 'res.partner', 'Legal Tax Representative'
Public methods (0)

No public methods.

New fields (13)
  • fatturapa_art73 Boolean
    help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the company to issue in the same year several documents with same number)' readonly=False related='company_id.fatturapa_art73' string='Art. 73'
  • fatturapa_fiscal_position_id Many2one
    help='Fiscal position used by electronic invoice' readonly=False related='company_id.fatturapa_fiscal_position_id' string='Fiscal Position'
  • fatturapa_preview_style Selection
    readonly=False related='company_id.fatturapa_preview_style' required=True string='Preview Format Style for Fattura Ordinaria'
  • fatturapa_pub_administration_ref Char
    readonly=False related='company_id.fatturapa_pub_administration_ref' string='Public Administration Reference Code'
  • fatturapa_rea_capital Float
    readonly=False related='company_id.rea_capital' string='REA Capital'
  • fatturapa_rea_liquidation Selection
    readonly=False related='company_id.rea_liquidation_state' string='REA Liquidation'
  • fatturapa_rea_number Char
    readonly=False related='company_id.rea_code' string='REA Number'
  • fatturapa_rea_office Many2one
    readonly=False related='company_id.rea_office' string='REA Office'
  • fatturapa_rea_partner Selection
    readonly=False related='company_id.rea_member_type' string='REA Copartner'
  • fatturapa_sender_partner Many2one
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' readonly=False related='company_id.fatturapa_sender_partner' string='Third Party/Sender'
  • fatturapa_simple_preview_style Selection
    default='fatturasemplificata_v1.0.xsl' readonly=False related='company_id.fatturapa_simple_preview_style' required=True string='Preview Format Style for Fattura Semplificata'
  • fatturapa_stabile_organizzazione Many2one
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' readonly=False related='company_id.fatturapa_stabile_organizzazione' string='Stable Organization'
  • fatturapa_tax_representative Many2one
    help='The fields must be entered only when the seller/provider makes use of a tax representative in Italy' readonly=False related='company_id.fatturapa_tax_representative' string='Legal Tax Representative'
Public methods (1)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (15)
  • codice_destinatario Char
    default=STANDARD_ADDRESSEE_CODE help=<expr> args: 'Addressee Code'
  • electronic_invoice_data_complete Boolean
    compute='_compute_electronic_invoice_data_complete'
  • electronic_invoice_no_contact_update Boolean
    args: 'Do not update the contact from Electronic Invoice Details'
  • electronic_invoice_obliged_subject Boolean
    args: 'Obliged Subject'
  • electronic_invoice_subjected Boolean
    args: 'Enable electronic invoicing'
  • electronic_invoice_use_this_address Boolean
    help='Set this when the main company has got several Addressee Codes or PEC' args: 'Use this e-invoicing data when invoicing to this address'
  • eori_code Char
    size=20 args: 'EORI Code'
  • license_number Char
    size=20 args: 'License Code'
  • pa_partner_code Char
    size=20 args: 'PA Code for Partner'
  • pec_destinatario Char
    help=<expr> args: 'Addressee PEC'
  • register Char
    size=60 args: 'Professional Register'
  • register_code Char
    size=60 args: 'Register Registration Number'
  • register_fiscalpos Many2one → fatturapa.fiscal_position
    string='Register Fiscal Position' args: 'fatturapa.fiscal_position'
  • register_province Many2one → res.country.state
    string='Register Province' args: 'res.country.state'
  • register_regdate Date
    args: 'Register Registration Date'
Public methods (3)
  • onchange_country_id_e_inv(self)
    @api.onchange('country_id')
  • onchange_e_inv_obliged_subject(self)
    @api.onchange('electronic_invoice_obliged_subject')
  • onchange_electronic_invoice_subjected(self)
    @api.onchange('electronic_invoice_subjected')

New fields (9)
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • kind_id Many2one → account.tax.kind
    string='Non taxable nature' args: 'account.tax.kind'
  • name Many2one → welfare.fund.type
    string='Welfare Fund Type' args: 'welfare.fund.type'
  • pa_line_code Char
    size=20 args: 'PA Code for this Record'
  • subjected_withholding Char
    size=2 args: 'Subjected to Withholding'
  • welfare_Iva_tax Float
    args: 'VAT Tax Rate'
  • welfare_amount_tax Float
    args: 'Welfare Tax Amount'
  • welfare_rate_tax Float
    args: 'Welfare Tax Rate'
  • welfare_taxable Float
    args: 'Welfare Taxable'
Public methods (0)

No public methods.

New fields (2)
  • description Char
    args: 'Description'
  • name Char
    args: 'Name'
Public methods (1)
  • name_get(self)

New fields (3)
  • amount Float
    args: 'Withholding amount'
  • invoice_id Many2one → account.move
    index=True ondelete='cascade' args: 'account.move', 'Related Invoice'
  • name Selection
    selection=[('RT01', 'Natural Person'), ('RT02', 'Legal Person'), ('RT03', 'INPS'), ('RT04', 'ENASARCO'), ('RT05', 'ENPAM'), ('RT06', 'OTHER')] string='Withholding Type'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/12.0/l10n_it_fatturapa
VERSION
VERSION 3.0.3
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
COMMITTERS
COMMITTERSLorenzo Battistini, eLBati, GitHub, Sergio Zanchetta, Francesco Apruzzese, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi, sergiocorato, Sergio Corato, Simone Rubino, Lara Baggio, oca-ci, Docker @ kuntrawant, Giovanni, Marco Colombo, Simone, Borruso
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy/tree/12.0/l10n_it_fatturapa
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:29:17
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-financial-tools:
    - account_fiscal_year
OCA/l10n-italy:
    - l10n_it_account
    - l10n_it_fiscalcode
    - l10n_it_ipa
    - l10n_it_rea
    - l10n_it_account_tax_kind
    - l10n_it_esigibilita_iva
    - l10n_it_fiscal_payment_term
    - l10n_it_split_payment
    - l10n_it_fiscal_document_type
OCA/partner-contact:
    - partner_firstname
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
    - base_vat
    - document
    - base_iban
    - test_mail
    - test_performance
    - mail_bot
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES asn1crypto
pyxb
codicefiscale
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (11)
XML IDNameModelTypeStatus
fatturapa_attachment_view_form Form view for SdI file fatturapa.attachment form New
fatturapa_related_document_type_inline_view_tree Inline editable tree view for fatturapa.related_document_type fatturapa.related_document_type tree Inherits fatturapa_related_document_type_view_tree
fatturapa_related_document_type_view_form Form view for fatturapa.related_document_type fatturapa.related_document_type form New
fatturapa_related_document_type_view_tree Tree view for fatturapa.related_document_type fatturapa.related_document_type tree New
invoice_form view.invoice.fatturapa.form account.invoice field Inherits account.invoice_form
view_account_config_settings view_account_config_settings res.config.settings xpath Inherits account.res_config_settings_view_form
view_company_form_e_invoice view_company_form_e_invoice res.company notebook Inherits base.view_company_form
view_invoice_line_form_fatturapa account.invoice.line.fatturapa account.invoice.line field Inherits account.view_invoice_line_form
view_partner_form_e_inv res.partner.form.e.invoice res.partner xpath Inherits base.view_partner_form
view_partner_form_fatturapa partner.form.fatturapa res.partner notebook Inherits l10n_it_fatturapa.view_partner_form_e_inv
view_partner_ipa_form_ftpa view_partner_ipa_form_ftpa res.partner field Inherits l10n_it_ipa.view_partner_ipa_form
Models touched (20)

New fields (38)
  • activity_progress_ids One2many → faturapa.activity.progress
    copy=False args: 'faturapa.activity.progress', 'invoice_id', 'Phase of Activity Progress'
  • art73 Boolean
    copy=False help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the seller/provider to issue in the same year several documents with same number)' readonly=True args: 'Art. 73'
  • carrier_id Many2one → res.partner
    copy=False string='Carrier' args: 'res.partner'
  • delivery_address Text
    copy=False args: 'Delivery Address for E-invoice'
  • delivery_datetime Datetime
    copy=False args: 'Delivery Date Time'
  • description Char
    copy=False size=100 args: 'Description'
  • efatt_rounding Float
    copy=False help='Possible total amount rounding on the document (negative sign allowed)' readonly=True args: 'Rounding'
  • efatt_stabile_organizzazione_cap Char
    copy=False help='ZIP Code' readonly=True string='Organization ZIP'
  • efatt_stabile_organizzazione_civico Char
    copy=False help='Street number of the address (no need to specify if already present in the address field)' readonly=True string='Organization Street Number'
  • efatt_stabile_organizzazione_comune Char
    copy=False help='Municipality or city to which the Stable Organization refers' readonly=True string='Organization Municipality'
  • efatt_stabile_organizzazione_indirizzo Char
    copy=False help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy. Address of the stable organization in Italy (street name, square, etc.)' readonly=True string='Organization Address'
  • efatt_stabile_organizzazione_nazione Char
    copy=False help='Country code according to the ISO 3166-1 alpha-2 code standard' readonly=True string='Organization Country'
  • efatt_stabile_organizzazione_provincia Char
    copy=False help='Acronym of the Province to which the municipality indicated in the information element 1.2.3.4 <Comune> belongs. Must be filled if the information element 1.2.3.6 <Nazione> is equal to IT' readonly=True string='Organization Province'
  • electronic_invoice_subjected Boolean
    readonly=True related='commercial_partner_id.electronic_invoice_subjected' args: 'Subjected to Electronic Invoice'
  • fatturapa_doc_attachments One2many → fatturapa.attachments
    copy=False args: 'fatturapa.attachments', 'invoice_id', 'Electronic Invoice Attachments'
  • fatturapa_payments One2many → fatturapa.payment.data
    copy=False args: 'fatturapa.payment.data', 'invoice_id', 'Electronic Invoice Payment Data'
  • fatturapa_summary_ids One2many → faturapa.summary.data
    copy=False args: 'faturapa.summary.data', 'invoice_id', 'Electronic Invoice Summary Data'
  • ftpa_incoterms Char
    copy=False string='E-inv Incoterms'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_id', 'Related DDT'
  • ftpa_withholding_ids One2many → withholding.data.line
    copy=False args: 'withholding.data.line', 'invoice_id', 'Withholding'
  • gross_weight Float
    copy=False args: 'Gross Weight'
  • intermediary Many2one → res.partner
    string='Intermediary' args: 'res.partner'
  • net_weight Float
    copy=False args: 'Net Weight'
  • number_items Integer
    copy=False args: 'Number of Items'
  • pickup_datetime Datetime
    copy=False args: 'Pick up'
  • protocol_number Char
    copy=False size=64 args: 'Protocol Number'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_id', 'Related Documents'
  • related_invoice_code Char
    copy=False args: 'Related Invoice Code'
  • related_invoice_date Date
    copy=False args: 'Related Invoice Date'
  • sender Selection
    args: [('CC', 'Assignee / Partner'), ('TZ', 'Third Person')], 'Sender'
  • tax_representative_id Many2one → res.partner
    string='Tax Representative' args: 'res.partner'
  • total_travel Char
    copy=False size=15 args: 'Travel in hours or Km'
  • transport_date Date
    copy=False args: 'Transport Date'
  • transport_reason Char
    copy=False size=80 args: 'Reason'
  • transport_vehicle Char
    copy=False size=80 args: 'Vehicle'
  • unit_weight Char
    copy=False size=10 args: 'Weight Unit'
  • vehicle_registration Date
    copy=False args: 'Vehicle Registration'
  • welfare_fund_ids One2many → welfare.fund.data.line
    copy=False args: 'welfare.fund.data.line', 'invoice_id', 'Welfare Fund'
Public methods (1)
  • open_form_current(self)
    @api.multi

New fields (5)
  • admin_ref Char
    copy=False size=20 args: 'Admin. ref.'
  • discount_rise_price_ids One2many → discount.rise.price
    copy=False args: 'discount.rise.price', 'invoice_line_id', 'Discount or Supplement Details'
  • ftpa_line_number Integer
    copy=False readonly=True args: 'Line Number'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_line_id', 'Related DDT'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_line_id', 'Related Documents Type'
Public methods (0)

No public methods.

New fields (5)
  • amount Float
    digits=dp.get_precision('Discount') args: 'Amount'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice from line'
  • name Selection
    args: [('SC', 'Discount'), ('MG', 'Supplement')], 'Type'
  • percentage Float
    args: 'Percentage'
Public methods (0)

No public methods.

New fields (3)
  • att_name Char
    related='ir_attachment_id.name' store=True string='SdI file name'
  • ftpa_preview_link Char
    compute='_compute_ftpa_preview_link' readonly=True args: 'Preview link'
  • ir_attachment_id Many2one → ir.attachment
    comodel_name='ir.attachment' ondelete='cascade' required=True string='Attachment'
Public methods (7)
  • cleanup_xml(self, xml_string)
    @api.model
  • extract_cades(data)
    @staticmethod
  • ftpa_preview(self)
  • get_fattura_elettronica_preview(self, attachment)
    @api.model
  • get_xml_string(self, attachment=None)
    @api.multi
  • remove_xades_sign(self, xml)
    @api.model
  • strip_xml_content(self, xml)
    @api.model

New fields (4)
  • compression Char
    size=10 args: 'Compression'
  • format Char
    size=10 args: 'Format'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • ir_attachment_id Many2one → ir.attachment
    ondelete='cascade' required=True args: 'ir.attachment', 'Attachment'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=5 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (3)
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • payment_methods One2many → fatturapa.payment.detail
    args: 'fatturapa.payment.detail', 'payment_data_id', 'Payments Details'
  • payment_terms Many2one → fatturapa.payment_term
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_term'
Public methods (0)

No public methods.

New fields (24)
  • account_move_line_id Many2one → account.move.line
    string='Payment Line' args: 'account.move.line'
  • fatturapa_pm_id Many2one → fatturapa.payment_method
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_method'
  • max_payment_date Date
    args: 'Maximum Date for Payment'
  • payment_amount Float
    args: 'Payment Amount'
  • payment_bank Many2one → res.partner.bank
    string='Payment Bank' args: 'res.partner.bank'
  • payment_bank_abi Char
    args: 'ABI'
  • payment_bank_bic Char
    args: 'BIC'
  • payment_bank_cab Char
    args: 'CAB'
  • payment_bank_iban Char
    args: 'IBAN'
  • payment_bank_name Char
    args: 'Bank Name'
  • payment_code Char
    args: 'Payment Code'
  • payment_data_id Many2one → fatturapa.payment.data
    index=True ondelete='cascade' args: 'fatturapa.payment.data', 'Related Payments Data'
  • payment_days Integer
    args: 'Payment Term Days'
  • payment_due_date Date
    args: 'Payment Due Date'
  • payment_term_start Date
    args: 'Payment Term Start'
  • penalty_amount Float
    args: 'Amount of Penalty'
  • penalty_date Date
    args: 'Effective Date of Penalty'
  • post_office_code Char
    size=20 args: 'Post Office Code'
  • prepayment_discount Float
    args: 'Prepayment Discount'
  • recepit_cf Char
    args: 'Receipt Issuer FC'
  • recepit_name Char
    args: 'Receipt Issuer Name'
  • recepit_surname Char
    args: 'Receipt Issuer Surname'
  • recepit_title Char
    args: 'Receipt Issuer Title'
  • recipient Char
    size=200 args: 'Recipient'
Public methods (0)

No public methods.

New fields (5)
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (10)
  • cig Char
    size=15 args: 'CIG Code'
  • code Char
    size=100 args: 'Order Agreement Code'
  • cup Char
    size=15 args: 'CUP Code'
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' readonly=True args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' readonly=True args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
  • numitem Char
    size=20 args: 'Item Num.'
  • type Selection
    required=True args: [('order', 'Order'), ('contract', 'Contract'), ('agreement', 'Agreement'), ('reception', 'Reception'), ('invoice', 'Related Invoice')], 'Document Type'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (2)
  • fatturapa_activity_progress Integer
    args: 'Activity Progress'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
Public methods (0)

No public methods.

New fields (9)
  • amount_tax Float
    args: 'Amount Tax'
  • amount_untaxed Float
    args: 'Amount Untaxed'
  • incidental_charges Float
    args: 'Incidental Charges'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • law_reference Char
    size=128 args: 'Law reference'
  • non_taxable_nature Selection
    string='Non taxable nature' args: [('N1', 'excluded pursuant to Art. 15'), ('N2', 'not subject'), ('N2.1', 'not subject to VAT under the articles from 7 to 7-septies of DPR 633/72'), ('N2.2', 'not subject – other cases'), ('N3', 'not taxable'), ('N3.1', 'not taxable – exportations'), ('N3.2', 'not taxable – intra Community transfers'), ('N3.3', 'not taxable – transfers to San Marino'), ('N3.4', 'not taxable – transactions treated as export supplies'), ('N3.5', 'not taxable – for declaration of intent'), ('N3.6', 'not taxable – other transactions that don’t contribute to the determination of ceiling'), ('N4', 'exempt'), ('N5', 'margin regime'), ('N6', 'reverse charge'), ('N6.1', 'reverse charge – transfer of scrap and of other recyclable materials'), ('N6.2', 'reverse charge – transfer of gold and pure silver'), ('N6.3', 'reverse charge – subcontracting in the construction sector'), ('N6.4', 'reverse charge – transfer of buildings'), ('N6.5', 'reverse charge – transfer of mobile phones'), ('N6.6', 'reverse charge – transfer of electronic products'), ('N6.7', 'reverse charge – provisions in the construction and related sectors'), ('N6.8', 'reverse charge – transactions in the energy sector'), ('N6.9', 'reverse charge – other cases'), ('N7', 'VAT paid in other EU countries')]
  • payability Selection
    string='VAT payability' args: [('I', 'Immediate payability'), ('D', 'Deferred payability'), ('S', 'Split payment')]
  • rounding Float
    args: 'Rounding'
  • tax_rate Float
    args: 'Tax Rate'
Public methods (0)

No public methods.

New fields (8)
  • fatturapa_art73 Boolean
    args: 'Art. 73'
  • fatturapa_fiscal_position_id Many2one → fatturapa.fiscal_position
    help='Fiscal position used by electronic invoice' args: 'fatturapa.fiscal_position', 'Fiscal Position'
  • fatturapa_preview_style Selection
    default='fatturaordinaria_v1.2.1.xsl' required=True string='Preview Format Style' args: [('fatturaordinaria_v1.2.1.xsl', 'Fattura Ordinaria'), ('FoglioStileAssoSoftware_v1.1.xsl', 'AssoSoftware')]
  • fatturapa_pub_administration_ref Char
    size=20 args: 'Public Administration Reference Code'
  • fatturapa_sender_partner Many2one → res.partner
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' args: 'res.partner', 'Third Party/Sender'
  • fatturapa_stabile_organizzazione Many2one → res.partner
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' args: 'res.partner', 'Stable Organization'
  • fatturapa_tax_representative Many2one → res.partner
    args: 'res.partner', 'Legal Tax Representative'
  • phone_electronic_invoice Char
    string='Phone for Electronic Invoice'
Public methods (0)

No public methods.

New fields (12)
  • fatturapa_art73 Boolean
    help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the company to issue in the same year several documents with same number)' readonly=False related='company_id.fatturapa_art73' string='Art. 73'
  • fatturapa_fiscal_position_id Many2one
    help='Fiscal position used by electronic invoice' readonly=False related='company_id.fatturapa_fiscal_position_id' string='Fiscal Position'
  • fatturapa_preview_style Selection
    default='fatturaordinaria_v1.2.1.xsl' readonly=False related='company_id.fatturapa_preview_style' required=True string='Preview Format Style'
  • fatturapa_pub_administration_ref Char
    readonly=False related='company_id.fatturapa_pub_administration_ref' string='Public Administration Reference Code'
  • fatturapa_rea_capital Float
    readonly=False related='company_id.rea_capital' string='REA Capital'
  • fatturapa_rea_liquidation Selection
    readonly=False related='company_id.rea_liquidation_state' string='REA Liquidation'
  • fatturapa_rea_number Char
    readonly=False related='company_id.rea_code' string='REA Number'
  • fatturapa_rea_office Many2one
    readonly=False related='company_id.rea_office' string='REA Office'
  • fatturapa_rea_partner Selection
    readonly=False related='company_id.rea_member_type' string='REA Copartner'
  • fatturapa_sender_partner Many2one
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' readonly=False related='company_id.fatturapa_sender_partner' string='Third Party/Sender'
  • fatturapa_stabile_organizzazione Many2one
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' readonly=False related='company_id.fatturapa_stabile_organizzazione' string='Stable Organization'
  • fatturapa_tax_representative Many2one
    help='The fields must be entered only when the seller/provider makes use of a tax representative in Italy' readonly=False related='company_id.fatturapa_tax_representative' string='Legal Tax Representative'
Public methods (1)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (15)
  • codice_destinatario Char
    default=STANDARD_ADDRESSEE_CODE help=<expr> args: 'Addressee Code'
  • electronic_invoice_data_complete Boolean
    compute='_compute_electronic_invoice_data_complete'
  • electronic_invoice_no_contact_update Boolean
    args: 'Do not update the contact from Electronic Invoice Details'
  • electronic_invoice_obliged_subject Boolean
    args: 'Obliged Subject'
  • electronic_invoice_subjected Boolean
    args: 'Enable electronic invoicing'
  • electronic_invoice_use_this_address Boolean
    help='Set this when the main company has got several Addressee Codes or PEC' args: 'Use this e-invoicing data when invoicing to this address'
  • eori_code Char
    size=20 args: 'EORI Code'
  • license_number Char
    size=20 args: 'License Code'
  • pa_partner_code Char
    size=20 args: 'PA Code for Partner'
  • pec_destinatario Char
    help=<expr> args: 'Addressee PEC'
  • register Char
    size=60 args: 'Professional Register'
  • register_code Char
    size=60 args: 'Register Registration Number'
  • register_fiscalpos Many2one → fatturapa.fiscal_position
    string='Register Fiscal Position' args: 'fatturapa.fiscal_position'
  • register_province Many2one → res.country.state
    string='Register Province' args: 'res.country.state'
  • register_regdate Date
    args: 'Register Registration Date'
Public methods (3)
  • onchange_country_id_e_inv(self)
    @api.onchange('country_id')
  • onchange_e_inv_obliged_subject(self)
    @api.onchange('electronic_invoice_obliged_subject')
  • onchange_electronic_invoice_subjected(self)
    @api.onchange('electronic_invoice_subjected')

New fields (9)
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • kind_id Many2one → account.tax.kind
    string='Non taxable nature' args: 'account.tax.kind'
  • name Many2one → welfare.fund.type
    string='Welfare Fund Type' args: 'welfare.fund.type'
  • pa_line_code Char
    size=20 args: 'PA Code for this Record'
  • subjected_withholding Char
    size=2 args: 'Subjected to Withholding'
  • welfare_Iva_tax Float
    args: 'VAT Tax Rate'
  • welfare_amount_tax Float
    args: 'Welfare Tax Amount'
  • welfare_rate_tax Float
    args: 'Welfare Tax Rate'
  • welfare_taxable Float
    args: 'Welfare Taxable'
Public methods (0)

No public methods.

New fields (2)
  • description Char
    args: 'Description'
  • name Char
    args: 'Name'
Public methods (1)
  • name_get(self)
    @api.multi

New fields (3)
  • amount Float
    args: 'Withholding amount'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • name Selection
    selection=[('RT01', 'Natural Person'), ('RT02', 'Legal Person'), ('RT03', 'INPS'), ('RT04', 'ENASARCO'), ('RT05', 'ENPAM'), ('RT06', 'OTHER')] string='Withholding Type'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/11.0/l10n_it_fatturapa
VERSION
VERSION 2.0.0
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
COMMITTERS
COMMITTERSLorenzo Battistini, eLBati, GitHub, tafaRU, Francesco Apruzzese, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi, Sergio Corato, Roberto Fichera
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy/tree/11.0/l10n_it_fatturapa
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:23:57
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-reporting:
    - account_tax_balance
OCA/account-financial-tools:
    - account_fiscal_year
OCA/l10n-italy:
    - l10n_it_account
    - l10n_it_fiscalcode
    - l10n_it_ipa
    - l10n_it_rea
    - l10n_it_account_tax_kind
    - l10n_it_esigibilita_iva
    - l10n_it_fiscal_payment_term
    - l10n_it_split_payment
    - l10n_it_fiscal_document_type
OCA/partner-contact:
    - partner_firstname
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
    - base_vat
    - document
    - base_iban
    - account_invoicing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES asn1crypto
pyxb
codicefiscale
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (10)
XML IDNameModelTypeStatus
fatturapa_related_document_type_inline_view_tree Inline editable tree view for fatturapa.related_document_type fatturapa.related_document_type tree Inherits fatturapa_related_document_type_view_tree
fatturapa_related_document_type_view_form Form view for fatturapa.related_document_type fatturapa.related_document_type form New
fatturapa_related_document_type_view_tree Tree view for fatturapa.related_document_type fatturapa.related_document_type tree New
invoice_form view.invoice.fatturapa.form account.invoice field Inherits account.invoice_form
view_account_config_settings view_account_config_settings res.config.settings xpath Inherits account.res_config_settings_view_form
view_company_form_e_invoice view_company_form_e_invoice res.company notebook Inherits base.view_company_form
view_invoice_line_form_fatturapa account.invoice.line.fatturapa account.invoice.line field Inherits account.view_invoice_line_form
view_partner_form_e_inv res.partner.form.e.invoice res.partner xpath Inherits base.view_partner_form
view_partner_form_fatturapa partner.form.fatturapa res.partner notebook Inherits account.view_partner_property_form
view_partner_ipa_form_ftpa view_partner_ipa_form_ftpa res.partner field Inherits l10n_it_ipa.view_partner_ipa_form
Models touched (20)

New fields (38)
  • activity_progress_ids One2many → faturapa.activity.progress
    copy=False args: 'faturapa.activity.progress', 'invoice_id', 'Phase of Activity Progress'
  • art73 Boolean
    copy=False help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the seller/provider to issue in the same year several documents with same number)' readonly=True args: 'Art. 73'
  • carrier_id Many2one → res.partner
    copy=False string='Carrier' args: 'res.partner'
  • delivery_address Text
    copy=False args: 'Delivery Address for E-invoice'
  • delivery_datetime Datetime
    copy=False args: 'Delivery Date Time'
  • description Char
    copy=False size=100 args: 'Description'
  • efatt_rounding Float
    copy=False help='Possible total amount rounding on the document (negative sign allowed)' readonly=True args: 'Rounding'
  • efatt_stabile_organizzazione_cap Char
    copy=False help='ZIP Code' readonly=True string='Organization ZIP'
  • efatt_stabile_organizzazione_civico Char
    copy=False help='Street number of the address (no need to specify if already present in the address field)' readonly=True string='Organization Street Number'
  • efatt_stabile_organizzazione_comune Char
    copy=False help='Municipality or city to which the Stable Organization refers' readonly=True string='Organization Municipality'
  • efatt_stabile_organizzazione_indirizzo Char
    copy=False help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy. Address of the stable organization in Italy (street name, square, etc.)' readonly=True string='Organization Address'
  • efatt_stabile_organizzazione_nazione Char
    copy=False help='Country code according to the ISO 3166-1 alpha-2 code standard' readonly=True string='Organization Country'
  • efatt_stabile_organizzazione_provincia Char
    copy=False help='Acronym of the Province to which the municipality indicated in the information element 1.2.3.4 <Comune> belongs. Must be filled if the information element 1.2.3.6 <Nazione> is equal to IT' readonly=True string='Organization Province'
  • electronic_invoice_subjected Boolean
    readonly=True related='commercial_partner_id.electronic_invoice_subjected' args: 'Subjected to Electronic Invoice'
  • fatturapa_doc_attachments One2many → fatturapa.attachments
    copy=False args: 'fatturapa.attachments', 'invoice_id', 'Electronic Invoice Attachments'
  • fatturapa_payments One2many → fatturapa.payment.data
    copy=False args: 'fatturapa.payment.data', 'invoice_id', 'Electronic Invoice Payment Data'
  • fatturapa_summary_ids One2many → faturapa.summary.data
    copy=False args: 'faturapa.summary.data', 'invoice_id', 'Electronic Invoice Summary Data'
  • ftpa_incoterms Char
    copy=False string='E-inv Incoterms'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_id', 'Related DDT'
  • ftpa_withholding_ids One2many → withholding.data.line
    copy=False args: 'withholding.data.line', 'invoice_id', 'Withholding'
  • gross_weight Float
    copy=False args: 'Gross Weight'
  • intermediary Many2one → res.partner
    string='Intermediary' args: 'res.partner'
  • net_weight Float
    copy=False args: 'Net Weight'
  • number_items Integer
    copy=False args: 'Number of Items'
  • pickup_datetime Datetime
    copy=False args: 'Pick up'
  • protocol_number Char
    copy=False size=64 args: 'Protocol Number'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_id', 'Related Documents'
  • related_invoice_code Char
    copy=False args: 'Related Invoice Code'
  • related_invoice_date Date
    copy=False args: 'Related Invoice Date'
  • sender Selection
    args: [('CC', 'Assignee / Partner'), ('TZ', 'Third Person')], 'Sender'
  • tax_representative_id Many2one → res.partner
    string='Tax Representative' args: 'res.partner'
  • total_travel Char
    copy=False size=15 args: 'Travel in hours or Km'
  • transport_date Date
    copy=False args: 'Transport Date'
  • transport_reason Char
    copy=False size=80 args: 'Reason'
  • transport_vehicle Char
    copy=False size=80 args: 'Vehicle'
  • unit_weight Char
    copy=False size=10 args: 'Weight Unit'
  • vehicle_registration Date
    copy=False args: 'Vehicle Registration'
  • welfare_fund_ids One2many → welfare.fund.data.line
    copy=False args: 'welfare.fund.data.line', 'invoice_id', 'Welfare Fund'
Public methods (1)
  • open_form_current(self)
    @api.multi

New fields (5)
  • admin_ref Char
    copy=False size=20 args: 'Admin. ref.'
  • discount_rise_price_ids One2many → discount.rise.price
    copy=False args: 'discount.rise.price', 'invoice_line_id', 'Discount or Supplement Details'
  • ftpa_line_number Integer
    copy=False readonly=True args: 'Line Number'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_line_id', 'Related DDT'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_line_id', 'Related Documents Type'
Public methods (0)

No public methods.

New fields (5)
  • amount Float
    digits=dp.get_precision('Discount') args: 'Amount'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice from line'
  • name Selection
    args: [('SC', 'Discount'), ('MG', 'Supplement')], 'Type'
  • percentage Float
    args: 'Percentage'
Public methods (0)

No public methods.

New fields (4)
  • compression Char
    size=10 args: 'Compression'
  • format Char
    size=10 args: 'Format'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • ir_attachment_id Many2one → ir.attachment
    ondelete='cascade' required=True args: 'ir.attachment', 'Attachment'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=5 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (3)
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • payment_methods One2many → fatturapa.payment.detail
    args: 'fatturapa.payment.detail', 'payment_data_id', 'Payments Details'
  • payment_terms Many2one → fatturapa.payment_term
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_term'
Public methods (0)

No public methods.

New fields (24)
  • account_move_line_id Many2one → account.move.line
    string='Payment Line' args: 'account.move.line'
  • fatturapa_pm_id Many2one → fatturapa.payment_method
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_method'
  • max_payment_date Date
    args: 'Maximum Date for Payment'
  • payment_amount Float
    args: 'Payment Amount'
  • payment_bank Many2one → res.partner.bank
    string='Payment Bank' args: 'res.partner.bank'
  • payment_bank_abi Char
    args: 'ABI'
  • payment_bank_bic Char
    args: 'BIC'
  • payment_bank_cab Char
    args: 'CAB'
  • payment_bank_iban Char
    args: 'IBAN'
  • payment_bank_name Char
    args: 'Bank Name'
  • payment_code Char
    args: 'Payment Code'
  • payment_data_id Many2one → fatturapa.payment.data
    index=True ondelete='cascade' args: 'fatturapa.payment.data', 'Related Payments Data'
  • payment_days Integer
    args: 'Payment Term Days'
  • payment_due_date Date
    args: 'Payment Due Date'
  • payment_term_start Date
    args: 'Payment Term Start'
  • penalty_amount Float
    args: 'Amount of Penalty'
  • penalty_date Date
    args: 'Effective Date of Penalty'
  • post_office_code Char
    size=20 args: 'Post Office Code'
  • prepayment_discount Float
    args: 'Prepayment Discount'
  • recepit_cf Char
    args: 'Receipt Issuer FC'
  • recepit_name Char
    args: 'Receipt Issuer Name'
  • recepit_surname Char
    args: 'Receipt Issuer Surname'
  • recepit_title Char
    args: 'Receipt Issuer Title'
  • recipient Char
    size=200 args: 'Recipient'
Public methods (0)

No public methods.

New fields (5)
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (10)
  • cig Char
    size=15 args: 'CIG Code'
  • code Char
    size=100 args: 'Order Agreement Code'
  • cup Char
    size=15 args: 'CUP Code'
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' readonly=True args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' readonly=True args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
  • numitem Char
    size=20 args: 'Item Num.'
  • type Selection
    required=True args: [('order', 'Order'), ('contract', 'Contract'), ('agreement', 'Agreement'), ('reception', 'Reception'), ('invoice', 'Related Invoice')], 'Document Type'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (2)
  • fatturapa_activity_progress Integer
    args: 'Activity Progress'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
Public methods (0)

No public methods.

New fields (9)
  • amount_tax Float
    args: 'Amount Tax'
  • amount_untaxed Float
    args: 'Amount Untaxed'
  • incidental_charges Float
    args: 'Incidental Charges'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • law_reference Char
    size=128 args: 'Law reference'
  • non_taxable_nature Selection
    string='Non taxable nature' args: [('N1', 'excluded pursuant to Art. 15'), ('N2', 'not subject'), ('N2.1', 'not subject to VAT under the articles from 7 to 7-septies of DPR 633/72'), ('N2.2', 'not subject – other cases'), ('N3', 'not taxable'), ('N3.1', 'not taxable – exportations'), ('N3.2', 'not taxable – intra Community transfers'), ('N3.3', 'not taxable – transfers to San Marino'), ('N3.4', 'not taxable – transactions treated as export supplies'), ('N3.5', 'not taxable – for declaration of intent'), ('N3.6', 'not taxable – other transactions that don’t contribute to the determination of ceiling'), ('N4', 'exempt'), ('N5', 'margin regime'), ('N6', 'reverse charge'), ('N6.1', 'reverse charge – transfer of scrap and of other recyclable materials'), ('N6.2', 'reverse charge – transfer of gold and pure silver'), ('N6.3', 'reverse charge – subcontracting in the construction sector'), ('N6.4', 'reverse charge – transfer of buildings'), ('N6.5', 'reverse charge – transfer of mobile phones'), ('N6.6', 'reverse charge – transfer of electronic products'), ('N6.7', 'reverse charge – provisions in the construction and related sectors'), ('N6.8', 'reverse charge – transactions in the energy sector'), ('N6.9', 'reverse charge – other cases'), ('N7', 'VAT paid in other EU countries')]
  • payability Selection
    string='VAT payability' args: [('I', 'Immediate payability'), ('D', 'Deferred payability'), ('S', 'Split payment')]
  • rounding Float
    args: 'Rounding'
  • tax_rate Float
    args: 'Tax Rate'
Public methods (0)

No public methods.

New fields (1)
  • ftpa_preview_link Char
    compute='_compute_ftpa_preview_link' readonly=True args: 'Preview link'
Public methods (6)
  • cleanup_xml(self, xml_string)
  • extract_cades(data)
    @staticmethod
  • get_fattura_elettronica_preview(self)
  • get_xml_string(self)
  • remove_xades_sign(self, xml)
  • strip_xml_content(self, xml)

New fields (7)
  • fatturapa_art73 Boolean
    args: 'Art. 73'
  • fatturapa_fiscal_position_id Many2one → fatturapa.fiscal_position
    help='Fiscal position used by electronic invoice' args: 'fatturapa.fiscal_position', 'Fiscal Position'
  • fatturapa_preview_style Selection
    default='fatturaordinaria_v1.2.1.xsl' required=True string='Preview Format Style' args: [('fatturaordinaria_v1.2.1.xsl', 'Fattura Ordinaria'), ('FoglioStileAssoSoftware_v1.1.xsl', 'AssoSoftware')]
  • fatturapa_pub_administration_ref Char
    size=20 args: 'Public Administration Reference Code'
  • fatturapa_sender_partner Many2one → res.partner
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' args: 'res.partner', 'Third Party/Sender'
  • fatturapa_stabile_organizzazione Many2one → res.partner
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' args: 'res.partner', 'Stable Organization'
  • fatturapa_tax_representative Many2one → res.partner
    args: 'res.partner', 'Legal Tax Representative'
Public methods (0)

No public methods.

New fields (12)
  • fatturapa_art73 Boolean
    help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the company to issue in the same year several documents with same number)' readonly=False related='company_id.fatturapa_art73' string='Art. 73'
  • fatturapa_fiscal_position_id Many2one
    help='Fiscal position used by electronic invoice' readonly=False related='company_id.fatturapa_fiscal_position_id' string='Fiscal Position'
  • fatturapa_preview_style Selection
    default='fatturaordinaria_v1.2.1.xsl' readonly=False related='company_id.fatturapa_preview_style' required=True string='Preview Format Style'
  • fatturapa_pub_administration_ref Char
    readonly=False related='company_id.fatturapa_pub_administration_ref' string='Public Administration Reference Code'
  • fatturapa_rea_capital Float
    readonly=False related='company_id.rea_capital' string='REA Capital'
  • fatturapa_rea_liquidation Selection
    readonly=False related='company_id.rea_liquidation_state' string='REA Liquidation'
  • fatturapa_rea_number Char
    readonly=False related='company_id.rea_code' string='REA Number'
  • fatturapa_rea_office Many2one
    readonly=False related='company_id.rea_office' string='REA Office'
  • fatturapa_rea_partner Selection
    readonly=False related='company_id.rea_member_type' string='REA Copartner'
  • fatturapa_sender_partner Many2one
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' readonly=False related='company_id.fatturapa_sender_partner' string='Third Party/Sender'
  • fatturapa_stabile_organizzazione Many2one
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' readonly=False related='company_id.fatturapa_stabile_organizzazione' string='Stable Organization'
  • fatturapa_tax_representative Many2one
    help='The fields must be entered only when the seller/provider makes use of a tax representative in Italy' readonly=False related='company_id.fatturapa_tax_representative' string='Legal Tax Representative'
Public methods (1)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (15)
  • codice_destinatario Char
    default=STANDARD_ADDRESSEE_CODE help=<expr> args: 'Addressee Code'
  • electronic_invoice_data_complete Boolean
    compute='_compute_electronic_invoice_data_complete'
  • electronic_invoice_no_contact_update Boolean
    args: 'Do not update the contact from Electronic Invoice Details'
  • electronic_invoice_obliged_subject Boolean
    args: 'Obliged Subject'
  • electronic_invoice_subjected Boolean
    args: 'Enable electronic invoicing'
  • electronic_invoice_use_this_address Boolean
    help='Set this when the main company has got several Addressee Codes or PEC' args: 'Use this e-invoicing data when invoicing to this address'
  • eori_code Char
    size=20 args: 'EORI Code'
  • license_number Char
    size=20 args: 'License Code'
  • pa_partner_code Char
    size=20 args: 'PA Code for Partner'
  • pec_destinatario Char
    help=<expr> args: 'Addressee PEC'
  • register Char
    size=60 args: 'Professional Register'
  • register_code Char
    size=60 args: 'Register Registration Number'
  • register_fiscalpos Many2one → fatturapa.fiscal_position
    string='Register Fiscal Position' args: 'fatturapa.fiscal_position'
  • register_province Many2one → res.country.state
    string='Register Province' args: 'res.country.state'
  • register_regdate Date
    args: 'Register Registration Date'
Public methods (3)
  • onchange_country_id_e_inv(self)
    @api.onchange('country_id')
  • onchange_e_inv_obliged_subject(self)
    @api.onchange('electronic_invoice_obliged_subject')
  • onchange_electronic_invoice_subjected(self)
    @api.onchange('electronic_invoice_subjected')

New fields (9)
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • kind_id Many2one → account.tax.kind
    string='Non taxable nature' args: 'account.tax.kind'
  • name Many2one → welfare.fund.type
    string='Welfare Fund Type' args: 'welfare.fund.type'
  • pa_line_code Char
    size=20 args: 'PA Code for this Record'
  • subjected_withholding Char
    size=2 args: 'Subjected to Withholding'
  • welfare_Iva_tax Float
    args: 'VAT Tax Rate'
  • welfare_amount_tax Float
    args: 'Welfare Tax Amount'
  • welfare_rate_tax Float
    args: 'Welfare Tax Rate'
  • welfare_taxable Float
    args: 'Welfare Taxable'
Public methods (0)

No public methods.

New fields (2)
  • description Char
    args: 'Description'
  • name Char
    args: 'Name'
Public methods (1)
  • name_get(self)
    @api.multi

New fields (3)
  • amount Float
    args: 'Withholding amount'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • name Selection
    selection=[('RT01', 'Natural Person'), ('RT02', 'Legal Person'), ('RT03', 'INPS'), ('RT04', 'ENASARCO'), ('RT05', 'ENPAM'), ('RT06', 'OTHER')] string='Withholding Type'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/10.0/l10n_it_fatturapa
VERSION
VERSION 3.0.0
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
COMMITTERS
COMMITTERSLorenzo Battistini, eLBati, Pedro M. Baeza, GitHub, Sergio Zanchetta, tafaRU, Alex Comba, OCA Transbot, oca-travis, Weblate, OCA-git-bot, SimoRubi, sergiocorato, Sergio Corato
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy/tree/10.0/l10n_it_fatturapa
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:19:56
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/account-financial-tools:
    - account_fiscal_year
OCA/l10n-italy:
    - l10n_it_account
    - l10n_it_fiscalcode
    - l10n_it_ipa
    - l10n_it_rea
    - l10n_it_account_tax_kind
    - l10n_it_esigibilita_iva
    - l10n_it_fiscal_payment_term
    - l10n_it_split_payment
    - l10n_it_fiscal_document_type
OCA/partner-contact:
    - partner_firstname
OCA/server-tools:
    - date_range
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
    - base_vat
    - document
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES asn1crypto
pyxb
codicefiscale
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
view_account_config_settings view_account_config_settings account.config.settings xpath Inherits account.view_account_config_settings
view_invoice_line_form_fatturapa account.invoice.line.fatturapa account.invoice.line field Inherits account.view_invoice_line_form
view_partner_form_fatturapa partner.form.fatturapa res.partner notebook Inherits account.view_partner_property_form
view_partner_ipa_form_ftpa view_partner_ipa_form_ftpa res.partner field Inherits l10n_it_ipa.view_partner_ipa_form
Models touched (20)

New fields (12)
  • fatturapa_art73 Boolean
    help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the company to issue in the same year several documents with same number)' related='company_id.fatturapa_art73' string='Art. 73'
  • fatturapa_fiscal_position_id Many2one
    help='Fiscal position used by electronic invoice' related='company_id.fatturapa_fiscal_position_id' string='Fiscal Position'
  • fatturapa_preview_style Selection
    related='company_id.fatturapa_preview_style' required=True string='Preview Format Style'
  • fatturapa_pub_administration_ref Char
    related='company_id.fatturapa_pub_administration_ref' string='Public Administration Reference Code'
  • fatturapa_rea_capital Float
    related='company_id.fatturapa_rea_capital' string='REA Capital'
  • fatturapa_rea_liquidation Selection
    related='company_id.fatturapa_rea_liquidation' string='REA Liquidation'
  • fatturapa_rea_number Char
    related='company_id.fatturapa_rea_number' string='REA Number'
  • fatturapa_rea_office Many2one
    related='company_id.fatturapa_rea_office' string='REA Office'
  • fatturapa_rea_partner Selection
    related='company_id.fatturapa_rea_partner' string='REA Copartner'
  • fatturapa_sender_partner Many2one
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' related='company_id.fatturapa_sender_partner' string='Third Party/Sender'
  • fatturapa_stabile_organizzazione Many2one
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' related='company_id.fatturapa_stabile_organizzazione' string='Stable Organization'
  • fatturapa_tax_representative Many2one
    help='The fields must be entered only when the seller/provider makes use of a tax representative in Italy' related='company_id.fatturapa_tax_representative' string='Legal Tax Representative'
Public methods (1)
  • onchange_company_id(self)
    @api.onchange('company_id')

New fields (38)
  • activity_progress_ids One2many → faturapa.activity.progress
    copy=False args: 'faturapa.activity.progress', 'invoice_id', 'Phase of Activity Progress'
  • art73 Boolean
    copy=False help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the seller/provider to issue in the same year several documents with same number)' readonly=True args: 'Art. 73'
  • carrier_id Many2one → res.partner
    copy=False string='Carrier' args: 'res.partner'
  • delivery_address Text
    copy=False args: 'Delivery Address'
  • delivery_datetime Datetime
    copy=False args: 'Delivery Date Time'
  • description Char
    copy=False size=100 args: 'Description'
  • efatt_rounding Float
    copy=False help='Possible total amount rounding on the document (negative sign allowed)' readonly=True args: 'Rounding'
  • efatt_stabile_organizzazione_cap Char
    copy=False help='ZIP Code' readonly=True string='Organization ZIP'
  • efatt_stabile_organizzazione_civico Char
    copy=False help='Street number of the address (no need to specify if already present in the address field)' readonly=True string='Organization Street Number'
  • efatt_stabile_organizzazione_comune Char
    copy=False help='Municipality or city to which the Stable Organization refers' readonly=True string='Organization Municipality'
  • efatt_stabile_organizzazione_indirizzo Char
    copy=False help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy. Address of the stable organization in Italy (street name, square, etc.)' readonly=True string='Organization Address'
  • efatt_stabile_organizzazione_nazione Char
    copy=False help='Country code according to the ISO 3166-1 alpha-2 code standard' readonly=True string='Organization Country'
  • efatt_stabile_organizzazione_provincia Char
    copy=False help='Acronym of the Province to which the municipality indicated in the information element 1.2.3.4 <Comune> belongs. Must be filled if the information element 1.2.3.6 <Nazione> is equal to IT' readonly=True string='Organization Province'
  • electronic_invoice_subjected Boolean
    readonly=True related='commercial_partner_id.electronic_invoice_subjected' args: 'Subjected to Electronic Invoice'
  • fatturapa_doc_attachments One2many → fatturapa.attachments
    copy=False args: 'fatturapa.attachments', 'invoice_id', 'Electronic Invoice Attachments'
  • fatturapa_payments One2many → fatturapa.payment.data
    copy=False args: 'fatturapa.payment.data', 'invoice_id', 'Electronic Invoice Payment Data'
  • fatturapa_summary_ids One2many → faturapa.summary.data
    copy=False args: 'faturapa.summary.data', 'invoice_id', 'Electronic Invoice Summary Data'
  • ftpa_incoterms Char
    copy=False string='Incoterms'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_id', 'Related DDT'
  • ftpa_withholding_ids One2many → withholding.data.line
    copy=False args: 'withholding.data.line', 'invoice_id', 'Withholding'
  • gross_weight Float
    copy=False args: 'Gross Weight'
  • intermediary Many2one → res.partner
    string='Intermediary' args: 'res.partner'
  • net_weight Float
    copy=False args: 'Net Weight'
  • number_items Integer
    copy=False args: 'Number of Items'
  • pickup_datetime Datetime
    copy=False args: 'Pick up'
  • protocol_number Char
    copy=False size=64 args: 'Protocol Number'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_id', 'Related Documents'
  • related_invoice_code Char
    copy=False args: 'Related Invoice Code'
  • related_invoice_date Date
    copy=False args: 'Related Invoice Date'
  • sender Selection
    args: [('CC', 'Assignee / Partner'), ('TZ', 'Third Person')], 'Sender'
  • tax_representative_id Many2one → res.partner
    string='Tax Representative' args: 'res.partner'
  • total_travel Char
    copy=False size=15 args: 'Travel in hours or Km'
  • transport_date Date
    copy=False args: 'Transport Date'
  • transport_reason Char
    copy=False size=80 args: 'Reason'
  • transport_vehicle Char
    copy=False size=80 args: 'Vehicle'
  • unit_weight Char
    copy=False size=10 args: 'Weight Unit'
  • vehicle_registration Date
    copy=False args: 'Vehicle Registration'
  • welfare_fund_ids One2many → welfare.fund.data.line
    copy=False args: 'welfare.fund.data.line', 'invoice_id', 'Welfare Fund'
Public methods (0)

No public methods.

New fields (5)
  • admin_ref Char
    copy=False size=20 args: 'Admin. ref.'
  • discount_rise_price_ids One2many → discount.rise.price
    copy=False args: 'discount.rise.price', 'invoice_line_id', 'Discount or Supplement Details'
  • ftpa_line_number Integer
    copy=False readonly=True args: 'Line Number'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_line_id', 'Related DDT'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_line_id', 'Related Documents Type'
Public methods (0)

No public methods.

New fields (5)
  • amount Float
    digits=dp.get_precision('Discount') args: 'Amount'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice'
  • name Selection
    args: [('SC', 'Discount'), ('MG', 'Supplement')], 'Type'
  • percentage Float
    args: 'Percentage'
Public methods (0)

No public methods.

New fields (4)
  • compression Char
    size=10 args: 'Compression'
  • format Char
    size=10 args: 'Format'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • ir_attachment_id Many2one → ir.attachment
    ondelete='cascade' required=True args: 'ir.attachment', 'Attachment'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=5 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (3)
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • payment_methods One2many → fatturapa.payment.detail
    args: 'fatturapa.payment.detail', 'payment_data_id', 'Payments Details'
  • payment_terms Many2one → fatturapa.payment_term
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_term'
Public methods (0)

No public methods.

New fields (24)
  • account_move_line_id Many2one → account.move.line
    string='Payment Line' args: 'account.move.line'
  • fatturapa_pm_id Many2one → fatturapa.payment_method
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_method'
  • max_payment_date Date
    args: 'Maximum Date for Payment'
  • payment_amount Float
    args: 'Payment Amount'
  • payment_bank Many2one → res.partner.bank
    string='Payment Bank' args: 'res.partner.bank'
  • payment_bank_abi Char
    args: 'ABI'
  • payment_bank_bic Char
    args: 'BIC'
  • payment_bank_cab Char
    args: 'CAB'
  • payment_bank_iban Char
    args: 'IBAN'
  • payment_bank_name Char
    args: 'Bank Name'
  • payment_code Char
    args: 'Payment Code'
  • payment_data_id Many2one → fatturapa.payment.data
    index=True ondelete='cascade' args: 'fatturapa.payment.data', 'Related Payments Data'
  • payment_days Integer
    args: 'Payment Term Days'
  • payment_due_date Date
    args: 'Payment Due Date'
  • payment_term_start Date
    args: 'Payment Term Start'
  • penalty_amount Float
    args: 'Amount of Penalty'
  • penalty_date Date
    args: 'Effective Date of Penalty'
  • post_office_code Char
    size=20 args: 'Post Office Code'
  • prepayment_discount Float
    args: 'Prepayment Discount'
  • recepit_cf Char
    args: 'Receipt Issuer FC'
  • recepit_name Char
    args: 'Receipt Issuer Name'
  • recepit_surname Char
    args: 'Receipt Issuer Surname'
  • recepit_title Char
    args: 'Receipt Issuer Title'
  • recipient Char
    size=200 args: 'Recipient'
Public methods (0)

No public methods.

New fields (5)
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (10)
  • cig Char
    size=15 args: 'CIG Code'
  • code Char
    size=100 args: 'Order Agreement Code'
  • cup Char
    size=15 args: 'CUP Code'
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'Line Ref.'
  • name Char
    required=True size=20 args: 'Document ID'
  • numitem Char
    size=20 args: 'Item Num.'
  • type Selection
    required=True args: [('order', 'Order'), ('contract', 'Contract'), ('agreement', 'Agreement'), ('reception', 'Reception'), ('invoice', 'Related Invoice')], 'Document Type'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (2)
  • fatturapa_activity_progress Integer
    args: 'Activity Progress'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
Public methods (0)

No public methods.

New fields (9)
  • amount_tax Float
    args: 'Amount Tax'
  • amount_untaxed Float
    args: 'Amount Untaxed'
  • incidental_charges Float
    args: 'Incidental Charges'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • law_reference Char
    size=128 args: 'Law reference'
  • non_taxable_nature Selection
    string='Non taxable nature' args: [('N1', 'excluding ex Art. 15'), ('N2', 'not subject'), ('N2.1', 'not subject ex Artt. from 7 to 7-septies of DPR 633/72'), ('N2.2', 'not subject – other'), ('N3', 'not taxable'), ('N3.1', 'not taxable – export'), ('N3.2', 'not taxable – intercommunity cession'), ('N3.3', 'not taxable – cession to San Marino'), ('N3.4', 'not taxable – operation similar to export cession'), ('N3.5', 'not taxable – following declarations of intent'), ('N3.6', 'not taxable – other operations that do not contribute to the formation of the ceiling'), ('N4', 'exempt'), ('N5', 'margin regime'), ('N6', 'reverse charge'), ('N6.1', 'reverse charge – disposal of scrap and other recycled materials'), ('N6.2', 'reverse charge – supply of gold and pure silver'), ('N6.3', 'reverse charge – subcontracting in the construction sector'), ('N6.4', 'reverse charge – sale of buildings'), ('N6.5', 'reverse charge – transfer of cell phones'), ('N6.6', 'reverse charge – sale of electronic products'), ('N6.7', 'reverse charge – construction sector and related sectors'), ('N6.8', 'reverse charge – energy sector operations'), ('N6.9', 'reverse charge – other cases'), ('N7', 'VAT paid in another EU country')]
  • payability Selection
    string='VAT payability' args: [('I', 'Immediate payability'), ('D', 'Deferred payability'), ('S', 'Split payment')]
  • rounding Float
    args: 'Rounding'
  • tax_rate Float
    args: 'Tax Rate'
Public methods (0)

No public methods.

New fields (1)
  • ftpa_preview_link Char
    compute='_compute_ftpa_preview_link' readonly=True args: 'Preview link'
Public methods (6)
  • cleanup_xml(self, xml_string)
  • extract_cades(data)
    @staticmethod
  • get_fattura_elettronica_preview(self)
  • get_xml_string(self)
  • remove_xades_sign(self, xml)
  • strip_xml_content(self, xml)

New fields (12)
  • fatturapa_art73 Boolean
    args: 'Art. 73'
  • fatturapa_fiscal_position_id Many2one → fatturapa.fiscal_position
    help='Fiscal position used by electronic invoice' args: 'fatturapa.fiscal_position', 'Fiscal Position'
  • fatturapa_preview_style Selection
    default='fatturaordinaria_v1.2.1.xsl' required=True string='Preview Format Style' args: [('fatturaordinaria_v1.2.1.xsl', 'Fattura Ordinaria'), ('FoglioStileAssoSoftware_v1.1.xsl', 'AssoSoftware')]
  • fatturapa_pub_administration_ref Char
    size=20 args: 'Public Administration Reference Code'
  • fatturapa_rea_capital Float
    related='partner_id.rea_capital' string='REA Capital'
  • fatturapa_rea_liquidation Selection
    related='partner_id.rea_liquidation_state' string='Liquidation State'
  • fatturapa_rea_number Char
    related='partner_id.rea_code' string='REA Number'
  • fatturapa_rea_office Many2one
    related='partner_id.rea_office' string='REA Office'
  • fatturapa_rea_partner Selection
    related='partner_id.rea_member_type' string='Member Type'
  • fatturapa_sender_partner Many2one → res.partner
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' args: 'res.partner', 'Third Party/Sender'
  • fatturapa_stabile_organizzazione Many2one → res.partner
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' args: 'res.partner', 'Stable Organization'
  • fatturapa_tax_representative Many2one → res.partner
    args: 'res.partner', 'Legal Tax Representative'
Public methods (0)

No public methods.

New fields (12)
  • codice_destinatario Char
    default=STANDARD_ADDRESSEE_CODE help=<expr> args: 'Addressee Code'
  • electronic_invoice_no_contact_update Boolean
    args: 'Do not update the contact from Electronic Invoice Details'
  • electronic_invoice_subjected Boolean
    args: 'Subjected to Electronic Invoice'
  • eori_code Char
    size=20 args: 'EORI Code'
  • license_number Char
    size=20 args: 'License Code'
  • pa_partner_code Char
    size=20 args: 'PA Code for Partner'
  • pec_destinatario Char
    help=<expr> args: 'Addressee PEC'
  • register Char
    size=60 args: 'Professional Register'
  • register_code Char
    size=60 args: 'Register Registration Number'
  • register_fiscalpos Many2one → fatturapa.fiscal_position
    string='Register Fiscal Position' args: 'fatturapa.fiscal_position'
  • register_province Many2one → res.country.state
    string='Register Province' args: 'res.country.state'
  • register_regdate Date
    args: 'Register Registration Date'
Public methods (1)
  • onchange_country_id_e_inv(self)
    @api.onchange('country_id')

New fields (9)
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • kind_id Many2one → account.tax.kind
    string='Non taxable nature' args: 'account.tax.kind'
  • name Many2one → welfare.fund.type
    string='Welfare Fund Type' args: 'welfare.fund.type'
  • pa_line_code Char
    size=20 args: 'PA Code for this Record'
  • subjected_withholding Char
    size=2 args: 'Subjected to Withholding'
  • welfare_Iva_tax Float
    args: 'VAT Tax Rate'
  • welfare_amount_tax Float
    args: 'Welfare Tax Amount'
  • welfare_rate_tax Float
    args: 'Welfare Tax Rate'
  • welfare_taxable Float
    args: 'Welfare Taxable'
Public methods (0)

No public methods.

New fields (3)
  • description Char
    args: 'Description'
  • display_name Char
    compute='_compute_clean_display_name' string='Name'
  • name Char
    args: 'Name'
Public methods (0)

No public methods.

New fields (3)
  • amount Float
    args: 'Withholding amount'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • name Selection
    selection=[('RT01', 'Natural Person'), ('RT02', 'Legal Person'), ('RT03', 'INPS'), ('RT04', 'ENASARCO'), ('RT05', 'ENPAM'), ('RT06', 'OTHER')] string='Withholding Type'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/9.0/l10n_it_fatturapa
VERSION
VERSION 0.1.0
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSAgile Business Group, Davide Corio, Innoviu
MAINTAINERS
MAINTAINERSAgile Business Group, Davide Corio, Innoviu
COMMITTERS
COMMITTERSPedro M. Baeza, Stéphane Bidoul (ACSONE)
WEBSITE
WEBSITEhttp://www.odoo-italia.org
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:15:20
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-italy:
    - l10n_it_base
    - l10n_it_fiscalcode
    - l10n_it_ipa
    - l10n_it_rea
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - report
    - analytic
    - web_tip
    - web_planner
    - base_vat
    - document
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pyxb
codicefiscale
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
customer_invoice_lines_not_editable customer_invoice_lines_not_editable account.invoice xpath Inherits account.invoice_form
supplier_invoice_lines_not_editable supplier_invoice_lines_not_editable account.invoice xpath Inherits account.invoice_supplier_form
view_account_config_settings view_account_config_settings account.config.settings xpath Inherits account.view_account_config_settings
view_invoice_line_form_fatturapa account.invoice.line.fatturapa account.invoice.line field Inherits account.view_invoice_line_form
view_partner_form_fatturapa partner.form.fatturapa res.partner page Inherits account.view_partner_property_form
view_payment_term_form_fatturapa account.payment.term.fatturapa account.payment.term field Inherits account.view_payment_term_form
view_tax_form account.tax.form account.tax notebook Inherits account.view_tax_form
Models touched (22)

New fields (0)

No new fields.

Public methods (1)
  • onchange_company_id(self, cr, uid, ids, company_id, context=None)

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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_tax_by_invoice_tax(self, cr, uid, invoice_tax, context=None)

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 (0)

No new fields.

Public methods (0)

No public methods.

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 (0)

No new fields.

Public methods (0)

No public methods.

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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, cr, uid, vals, context=None)

New fields (0)

No new fields.

Public methods (1)
  • create(self, cr, uid, vals, context=None)

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 (0)

No new fields.

Public methods (0)

No public methods.

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 (0)

No new fields.

Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/8.0/l10n_it_fatturapa
VERSION
VERSION 3.0.3
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Odoo Italia Network, Davide Corio, Innoviu
COMMITTERS
COMMITTERSStéphane Bidoul, Lorenzo Battistini, eLBati, GitHub, Stéphane Bidoul (ACSONE), Alex Comba, OCA Transbot, Leonardo Donelli, archetipo, oca-travis, Weblate, OCA-git-bot, v.terzulli, sergiocorato, Sergio Corato, Vincenzo Terzulli
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-italy/tree/8.0/l10n_it_fatturapa
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:11:22
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-italy:
    - l10n_it_account
    - l10n_it_fiscalcode
    - l10n_it_base
    - l10n_it_ipa
    - l10n_it_rea
    - l10n_it_account_tax_kind
    - l10n_it_esigibilita_iva
    - l10n_it_fiscal_payment_term
    - l10n_it_split_payment
    - l10n_it_fiscal_document_type
OCA/partner-contact:
    - partner_firstname
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - report
    - analytic
    - board
    - edi
    - email_template
    - base_vat
    - document
    - knowledge
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES asn1crypto
pyxb
codicefiscale
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
view_account_config_settings view_account_config_settings account.config.settings xpath Inherits account.view_account_config_settings
view_invoice_line_form_fatturapa account.invoice.line.fatturapa account.invoice.line field Inherits account.view_invoice_line_form
view_partner_form_fatturapa partner.form.fatturapa res.partner notebook Inherits account.view_partner_property_form
view_partner_ipa_form_ftpa view_partner_ipa_form_ftpa res.partner field Inherits l10n_it_ipa.view_partner_ipa_form
welfare_fund_type_tree welfare.fund.type.tree welfare.fund.type tree New
Models touched (22)

New fields (13)
  • fatturapa_art73 Boolean
    help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the company to issue in the same year several documents with same number)' readonly=False related='company_id.fatturapa_art73' string='Art73'
  • fatturapa_fiscal_position_id Many2one
    help='Fiscal position used by Electronic Invoice' related='company_id.fatturapa_fiscal_position_id' string='Fiscal Position'
  • fatturapa_preview_style Selection
    related='company_id.fatturapa_preview_style' required=True string='Preview Format Style'
  • fatturapa_pub_administration_ref Char
    related='company_id.fatturapa_pub_administration_ref' string='Public Administration Reference Code'
  • fatturapa_rea_capital Float
    related='company_id.fatturapa_rea_capital' string='Rea Capital'
  • fatturapa_rea_liquidation Selection
    related='company_id.fatturapa_rea_liquidation' string='Rea Liquidation'
  • fatturapa_rea_number Char
    related='company_id.fatturapa_rea_number' string='Rea Number'
  • fatturapa_rea_office Many2one
    related='company_id.fatturapa_rea_office' string='Rea Office'
  • fatturapa_rea_partner Selection
    related='company_id.fatturapa_rea_partner' string='Rea Copartner'
  • fatturapa_sender_partner Many2one
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' related='company_id.fatturapa_sender_partner' string='Third Party/Sender'
  • fatturapa_sequence_id Many2one
    help="The univocal progressive of the file is represented by an alphanumeric sequence of maximum length 5, its values are included in 'A'-'Z' and '0'-'9'" readonly=False related='company_id.fatturapa_sequence_id' string='Sequence'
  • fatturapa_stabile_organizzazione Many2one
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' related='company_id.fatturapa_stabile_organizzazione' string='Stable Organization'
  • fatturapa_tax_representative Many2one
    help='The fields must be entered only when the seller/provider makes use of a tax representative in Italy' related='company_id.fatturapa_tax_representative' string='Legal Tax Representative'
Public methods (1)
  • onchange_company_id(self, cr, uid, ids, company_id, context=None)
    @api.v7

New fields (39)
  • activity_progress_ids One2many → faturapa.activity.progress
    copy=False args: 'faturapa.activity.progress', 'invoice_id', 'Fase of Activity Progress'
  • art73 Boolean
    copy=False help='Indicates whether the document has been issued according to methods and terms laid down in a ministerial decree under the terms of Article 73 of Italian Presidential Decree 633/72 (this enables the seller/provider to issue in the same year several documents with same number)' readonly=True args: 'Art. 73'
  • carrier_id Many2one → res.partner
    copy=False string='Carrier' args: 'res.partner'
  • delivery_address Text
    copy=False args: 'Delivery Address'
  • delivery_datetime Datetime
    copy=False args: 'Delivery Date Time'
  • description Char
    copy=False size=100 args: 'Description'
  • efatt_rounding Float
    copy=False help='Possible total amount rounding on the document (negative sign allowed)' readonly=True args: 'Rounding'
  • efatt_stabile_organizzazione_cap Char
    copy=False help='ZIP Code' readonly=True string='Organization ZIP'
  • efatt_stabile_organizzazione_civico Char
    copy=False help='Street number of the address (no need to specify if already present in the address field)' readonly=True string='Organization Street Number'
  • efatt_stabile_organizzazione_comune Char
    copy=False help='Municipality or city to which the Stable Organization refers' readonly=True string='Organization Municipality'
  • efatt_stabile_organizzazione_indirizzo Char
    copy=False help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy. Address of the stable organization in Italy (street name, square, etc.)' readonly=True string='Organization Address'
  • efatt_stabile_organizzazione_nazione Char
    copy=False help='Country code according to the ISO 3166-1 alpha-2 code standard' readonly=True string='Organization Country'
  • efatt_stabile_organizzazione_provincia Char
    copy=False help='Acronym of the Province to which the municipality belongs, indicated in the information element 1.2.3.4 <Comune>. Must be filled if the information element 1.2.3.6 <Nazione> isequal to IT' readonly=True string='Organization Province'
  • electronic_invoice_subjected Boolean
    readonly=True related='partner_id.electronic_invoice_subjected' args: 'Subjected to electronic invoice'
  • fatturapa_doc_attachments One2many → fatturapa.attachments
    copy=False args: 'fatturapa.attachments', 'invoice_id', 'Electronic Invoice Attachments'
  • fatturapa_payments One2many → fatturapa.payment.data
    copy=False args: 'fatturapa.payment.data', 'invoice_id', 'Electronic Invoice Payment Data'
  • fatturapa_summary_ids One2many → faturapa.summary.data
    copy=False args: 'faturapa.summary.data', 'invoice_id', 'Electronic Invoice Summary Data'
  • ftpa_incoterms Char
    copy=False string='Incoterms'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_id', 'Related DdT'
  • ftpa_withholding_ids One2many → withholding.data.line
    copy=False args: 'withholding.data.line', 'invoice_id', 'Withholding'
  • gross_weight Float
    copy=False args: 'Gross Weight'
  • intermediary Many2one → res.partner
    string='Intermediary' args: 'res.partner'
  • net_weight Float
    copy=False args: 'Net Weight'
  • number_items Integer
    copy=False args: 'number of items'
  • pickup_datetime Datetime
    copy=False args: 'Pick up'
  • protocol_number Char
    copy=False size=64 args: 'Protocol Number'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_id', 'Related Documents'
  • related_invoice_code Char
    copy=False args: 'Related invoice code'
  • related_invoice_date Date
    copy=False args: 'Related invoice date'
  • related_mngt_data_ids One2many → fatturapa.mngt_data_type
    copy=False args: 'fatturapa.mngt_data_type', 'invoice_id', 'Related management datas'
  • sender Selection
    args: [('CC', 'assignee / partner'), ('TZ', 'third person')], 'Sender'
  • tax_representative_id Many2one → res.partner
    string='Tax Rapresentative' args: 'res.partner'
  • total_travel Char
    copy=False size=15 args: 'Travel in hours or Km'
  • transport_date Date
    copy=False args: 'Transport Date'
  • transport_reason Char
    copy=False size=80 args: 'Reason'
  • transport_vehicle Char
    copy=False size=80 args: 'Vehicle'
  • unit_weight Char
    copy=False size=10 args: 'Weight unit'
  • vehicle_registration Date
    copy=False args: 'Vehicle Registration'
  • welfare_fund_ids One2many → welfare.fund.data.line
    copy=False args: 'welfare.fund.data.line', 'invoice_id', 'Welfare Fund'
Public methods (0)

No public methods.

New fields (5)
  • admin_ref Char
    copy=False size=20 args: 'Admin. ref.'
  • discount_rise_price_ids One2many → discount.rise.price
    copy=False args: 'discount.rise.price', 'invoice_line_id', 'Discount and Supplement Price Details'
  • ftpa_line_number Integer
    copy=False readonly=True args: 'Line number'
  • ftpa_related_ddts One2many → fatturapa.related_ddt
    copy=False args: 'fatturapa.related_ddt', 'invoice_line_id', 'Related DdT'
  • related_documents One2many → fatturapa.related_document_type
    copy=False args: 'fatturapa.related_document_type', 'invoice_line_id', 'Related Documents Type'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_tax_by_invoice_tax(self, invoice_tax)

New fields (5)
  • amount Float
    digits=dp.get_precision('Discount') args: 'Amount'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice from line'
  • name Selection
    args: [('SC', 'Discount'), ('MG', 'Supplement Price')], 'Type'
  • percentage Float
    args: 'Percentage'
Public methods (0)

No public methods.

New fields (4)
  • compression Char
    size=10 args: 'Compression'
  • format Char
    size=10 args: 'Format'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • ir_attachment_id Many2one → ir.attachment
    ondelete='cascade' required=True args: 'ir.attachment', 'Attachment'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=4 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (2)
  • code Char
    size=5 args: 'Code'
  • name Char
    size=128 args: 'Description'
Public methods (0)

No public methods.

New fields (7)
  • date_ref Date
    args: 'Reference Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'LineRef'
  • name Char
    required=True size=10 args: 'Name'
  • number_ref Float
    args: 'Reference Number'
  • text_ref Char
    size=60 args: 'Reference Text'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (3)
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • payment_methods One2many → fatturapa.payment.detail
    args: 'fatturapa.payment.detail', 'payment_data_id', 'Payments Details'
  • payment_terms Many2one → fatturapa.payment_term
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_term'
Public methods (0)

No public methods.

New fields (24)
  • account_move_line_id Many2one → account.move.line
    string='Payment Line' args: 'account.move.line'
  • fatturapa_pm_id Many2one → fatturapa.payment_method
    string='Electronic Invoice Payment Method' args: 'fatturapa.payment_method'
  • max_payment_date Date
    args: 'Maximum date for Payment'
  • payment_amount Float
    args: 'Payment Amount'
  • payment_bank Many2one → res.partner.bank
    string='Payment Bank' args: 'res.partner.bank'
  • payment_bank_abi Char
    args: 'ABI'
  • payment_bank_bic Char
    args: 'BIC'
  • payment_bank_cab Char
    args: 'CAB'
  • payment_bank_iban Char
    args: 'IBAN'
  • payment_bank_name Char
    args: 'Bank name'
  • payment_code Char
    args: 'Payment code'
  • payment_data_id Many2one → fatturapa.payment.data
    index=True ondelete='cascade' args: 'fatturapa.payment.data', 'Related payments Data'
  • payment_days Integer
    args: 'Payment Term Days'
  • payment_due_date Date
    args: 'Payment due Date'
  • payment_term_start Date
    args: 'Payment Term Start'
  • penalty_amount Float
    args: 'Amount of Penality'
  • penalty_date Date
    args: 'Effective date of Penality'
  • post_office_code Char
    size=20 args: 'Post Office Code'
  • prepayment_discount Float
    args: 'Prepayment Discount'
  • recepit_cf Char
    args: 'Receipt Issuer FC'
  • recepit_name Char
    args: 'Receipt Issuer Name'
  • recepit_surname Char
    args: 'Receipt Issuer Surname'
  • recepit_title Char
    args: 'Receipt Issuer Title'
  • recipient Char
    size=200 args: 'Recipient'
Public methods (0)

No public methods.

New fields (5)
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'LineRef'
  • name Char
    required=True size=20 args: 'DocumentID'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (10)
  • cig Char
    size=15 args: 'CIG Code'
  • code Char
    size=100 args: 'Order Agreement Code'
  • cup Char
    size=15 args: 'CUP Code'
  • date Date
    args: 'Date'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • invoice_line_id Many2one → account.invoice.line
    index=True ondelete='cascade' args: 'account.invoice.line', 'Related Invoice Line'
  • lineRef Integer
    args: 'LineRef'
  • name Char
    required=True size=20 args: 'DocumentID'
  • numitem Char
    size=20 args: 'NumItem'
  • type Selection
    required=True args: [('order', 'Order'), ('contract', 'Contract'), ('agreement', 'Agreement'), ('reception', 'Reception'), ('invoice', 'Related Invoice')], 'Document Type'
Public methods (1)
  • create(self, vals)
    @api.model

New fields (2)
  • fatturapa_activity_progress Integer
    args: 'Activity Progress'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
Public methods (0)

No public methods.

New fields (9)
  • amount_tax Float
    args: 'Amount tax'
  • amount_untaxed Float
    args: 'Amount untaxed'
  • incidental_charges Float
    args: 'Incidental Charges'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • law_reference Char
    size=128 args: 'Law reference'
  • non_taxable_nature Selection
    string='Non taxable nature' args: [('N1', 'excluded pursuant to Art. 15'), ('N2', 'not subject'), ('N2.1', 'not subject to VAT under the articles from 7 to 7-septies of DPR 633/72'), ('N2.2', 'not subject – other cases'), ('N3', 'not taxable'), ('N3.1', 'not taxable – exportations'), ('N3.2', 'not taxable – intra Community transfers'), ('N3.3', 'not taxable – transfers to San Marino'), ('N3.4', 'not taxable – transactions treated as export supplies'), ('N3.5', 'not taxable – for declaration of intent'), ('N3.6', 'not taxable – other transactions that don’t contribute to the determination of ceiling'), ('N4', 'exempt'), ('N5', 'margin regime'), ('N6', 'reverse charge'), ('N6.1', 'reverse charge – transfer of scrap and of other recyclable materials'), ('N6.2', 'reverse charge – transfer of gold and pure silver'), ('N6.3', 'reverse charge – subcontracting in the construction sector'), ('N6.4', 'reverse charge – transfer of buildings'), ('N6.5', 'reverse charge – transfer of mobile phones'), ('N6.6', 'reverse charge – transfer of electronic products'), ('N6.7', 'reverse charge – provisions in the construction and related sectors'), ('N6.8', 'reverse charge – transactions in the energy sector'), ('N6.9', 'reverse charge – other cases'), ('N7', 'VAT paid in other EU countries')]
  • payability Selection
    string='VAT payability' args: [('I', 'Immediate payability'), ('D', 'Deferred payability'), ('S', 'Split payment')]
  • rounding Float
    args: 'Rounding'
  • tax_rate Float
    args: 'Tax Rate'
Public methods (0)

No public methods.

New fields (1)
  • ftpa_preview_link Char
    compute='_compute_ftpa_preview_link' readonly=True args: 'Preview link'
Public methods (6)
  • cleanup_xml(self, xml_string)
  • extract_cades(data)
    @staticmethod
  • get_fattura_elettronica_preview(self)
  • get_xml_string(self)
  • remove_xades_sign(self, xml)
  • strip_xml_content(self, xml)

New fields (13)
  • fatturapa_art73 Boolean
    args: 'Art73'
  • fatturapa_fiscal_position_id Many2one → fatturapa.fiscal_position
    help='Fiscal position used by Electronic Invoice' args: 'fatturapa.fiscal_position', 'Fiscal Position'
  • fatturapa_preview_style Selection
    default='fatturaordinaria_v1.2.1.xsl' required=True string='Preview Format Style' args: [('fatturaordinaria_v1.2.1.xsl', 'FatturaOrdinaria'), ('FoglioStileAssoSoftware_v1.1.xsl', 'AssoSoftware')]
  • fatturapa_pub_administration_ref Char
    size=20 args: 'Public Administration Reference Code'
  • fatturapa_rea_capital Float
    related='partner_id.rea_capital' string='Rea Capital'
  • fatturapa_rea_liquidation Selection
    related='partner_id.rea_liquidation_state' string='Liquidation State'
  • fatturapa_rea_number Char
    related='partner_id.rea_code' string='Rea Number'
  • fatturapa_rea_office Many2one
    related='partner_id.rea_office' string='REA office'
  • fatturapa_rea_partner Selection
    related='partner_id.rea_member_type' string='Member Type'
  • fatturapa_sender_partner Many2one → res.partner
    help='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider' args: 'res.partner', 'Third Party/Sender'
  • fatturapa_sequence_id Many2one → ir.sequence
    help="The univocal progressive of the file is represented by an alphanumeric sequence of maximum length 5, its values are included in 'A'-'Z' and '0'-'9'" args: 'ir.sequence', 'E-invoice Sequence'
  • fatturapa_stabile_organizzazione Many2one → res.partner
    help='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy' args: 'res.partner', 'Stable Organization'
  • fatturapa_tax_representative Many2one → res.partner
    args: 'res.partner', 'Legal Tax Representative'
Public methods (0)

No public methods.

New fields (12)
  • codice_destinatario Char
    default='0000000' help="The code, 7 characters long, assigned by ES to subjects with an accredited channel; if the addressee didn't accredit a channel to ES and invoices are received by PEC, the field must be filled with zeros ('0000000')." args: 'Addressee Code'
  • electronic_invoice_no_contact_update Boolean
    args: 'Do not update the contact from Electronic Invoice Details'
  • electronic_invoice_subjected Boolean
    args: 'Subjected to electronic invoice'
  • eori_code Char
    size=20 args: 'EORI Code'
  • license_number Char
    size=20 args: 'License Code'
  • pa_partner_code Char
    size=20 args: 'PA Code for partner'
  • pec_destinatario Char
    help="PEC to which the Electronic Invoice will be sent. Must be filled ONLY when the information element <CodiceDestinatario> is '0000000'" args: 'Addressee PEC'
  • register Char
    size=60 args: 'Professional Register'
  • register_code Char
    size=60 args: 'Register Registration Number'
  • register_fiscalpos Many2one → fatturapa.fiscal_position
    string='Register Fiscal Position' args: 'fatturapa.fiscal_position'
  • register_province Many2one → res.country.state
    string='Register Province' args: 'res.country.state'
  • register_regdate Date
    args: 'Register Registration Date'
Public methods (1)
  • onchange_country_id_e_inv(self)
    @api.onchange('country_id')

New fields (9)
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • kind_id Many2one → account.tax.kind
    string='Non taxable nature' args: 'account.tax.kind'
  • name Many2one → welfare.fund.type
    string='Welfare Fund Type' args: 'welfare.fund.type'
  • pa_line_code Char
    size=20 args: 'PA Code for this record'
  • subjected_withholding Char
    size=2 args: 'Subjected to Withholding'
  • welfare_Iva_tax Float
    args: 'Welfare tax'
  • welfare_amount_tax Float
    args: 'Welfare Amount tax'
  • welfare_rate_tax Float
    args: 'Welfare Rate tax'
  • welfare_taxable Float
    args: 'Welfare Taxable'
Public methods (0)

No public methods.

New fields (3)
  • description Char
    args: 'Description'
  • display_name Char
    compute='_compute_clean_display_name' string='Name'
  • name Char
    args: 'Name'
Public methods (0)

No public methods.

New fields (3)
  • amount Float
    args: 'Withholding amount'
  • invoice_id Many2one → account.invoice
    index=True ondelete='cascade' args: 'account.invoice', 'Related Invoice'
  • name Selection
    selection=[('RT01', 'Natural Person'), ('RT02', 'Legal Person'), ('RT03', 'INPS'), ('RT04', 'ENASARCO'), ('RT05', 'ENPAM'), ('RT06', 'OTHER')] string='Withholding Type'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYOCA/l10n-italy
GIT
GIThttps://github.com/OCA/l10n-italy.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-italy/tree/7.0/l10n_it_fatturapa
VERSION
VERSION 0.1
CATEGORY
CATEGORYLocalization/Italy
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Agile Business Group, Davide Corio, Innoviu
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Agile Business Group, Davide Corio, Innoviu
COMMITTERS
COMMITTERSDavide Corio, Lorenzo Battistini, eLBati, Stéphane Bidoul (ACSONE), OCA Transbot, archetipo, Roberto Onnis
WEBSITE
WEBSITEhttp://www.odoo-italia.org
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:07:13
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-italy:
    - l10n_it_base
    - l10n_it_fiscalcode
    - l10n_it_ipa
    - l10n_it_rea
odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - process
    - decimal_precision
    - mail
    - analytic
    - board
    - edi
    - email_template
    - document
    - knowledge
    - base_iban
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES pyxb
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
    :alt: License

Italian Localization - FatturaPA
================================

Base module to handle FatturaPA data.
http://fatturapa.gov.it

See l10n_it_fatturapa_out and l10n_it_fatturapa_in.


Installation
============

This module requires PyXB 1.2.4
http://pyxb.sourceforge.net/


Configuration
=============

 * Edit the FatturaPA fields of the partners (in partner form) who will receive
   (send) the electronic invoices. IPA code is mandatory, EORI code is not.
 * Configure payment terms filling the fatturaPA fields related to payment
   terms and payment methods.
 * Configure taxes about 'Non taxable nature', 'Law reference'
   and 'VAT payability'
 * Configure FatturaPA data in Accounting Configuration. Note that a sequence
   'fatturaPA' is already loaded by the module and selectable.

Credits
=======

Contributors
------------

* Davide Corio <davide.corio@abstract.it>
* Lorenzo Battistini <lorenzo.battistini@agilebg.com>
* Roberto Onnis <roberto.onnis@innoviu.com>
* Alessio Gerace <alessio.gerace@agilebg.com>

Maintainer
----------

.. image:: http://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: http://odoo-community.org

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

To contribute to this module, please visit http://odoo-community.org.

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
customer_invoice_lines_not_editable customer_invoice_lines_not_editable account.invoice xpath Inherits account.invoice_form
supplier_invoice_lines_not_editable supplier_invoice_lines_not_editable account.invoice xpath Inherits account.invoice_supplier_form
view_account_config_settings view_account_config_settings account.config.settings xpath Inherits account.view_account_config_settings
view_invoice_line_form_fatturapa account.invoice.line.fatturapa account.invoice.line field Inherits account.view_invoice_line_form
view_partner_form_fatturapa partner.form.fatturapa res.partner page Inherits account.view_partner_property_form
view_payment_term_form_fatturapa account.payment.term.fatturapa account.payment.term field Inherits account.view_payment_term_form
view_tax_form account.tax.form account.tax notebook Inherits account.view_tax_form
Models touched (22)

New fields (0)

No new fields.

Public methods (1)
  • onchange_company_id(self, cr, uid, ids, company_id, context=None)

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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • get_tax_by_invoice_tax(self, cr, uid, invoice_tax, context=None)

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 (0)

No new fields.

Public methods (0)

No public methods.

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 (0)

No new fields.

Public methods (0)

No public methods.

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 (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, cr, uid, vals, context=None)

New fields (0)

No new fields.

Public methods (1)
  • create(self, cr, uid, vals, context=None)

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 (0)

No new fields.

Public methods (0)

No public methods.

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 (0)

No new fields.

Public methods (0)

No public methods.