Modelo 190 de la AEAT. Retenciones e ingresos a cuenta. Rendimientos del trabajo y de actividades económicas, premios y determinadas ganancias patrimoniales e imputaciones de Renta. Resumen anual.
auto_awesome What this module does
AI-generated from the code · Odoo 19.0Lets Spanish companies prepare and file the AEAT annual Modelo 190 withholding summary, grouping invoice lines by perception key and subkey and filling the official report with recipient, amount and withholding totals.
This module adds the Spanish annual withholding report (Modelo 190) to Odoo's AEAT reporting area. Users open it from the AEAT menu entry "AEAT 190 model" and work on a yearly report with recipient records.
- On customers/suppliers, a new "Included in mod190" flag and a set of fiscal data fields appear (perception key and subkey, legal representative NIF, birth year, family situation, spouse NIF, disability, contract type, geographical mobility, number of children and ascendants, etc.). These fields are restricted to the "AEAT Model 190" access group.
- Fiscal positions and invoices carry a perception key and subkey; invoice lines inherit them automatically from the invoice, and the invoice inherits them from its fiscal position.
- Pressing Calculate builds one record per partner, key and subkey from the posted tax lines, and fills the report boxes: number of recipients, total perceptions and total withholdings. A "Manual records" option lets users enter records by hand instead.
- Before confirming, the report checks that every record has a country/province and VAT number, and that records with key B.01 have at least one benefit type ticked; otherwise it blocks with an error.
- Amounts are split between ordinary and incapacity-for-work categories, and extra family/disability data is copied from the partner when the key requires it.
It touches contacts, fiscal positions, invoices and invoice lines, and adds its own report and record models.
Depends on
Menus it adds
Models and fields (9)
- res.partner · extends an existing modelad_required (Aditional data required), incluir_190 (Included in mod190), nif_conyuge (NIF del conyuge), a_nacimiento (Año de nacimiento), ascendientes (Ascendientes menores de 75 años), discapacidad (Disability), ceuta_melilla (Ceuta o Melilla), ascendientes_m75 (Ascendientes mayores de 75 años), situacion_familiar (Situación familiar), ascendientes_entero (Ascendientes menores de 75 años, computados por entero), contrato_o_relacion (Contrato o relacion), movilidad_geografica (Movilidad geográfica), hijos_y_descendientes (Resto:), aeat_perception_key_id (Clave percepción), ascendientes_entero_m75 (Ascendientes mayores de 75 años, computados por entero), hijos_y_descendientes_m (Menores de 3 años), representante_legal_vat (NIF representante legal), computo_primeros_hijos_1 (Cómputo de los 3 primeros hijos), computo_primeros_hijos_2 (Cómputo de los 3 primeros hijos (2º)), computo_primeros_hijos_3 (Cómputo de los 3 primeros hijos (3º)), aeat_perception_subkey_id (Subclave), ascendientes_discapacidad_33 (Ascendientes con discapacidad), ascendientes_discapacidad_66 (Ascendientes con discapacidad de más del 66%), ascendientes_discapacidad_mr (Ascendientes con discapacidad de más del 33%), hijos_y_desc_discapacidad_33 (Hijos y descendientes con discapacidad del 33%), hijos_y_desc_discapacidad_66 (Hijos y descendientes con discapacidad del 66%), hijos_y_desc_discapacidad_mr (Hijos y descendientes con discapacidad), hijos_y_descendientes_entero (Resto, computadors por entero), hijos_y_descendientes_m_entero (Menores de 3 años, computados por entero), is_aeat_perception_subkey_visible
- account.move · extends an existing modelaeat_perception_key_id (Clave percepción), aeat_perception_subkey_id (Subclave), is_aeat_perception_subkey_visible
- account.move.line · extends an existing modelaeat_perception_key_id (Clave percepción), aeat_perception_subkey_id (Subclave), is_aeat_perception_subkey_visible
- account.fiscal.position · extends an existing modelaeat_perception_key_id (Clave percepción), aeat_perception_subkey_id (Subclave), is_aeat_perception_subkey_visible
- l10n.es.aeat.mod190.report · new modelcasilla_01 ([01] Recipients), casilla_02 ([02] Amount of perceptions), casilla_03 ([03] Amount of retentions), registro_manual (Manual records), partner_record_ids (Partner records)
- l10n.es.aeat.mod190.report.line · new modelstate, report_id (AEAT 190 Report ID), partner_id (Partner), ad_required, nif_conyuge (VAT of the spouse), partner_vat (NIF), a_nacimiento (Year of birth), ascendientes (Ascendientes menores de 75 años), discapacidad (Disability), prestamos_vh (Comunicación préstamos vivienda habitual), ceuta_melilla (Ceuta or Melilla), clave_b01_resto (Prestacion no incluida en el resto), visible_key_b01, ascendientes_m75 (Ascendientes mayores de 75 años), codigo_provincia (State ISO code), ejercicio_devengo (year), gastos_deducibles (Deductible expenses), partner_record_ok (Partner Record OK), clave_b01_viudedad (Prestación de viudedad), situacion_familiar (Family situation), ascendientes_entero (Ascendientes menores de 75 años, computados por entero), contrato_o_relacion (Contract or relationship), reduccion_aplicable (Applicable reduction), clave_b01_jubilacion (Prestación de jubilación), movilidad_geografica (Geographical mobility), clave_b01_incapacidad (Prestación de incapacidad permanente total o parcial), hijos_y_descendientes (Rest), aeat_perception_key_id (Perception key), retenciones_dinerarias (Money withholdings), ascendientes_entero_m75 (Ascendientes mayores de 75 años, computados por entero)
- l10n.es.aeat.report.perception.key · new modelcode, aeat_perception_subkey_ids (Subkeys)
- l10n.es.aeat.report.perception.mixin · new modelname, active, ad_required (Aditional data required), aeat_number (Model number), description
- l10n.es.aeat.report.perception.subkey · new modelaeat_perception_key_id (Perception ID)
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 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/l10n-spain.
terminal Installation and usage
OCA documentation · Odoo 19.0Configuration
Source · Odoo 19.0Para poder acceder a los campos sensibles que aparecerán en la declaración 190, necesita unos permisos especiales:
- Inicie sesión como administrador con privilegios.
- Vaya a Configuración > Usuarios y Compañías > Usuarios.
- Seleccione el usuario que necesita acceso.
- Haga clic en Editar y busque la sección Grupos.
- Añada el grupo Datos Sensibles del Modelo 190 de la AEAT.
- Guarde los cambios.
- Asegúrese de que el usuario cierre sesión y vuelva a iniciarla.
Usage
Source · Odoo 19.0Para crear un modelo, por ejemplo de un año:
- Ir a Facturación \> Declaraciones AEAT \> Modelo 190
- Pulsar en el botón "Crear"
- Seleccionar el ejercicio fiscal
- Seleccionar el tipo de declaración
- Se autorrellena el teléfono,el teléfono móvil y el correo electrónico del usuario, necesarios para la exportacion BOE
- Guardar y pulsar en el botón "Calcular"
- Rellenar aquellos campos que Odoo no calcula automáticamente:
- Información relacionada con datos sensibles del perceptor solo en las claves A, B.01, B.03, B.04, B.99, C, E.01 y E.02
- Cuando los valores sean los correctos, pulsar en el botón "Confirmar".
- Podemos exportar en formato BOE para presentarlo telemáticamente en el portal de la AEAT
PENDIENTE: - La información relativa a los perceptores, se ha añadido en una nueva pestaña en los terceros, queda pendiente del trato que se le debe de dar a esta información ya es información sensible según la LOPD, de momento, sólo el responsable de aeat, puede acceder a los datos.
- Se puede añadir un adjunto en los terceros donde se guarde el justificante del consentimiento expreso del tercero.
NOTA: En el caso en que tengamos el addon 'l10n_es_aeat_mod216' deberemos indicar los proveedores que son residentes (éste es el valor por defecto), en la ficha de la empresa: Contabilidad \> Proveedores \> Proveedores, pestaña de Contabilidad. El campo "Es no residente" no debe estar marcado para que las retenciones realizadas a éste proveedor se incluyan en el modelo 190.
Antes de poder realizar el modelo, hay que introducir en los terceros, la información necesaria para el modelo.
No verified information in OCA: Installation.
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.