Menú: secciones y guías

Modelo 303 en Odoo 19: de las facturas a la declaración trimestral de IVA

Cómo calcula Odoo 19 cada casilla del modelo 303, dónde se ve el informe, cómo se valida y bloquea el trimestre y qué asiento genera con la 4750 o la 4700.

Odoo 19 Tutorial · Nivel intermedio

Pasos verificados y actualizados el · por David Crespo Muñoz

Respuesta corta

En Odoo 19 el modelo 303 sale solo de los impuestos de tus facturas: cada impuesto de la localización española lleva etiquetas que alimentan las casillas (por ejemplo, el IVA 21 % de venta suma la base en la [07] y la cuota en la [09]). Lo ves en Contabilidad , Informes , Informe de impuestos, eligiendo «Informe de impuestos (Mod 303)(ES)», y lo cierras en Contabilidad , Contabilidad , Declaraciones de impuestos: revisas, validas (Odoo bloquea el periodo y lleva el saldo de 472 y 477 a la 4750 o la 4700) y marcas como enviada. La presentación en la Sede de la AEAT la haces tú: la documentación de Odoo 19 no describe una exportación del fichero oficial.

Edición
Casillas en Community (módulo l10n_es); visor del informe y flujo de declaraciones solo en Enterprise
Módulos
l10n_esl10n_es_reports
Dónde se hace
Contabilidad, Configuración, AjustesContabilidad, Configuración, ImpuestosContabilidad, Informes, Informe de impuestosContabilidad, Contabilidad, Declaraciones de impuestosContabilidad, Contabilidad, Fechas de bloqueo
Otras versiones
La documentación de Odoo 20 describe el mismo flujo de declaraciones de impuestos, sin cambios respecto a la 19. Su página de localización española ya no lista los módulos de actualización 2024 y 2025 y llama al módulo de informes «Spain - Accounting Reports».
En esta página
  1. Qué parte es Community y qué parte es Enterprise
  2. 1.Configura la periodicidad
  3. 2.Entiende cómo llega cada factura a su casilla
  4. 3.Revisa el informe del trimestre
  5. 4.Cierra el trimestre en «Declaraciones de impuestos»
  6. Qué pasa si llega una factura tarde
  7. Cómo corregir un trimestre ya validado
  8. El modelo 390 y otros modelos
  9. Resultado
  10. Errores frecuentes
  11. Preguntas frecuentes
  12. Fuentes
De la línea de factura a la casilla del modelo 303 Una línea de factura con IVA 21 % (Bienes) genera apuntes con las etiquetas mod303[07] para la base y mod303[09] para la cuota. El Informe de impuestos (Mod 303)(ES) suma los apuntes por etiqueta: [27] total devengado, [45] total a deducir y [46] resultado, igual a [27] menos [45]. Factura de cliente Línea de factura IVA 21% (Bienes) Apuntes · Casillas de impuestos 700 Ventas mod303[07] 477 IVA rep. mod303[09] Informe de impuestos Mod 303 (ES) [07] Base imponible 21 % [09] Cuota 21 % [27] Total cuota devengada [45] Total a deducir [46] Resultado régimen general [46] = [27] − [45] De la línea de factura a la casilla del modelo 303 Una línea de factura con IVA 21 % (Bienes) genera apuntes con las etiquetas mod303[07] para la base y mod303[09] para la cuota. El Informe de impuestos (Mod 303)(ES) suma los apuntes por etiqueta: [27] total devengado, [45] total a deducir y [46] resultado, igual a [27] menos [45]. Factura de cliente Línea de factura IVA 21% (Bienes) Apuntes · Casillas de impuestos 700 Ventas mod303[07] 477 IVA rep. mod303[09] Informe de impuestos Mod 303 (ES) [07] Base imponible 21 % [09] Cuota 21 % [27] Total cuota devengada [45] Total a deducir [46] Resultado régimen general [46] = [27] − [45]
Paso 2: cada impuesto etiqueta sus apuntes y el informe suma por etiqueta. Importes omitidos a propósito. Esquema dibujado a partir de la versión 19; no es una captura de Odoo.

Antes de empezar

  • Odoo 19 con la app Contabilidad (edición Enterprise, Odoo Online de pago u Odoo.sh). En Community la localización define las casillas, pero no hay visor de informes ni asistente de declaraciones.
  • La localización española instalada (paquete fiscal l10n_es, con el plan PGC y sus impuestos).
  • Facturas de venta y de compra del trimestre confirmadas, con los impuestos de la localización (no impuestos creados a mano sin etiquetas).
  • Permisos de administrador de Contabilidad para tocar ajustes y fechas de bloqueo.

El modelo 303 es la autoliquidación trimestral (o mensual) del IVA. En Odoo no se «rellena»: se deduce de los impuestos que pones en cada factura. Si los impuestos están bien elegidos, el 303 sale solo. Si no, sale mal y no hay casilla que corregir a mano, porque el error está en las facturas.

Esta guía explica cómo llega cada factura a su casilla, dónde ver el informe, cómo cerrar el trimestre y qué asiento deja Odoo en tu contabilidad.

Qué parte es Community y qué parte es Enterprise

Conviene saberlo antes de buscar un menú que no tienes:

PiezaMóduloEdición
Impuestos españoles con sus etiquetas de casillal10n_esCommunity y Enterprise
Definición de las casillas del 303, 390, 111, 115 y 130l10n_esCommunity y Enterprise
Informe de impuestos (el visor donde ves el 303)App ContabilidadSolo Enterprise
Flujo de Declaraciones de impuestos (revisar, enviar, pagar)App ContabilidadSolo Enterprise
Modelos 347 y 349, libros de IVAl10n_es_reportsSolo Enterprise

La documentación de Odoo 19 lista además dos módulos de actualización que se instalan solos con la localización: España - Informes contables (actualización 2024) (l10n_es_reports_2024), que añade campos de rectificación para el modelo 303, y España - Informes contables (actualización 2025) (l10n_es_reports_2025), que añade funciones de declaración de impuestos.

Si usas Community, esta guía te sirve para entender las etiquetas y las cuentas. Para el informe y la presentación, la alternativa habitual es el módulo l10n_es_aeat_mod303 de la comunidad OCA, que ya está en la rama 19.0 de l10n-spain. No lo cubrimos aquí.

Paso 1. Configura la periodicidad

Ve a Contabilidad, Configuración, Ajustes y busca la sección Periodicidad de la declaración de impuestos. Tiene tres campos:

  • Periodicidad: trimestral para la mayoría de pymes; mensual en los casos que marca la normativa del IVA (por ejemplo, grandes empresas o inscritos en el registro de devolución mensual). Si dudas, pregunta a tu asesor.
  • Plazo: cuándo te avisa Odoo de que se acerca el vencimiento. No cambia el plazo legal, solo el recordatorio.
  • Diario: el diario donde Odoo registra el asiento de liquidación. Por defecto, el diario Declaraciones de impuestos.

Si es la primera vez, el tablero de Contabilidad muestra en el diario Declaraciones de impuestos tres tareas: Establecer datos de la empresa, Establecer periodos (con Fecha de apertura, Fin del año fiscal y Periodicidad) y Revisar el plan de cuentas. Hazlas antes de seguir.

Paso 2. Entiende cómo llega cada factura a su casilla

Cada impuesto tiene líneas de reparto: una para la base y otra para la cuota, distintas para facturas y para rectificativas. Cada línea lleva una etiqueta del estilo mod303[07]. El informe del 303 suma los apuntes que tienen cada etiqueta.

Lo puedes comprobar en cualquier factura: en la pestaña Apuntes contables aparece la columna Casillas de impuestos con las etiquetas de cada línea. Y en Contabilidad, Configuración, Impuestos ves la configuración de cada impuesto.

Estos son ejemplos reales de la localización española de Odoo 19 (fichero de impuestos de la rama 19.0):

Impuesto (descripción)DocumentoBase va aCuota va aCuenta de la cuota
IVA 21% (Bienes), ventaFactura[07][09]477 Hacienda Pública. IVA repercutido
IVA 21% (Bienes), ventaRectificativa[14][15]477
21% IVA (bienes corrientes), compraFactura[28][29]472 Hacienda Pública. IVA soportado
21% IVA (bienes corrientes), compraRectificativa[40][41]472
IVA 21% Adquisición Intracomunitaria. Bienes corrientesFactura[10] y [36][11] (477) y [37] (472)477 y 472 a la vez
IVA 0% Venta de bienes intracomunitarioFactura[59]——
IVA 0% Extracomunitaria (Bienes)Factura[60]——
IVA 0% Venta con Inversión del Sujeto PasivoFactura[122]——

Tres consecuencias prácticas:

  • Las rectificativas de venta no restan en la [07]. Van a [14] y [15], «Modificación bases y cuotas», como pide el modelo. Si esperabas ver la [07] más baja, no es un error.
  • La adquisición intracomunitaria se autoliquida. El mismo impuesto genera una cuota repercutida en la 477 (casilla [11]) y otra soportada en la 472 (casilla [37]). El efecto neto es cero si la deducción es total.
  • Las casillas informativas dependen del impuesto elegido. Una entrega intracomunitaria facturada con un IVA 0 % genérico, sin etiqueta, no aparecerá en la [59]. Usa siempre los impuestos de la localización o las posiciones fiscales que los aplican solos.

Paso 3. Revisa el informe del trimestre

Ve a Contabilidad, Informes, Informe de impuestos. Pulsa el selector Informe: y elige Informe de impuestos (Mod 303)(ES). Ajusta las fechas al trimestre.

El informe sigue el orden del modelo: IVA devengado hasta la [27] Total cuota devengada, IVA deducible hasta la [45] Total a deducir, y la [46] Resultado régimen general, que Odoo calcula como [27] menos [45].

La parte final no sale de los apuntes. En la definición del informe de Odoo 19, estas casillas son valores editables que se escriben a mano en el propio informe:

CasillaQué es
[65]Porcentaje atribuible a la Administración del Estado
[67]Cuotas a compensar de periodos anteriores
[68]Resultado de la regularización anual
[70]Resultados a ingresar de anteriores autoliquidaciones del mismo periodo
[78]Cuotas a compensar de periodos anteriores aplicadas en este periodo
[108]Otros ajustes de autoliquidación rectificativa
[109]Devoluciones acordadas por la AEAT de autoliquidaciones anteriores del periodo
[110]Cuotas a compensar pendientes de periodos anteriores
[111]Rectificación - Importe

Con esos valores, Odoo calcula el resto: [66] es el porcentaje de la [65] aplicado a la [46]; [69] Resultado de la autoliquidación suma [66] y [77], resta [78] y suma [68] y [108]; [71] Resultado de la liquidación es [69] menos [70] más [109]; y [87] es [110] menos [78].

Nota

Si la [66] sale a cero con una [46] distinta de cero, mira la [65]. En la definición de la localización, la [65] es un porcentaje editable que guarda el último valor informado. Si nunca se ha rellenado, el resultado atribuible al Estado se queda a cero. No hemos podido comprobar si la parte Enterprise de la localización la inicializa sola; revísala el primer trimestre.

Para ver qué facturas forman una casilla, despliega la línea: en la definición del 303, las casillas que salen de los apuntes se agrupan por cuenta y se pueden desplegar hasta el detalle.

Truco de la documentación oficial: para sacar los libros registro de IVA en Excel, elige en Informe: el Informe de impuestos genérico, pulsa la flecha abajo y selecciona Libros de registros de IVA (XLSX).

Paso 4. Cierra el trimestre en «Declaraciones de impuestos»

Entra por el tablero de Contabilidad, en el diario Declaraciones de impuestos, o por Contabilidad, Contabilidad, Declaraciones de impuestos. Verás una lista con cada declaración pendiente, su periodo, su fecha límite y tres pasos que se ponen en verde al completarse: revisar, enviar y pagar.

Revisar

Pulsa en la línea del trimestre. Si todas las verificaciones automáticas han pasado, verás el botón Validar. Si no, Odoo abre Verificaciones Fiscales con tarjetas como estas (la lista exacta depende de la localización):

  • Conciliación bancaria: ayuda a detectar facturas que faltan. Opcional para el IVA.
  • Adjuntos de facturas: facturas de proveedor sin el documento adjunto.
  • Datos de la empresa: falta el NIF o el país.
  • Asientos en borrador: facturas en borrador dentro del periodo. Confírmalas o cámbiales la fecha.
  • Sin importes negativos en el informe de IVA.
  • Impuestos y países coincidentes: impuestos que no casan con el país del cliente.

Cada tarjeta queda en verde (Revisada o Supervisada), rojo (Anomalía) o gris (Por revisar). Puedes arreglar el problema pulsando la tarjeta, o pasar la verificación marcándola como Revisada o Supervisada desde Anomalía.

Cuando todo esté en verde, pulsa Validar (y Bloquear si aparece la ventana Bloquear).

Qué pasa en contabilidad al validar

Al validar, según la documentación de Odoo 19, pasan dos cosas:

  1. Se actualiza la fecha de Bloqueo de declaración de impuestos al final del periodo.
  2. Se publica el asiento de cierre en el diario Declaraciones de impuestos.

El asiento salda las cuentas de IVA del periodo contra la cuenta de liquidación que tiene configurada cada grupo de impuestos: en el código de Odoo, la «cuenta de impuestos por pagar» del grupo es la contrapartida del asiento de cierre cuando el saldo es a favor de Hacienda, y la «cuenta de impuestos por cobrar», cuando es a tu favor. En la localización española de Odoo 19, los grupos de IVA peninsulares usan:

  • 4750 Hacienda Pública, acreedora por IVA cuando el resultado es a ingresar.
  • 4700 Hacienda Pública, deudora por IVA cuando el resultado es a compensar o devolver.

Con un trimestre sencillo, con 2.100 € de IVA repercutido y 800 € de IVA soportado, el asiento es:

CuentaDebeHaber
477 Hacienda Pública. IVA repercutido2.100,00
472 Hacienda Pública. IVA soportado800,00
4750 Hacienda Pública, acreedora por IVA1.300,00

Cuando pagues, el cargo del banco se concilia contra la 4750. Para ver todos los asientos de cierre, pulsa el diario Declaraciones de impuestos en el tablero.

Enviar

  1. En la línea de la declaración, pulsa el botón del informe para previsualizarlo una última vez (el de la localización o Informe de impuestos genérico).
  2. Vuelve a la lista y pulsa Enviar.
  3. Si aparece la ventana Instrucciones de envío, sigue las instrucciones y pulsa Marcar como enviada.

«Enviar» no envía nada a la AEAT. Marca el paso como hecho en Odoo. La presentación se hace en la Sede electrónica de la Agencia Tributaria, copiando las casillas del informe en el formulario del modelo 303. La documentación de Odoo 19 no describe una exportación del fichero en el formato oficial de la AEAT y no hemos podido comprobar que exista en la parte Enterprise de la localización. Si tu base de datos muestra una opción de exportación, compara el resultado con el informe casilla a casilla antes de usarla.

Pagar

Si hay importe a ingresar, aparece la ventana Pago con los datos. Pulsa Marcar como pagado cuando hayas pagado, Enviar para mandar los datos por correo, o Descartar para dejar la línea pendiente. Con el icono del clip tienes el PDF y el XLSX de la declaración presentada.

Qué pasa si llega una factura tarde

La documentación de Odoo 19 es clara: después de publicar el informe de un periodo, ese periodo queda bloqueado para asientos de IVA. Cualquier transacción nueva con fecha contable anterior al Bloqueo de declaración de impuestos lleva sus valores de IVA al siguiente periodo abierto.

En la práctica: la factura del proveedor de marzo que llega en mayo se registra con su fecha, pero su IVA entra en el 303 del segundo trimestre. Si el IVA soportado es deducible en ese periodo según la normativa, no tienes que hacer nada más. Si el caso es otro (por ejemplo, una venta olvidada que obliga a una complementaria del primer trimestre), eso lo decide tu asesor y lo harías fuera del flujo automático.

Una factura de marzo que llega en mayo conserva su fecha, pero su IVA entra en el 303 del segundo trimestre porque el primero ya está bloqueado Línea de tiempo de enero a junio. Al validar el 303 del primer trimestre, la fecha de Bloqueo de declaración de impuestos pasa al 31 de marzo. En mayo llega una factura de proveedor de marzo: se registra con su fecha contable de marzo y su IVA se lleva al siguiente periodo abierto, el segundo trimestre. Primer trimestre: bloqueado Segundo trimestre: aquí entra su IVA Bloqueo de declaración de impuestos 31 de marzo, al validar el 303 del primer trimestre ene feb mar abr may jun Fecha contable: marzo la de la factura Llega y se registra en mayo Una factura de marzo que llega en mayo conserva su fecha, pero su IVA entra en el 303 del segundo trimestre porque el primero ya está bloqueado Línea de tiempo de enero a junio. Al validar el 303 del primer trimestre, la fecha de Bloqueo de declaración de impuestos pasa al 31 de marzo. En mayo llega una factura de proveedor de marzo: se registra con su fecha contable de marzo y su IVA se lleva al siguiente periodo abierto, el segundo trimestre. enefebmarabrmayjun Primer trimestre: bloqueado Fecha contable: marzo, la de la factura Bloqueo de declaración de impuestos 31 de marzo, al validar el 303 del primer trimestre Llega en mayo y se registra con su fecha de marzo Su IVA entra en el 303 del segundo trimestre
El caso de esta sección: una factura de proveedor de marzo que llega en mayo, con el primer trimestre ya validado. Según la documentación de Odoo 19 sobre las declaraciones de impuestos; el bloqueo se dibuja al final del trimestre, que es donde lo pone Odoo al validar.

Cómo corregir un trimestre ya validado

  1. Ve a Contabilidad, Contabilidad, Fechas de bloqueo.
  2. Crea una excepción a la fecha de bloqueo (para mí o para todos, con su duración y un Motivo). Solo pueden hacerlo los administradores de Contabilidad, y queda registrado en el historial de la empresa.
  3. En la lista de declaraciones, abre el menú de los tres puntos de la declaración y pulsa Ver asiento. Desde ahí puedes Revertir asiento o Restablecer a borrador.

La documentación indica que, para restablecer a borrador el asiento de una declaración, hay que quitar la fecha de bloqueo con una excepción. Ojo con el bloqueo duro: es irreversible y no admite excepciones.

El modelo 390 y otros modelos

La misma pantalla Informe: ofrece el resto de modelos de la localización, según la documentación de Odoo 19: 111, 115, 130, 303, 347, 349 y 390. El 390, el resumen anual del IVA, está definido en el módulo l10n_es y usa las mismas etiquetas que ves en las compras (por ejemplo, la compra al 21 % de bienes corrientes etiqueta también mod390[605] y mod390[606]). Si el 303 de los cuatro trimestres cuadra, el 390 parte de los mismos apuntes.

Las retenciones tienen su propia guía, con las casillas que Odoo calcula y las que se escriben a mano: Modelos 111 y 115 en Odoo 19.

Resultado

Al terminar el trimestre tienes:

  • El informe Informe de impuestos (Mod 303)(ES) con cada casilla trazable hasta sus facturas.
  • El periodo bloqueado para el IVA y el asiento de liquidación contra la 4750 o la 4700.
  • La declaración marcada como enviada y pagada en Odoo, y presentada por ti en la Sede de la AEAT.

Errores frecuentes

  • Una casilla informativa sale vacía ([59], [60], [122]). La factura usa un impuesto sin etiqueta de la localización. Cambia el impuesto de la línea o aplica la posición fiscal correcta en el cliente. Con el periodo ya validado, la corrección irá al siguiente.
  • El resultado atribuible ([66]) sale a cero. Falta el porcentaje de la [65]. Mira el paso 3.
  • La verificación Asientos en borrador no deja validar. Hay facturas en borrador con fecha del trimestre. Confírmalas, bórralas o cámbiales la fecha.
  • Varias fichas de cliente con el mismo NIF. La documentación advierte de que contactos distintos con el mismo NIF pueden dar un informe de IVA incorrecto. Usa una ficha de empresa con contactos hijos.
  • No aparece el menú Informe de impuestos. Estás en Community o sin la app Contabilidad. Mira la tabla de ediciones.
  • Impuestos creados a mano que no suman en ninguna casilla. Un impuesto nuevo no hereda etiquetas. Duplica uno de la localización y cambia solo lo necesario, o añade las etiquetas en sus líneas de reparto.

Preguntas frecuentes

¿Odoo presenta el modelo 303 en la Agencia Tributaria?

No. Odoo calcula las casillas y te guía por los pasos de revisar, enviar y pagar, pero la presentación en la Sede electrónica de la AEAT la haces tú. La documentación de Odoo 19 tampoco describe una exportación del fichero en el formato oficial de la AEAT, así que no la damos por hecha.

¿Por qué mi factura rectificativa de venta no resta en la casilla 07?

Porque los impuestos de venta de la localización española envían las rectificativas a las casillas [14] y [15], «Modificación bases y cuotas», y no restan en la [07] y la [09]. Es el comportamiento previsto en la definición de los impuestos.

Me he dejado una factura de un trimestre ya cerrado. ¿Qué hace Odoo?

Según la documentación de Odoo 19, cualquier transacción nueva con fecha contable anterior a la fecha de bloqueo de la declaración de impuestos lleva sus valores de IVA al siguiente periodo abierto. La factura conserva su fecha, pero su IVA entra en el 303 siguiente.

¿Puedo hacer el modelo 303 con Odoo Community?

La localización de Community trae los impuestos con sus etiquetas y la definición del informe, pero no el visor de informes ni el asistente de declaraciones, que son de Enterprise. La comunidad OCA mantiene el módulo l10n_es_aeat_mod303, disponible en la rama 19.0 del repositorio l10n-spain.

Fuentes

  1. Documentación de Odoo 19 — Declaración de impuestos (informe de IVA)odoo.com
  2. Documentación de Odoo 19 — Localización fiscal de España, informe de impuestosodoo.com
  3. Definición del modelo 303 en el módulo l10n_es (data/mod303.xml, rama 19.0)github.com
  4. Impuestos de la localización española con sus etiquetas de casilla (rama 19.0)github.com
  5. Grupos de impuestos y cuentas de liquidación 4750 y 4700 (rama 19.0)github.com
  6. OCA l10n-spain, rama 19.0 (módulo l10n_es_aeat_mod303)github.com

Odoo es una marca de Odoo S.A. Este sitio es independiente y no está afiliado a Odoo S.A. Más información.