OdooWiki OCA HUB

Sistema de comprobación y contraste de facturas enviadas al SII

l10n_es_aeat_sii_match folder_open OCA/l10n-spain open_in_new
Accounting & Finance License: AGPL-3
  • El módulo recupera los datos enviados a la AEAT mediante peticiones unitarias o por meses (como una declaración AEAT)
  • Los datos recibidos se procesan intentando asociarlos mediante su CSV (Código Seguro de Verificación) y si no encuentra el CSV, busca por número de factura/fecha/partner
  • El módulo muestra aquellos registros que no han conseguido asociarse, así como aquellas facturas en Odoo que no tienen su correspondiente registro en los datos recibidos.
  • En segundo lugar se exponen los registros que tienen diferencias entre Odoo y AEAT
  • Por último se muestran por separado facturas 'No contrastadas' o 'Parcialmente contrastadas', es decir, las que la propia AEAT no haya podido cotejar entre el emisor de la factura y el receptor, siendo los dos obligados a declarar en el sistema SII.
  • El botón/acción "Contrast with AEAT" también puede lanzarse sobre facturas cuyo envío al SII haya fallado (por ejemplo, con el error "3000 | Factura duplicada"). Si la AEAT confirma que la factura ya está registrada, se recupera su CSV y se corrige el estado de envío en Odoo, en lugar de dejarla bloqueada indefinidamente en estado de error.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets Spanish accounting users compare the invoices they sent to the AEAT SII system with what the tax agency actually holds, and see which invoices are missing, unmatched or have different data.

This module adds a checking tool for Spanish VAT e-invoicing (SII). It lets an accountant ask the AEAT what invoices it has on file for a given month or quarter and a given year, for either issued or received invoices, and then compares that answer with the invoices in Odoo.

Where it appears: - A new menu 'AEAT SII Match' under the Spanish AEAT menu opens a list of match reports. - On each report you get Calculate / Re-Calculate, Confirm, Cancel and Draft buttons, plus a Summary tab with counters and a Result tab listing the invoices that need attention. - On customer and vendor invoices a 'Contrast with AEAT' button appears, and a server action 'Contrast Invoices with AEAT' can be run on several invoices at once. - Invoice search filters let you group by match state and by AEAT contrast state.

Business rules and automatic behaviour: - The button only works on posted invoices that are SII-enabled and either already sent or with a failed send; otherwise Odoo shows an error listing the invoices that cannot be matched. - Matching first uses the CSV verification code, then falls back to invoice number, date and partner VAT. - Differences in fields are stored line by line, showing the value Odoo sent and the value the AEAT returned. - If an invoice was not yet marked as sent but the AEAT confirms it, the CSV is filled in and the invoice is marked as sent. - Invoices flagged by the AEAT as duplicated are automatically contrasted.

It touches invoices (account.move), the SII mixin and three new objects: match report, match result and match difference.

Required by other modules

Menus it adds

AEAT SII Match
Models and fields (5)
  • sii.mixin · extends an existing modelsii_match_sent (SII match sent), sii_match_state (Match state), sii_match_return (SII match return), sii_contrast_state (AEAT contrast state), sii_match_difference_ids (SII match differences)
  • account.move · extends an existing model
  • l10n.es.aeat.sii.match.report · new modelname (Report identifier), state, company_id (Company), fiscalyear (Fiscal year), result_ids (SII Match Result), period_type (Period type), invoice_type (Invoice type), calculate_date (Calculate date), number_records (Total records), number_records_sii (Records only in SII), number_records_both (Records in Odoo and SII), number_records_odoo (Records only in Odoo), number_records_correct (Records correctly contrasted), number_records_no_test (Records no testables), number_records_no_exist (Records without contrast), number_records_partially (Records partially correct), number_records_contrasted (Records contrasted), number_records_in_process (Records in process of contrast), number_records_not_contrasted (Records not contasted), number_records_partially_contrasted (Records partially contrasted)
  • l10n.es.aeat.sii.match.result · new modelcsv (CSV), model, invoice, report_id (AEAT SII Match Report ID), invoice_id (Document), sii_match_state (Match state), invoice_location (Invoice location), sii_contrast_state (AEAT contrast state), sii_match_difference_ids (SII match differences)
  • l10n.es.aeat.sii.match.difference · new modelmodel, report_id (Related SII match report), sii_field (SII field name), invoice_id (Document), sii_sent_field_value (SII sent field value), sii_return_field_value (SII return field value)

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: 6 confirmed, 3 with no information of 9 versions.

Sources · Odoo 13.0

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

terminal Installation and usage

No verified information

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.

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.