Módulo para la presentación del Modelo AEAT 349 (Declaración Recapitulativa de Operaciones Intracomunitarias)
Basado en la Orden EHA/769/2010 por el que se aprueban los diseños físicos y lógicos del 349.
De acuerdo con la normativa de la Hacienda Española, están obligados a presentar el modelo 349:
> - Todos aquellos sujetos pasivos del Impuesto sobre el Valor Añadido > que hayan realizado las operaciones previstas en el artículo 79 del > Reglamento del Impuesto sobre el Valor Añadido, es decir, quienes > adquieran o vendan bienes a empresas situadas en países miembros de > la UE, sino también aquellos que presten servicios a miembros de la > UE y cumplan con las siguientes condiciones: > > > - Que conforme a las reglas de la localización aplicables a las > > mismas, no se entiendan prestadas en el territorio de aplicación > > del impuesto. > > > > - Que estén sometidas efectivamente a gravamen de otro Estado > > miembro. > > > > - Que su destinatario sea un empresario o profesional actuando como > > tal y radique en dicho Estado miembro la sede de su actividad > > económica, o tenga en el mismo un establecimiento permanente o, en > > su defecto, el lugar de su domicilio o residencia habitual, o que > > dicho destinatario sea una persona jurídica que no actúe como > > empresario o profesional pero tenga asignado un número de > > identificación a efectos del Impuesto suministrado por ese Estado > > miembro. > > > > - Que el sujeto pasivo sea dicho destinatario. > > > > El período de declaración comprenderá, con carácter general las > > operaciones realizadas en cada mes natural, y se presentará > > durante los veinte primeros días naturales del mes inmediato > > siguiente al correspondiente período mensual. No obstante, la > > presentación podrá ser bimestral, trimestral o anual en los > > siguientes supuestos: > > - Bimestral: Si al final del segundo mes de un trimestre natural el > importe total de las entregas de bienes y prestaciones de servicios > que deban consignarse en la declaración recapitulativa supera > 100.000 euros (a partir de 2012, el umbral se fija en 50.000 euros). > - Trimestral: Cuando ni durante el trimestre de referencia ni en cada > uno de los cuatro trimestres naturales anteriores el importe total > de las entregas de bienes y prestaciones de servicios que deban > consignarse en la declaración recapitulativa sea superior a 100.000 > euros. > - Anual: En los treinta primeros días de enero del año siguiente ( la > primera sería en enero de 2011) si el importe total de las entregas > de bienes o prestaciones de servicios del año ( excluido IVA), no > supera los 35.000 € y el importe total de las entregas de bienes a > otro Estado Miembro (salvo medios de transporte nuevos) exentas de > IVA no sea superior a 15.000 €.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Prepare and file the Spanish AEAT Model 349 (intra-community operations) report. Odoo groups EU invoices and refunds by customer, operation key and period, checks VAT and country data, and produces the official report and PDF.
This module adds the Spanish tax report Model 349 for intra-community operations. Users create a report from the AEAT 349 Model menu, choose the period (monthly, quarterly or yearly), and press the calculate button. Odoo then searches all posted journal items in that period whose taxes are mapped to a 349 operation key and builds two sets of records: partner records for normal operations and partner refunds for credit notes that correct invoices from earlier periods.
Each partner record shows the customer, VAT number, country, operation key (A, E, I, S or T) and the total untaxed amount. The report automatically checks that VAT and country are present, that the VAT starts with a valid European country code, and that the amount is not negative; problems are shown in red with an explanatory message and block confirmation.
On invoices, a new 'EU Triangular deal' checkbox marks triangular operations, and each invoice line shows a computed operation key taken from its taxes. Taxes themselves can be mapped to an operation key in the tax form, and a configuration screen 'Aeat 349 Map' links tax templates to operation keys and flags whether the operation involves physical products.
The report form has tabs for general totals, partner records and refunds from other periods, with summary and detail lines. A PDF report is available. Confirmation also requires the contact name to contain at least a first name and a surname.
Depends on
Menus it adds
Models and fields (9)
- account.tax · extends an existing modell10n_es_aeat_349_operation_key (AEAT 349 Operation key)
- account.move · extends an existing modeleu_triangular_deal (EU Triangular deal)
- account.move.line · extends an existing modell10n_es_aeat_349_operation_key (AEAT 349 Operation key)
- aeat.349.map.line · new modeloperation_key, tax_xmlid_ids (Taxes templates), physical_product (Involves physical product)
- l10n.es.aeat.mod349.report · new modelnumber, frequency_change, partner_record_ids (Partner records), partner_refund_ids (Partner refund IDS), total_partner_records (Partners records), total_partner_refunds (Partners refunds), partner_record_detail_ids (Partner record details), partner_refund_detail_ids (Partner refund details), total_partner_records_amount (Partners records amount), total_partner_refunds_amount (Partners refunds amount)
- l10n.es.aeat.mod349.partner_record · new modelreport_id (AEAT 349 Report ID), country_id (Country), error_text, partner_id (Partner), partner_vat (VAT), operation_key, partner_record_ok (Partner Record OK), record_detail_ids (Partner record detail IDS), total_operation_amount
- l10n.es.aeat.mod349.partner_refund · new modelyear, report_id (AEAT 349 Report ID), country_id (Country), partner_id (Partner), partner_vat (VAT), period_type, operation_key, partner_refund_ok (Partner refund OK), refund_detail_ids (Partner refund detail IDS), total_origin_amount (Original amount), total_operation_amount (Total rectified amount)
- l10n.es.aeat.mod349.partner_record_detail · new modeldate, move_id (Invoice), report_id (AEAT 349 Report ID), partner_id (Partner), report_type, move_line_id (Journal Item), amount_untaxed, partner_record_id (Partner record)
- l10n.es.aeat.mod349.partner_refund_detail · new modeldate, move_id (Invoice), refund_id (Partner refund ID), report_id (AEAT 349 Report ID), partner_id (Partner), report_type, amount_untaxed, refund_line_id (Journal Item)
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-03Confirmation status: 8 confirmed, 1 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
OCA documentation · Odoo 19.0Usage
Source · Odoo 19.0Ir a:
- Contabilidad / Informes AEAT / Modelo 349
- Crear un nuevo registro e informar los datos básicos de la declaración.
- Pulsar 'Calcular' y revisar el resultado. Pulsar el botón 'Imprimir' para obtener el resultado en PDF.
- Para excluir ciertas operaciones de la declaración, ir a las pestañas 'Registros de empresas' o 'Rectificaciones', y eliminar, en la seccion 'Detalles', las operaciones que se desee excluir de la declaración.
Consideraciones importantes:
- En caso de indicar el tipo de declaración 'Suplementaria' o 'Normal' se propondrán todas las operaciones que apliquen para el periodo.
- En caso de indicar 'Complementaria', se propondrán únicamente aquellas operaciones que no hubieran sido aún presentadas en otra declaración.
No verified information in OCA: Installation, Configuration.
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.