Módulo base para declaraciones de la AEAT, que incluye:
- Campos base para todos los modelos AEAT.
- Vista base para todos los modelos.
- Crea una secuencia automática para los registros diferenciando por modelo.
- Exportación del BOE. Define una exportación básica, con los diferentes registros del fichero.
- Generación del registro del declarante con los campos genéricos de los modelos.
- Motor de exportación paramétrica basado en una configuración que puede ser introducida por datos XML o por interfaz.
- Visor de archivos BOE asociados a la configuración de exportación.
- Motor de cálculo de importes por impuestos.
- Generador del asiento de regularización con cargo a un proveedor "Agencia Estatal de Administración Tributaria" creado al efecto.
- Certificado para las declaraciones de la AEAT
- Webservice AEAT SOAP
- Gestión de Inmuebles.
Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.
auto_awesome Qué hace este módulo
Generado por IA a partir del código · Odoo 19.0Proporciona la base compartida para las declaraciones fiscales españolas de la AEAT en Odoo: registros de declaraciones con numeración automática, exportación de archivos BOE, mapeo de impuestos, certificados y conexión SOAP con la AEAT, además de los datos inmobiliarios utilizados en dichas declaraciones.
Este módulo es una base técnica sobre la que se construyen otros módulos españoles de declaraciones fiscales. Los usuarios no presentan aquí un impuesto concreto, pero obtienen las pantallas y las reglas que utiliza toda declaración AEAT.
- Un registro genérico de declaración (
l10n.es.aeat.report) contiene la compañía, el número de IVA, el número de modelo, el número de declaración anterior, los datos de contacto, el año y el tipo de declaración. Tiene botones para calcular, confirmar, publicar, cancelar, recuperar, recalcular y abrir el asiento contable resultante, y numera los registros automáticamente por modelo. - Las configuraciones de exportación (
aeat.model.export.configy sus líneas) describen, campo a campo, cómo construir el fichero oficial BOE: valores fijos o expresiones, tamaño de campo, alineación, signos, decimales, repeticiones y subconfiguraciones. - Los mapeos de impuestos (
l10n.es.aeat.map.taxy líneas) vinculan impuestos y cuentas con los campos de la declaración, con rangos de fechas que no pueden solaparse, tipo de operación, base/importe, suma de crédito/débito y exigibilidad. - Un registro inmobiliario almacena la referencia catastral, el tipo de dirección, el número, la ciudad y la situación; valida la referencia catastral y marca la provincia que falta.
- Los certificados (
l10n.es.aeat.certificate) almacenan el par de claves pública/privada usado para firmar y conectar con AEAT; solo un certificado por compañía puede estar activo, y un asistente de contraseña lo carga. - Un asistente SOAP conecta con los servicios web de AEAT usando el certificado activo.
- Los diarios pueden marcarse como facturas de terceros y pueden apuntar a una agencia tributaria diferente; las facturas heredan la marca de terceros y llevan un número de terceros. Los impuestos obtienen un campo de impuesto equivalente para el mapeo, las posiciones fiscales obtienen una marca de activo AEAT, y las compañías almacenan una agencia tributaria y el IVA del representante legal.
- Los disparadores de tareas programadas pueden moverse para ejecutarse ahora, cancelarse o reprogramarse para el envío a AEAT.
Depende de
Lo necesitan otros módulos
Menús que añade
Modelos y campos (28)
- aeat.mixin · modelo nuevoaeat_state (AEAT send state), aeat_send_error (AEAT Send Error), aeat_header_sent (AEAT last header sent), aeat_send_failed (SII send failed), aeat_content_sent (AEAT last content sent)
- account.tax · amplía un modelo existenteaeat_equivalent_tax_id (Equivalent Tax (for AEAT mapping purposes))
- res.company · amplía un modelo existentetax_agency_id (Tax Agency), representative_vat (L.R. VAT number)
- res.partner · amplía un modelo existentereal_estate_ids, aeat_identification, aeat_sending_enabled, aeat_simplified_invoice (Simplified invoices in AEAT?), aeat_identification_type (AEAT Identification type), aeat_anonymous_cash_customer (AEAT - Anonymous customer)
- account.move · amplía un modelo existentethirdparty_number (Third-party number), thirdparty_invoice (Third-party invoice)
- account.journal · amplía un modelo existentetax_agency_id (Tax Agency), thirdparty_invoice (Third-party invoice)
- aeat.tax.agency · modelo nuevoname
- ir.cron.trigger · amplía un modelo existente
- res.partner.bank · amplía un modelo existenteacc_type
- account.move.line · amplía un modelo existentel10n_es_aeat_real_estate_id (Real Estate)
- l10n.es.aeat.soap · modelo nuevo
- l10n.es.aeat.report · modelo nuevoname (Report identifier), year, state, number (Model number), move_id (Account entry), date_end (Ending date), company_id (Company), date_start (Starting date), journal_id (Journal), partner_id (Partner), company_vat (VAT number), currency_id (Currency), error_count, period_type, contact_name (Full Name), support_type, allow_posting, contact_email, contact_phone (Phone), statement_type, tax_agency_ids (Tax Agency), partner_bank_id (Bank account), previous_number (Previous declaration number), calculation_date, export_config_id (Export config), representative_vat (L.R. VAT number), counterpart_account_id (Counterpart account)
- l10n.es.aeat.map.tax · modelo nuevomodel (AEAT Model), date_to (To Date), date_from (From Date), map_line_ids (Map lines), date_to_search, date_from_search
- l10n.es.aeat.tax.line · modelo nuevoname (Name), model (Model name), amount, res_id (Resource ID), map_line_id (Map line), field_number (Field number), move_line_ids (Journal items), to_regularize
- account.invoice.report · amplía un modelo existentel10n_es_aeat_real_estate_id (Real Estate)
- account.fiscal.position · amplía un modelo existenteaeat_active (AEAT Active)
- aeat.model.export.config · modelo nuevoname, active, date_end (Ending date), model_id (Odoo model), date_start (Starting date), model_number, config_line_ids (Lines)
- l10n.es.aeat.certificate · modelo nuevofile, name, state, folder (Folder Name), date_end (End Date), company_id (Company), date_start (Start Date), public_key, private_key, public_key_data, public_key_file, show_public_key, public_key_filename
- l10n.es.aeat.real_estate · modelo nuevozip, city, door, name, block, floor, active, number, portal, address, check_ok (Record is OK), stairway, state_id, reference (Catastral Reference), company_id (Company), complement, country_id (Country), error_text (Errors), partner_id (Partner), number_type, address_type, representative_vat (L.R. VAT number), number_calification, real_estate_situation
- l10n.es.aeat.map.tax.line · modelo nuevoname, inverse (Inverse summarize sign), sum_type (Summarize type), move_type (Operation type), field_type, field_number, exigible_type (Exigibility), map_parent_id, tax_xmlid_ids (Taxes templates), to_regularize, account_xmlid_ids (Account Template)
- aeat.model.export.config.line · modelo nuevoname, size (Field size), value, repeat, bool_no (Value for no), bool_yes (Value for yes), position, sequence, alignment, apply_sign, expression, conditional, export_type (Export field type), fixed_value, decimal_size (Number of char for decimals), subconfig_id (Sub-configuration), negative_sign (Negative sign character), positive_sign (Positive sign character), export_config_id (Config parent), repeat_expression, conditional_expression
- l10n.es.aeat.map.tax.line.tax · modelo nuevoname
- l10n.es.aeat.report.tax.mapping · modelo nuevotax_line_ids (Tax lines), valued_tax_line_ids (Valued tax lines)
- l10n.es.aeat.certificate.password · modelo nuevopassword
- l10n.es.aeat.map.tax.line.account · modelo nuevoname
- l10n.es.aeat.report.export_to_boe · modelo nuevodata (File), name (File name), state
- l10n.es.aeat.report.compare_boe_file · modelo nuevodata (File), state, line_ids (Lines)
- l10n.es.aeat.report.compare_boe_file.line · modelo nuevoname (Name), content, sequence (Sequence), wizard_id (Wizard), content_float (Amount), export_line_id (Export line)
Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub
Disponibilidad por versión
Revisado: 2026-11-03Estado de confirmación: 8 confirmadas, 1 sin información de 9 versiones.
Fuentes · Odoo 13.0
Confirmado el 2026-11-03 en la rama 13.0 de OCA/l10n-spain.
terminal Instalación y uso
Documentación de OCA · Odoo 19.0Instalación
Fuente · Odoo 19.0Este módulo requiere del módulo account_tax_balance, que está en OCA/account-financial-reporting y de date_range, en OCA/server-ux.
Configuración
Fuente · Odoo 19.0Todos aquellos modelos que se especifiquen en los módulos adicionales y hereden el AEAT base, deberán definir una variable interna que se llame '_aeat_number' asignándole como valor, el número del modelo (130, 340, 347...).
Para poder utilizar el motor genérico de cálculo de casillas por impuestos (como el 303), hay que heredar del modelo "l10n.es.aeat.report.tax.mapping" en lugar de "l10n.es.aeat.report". Para la vista, hay que añadir el campo a mano, ya que la herencia de vistas no permite una doble herencia de AbstractModel, pero lo que es la vista tree ya está definida.
Para activar la creación del asiento de regularización en un modelo, hay que poner en el modelo correspondiente el campo allow_posting a True, y establecer en la configuración de impuestos los conceptos que se regularizarán con el flag "to_regularize". Esto sólo es posible sobre los modelos que utilicen el cálculo de casillas por códigos de impuestos.
ADVERTENCIA: Debido a que se utiliza una sola tabla para almacenar las líneas de los impuestos de todos los modelos, hay una limitación en el ORM de Odoo cuando se coloca el campo one2many de dichas líneas (tax_line_ids) como dependencia en la definición del cálculo de un campo (entrada con @api.depends), que recalcula los campos calculados de todos los modelos con el mismo ID que el del registro en curso, lo que puede ser un problema en entornos multi-compañía. Una solución a ello (aunque no evita el recálculo), es poner en esos campos calculados compute_sudo=True.
Se ha creado el campo base computado error_count en el modelo l10n.es.aeat.report, cuyo valor dependerá de sus herencias, que heredarán la función _compute_error_count para indicar cuantas líneas con errores hay en el informe. Si el valor es 0, no se mostrará ningún aviso; si el valor es mayor a 0, se mostrará un aviso en la parte superior de la vista formulario del informe.
Para poder visualizar un archivo BOE, hay que:
- Entrar en Facturación \> Configuración \> AEAT \> Configuración de exportación a BOE.
- Entrar en el detalle de la configuración de exportación principal para el modelo.
- Pulsar en el smart-button "Comparar archivo".
- Seleccionar el archivo correspondiente y pulsar en "Comparar".
- Aparecerá una ventana con cada una de las líneas de exportación, la cadena correspondiente a dicha línea, y si es un importe numérico, su cifra asociada.
Para importar el certificado, hay que:
- Entrar en Facturación \> Configuración \> AEAT \> Certificados
- Crear uno nuevo. Rellenas los datos del formulurio y subir el archivo p12
- Pulsar obtener claves e introducir la contraseña del certificado
Para gestionar inmuebles, hay que:
- Entrar en Facturación \> Configuración \> AEAT \> Inmuebles
- Crear uno nuevo, rellenando los datos del formulario.
- Ya se podrá añadir un inmueble en el campo Inmueble de las lineas de factura.
Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen.
Las instrucciones de instalación, el paquete de distribución, las dependencias y los pasos de configuración no se muestran porque todavía no se han verificado en la documentación del módulo para ninguna versión.
Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.