TIP: You can type at any time to perform a new search.
ITA - Fattura elettronica - Base
l10n_it_fatturapa · OCA/l10n-italy
- Repository
- OCA/l10n-italy · module folder · Try on Runboat
- Module version
- 1.4.1
- Category
- Localization/Italy
- Folder size
- 5.47 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/l10n-italy
- Last tracking update
- 2026-08-07 08:09:16
- Authors
- Odoo Community Association (OCA), Agile Business Group, Davide Corio, Innoviu, Odoo Italia Network
- Maintainers
- Odoo Community Association (OCA), Agile Business Group, Davide Corio, Innoviu, Odoo Italia Network
- Committers
- eLBati, Sergio Zanchetta, micheledic, Simone Rubino, Weblate, OCA-git-bot, oca-ci, Marco Colombo, odooNextev, Borruso, PicchiSeba, TennyMKT, Marco Marinello
- Odoo dependencies
- Python dependencies
- asn1crypto, xmlschema, codicefiscale
- System dependencies
- None
- Required by
- l10n_it_fatturapa_auto_sale_order, l10n_it_fatturapa_in, l10n_it_fatturapa_out, l10n_it_fatturapa_out_wt, l10n_it_fatturapa_sale, l10n_it_sdi_channel, l10n_it_website_portal_fatturapa
- 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 ID | Name | Model | Type | Status |
|---|---|---|---|---|
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 | form | Inherits account.res_config_settings_view_form |
view_company_form_e_invoice |
view_company_form_e_invoice | res.company | form | Inherits base.view_company_form |
view_invoice_form_fatturapa |
account.invoice.fatturapa | account.move | form | Inherits account.view_move_form |
view_partner_form_e_inv |
res.partner.form.e.invoice | res.partner | form | Inherits base.view_partner_form |
view_partner_form_fatturapa |
partner.form.fatturapa | res.partner | form | Inherits account.view_partner_property_form |
view_partner_ipa_form_ftpa |
view_partner_ipa_form_ftpa | res.partner | form | Inherits l10n_it_ipa.view_partner_ipa_form |
HTTP endpoints (1)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/fatturapa/preview/<attachment_id> |
FatturaElettronicaController.pdf_preview |
user | http | ALL | website |
Models touched (19)
New fields (38)
-
activity_progress_idsOne2many → fatturapa.activity.progresscopy=False args: 'fatturapa.activity.progress', 'invoice_id', 'Phase of Activity Progress' -
art73Booleancopy=Falsehelp='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_idMany2one → res.partnercopy=Falsestring='Carrier' args: 'res.partner' -
delivery_addressTextcopy=False args: 'Delivery Address for E-invoice' -
delivery_datetimeDatetimecopy=False args: 'Delivery Date Time' -
descriptionCharcopy=Falsesize=100 -
efatt_roundingFloatcopy=Falsehelp='Possible total amount rounding on the document (negative sign allowed)'readonly=True args: 'Rounding' -
efatt_stabile_organizzazione_capCharcopy=Falsehelp='ZIP Code'readonly=Truestring='Organization ZIP' -
efatt_stabile_organizzazione_civicoCharcopy=Falsehelp='Street number of the address (no need to specify if already present in the address field)'readonly=Truestring='Organization Street Number' -
efatt_stabile_organizzazione_comuneCharcopy=Falsehelp='Municipality or city to which the Stable Organization refers'readonly=Truestring='Organization Municipality' -
efatt_stabile_organizzazione_indirizzoCharcopy=Falsehelp='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=Truestring='Organization Address' -
efatt_stabile_organizzazione_nazioneCharcopy=Falsehelp='Country code according to the ISO 3166-1 alpha-2 code standard'readonly=Truestring='Organization Country' -
efatt_stabile_organizzazione_provinciaCharcopy=Falsehelp='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=Truestring='Organization Province' -
electronic_invoice_subjectedBooleanreadonly=Truerelated='commercial_partner_id.electronic_invoice_subjected' args: 'Subjected to Electronic Invoice' -
fatturapa_doc_attachmentsOne2many → fatturapa.attachmentscopy=False args: 'fatturapa.attachments', 'invoice_id', 'Electronic Invoice Attachments' -
fatturapa_paymentsOne2many → fatturapa.payment.datacopy=False args: 'fatturapa.payment.data', 'invoice_id', 'Electronic Invoice Payment Data' -
fatturapa_summary_idsOne2many → fatturapa.summary.datacopy=False args: 'fatturapa.summary.data', 'invoice_id', 'Electronic Invoice Summary Data' -
ftpa_incotermsCharcopy=Falsestring='E-inv Incoterms' -
ftpa_related_ddtsOne2many → fatturapa.related_ddtcopy=False args: 'fatturapa.related_ddt', 'invoice_id', 'Related DDT' -
ftpa_withholding_idsOne2many → withholding.data.linecopy=False args: 'withholding.data.line', 'invoice_id', 'Withholding' -
gross_weightFloatcopy=False -
intermediaryMany2one → res.partnerargs: 'res.partner' -
net_weightFloatcopy=False -
number_itemsIntegercopy=False args: 'Number of Items' -
pickup_datetimeDatetimecopy=False args: 'Pick up' -
protocol_numberCharcopy=Falsesize=64 -
related_documentsOne2many → fatturapa.related_document_typecopy=False args: 'fatturapa.related_document_type', 'invoice_id' -
related_invoice_codeCharcopy=False -
related_invoice_dateDatecopy=False -
senderSelectionargs: [('CC', 'Assignee / Partner'), ('TZ', 'Third Person')] -
tax_representative_idMany2one → res.partnerstring='Tax Representative' args: 'res.partner' -
total_travelCharcopy=Falsesize=15 args: 'Travel in hours or Km' -
transport_dateDatecopy=False -
transport_reasonCharcopy=Falsesize=80 args: 'Reason' -
transport_vehicleCharcopy=Falsesize=80 args: 'Vehicle' -
unit_weightCharcopy=Falsesize=10 args: 'Weight Unit' -
vehicle_registrationDatecopy=False -
welfare_fund_idsOne2many → welfare.fund.data.linecopy=False args: 'welfare.fund.data.line', 'invoice_id', 'Welfare Fund'
-
open_form_current(self)
New fields (5)
-
admin_refCharcopy=Falsesize=20 args: 'Admin. ref.' -
discount_rise_price_idsOne2many → discount.rise.pricecopy=False args: 'discount.rise.price', 'invoice_line_id', 'Discount or Supplement Details' -
ftpa_line_numberIntegercopy=Falsereadonly=True args: 'Line Number' -
ftpa_related_ddtsOne2many → fatturapa.related_ddtcopy=False args: 'fatturapa.related_ddt', 'invoice_line_id', 'Related DDT' -
related_documentsOne2many → fatturapa.related_document_typecopy=False args: 'fatturapa.related_document_type', 'invoice_line_id', 'Related Documents Type'
No public methods.
New fields (5)
-
amountFloatdigits='Discount' -
invoice_idMany2one → account.moveindex=Trueondelete='cascade' args: 'account.move', 'Related Invoice' -
invoice_line_idMany2one → account.move.lineindex=Trueondelete='cascade' args: 'account.move.line', 'Related Invoice from line' -
nameSelectionargs: [('SC', 'Discount'), ('MG', 'Supplement')], 'Type' -
percentageFloat
No public methods.
New fields (2)
-
fatturapa_activity_progressIntegerargs: 'Activity Progress' -
invoice_idMany2one → account.moveindex=Trueondelete='cascade' args: 'account.move', 'Related Invoice'
No public methods.
New fields (4)
-
att_nameCharrelated='ir_attachment_id.name'store=Truestring='SdI file name' -
ftpa_preview_linkCharcompute='_compute_ftpa_preview_link'readonly=True args: 'Preview link' -
idId -
ir_attachment_idMany2one → ir.attachmentcomodel_name='ir.attachment'ondelete='cascade'required=Truestring='Attachment'
-
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)
-
compressionCharsize=10 -
formatCharsize=10 -
invoice_idMany2one → account.moveindex=Trueondelete='cascade' args: 'account.move', 'Related Invoice' -
ir_attachment_idMany2one → ir.attachmentondelete='cascade'required=True args: 'ir.attachment', 'Attachment'
No public methods.
New fields (2)
-
codeCharsize=4 -
nameCharsize=128 args: 'Description'
No public methods.
New fields (3)
-
invoice_idMany2one → account.moveindex=Trueondelete='cascade' args: 'account.move', 'Related Invoice' -
payment_methodsOne2many → fatturapa.payment.detailargs: 'fatturapa.payment.detail', 'payment_data_id', 'Payments Details' -
payment_termsMany2one → fatturapa.payment_termstring='Electronic Invoice Payment Method' args: 'fatturapa.payment_term'
No public methods.
New fields (24)
-
account_move_line_idMany2one → account.move.linestring='Payment Line' args: 'account.move.line' -
fatturapa_pm_idMany2one → fatturapa.payment_methodstring='Electronic Invoice Payment Method' args: 'fatturapa.payment_method' -
max_payment_dateDateargs: 'Maximum Date for Payment' -
payment_amountFloat -
payment_bankMany2one → res.partner.bankargs: 'res.partner.bank' -
payment_bank_abiCharargs: 'ABI' -
payment_bank_bicCharargs: 'BIC' -
payment_bank_cabCharargs: 'CAB' -
payment_bank_ibanCharargs: 'IBAN' -
payment_bank_nameCharargs: 'Bank Name' -
payment_codeChar -
payment_data_idMany2one → fatturapa.payment.dataindex=Trueondelete='cascade' args: 'fatturapa.payment.data', 'Related Payments Data' -
payment_daysIntegerargs: 'Payment Term Days' -
payment_due_dateDate -
payment_term_startDate -
penalty_amountFloatargs: 'Amount of Penalty' -
penalty_dateDateargs: 'Effective Date of Penalty' -
post_office_codeCharsize=20 -
prepayment_discountFloat -
recepit_cfCharargs: 'Receipt Issuer FC' -
recepit_nameCharargs: 'Receipt Issuer Name' -
recepit_surnameCharargs: 'Receipt Issuer Surname' -
recepit_titleCharargs: 'Receipt Issuer Title' -
recipientCharsize=200
No public methods.
New fields (5)
-
dateDate -
invoice_idMany2one → account.moveindex=Trueondelete='cascade' args: 'account.move', 'Related Invoice' -
invoice_line_idMany2one → account.move.lineindex=Trueondelete='cascade' args: 'account.move.line', 'Related Invoice Line' -
lineRefIntegerargs: 'Line Ref.' -
nameCharrequired=Truesize=20 args: 'Document ID'
-
create(self, vals_list)@api.model_create_multi
New fields (10)
-
cigCharsize=15 args: 'CIG Code' -
codeCharsize=100 args: 'Order Agreement Code' -
cupCharsize=15 args: 'CUP Code' -
dateDate -
invoice_idMany2one → account.moveindex=Trueondelete='cascade'readonly=True args: 'account.move', 'Related Invoice' -
invoice_line_idMany2one → account.move.lineindex=Trueondelete='cascade'readonly=True args: 'account.move.line', 'Related Invoice Line' -
lineRefIntegerargs: 'Line Ref.' -
nameCharrequired=Truesize=20 args: 'Document ID' -
numitemCharsize=20 args: 'Item Num.' -
typeSelectionrequired=True args: [('order', 'Order'), ('contract', 'Contract'), ('agreement', 'Agreement'), ('reception', 'Reception'), ('invoice', 'Related Invoice')], 'Document Type'
-
create(self, vals_list)@api.model_create_multi -
setlineRef(self, n)
New fields (9)
-
amount_taxFloat -
amount_untaxedFloat -
incidental_chargesFloat -
invoice_idMany2one → account.moveindex=Trueondelete='cascade' args: 'account.move', 'Related Invoice' -
law_referenceCharsize=128 args: 'Law reference' -
non_taxable_natureSelectionselection='_get_tax_kinds'string='Non taxable nature' -
payabilitySelectionstring='VAT payability' args: [('I', 'Immediate payability'), ('D', 'Deferred payability'), ('S', 'Split payment')] -
roundingFloat -
tax_rateFloat
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_art73Booleanargs: 'Art. 73' -
fatturapa_fiscal_position_idMany2one → fatturapa.fiscal_positionhelp='Fiscal position used by electronic invoice' args: 'fatturapa.fiscal_position', 'Electronic Invoice Fiscal Position' -
fatturapa_preview_styleSelectiondefault='Foglio_di_stile_fatturaordinaria_v1.2.2.xsl'required=Truestring='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_refCharsize=20 args: 'Public Administration Reference Code' -
fatturapa_sender_partnerMany2one → res.partnerhelp='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_styleSelectiondefault='fatturasemplificata_v1.0.xsl'required=Truestring='Preview Format Style for Fattura Semplificata' args: [('fatturasemplificata_v1.0.xsl', 'Fattura Semplificata')] -
fatturapa_stabile_organizzazioneMany2one → res.partnerhelp='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_representativeMany2one → res.partnerargs: 'res.partner', 'Legal Tax Representative'
No public methods.
New fields (13)
-
fatturapa_art73Booleanhelp='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=Falserelated='company_id.fatturapa_art73'string='Art. 73' -
fatturapa_fiscal_position_idMany2onehelp='Fiscal position used by electronic invoice'readonly=Falserelated='company_id.fatturapa_fiscal_position_id'string='Fiscal Position' -
fatturapa_preview_styleSelectionreadonly=Falserelated='company_id.fatturapa_preview_style'required=Truestring='Preview Format Style for Fattura Ordinaria' -
fatturapa_pub_administration_refCharreadonly=Falserelated='company_id.fatturapa_pub_administration_ref'string='Public Administration Reference Code' -
fatturapa_rea_capitalFloatreadonly=Falserelated='company_id.rea_capital'string='REA Capital' -
fatturapa_rea_liquidationSelectionreadonly=Falserelated='company_id.rea_liquidation_state'string='REA Liquidation' -
fatturapa_rea_numberCharreadonly=Falserelated='company_id.rea_code'string='REA Number' -
fatturapa_rea_officeMany2onereadonly=Falserelated='company_id.rea_office'string='REA Office' -
fatturapa_rea_partnerSelectionreadonly=Falserelated='company_id.rea_member_type'string='REA Copartner' -
fatturapa_sender_partnerMany2onehelp='Data of Third-Party Issuer Intermediary who emits the invoice on behalf of the seller/provider'readonly=Falserelated='company_id.fatturapa_sender_partner'string='Third Party/Sender' -
fatturapa_simple_preview_styleSelectiondefault='fatturasemplificata_v1.0.xsl'readonly=Falserelated='company_id.fatturapa_simple_preview_style'required=Truestring='Preview Format Style for Fattura Semplificata' -
fatturapa_stabile_organizzazioneMany2onehelp='The fields must be entered only when the seller/provider is non-resident, with a stable organization in Italy'readonly=Falserelated='company_id.fatturapa_stabile_organizzazione'string='Stable Organization' -
fatturapa_tax_representativeMany2onehelp='The fields must be entered only when the seller/provider makes use of a tax representative in Italy'readonly=Falserelated='company_id.fatturapa_tax_representative'string='Legal Tax Representative'
-
onchange_company_id(self)@api.onchange('company_id')
New fields (15)
-
codice_destinatarioChardefault=STANDARD_ADDRESSEE_CODEhelp=<expr> args: 'Addressee Code' -
electronic_invoice_data_completeBooleancompute='_compute_electronic_invoice_data_complete' -
electronic_invoice_no_contact_updateBooleanargs: 'Do not update the contact from Electronic Invoice Details' -
electronic_invoice_obliged_subjectBooleanargs: 'Obliged Subject' -
electronic_invoice_subjectedBooleanargs: 'Enable electronic invoicing' -
electronic_invoice_use_this_addressBooleanhelp='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_codeCharsize=20 args: 'EORI Code' -
license_numberCharsize=20 args: 'License Code' -
pa_partner_codeCharsize=20 args: 'PA Code for Partner' -
pec_destinatarioCharhelp=<expr> args: 'Addressee PEC' -
registerCharsize=60 args: 'Professional Register' -
register_codeCharsize=60 args: 'Register Registration Number' -
register_fiscalposMany2one → fatturapa.fiscal_positionstring='Register Fiscal Position' args: 'fatturapa.fiscal_position' -
register_provinceMany2one → res.country.stateargs: 'res.country.state' -
register_regdateDateargs: 'Register Registration Date'
-
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_idMany2one → account.moveindex=Trueondelete='cascade' args: 'account.move', 'Related Invoice' -
kind_idMany2one → account.tax.kindstring='Non taxable nature' args: 'account.tax.kind' -
nameMany2one → welfare.fund.typestring='Welfare Fund Type' args: 'welfare.fund.type' -
pa_line_codeCharsize=20 args: 'PA Code for this Record' -
subjected_withholdingCharsize=2 args: 'Subjected to Withholding' -
welfare_Iva_taxFloatargs: 'VAT Tax Rate' -
welfare_amount_taxFloatargs: 'Welfare Tax Amount' -
welfare_rate_taxFloatargs: 'Welfare Tax Rate' -
welfare_taxableFloat
No public methods.
New fields (2)
-
descriptionChar -
nameChar
-
name_get(self)
New fields (3)
-
amountFloatargs: 'Withholding amount' -
invoice_idMany2one → account.moveindex=Trueondelete='cascade' args: 'account.move', 'Related Invoice' -
nameSelectionselection=[('RT01', 'Natural Person'), ('RT02', 'Legal Person'), ('RT03', 'INPS'), ('RT04', 'ENASARCO'), ('RT05', 'ENPAM'), ('RT06', 'OTHER')]string='Withholding Type'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…