OdooWiki OCA HUB

Suministro Inmediato de Información en el IVA

l10n_es_aeat_sii_oca folder_open OCA/l10n-spain open_in_new
Accounting & Finance License: AGPL-3

Módulo para la presentación inmediata del IVA

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Connects Odoo invoicing to the Spanish SII (Immediate VAT Information Supply) system, so customer and supplier invoices are sent electronically to the Spanish tax agency and their status is tracked in Odoo.

This module lets a Spanish company report its invoices to the tax agency almost in real time. Once SII is enabled on the company, invoices become eligible for sending, and Odoo builds the required tax information from each invoice.

Where it appears: - Company settings gain SII options: enable SII, test environment, sending method (automatic or manual), sending mode (on validation, at a fixed time, or with a delay), start date, and how the operation description is filled (automatic from invoice lines, fixed text, or manual). - Journals get an "Enable SII" switch and show counters of invoices not yet sent or failed. - Invoices get extra fields: registration keys, refund type, real property location and cadastral code, customs complementary settlement, accounting receipt, and a computed description. - Fiscal positions and products can carry default registration keys and exempt causes. - A wizard lets users send several invoices at once, and a scheduled job sends pending invoices and cancellations in batches.

Automatic behaviour: - On validation, invoices are checked and, depending on the method, sent or queued. - Once an invoice is registered, key fields (invoice date, number, supplier, supplier invoice number) can no longer be changed; users must cancel and recreate it. - Cancelling or resetting an invoice triggers a cancellation notice to the tax agency. - Refund invoices require a refund type and, for supplier refunds, the original supplier invoice number. - Supplier invoices must have a supplier invoice number and cannot be simplified invoices.

Technical mappings and tax agency connection settings are also configurable.

Menus it adds

Aeat SII MapAeat SII Registration Keys
Models and fields (14)
  • sii.mixin · new modelsii_csv (SII CSV), aeat_state, company_id (Company), sii_return (SII Return), sii_enabled (Enable SII), sii_macrodata (MacroData), sii_send_date (SII Send Date), sii_description (SII computed description), sii_refund_type (SII Refund Type), sii_needs_cancel, sii_registration_key (SII registration key), sii_registration_key_code (SII Code), sii_registration_key_domain (SII registration key domain), sii_account_registration_date (SII account registration date)
  • res.company · extends an existing modelsii_test (Is it the SII test environment?), send_mode, sent_time, delay_time, sii_method (Method), sii_period, sii_enabled (Enable SII), sii_start_date, sii_description (SII Description), sii_header_customer (SII Customer header), sii_header_supplier (SII Supplier header), sii_description_method (SII Description Method)
  • res.partner · extends an existing modelsii_enabled
  • account.move · new modelsii_dua_invoice, sii_lc_operation (Customs - Complementary settlement), sii_property_location (Real property location), sii_send_date_visible, sii_is_accounting_receipt (Is accounting receipt?), sii_property_cadastrial_code (Real property cadastrial code), sii_refund_specific_invoice_type, sii_registration_key_additional1 (Additional SII registration key), sii_registration_key_additional2 (Additional 2 SII registration key)
  • aeat.sii.map · new modelname (Model), date_to, date_from, map_lines (Lines), tax_agency_id (Tax Agency)
  • account.journal · extends an existing modelsii_enabled (Enable SII), company_sii_enabled (Company enable SII)
  • aeat.tax.agency · extends an existing modelsii_wsdl_ic (SuministroOpIntracomunitarias WSDL), sii_wsdl_in (SuministroFactRecibidas WSDL), sii_wsdl_pi (SuministroBienesInversion WSDL), sii_wsdl_pr (SuministroCobrosEmitidas WSDL), sii_wsdl_ps (SuministroPagosRecibidas WSDL), sii_wsdl_ott (SuministroOpTrascendTribu WSDL), sii_wsdl_out (SuministroFactEmitidas WSDL), sii_wsdl_ic_test_address (SuministroOpIntracomunitarias Test Address), sii_wsdl_in_test_address (SuministroFactRecibidas Test Address), sii_wsdl_pi_test_address (SuministroBienesInversion Test Address), sii_wsdl_pr_test_address (SuministroCobrosEmitidas Test Address), sii_wsdl_ps_test_address (SuministroPagosRecibidas Test Address), sii_wsdl_ott_test_address (SuministroOpTrascendTribu Test Address), sii_wsdl_out_test_address (SuministroFactEmitidas Test Address)
  • wizard.send.sii · new modelmoves_to_send, modified_number, account_move_ids (Invoices), with_errors_number, not_send_without_errors_number
  • product.template · extends an existing modelsii_exempt_cause (SII Exempt Cause)
  • aeat.sii.map.lines · new modelcode, name, sii_map_id (Aeat SII Map), tax_xmlid_ids (Taxes templates)
  • account.move.reversal · extends an existing modelsii_refund_type (SII Refund Type), sii_refund_type_required (Is SII Refund Type required?), supplier_invoice_number_refund (Supplier Invoice Number), supplier_invoice_number_refund_required (Is Supplier Invoice Number Required?)
  • account.chart.template · extends an existing model
  • account.fiscal.position · extends an existing modelsii_enabled, sii_exempt_cause (SII Exempt Cause), sii_no_taxable_cause (SII No taxable cause), sii_registration_key_sale, sii_registration_key_purchase, sii_partner_identification_type (SII partner Identification Type)
  • aeat.sii.mapping.registration.keys · new modelcode, name, type

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 7 confirmed, 2 with no information of 9 versions.

Sources · Odoo 15.0

Confirmed on 2026-11-03 in branch 15.0 of OCA/l10n-spain.

terminal Installation and usage

OCA documentation · Odoo 19.0

Para instalar esté módulo necesita:

  • Libreria Python Zeep, se puede instalar con el comando 'pip install zeep'
  • Libreria Python Requests, se puede instalar con el comando 'pip install requests'

Para configurar este módulo es necesario:

  • En la compañia se almacenan las URLs del servicio SOAP de hacienda. Estas URLs pueden cambiar según comunidades
  • Los certificados deben alojarse en una carpeta accesible por la instalación de Odoo.
  • Preparar el certificado. El certificado enviado por la FMNT es en formato p12, este certificado no se puede usar directamente con Zeep. Se tiene que extraer la clave pública y la clave privada.

El parámetro del sistema l10n_es_aeat_sii_oca.sii_batch almacena el número de facturas máximo que se enviarán al SII cada vez que se realice un envío. El valor por defecto es 500. Las facturas se envían agrupadas en una sola petición por compañía, agencia tributaria, libro (emitidas o recibidas) y tipo de comunicación (alta o modificación), con un máximo de 10.000 registros por petición, que es el límite de la AEAT. Las anulaciones se agrupan del mismo modo.

En Linux se pueden usar los siguientes comandos:

  • Clave pública: "openssl pkcs12 -in Certificado.p12 -nokeys -out publicCert.crt -nodes"
  • Clave privada: "openssl pkcs12 -in Certifcado.p12 -nocerts -out privateKey.pem -nodes"

Cuando se valida una factura automáticamente envia la comunicación al servidor de AEAT.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.