Spain - Facturae EDI

l10n_es_edi_facturae
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/l10n_es_edi_facturae
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSOdoo Translation Bot, Thibault Delavallée, Josse Colpaert, Xavier ALT, Laurent Smet, Julien Castiaux, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Gorash, odoo, william-andre, Ruben Gomes, jbw-odoo, Adrien Widart (awt), Maximilien (malb), Ali Alfie (alal), Camille Spiritus, Dylan Kiss (dyki), Sven Fuehr, Seif (segn), Louis Gobert, asno-odoo, Claire (clbr), gteboul, Antoine Dupuis, Logan Staelens, elhayyany, Mohammad Abdulmoneim (abdu), masm-odoo, Corentin Heinix (cohe), Krzysztof Magusiak (krma), nape-odoo, Basioni (basm), hisi-odoo, Laurent Smet (LAS), shzi-odoo, santiagopim
WEBSITE
WEBSITEhttps://www.facturae.gob.es/face/Paginas/FACE.aspx
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - certificate
    - base_setup
    - base
    - web
    - l10n_es
    - account
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
    - account_edi_ubl_cii
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module create the Facturae file required to send the invoices information to the General State Administrations.
It allows the export and signature of the signing of Facturae files.
The current version of Facturae supported is the 3.2.2

for more informations, see https://www.facturae.gob.es/face/Paginas/FACE.aspx
    

Code Analysis

Views touched (23)
XML IDNameModelTypeStatus
account_invoice_facturae_export account_invoice_facturae_export ir.ui.view qweb New
address_type address_type ir.ui.view qweb New
administrative_centers_type administrative_centers_type ir.ui.view qweb New
business_type business_type ir.ui.view qweb New
certificate_certificate_view_form certificate_certificate_view_form.inherit.l10n_es_edi_facturae certificate.certificate field Inherits certificate.certificate_certificate_view_form
certificate_certificate_view_search certificate_certificate_view_search.inherit.l10n_es_edi_facturae certificate.certificate filter Inherits certificate.certificate_certificate_view_search
contact_details_type contact_details_type ir.ui.view qweb New
corrective_type corrective_type ir.ui.view qweb New
individual_type individual_type ir.ui.view qweb New
invoice_line_type invoice_line_type ir.ui.view qweb New
invoice_type invoice_type ir.ui.view qweb New
legal_entity_type legal_entity_type ir.ui.view qweb New
product_uom_form_view_inherit_l10n_es_edi_facturae uom.uom.form.inherit.l10n_es_edi_facturae uom.uom field Inherits uom.product_uom_form_view
product_uom_tree_view_inherit_l10n_es_edi_facturae uom.uom.list.inherit.l10n_es_edi_facturae uom.uom field Inherits uom.product_uom_tree_view
tax_identification_type tax_identification_type ir.ui.view qweb New
tax_type tax_type ir.ui.view qweb New
template_xades_signature template_xades_signature ir.ui.view qweb New
view_account_move_reversal_inherit_l10n_es_edi_facturae account.move.reversal.form.inherit.l10n_es_edi_facturae account.move.reversal field Inherits account.view_account_move_reversal
view_move_form account.move.form account.move xpath Inherits account.view_move_form
view_partner_form_inherit_l10n_es_edi_facturae res.partner.form.inherit.l10n_es_edi_facturae res.partner xpath Inherits base.view_partner_form
view_tax_form_inherit_l10n_es_edi_facturae account.tax.form.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_form
view_tax_tree_inherit_l10n_es_edi_facturae account.tax.list.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_tree
view_tax_tree_inherit_l10n_es_edi_facturae account.tax.list.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_tree
Models touched (11)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • l10n_es_edi_facturae_reason_code Selection
    compute='_compute_l10n_es_edi_facturae_reason_code' readonly=False selection=[('01', 'Invoice number'), ('02', 'Invoice serial number'), ('03', 'Issue date'), ('04', 'Name and surnames/Corporate name - Issuer (Sender)'), ('05', 'Name and surnames/Corporate name - Receiver'), ('06', "Issuer's Tax Identification Number"), ('07', "Receiver's Tax Identification Number"), ('08', "Issuer's address"), ('09', "Receiver's address"), ('10', 'Item line'), ('11', 'Applicable Tax Rate'), ('12', 'Applicable Tax Amount'), ('13', 'Applicable Date/Period'), ('14', 'Invoice Class'), ('15', 'Legal literals'), ('16', 'Taxable Base'), ('80', 'Calculation of tax outputs'), ('81', 'Calculation of tax inputs'), ('82', 'Taxable Base modified due to return of packages and packaging materials'), ('83', 'Taxable Base modified due to discounts and rebates'), ('84', 'Taxable Base modified due to firm court ruling or administrative decision'), ('85', 'Taxable Base modified due to unpaid outputs where there is a judgement opening insolvency proceedings')] store=True string='Spanish Facturae EDI Reason Code'
  • l10n_es_edi_facturae_xml_file Binary
    attachment=True copy=False string='Facturae File'
  • l10n_es_edi_facturae_xml_id Many2one → ir.attachment
    comodel_name='ir.attachment' compute=<expr> depends=['l10n_es_edi_facturae_xml_file'] string='Facturae Attachment'
  • l10n_es_invoicing_period_end_date Date
    string='Invoice Period End Date'
  • l10n_es_invoicing_period_start_date Date
    string='Invoice Period Start Date'
  • l10n_es_payment_means Selection
    compute='_compute_l10n_es_payment_means' readonly=False selection=[('01', 'In cash'), ('02', 'Direct debit'), ('03', 'Receipt'), ('04', 'Credit transfer'), ('05', 'Accepted bill of exchange'), ('06', 'Documentary credit'), ('07', 'Contract award'), ('08', 'Bill of exchange'), ('09', 'Transferable promissory note'), ('10', 'Non transferable promissory note'), ('11', 'Cheque'), ('12', 'Open account reimbursement'), ('13', 'Special payment'), ('14', 'Set-off by reciprocal credits'), ('15', 'Payment by postgiro'), ('16', 'Certified cheque'), ('17', 'Banker’s draft'), ('18', 'Cash on delivery'), ('19', 'Payment by card')] store=True string='Payment Means'
Public methods (2)
  • action_invoice_download_facturae(self)
  • get_extra_print_items(self)

New fields (1)
  • l10n_es_edi_facturae_reason_code Selection
    default='10' selection=<expr> string='Spanish Facturae EDI Reason Code'
Public methods (1)
  • reverse_moves(self, is_modify=False)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • action_send_and_print(self, allow_fallback_pdf=False)

New fields (1)
  • l10n_es_edi_facturae_tax_type Selection
    string='Spanish Facturae EDI Tax Type' args: [('01', 'Value-Added Tax'), ('02', 'Taxes on production, services and imports in Ceuta and Melilla'), ('03', 'IGIC: Canaries General Indirect Tax'), ('04', 'IRPF: Personal Income Tax'), ('05', 'Other'), ('06', 'ITPAJD: Tax on wealth transfers and stamp duty'), ('07', 'IE: Excise duties and consumption taxes'), ('08', 'RA: Customs duties'), ('09', 'IGTECM: Sales tax in Ceuta and Melilla'), ('10', 'IECDPCAC: Excise duties on oil derivates in Canaries'), ('11', 'IIIMAB: Tax on premises that affect the environment in the Balearic Islands'), ('12', 'ICIO: Tax on construction, installation and works'), ('13', 'IMVDN: Local tax on unoccupied homes in Navarre'), ('14', 'IMSN: Local tax on building plots in Navarre'), ('15', 'IMGSN: Local sumptuary tax in Navarre'), ('16', 'IMPN: Local tax on advertising in Navarre'), ('17', 'REIVA: Special VAT for travel agencies'), ('18', 'REIGIC: Special IGIC: for travel agencies'), ('19', 'REIPSI: Special IPSI for travel agencies'), ('20', 'IPS: Insurance premiums Tax'), ('21', 'SWUA: Surcharge for Winding Up Activity'), ('22', 'IVPEE: Tax on the value of electricity generation'), ('23', 'Tax on the production of spent nuclear fuel and radioactive waste from the generation of nuclear electric power'), ('24', 'Tax on the storage of spent nuclear energy and radioactive waste in centralised facilities'), ('25', 'IDEC: Tax on bank deposits'), ('26', 'Excise duty applied to manufactured tobacco in Canaries'), ('27', 'IGFEI: Tax on Fluorinated Greenhouse Gases'), ('28', 'IRNR: Non-resident Income Tax'), ('29', 'Corporation Tax')]
Public methods (0)

No public methods.

New fields (1)
  • scope Selection
    selection_add=[('facturae', 'Facturae')]
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (2)
  • l10n_es_edi_facturae_certificate_ids One2many → certificate.certificate
    comodel_name='certificate.certificate' domain=[('scope', '=', 'facturae')] inverse_name='company_id' string='Facturae EDI signing certificate'
  • l10n_es_edi_facturae_residence_type Char
    related='partner_id.l10n_es_edi_facturae_residence_type' string='Facturae EDI Residency Type Code'
Public methods (0)

No public methods.

New fields (7)
  • invoice_edi_format Selection
    selection_add=[('es_facturae', 'Spain (FacturaE)')]
  • l10n_es_edi_facturae_ac_center_code Char
    help='Code of the issuing department.' size=10 string='Code'
  • l10n_es_edi_facturae_ac_logical_operational_point Char
    help="Code identifying the company. Barcode of 13 standard positions. Codes are registered in Spain by AECOC. The code is made up of the country code (2 positions) Spain is '84' + Company code (5 positions) + the remaining positions. The last one is the product + check digit." size=14 string='Logical Operational Point'
  • l10n_es_edi_facturae_ac_physical_gln Char
    help="Identification of the connection point to the VAN EDI (Global Location Number). Barcode of 13 standard positions. Codes are registered in Spain by AECOC. The code is made up of the country code (2 positions) Spain is '84' + Company code (5 positions) + the remaining positions. The last one is the product + check digit." size=14 string='Physical GLN'
  • l10n_es_edi_facturae_ac_role_type_ids Many2many → l10n_es_edi_facturae.ac_role_type
    comodel_name='l10n_es_edi_facturae.ac_role_type' help="It indicates the role played by the Operational Point defined as a Workplace/Department.\nThese functions are:\n- Receiver: Workplace associated to the recipient's tax identification number where the invoice will be received.\n- Payer: Workplace associated to the recipient's tax identification number responsible for paying the invoice.\n- Buyer: Workplace associated to the recipient's tax identification number who issued the purchase order.\n- Collector: Workplace associated to the issuer's tax identification number responsible for handling the collection.\n- Fiscal: Workplace associated to the recipient's tax identification number, where an Operational Point mailbox is shared by different client companies with different tax identification numbers and it is necessary to differentiate between where the message is received (shared letterbox) and the workplace where it must be stored (recipient company)." string='Roles'
  • l10n_es_edi_facturae_residence_type Char
    compute='_compute_l10n_es_edi_facturae_residence_type' readonly=True store=False string='Facturae EDI Residency Type Code'
  • type Selection
    selection_add=[('facturae_ac', 'FACe Center'), ('other')]
Public methods (0)

No public methods.

New fields (1)
  • l10n_es_edi_facturae_uom_code Selection
    default='05' required=True selection=[('01', 'Units'), ('02', 'Hours'), ('03', 'Kilograms'), ('04', 'Liters'), ('05', 'Other'), ('06', 'Boxes'), ('07', 'Trays, one layer no cover, plastic'), ('08', 'Barrels'), ('09', 'Jerricans, cylindrical'), ('10', 'Bags'), ('11', 'Carboys, non-protected'), ('12', 'Bottles, non-protected, cylindrical'), ('13', 'Canisters'), ('14', 'Tetra Briks'), ('15', 'Centiliters'), ('16', 'Centimeters'), ('17', 'Bins'), ('18', 'Dozens'), ('19', 'Cases'), ('20', 'Demijohns, non-protected'), ('21', 'Grams'), ('22', 'Kilometers'), ('23', 'Cans, rectangular'), ('24', 'Bunches'), ('25', 'Meters'), ('26', 'Millimeters'), ('27', '6-Packs'), ('28', 'Packages'), ('29', 'Portions'), ('30', 'Rolls'), ('31', 'Envelopes'), ('32', 'Tubs'), ('33', 'Cubic meter'), ('34', 'Second'), ('35', 'Watt'), ('36', 'Kilowatt-hour')] string='Spanish EDI Units'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/l10n_es_edi_facturae
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Josse Colpaert, Xavier ALT, Xavier Morel, Yannick Tivisse, Laurent Smet, Jairo Llopis, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Gorash, odoo, Miquel Raïch, Julien Van Roy, Ruben Gomes, Vincent Larcin, jbw-odoo, mehjabinfarsana, Adrien Widart (awt), Julien (jula), Thomas Becquevort (thbe), Gauthier Wala (gawa), Ali Alfie (alal), Claire Bretton (clbr), Antoine Boonen, Camille Spiritus, Dylan Kiss (dyki), sesn-odoo, bary, Sven Fuehr, Seif (segn), yosa-odoo, moerradi, Louis Gobert, Louis (wil), asno-odoo, Claire (clbr), gteboul, Antoine Dupuis, Logan Staelens, Maira Salazar (srma), elhayyany, masm-odoo, Corentin Heinix (cohe), Krzysztof Magusiak (krma), nape-odoo, Laurent Smet (LAS), Augusto Perez, shzi-odoo, Megaaaaaa, santiagopim
WEBSITE
WEBSITEhttps://www.facturae.gob.es/face/Paginas/FACE.aspx
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:26:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - certificate
    - base_setup
    - base
    - web
    - l10n_es
    - account
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module create the Facturae file required to send the invoices information to the General State Administrations.
It allows the export and signature of the signing of Facturae files.
The current version of Facturae supported is the 3.2.2

for more informations, see https://www.facturae.gob.es/face/Paginas/FACE.aspx
    

Code Analysis

Views touched (24)
XML IDNameModelTypeStatus
account_invoice_facturae_export account_invoice_facturae_export ir.ui.view qweb New
address_type address_type ir.ui.view qweb New
administrative_centers_type administrative_centers_type ir.ui.view qweb New
business_type business_type ir.ui.view qweb New
certificate_certificate_view_form certificate_certificate_view_form.inherit.l10n_es_edi_facturae certificate.certificate field Inherits certificate.certificate_certificate_view_form
certificate_certificate_view_search certificate_certificate_view_search.inherit.l10n_es_edi_facturae certificate.certificate filter Inherits certificate.certificate_certificate_view_search
contact_details_type contact_details_type ir.ui.view qweb New
corrective_type corrective_type ir.ui.view qweb New
individual_type individual_type ir.ui.view qweb New
invoice_line_type invoice_line_type ir.ui.view qweb New
invoice_type invoice_type ir.ui.view qweb New
legal_entity_type legal_entity_type ir.ui.view qweb New
product_uom_categ_form_view_inherit_l10n_es_edi_facturae uom.category.form.inherit.l10n_es_edi_facturae uom.category list Inherits uom.product_uom_categ_form_view
product_uom_form_view_inherit_l10n_es_edi_facturae uom.uom.form.inherit.l10n_es_edi_facturae uom.uom field Inherits uom.product_uom_form_view
product_uom_tree_view_inherit_l10n_es_edi_facturae uom.uom.list.inherit.l10n_es_edi_facturae uom.uom field Inherits uom.product_uom_tree_view
tax_identification_type tax_identification_type ir.ui.view qweb New
tax_type tax_type ir.ui.view qweb New
template_xades_signature template_xades_signature ir.ui.view qweb New
view_account_move_reversal_inherit_l10n_es_edi_facturae account.move.reversal.form.inherit.l10n_es_edi_facturae account.move.reversal field Inherits account.view_account_move_reversal
view_move_form account.move.form account.move xpath Inherits account.view_move_form
view_partner_form_inherit_l10n_es_edi_facturae res.partner.form.inherit.l10n_es_edi_facturae res.partner xpath Inherits base.view_partner_form
view_tax_form_inherit_l10n_es_edi_facturae account.tax.form.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_form
view_tax_tree_inherit_l10n_es_edi_facturae account.tax.list.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_tree
view_tax_tree_inherit_l10n_es_edi_facturae account.tax.list.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_tree
Models touched (11)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (6)
  • l10n_es_edi_facturae_reason_code Selection
    default='10' selection=[('01', 'Invoice number'), ('02', 'Invoice serial number'), ('03', 'Issue date'), ('04', 'Name and surnames/Corporate name - Issuer (Sender)'), ('05', 'Name and surnames/Corporate name - Receiver'), ('06', "Issuer's Tax Identification Number"), ('07', "Receiver's Tax Identification Number"), ('08', "Issuer's address"), ('09', "Receiver's address"), ('10', 'Item line'), ('11', 'Applicable Tax Rate'), ('12', 'Applicable Tax Amount'), ('13', 'Applicable Date/Period'), ('14', 'Invoice Class'), ('15', 'Legal literals'), ('16', 'Taxable Base'), ('80', 'Calculation of tax outputs'), ('81', 'Calculation of tax inputs'), ('82', 'Taxable Base modified due to return of packages and packaging materials'), ('83', 'Taxable Base modified due to discounts and rebates'), ('84', 'Taxable Base modified due to firm court ruling or administrative decision'), ('85', 'Taxable Base modified due to unpaid outputs where there is a judgement opening insolvency proceedings')] string='Spanish Facturae EDI Reason Code'
  • l10n_es_edi_facturae_xml_file Binary
    attachment=True copy=False string='Facturae File'
  • l10n_es_edi_facturae_xml_id Many2one → ir.attachment
    comodel_name='ir.attachment' compute=<expr> depends=['l10n_es_edi_facturae_xml_file'] string='Facturae Attachment'
  • l10n_es_invoicing_period_end_date Date
    string='Invoice Period End Date'
  • l10n_es_invoicing_period_start_date Date
    string='Invoice Period Start Date'
  • l10n_es_payment_means Selection
    default='04' selection=[('01', 'In cash'), ('02', 'Direct debit'), ('03', 'Receipt'), ('04', 'Credit transfer'), ('05', 'Accepted bill of exchange'), ('06', 'Documentary credit'), ('07', 'Contract award'), ('08', 'Bill of exchange'), ('09', 'Transferable promissory note'), ('10', 'Non transferable promissory note'), ('11', 'Cheque'), ('12', 'Open account reimbursement'), ('13', 'Special payment'), ('14', 'Set-off by reciprocal credits'), ('15', 'Payment by postgiro'), ('16', 'Certified cheque'), ('17', 'Banker’s draft'), ('18', 'Cash on delivery'), ('19', 'Payment by card')] string='Payment Means'
Public methods (0)

No public methods.

New fields (1)
  • l10n_es_edi_facturae_reason_code Selection
    default='10' selection=<expr> string='Spanish Facturae EDI Reason Code'
Public methods (1)
  • reverse_moves(self, is_modify=False)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • action_send_and_print(self, allow_fallback_pdf=False)

New fields (1)
  • l10n_es_edi_facturae_tax_type Selection
    string='Spanish Facturae EDI Tax Type' args: [('01', 'Value-Added Tax'), ('02', 'Taxes on production, services and imports in Ceuta and Melilla'), ('03', 'IGIC: Canaries General Indirect Tax'), ('04', 'IRPF: Personal Income Tax'), ('05', 'Other'), ('06', 'ITPAJD: Tax on wealth transfers and stamp duty'), ('07', 'IE: Excise duties and consumption taxes'), ('08', 'RA: Customs duties'), ('09', 'IGTECM: Sales tax in Ceuta and Melilla'), ('10', 'IECDPCAC: Excise duties on oil derivates in Canaries'), ('11', 'IIIMAB: Tax on premises that affect the environment in the Balearic Islands'), ('12', 'ICIO: Tax on construction, installation and works'), ('13', 'IMVDN: Local tax on unoccupied homes in Navarre'), ('14', 'IMSN: Local tax on building plots in Navarre'), ('15', 'IMGSN: Local sumptuary tax in Navarre'), ('16', 'IMPN: Local tax on advertising in Navarre'), ('17', 'REIVA: Special VAT for travel agencies'), ('18', 'REIGIC: Special IGIC: for travel agencies'), ('19', 'REIPSI: Special IPSI for travel agencies'), ('20', 'IPS: Insurance premiums Tax'), ('21', 'SWUA: Surcharge for Winding Up Activity'), ('22', 'IVPEE: Tax on the value of electricity generation'), ('23', 'Tax on the production of spent nuclear fuel and radioactive waste from the generation of nuclear electric power'), ('24', 'Tax on the storage of spent nuclear energy and radioactive waste in centralised facilities'), ('25', 'IDEC: Tax on bank deposits'), ('26', 'Excise duty applied to manufactured tobacco in Canaries'), ('27', 'IGFEI: Tax on Fluorinated Greenhouse Gases'), ('28', 'IRNR: Non-resident Income Tax'), ('29', 'Corporation Tax')]
Public methods (0)

No public methods.

New fields (1)
  • scope Selection
    selection_add=[('facturae', 'Facturae')]
Public methods (0)

No public methods.

New fields (2)
  • code Char
    required=True
  • name Char
    required=True translate=True
Public methods (0)

No public methods.

New fields (2)
  • l10n_es_edi_facturae_certificate_ids One2many → certificate.certificate
    comodel_name='certificate.certificate' domain=[('scope', '=', 'facturae')] inverse_name='company_id' string='Facturae EDI signing certificate'
  • l10n_es_edi_facturae_residence_type Char
    related='partner_id.l10n_es_edi_facturae_residence_type' string='Facturae EDI Residency Type Code'
Public methods (0)

No public methods.

New fields (7)
  • invoice_edi_format Selection
    selection_add=[('es_facturae', 'Spain (FacturaE)')]
  • l10n_es_edi_facturae_ac_center_code Char
    help='Code of the issuing department.' size=10 string='Code'
  • l10n_es_edi_facturae_ac_logical_operational_point Char
    help="Code identifying the company. Barcode of 13 standard positions. Codes are registered in Spain by AECOC. The code is made up of the country code (2 positions) Spain is '84' + Company code (5 positions) + the remaining positions. The last one is the product + check digit." size=14 string='Logical Operational Point'
  • l10n_es_edi_facturae_ac_physical_gln Char
    help="Identification of the connection point to the VAN EDI (Global Location Number). Barcode of 13 standard positions. Codes are registered in Spain by AECOC. The code is made up of the country code (2 positions) Spain is '84' + Company code (5 positions) + the remaining positions. The last one is the product + check digit." size=14 string='Physical GLN'
  • l10n_es_edi_facturae_ac_role_type_ids Many2many → l10n_es_edi_facturae.ac_role_type
    comodel_name='l10n_es_edi_facturae.ac_role_type' help="It indicates the role played by the Operational Point defined as a Workplace/Department.\nThese functions are:\n- Receiver: Workplace associated to the recipient's tax identification number where the invoice will be received.\n- Payer: Workplace associated to the recipient's tax identification number responsible for paying the invoice.\n- Buyer: Workplace associated to the recipient's tax identification number who issued the purchase order.\n- Collector: Workplace associated to the issuer's tax identification number responsible for handling the collection.\n- Fiscal: Workplace associated to the recipient's tax identification number, where an Operational Point mailbox is shared by different client companies with different tax identification numbers and it is necessary to differentiate between where the message is received (shared letterbox) and the workplace where it must be stored (recipient company)." string='Roles'
  • l10n_es_edi_facturae_residence_type Char
    compute='_compute_l10n_es_edi_facturae_residence_type' readonly=True store=False string='Facturae EDI Residency Type Code'
  • type Selection
    selection_add=[('facturae_ac', 'FACe Center'), ('other')]
Public methods (0)

No public methods.

New fields (1)
  • l10n_es_edi_facturae_uom_code Selection
    default='05' required=True selection=[('01', 'Units'), ('02', 'Hours'), ('03', 'Kilograms'), ('04', 'Liters'), ('05', 'Other'), ('06', 'Boxes'), ('07', 'Trays, one layer no cover, plastic'), ('08', 'Barrels'), ('09', 'Jerricans, cylindrical'), ('10', 'Bags'), ('11', 'Carboys, non-protected'), ('12', 'Bottles, non-protected, cylindrical'), ('13', 'Canisters'), ('14', 'Tetra Briks'), ('15', 'Centiliters'), ('16', 'Centimeters'), ('17', 'Bins'), ('18', 'Dozens'), ('19', 'Cases'), ('20', 'Demijohns, non-protected'), ('21', 'Grams'), ('22', 'Kilometers'), ('23', 'Cans, rectangular'), ('24', 'Bunches'), ('25', 'Meters'), ('26', 'Millimeters'), ('27', '6-Packs'), ('28', 'Packages'), ('29', 'Portions'), ('30', 'Rolls'), ('31', 'Envelopes'), ('32', 'Tubs'), ('33', 'Cubic meter'), ('34', 'Second'), ('35', 'Watt'), ('36', 'Kilowatt-hour')] string='Spanish EDI Units'
Public methods (0)

No public methods.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/l10n_es_edi_facturae
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Localizations/EDI
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLEYes
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Josse Colpaert, qdp-odoo, Laurent Smet, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Gorash, roen-odoo, jbw-odoo, Adrien Widart (awt), Julien (jula), Gauthier Wala (gawa), Ali Alfie (alal), Saurabh Mishra, Claire Bretton (clbr), Antoine Boonen, Camille Spiritus, Dylan Kiss (dyki), hupo-odoo, Julien Alardot (jual), paso-odoo, Odoo, Mohit Beniwal, sesn-odoo, aktr-odoo, Sven Fuehr, Seif (segn), yosa-odoo, Louis Gobert, asno-odoo, casp-odoo, Claire (clbr), gteboul, Maira Salazar (srma), nape-odoo, Sohail JAIDI (soja), Augusto Perez
WEBSITE
WEBSITEhttps://www.facturae.gob.es/face/Paginas/FACE.aspx
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - l10n_es
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module create the Facturae file required to send the invoices information to the General State Administrations.
It allows the export and signature of the signing of Facturae files.
The current version of Facturae supported is the 3.2.2

for more informations, see https://www.facturae.gob.es/face/Paginas/FACE.aspx
    

Code Analysis

Views touched (23)
XML IDNameModelTypeStatus
account_invoice_facturae_export account_invoice_facturae_export ir.ui.view qweb New
account_move_send_form account.move.send.form account.move.send xpath Inherits account.account_move_send_form
address_type address_type ir.ui.view qweb New
business_type business_type ir.ui.view qweb New
contact_details_type contact_details_type ir.ui.view qweb New
corrective_type corrective_type ir.ui.view qweb New
individual_type individual_type ir.ui.view qweb New
invoice_line_type invoice_line_type ir.ui.view qweb New
invoice_type invoice_type ir.ui.view qweb New
l10n_es_edi_facturae_certificate_form l10n_es_edi_facturae.certificate.form l10n_es_edi_facturae.certificate form New
l10n_es_edi_facturae_certificate_tree l10n_es_edi_facturae.certificate.tree l10n_es_edi_facturae.certificate tree New
legal_entity_type legal_entity_type ir.ui.view qweb New
product_uom_categ_form_view_inherit_l10n_es_edi_facturae uom.category.form.inherit.l10n_es_edi_facturae uom.category tree Inherits uom.product_uom_categ_form_view
product_uom_form_view_inherit_l10n_es_edi_facturae uom.uom.form.inherit.l10n_es_edi_facturae uom.uom field Inherits uom.product_uom_form_view
product_uom_tree_view_inherit_l10n_es_edi_facturae uom.uom.tree.inherit.l10n_es_edi_facturae uom.uom field Inherits uom.product_uom_tree_view
tax_identification_type tax_identification_type ir.ui.view qweb New
tax_type tax_type ir.ui.view qweb New
template_xades_signature template_xades_signature ir.ui.view qweb New
view_account_move_reversal_inherit_l10n_es_edi_facturae account.move.reversal.form.inherit.l10n_es_edi_facturae account.move.reversal field Inherits account.view_account_move_reversal
view_company_form_inherit_l10n_es_edi_facturae res.company.form.inherit.l10n_es_edi_facturae res.company field Inherits base.view_company_form
view_tax_form_inherit_l10n_es_edi_facturae account.tax.form.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_form
view_tax_tree_inherit_l10n_es_edi_facturae account.tax.tree.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_tree
view_tax_tree_inherit_l10n_es_edi_facturae account.tax.tree.inherit.l10n_es_edi_facturae account.tax field Inherits account.view_tax_tree
Models touched (9)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • l10n_es_edi_facturae_reason_code Selection
    default='10' selection=[('01', 'Invoice number'), ('02', 'Invoice serial number'), ('03', 'Issue date'), ('04', 'Name and surnames/Corporate name - Issuer (Sender)'), ('05', 'Name and surnames/Corporate name - Receiver'), ('06', "Issuer's Tax Identification Number"), ('07', "Receiver's Tax Identification Number"), ('08', "Issuer's address"), ('09', "Receiver's address"), ('10', 'Item line'), ('11', 'Applicable Tax Rate'), ('12', 'Applicable Tax Amount'), ('13', 'Applicable Date/Period'), ('14', 'Invoice Class'), ('15', 'Legal literals'), ('16', 'Taxable Base'), ('80', 'Calculation of tax outputs'), ('81', 'Calculation of tax inputs'), ('82', 'Taxable Base modified due to return of packages and packaging materials'), ('83', 'Taxable Base modified due to discounts and rebates'), ('84', 'Taxable Base modified due to firm court ruling or administrative decision'), ('85', 'Taxable Base modified due to unpaid outputs where there is a judgement opening insolvency proceedings')] string='Spanish Facturae EDI Reason Code'
  • l10n_es_edi_facturae_xml_file Binary
    attachment=True copy=False string='Facturae File'
  • l10n_es_edi_facturae_xml_id Many2one → ir.attachment
    comodel_name='ir.attachment' compute=<expr> depends=['l10n_es_edi_facturae_xml_file'] string='Facturae Attachment'
Public methods (0)

No public methods.

New fields (1)
  • l10n_es_edi_facturae_reason_code Selection
    default='10' selection=<expr> string='Spanish Facturae EDI Reason Code'
Public methods (1)
  • reverse_moves(self, is_modify=False)

New fields (2)
  • l10n_es_edi_facturae_checkbox_xml Boolean
    company_dependent=True default=True string='Generate Facturae edi file'
  • l10n_es_edi_facturae_enable_xml Boolean
    compute='_compute_l10n_es_edi_facturae_enable_xml'
Public methods (0)

No public methods.

New fields (1)
  • l10n_es_edi_facturae_tax_type Selection
    default='01' string='Spanish Facturae EDI Tax Type' args: [('01', 'Value-Added Tax'), ('02', 'Taxes on production, services and imports in Ceuta and Melilla'), ('03', 'IGIC: Canaries General Indirect Tax'), ('04', 'IRPF: Personal Income Tax'), ('05', 'Other'), ('06', 'ITPAJD: Tax on wealth transfers and stamp duty'), ('07', 'IE: Excise duties and consumption taxes'), ('08', 'RA: Customs duties'), ('09', 'IGTECM: Sales tax in Ceuta and Melilla'), ('10', 'IECDPCAC: Excise duties on oil derivates in Canaries'), ('11', 'IIIMAB: Tax on premises that affect the environment in the Balearic Islands'), ('12', 'ICIO: Tax on construction, installation and works'), ('13', 'IMVDN: Local tax on unoccupied homes in Navarre'), ('14', 'IMSN: Local tax on building plots in Navarre'), ('15', 'IMGSN: Local sumptuary tax in Navarre'), ('16', 'IMPN: Local tax on advertising in Navarre'), ('17', 'REIVA: Special VAT for travel agencies'), ('18', 'REIGIC: Special IGIC: for travel agencies'), ('19', 'REIPSI: Special IPSI for travel agencies'), ('20', 'IPS: Insurance premiums Tax'), ('21', 'SWUA: Surcharge for Winding Up Activity'), ('22', 'IVPEE: Tax on the value of electricity generation'), ('23', 'Tax on the production of spent nuclear fuel and radioactive waste from the generation of nuclear electric power'), ('24', 'Tax on the storage of spent nuclear energy and radioactive waste in centralised facilities'), ('25', 'IDEC: Tax on bank deposits'), ('26', 'Excise duty applied to manufactured tobacco in Canaries'), ('27', 'IGFEI: Tax on Fluorinated Greenhouse Gases'), ('28', 'IRNR: Non-resident Income Tax'), ('29', 'Corporation Tax')]
Public methods (0)

No public methods.

New fields (6)
  • company_id Many2one → res.company
    comodel_name='res.company' default=<expr> readonly=True required=True
  • content Binary
    help='PFX Certificate' required=True string='PFX Certificate'
  • date_end Datetime
    help='The date on which the certificate expires' readonly=True
  • date_start Datetime
    help='The date on which the certificate starts to be valid' readonly=True
  • password Char
    help='Passphrase for the PFX certificate'
  • serial_number Char
    help='The serial number to add to electronic documents' index=True readonly=True
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (2)
  • l10n_es_edi_facturae_certificate_id One2many → l10n_es_edi_facturae.certificate
    comodel_name='l10n_es_edi_facturae.certificate' inverse_name='company_id' string='Facturae EDI signing certificate'
  • l10n_es_edi_facturae_residence_type Char
    related='partner_id.l10n_es_edi_facturae_residence_type' string='Facturae EDI Residency Type Code'
Public methods (0)

No public methods.

New fields (1)
  • l10n_es_edi_facturae_residence_type Char
    compute='_compute_l10n_es_edi_facturae_residence_type' readonly=True store=False string='Facturae EDI Residency Type Code'
Public methods (0)

No public methods.

New fields (1)
  • l10n_es_edi_facturae_uom_code Selection
    default='05' required=True selection=[('01', 'Units'), ('02', 'Hours'), ('03', 'Kilograms'), ('04', 'Liters'), ('05', 'Other'), ('06', 'Boxes'), ('07', 'Trays, one layer no cover, plastic'), ('08', 'Barrels'), ('09', 'Jerricans, cylindrical'), ('10', 'Bags'), ('11', 'Carboys, non-protected'), ('12', 'Bottles, non-protected, cylindrical'), ('13', 'Canisters'), ('14', 'Tetra Briks'), ('15', 'Centiliters'), ('16', 'Centimeters'), ('17', 'Bins'), ('18', 'Dozens'), ('19', 'Cases'), ('20', 'Demijohns, non-protected'), ('21', 'Grams'), ('22', 'Kilometers'), ('23', 'Cans, rectangular'), ('24', 'Bunches'), ('25', 'Meters'), ('26', 'Millimeters'), ('27', '6-Packs'), ('28', 'Packages'), ('29', 'Portions'), ('30', 'Rolls'), ('31', 'Envelopes'), ('32', 'Tubs'), ('33', 'Cubic meter'), ('34', 'Second'), ('35', 'Watt'), ('36', 'Kilowatt-hour')] string='Spanish EDI Units'
Public methods (0)

No public methods.