Suministro Inmediato de Información en el IVA
Módulo para la presentación inmediata del IVA https://www.agenciatributaria.es/static_files/AEAT/Contenidos_Comunes/La_Agencia_Tributaria/Modelos_y_formularios/Suministro_inmediato_informacion/FicherosSuministros/V_1_1/SII_Descripcion_ServicioWeb_v1.1.pdf
auto_awesome What this module does
AI-generated from the code · Odoo 12.0Automatically sends Spanish VAT invoices to the AEAT SII web service and tracks their status. Users can configure SII per company, fiscal position and partner, and see send results, errors and CSV on each invoice.
This module connects Odoo to the Spanish tax agency's Immediate VAT Supply (SII) web service so sales and purchase invoices are reported electronically.
- On each invoice you get SII fields: send state, CSV, last header/content sent, return message and send error, plus a computed description and registration keys.
- Invoices are sent automatically when they reach a valid state, either directly or through a queue job if the company uses the connector.
- Business rules block changing the date, supplier or supplier number of an invoice already registered, and prevent deleting registered invoices.
- Fiscal positions define default registration keys, exempt/no-taxable causes and partner identification type; products and partners also carry SII settings.
- Configuration screens let you enable SII per company, choose test mode, description method, send mode and headers, and manage tax agency endpoints, tax maps and registration keys.
- Refund wizards ask for the SII refund type and supplier invoice number when needed.
It touches account.invoice, account.invoice.tax, account.fiscal.position, res.company, res.partner, product.template, account.invoice.refund and adds new models for SII maps, registration keys, tax agencies and certificates.
Depends on
Required by other modules
Menus it adds
Models and fields (14)
- queue.job · extends an existing model
- res.company · extends an existing modelsii_test (Is Test Environment?), send_mode (Send mode), sent_time (Sent time), delay_time (Delay time), sii_method (Method), sii_enabled (Enable SII), use_connector (Use connector), sii_description (SII Description), sii_tax_agency_id (Tax Agency), 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, sii_simplified_invoice (Simplified invoices in SII?)
- aeat.sii.map · new modelname (Model), date_to (Date to), date_from (Date from), map_lines (Lines)
- account.invoice · extends an existing modelsii_csv (SII CSV), sii_state (SII send state), sii_return (SII Return), sii_enabled (Enable SII), sii_macrodata (MacroData), sii_send_error (SII Send Error), sii_description (SII computed description), sii_header_sent (SII last header sent), sii_refund_type (SII Refund Type), sii_send_failed (SII send failed), invoice_jobs_ids (Connector Jobs), sii_content_sent (SII last content sent), sii_registration_key (SII registration key), sii_property_location (Real property location), sii_description_method, sii_manual_description (SII manual description), sii_registration_key_code, sii_property_cadastrial_code (Real property cadastrial code), sii_account_registration_date (SII account registration date), sii_refund_specific_invoice_type, sii_registration_key_additional1 (Additional SII registration key), sii_registration_key_additional2 (Additional 2 SII registration key)
- l10n.es.aeat.sii · new modelfile (File), name (Name), state (State), date_end (End Date), company_id (Company), date_start (Start Date), public_key (Public Key), private_key (Private Key)
- product.template · extends an existing modelsii_exempt_cause (SII Exempt Cause)
- aeat.sii.map.lines · new modelcode (Code), name (Name), taxes (Taxes), sii_map_id (Aeat SII Map)
- account.invoice.tax · extends an existing modelbase_company (Base in company currency), amount_company (Amount in company currency)
- aeat.sii.tax.agency · new modelname (Tax Agency), wsdl_ic (SuministroOpIntracomunitarias WSDL), wsdl_in (SuministroFactRecibidas WSDL), wsdl_pi (SuministroBienesInversion WSDL), wsdl_pr (SuministroCobrosEmitidas WSDL), wsdl_ps (SuministroPagosRecibidas WSDL), wsdl_ott (SuministroOpTrascendTribu WSDL), wsdl_out (SuministroFactEmitidas WSDL), wsdl_ic_test_address (SuministroOpIntracomunitarias Test Address), wsdl_in_test_address (SuministroFactRecibidas Test Address), wsdl_pi_test_address (SuministroBienesInversion Test Address), wsdl_pr_test_address (SuministroCobrosEmitidas Test Address), wsdl_ps_test_address (SuministroPagosRecibidas Test Address), wsdl_ott_test_address (SuministroOpTrascendTribu Test Address), wsdl_out_test_address (SuministroFactEmitidas Test Address)
- account.invoice.refund · 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.fiscal.position · extends an existing modelsii_active (SII Active), sii_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)
- l10n.es.aeat.sii.password · new modelfolder (Folder Name), password (Password)
- aeat.sii.mapping.registration.keys · new modelcode (Code), name (Name), type (Type)
Text generated by AI (DeepSeek) from reading the Odoo 12.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-03Confirmation status: 1 confirmed, 8 with no information of 9 versions.
Sources · Odoo 12.0
Confirmed on 2026-11-03 in branch 12.0 of OCA/l10n-spain.
terminal Installation and usage
OCA documentation · Odoo 12.0Installation
Source · Odoo 12.0Para 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'
- Libreria pyOpenSSL, versión 0.15 o posterior
y el módulo queue_job que se encuentra en:
https://github.com/OCA/queue
Configuration
Source · Odoo 12.0Para 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.
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"
Además, el módulo queue_job necesita estar configurado de una de estas formas:
- Ajustando variables de entorno: ODOO_QUEUE_JOB_CHANNELS=root:4 u otro canal de configuración. Por defecto es root:1 Si xmlrpc_port no está definido: ODOO_QUEUE_JOB_PORT=8069
- Otra alternativa es usuando un fichero de configuración: [options] (...) workers = 4 server_wide_modules = web,base_sparse_field,queue_job (...) [queue_job] channels = root:4
- Por último, arrancando Odoo con --load=web,base_sparse_field,queue_job y --workers más grande que 1.
Más información http://odoo-connector.com
Usage
Source · Odoo 12.0Cuando se valida una factura automáticamente envia la comunicación al servidor de AEAT.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
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.