Menú: secciones y guías

Cierre de caja y arqueo en el TPV de Odoo 19, paso a paso

Cómo abrir y cerrar la caja del Punto de venta de Odoo 19, contar el efectivo, limitar el descuadre y qué asiento deja cada cierre con el plan contable español.

Odoo 19 Tutorial · Nivel básico · Community y Enterprise

Pasos verificados el · actualizado el · por David Crespo Muñoz

Respuesta corta

En Odoo 19 la caja se cierra desde el propio TPV: menú ≡, «Cerrar caja registradora». La ventana «Cierre de caja» enseña lo esperado por método de pago; escribes lo contado en «Recuento de efectivo» y, si no cuadra, Odoo pide confirmación y lleva la diferencia a la cuenta de pérdidas o de ganancias del diario de caja (678 y 778 en el plan español). Al cerrar se contabiliza un asiento con todas las ventas de la sesión. El límite del descuadre se fija en Punto de venta , Configuración , Ajustes, con «Establecer la diferencia máxima».

Módulos
point_of_salel10n_esl10n_es_edi_verifactu_pos
Dónde se hace
Punto de venta, Configuración, Métodos de pagoContabilidad, Configuración, DiariosPunto de venta, Configuración, Monedas/billetesPunto de venta, Configuración, AjustesPunto de venta, Tablero
Otras versiones
Los pasos y las etiquetas están comprobados en la documentación y en el código de la rama 19.0. En versiones anteriores la ventana de cierre y el menú de la caja tienen otros nombres, que esta guía no cubre.
En esta página
  1. Vocabulario: lo que se dice en la tienda y lo que dice Odoo
  2. 1.Revisa el método de pago en efectivo y su diario
  3. 2.Da de alta las monedas y billetes
  4. 3.Pon un límite al descuadre
  5. 4.Abre la caja
  6. 5.Anota las entradas y salidas de efectivo
  7. 6.Cierra la caja y cuenta
  8. 7.Si la caja no cuadra
  9. Qué pasa en contabilidad
  10. Dónde revisar los cierres
  11. Lo que la norma española añade al mostrador
  12. Resultado
  13. Errores frecuentes
  14. Preguntas frecuentes
  15. Fuentes

Antes de empezar

  • Odoo 19 con la app Punto de venta y un TPV creado.
  • Un método de pago en efectivo propio de ese TPV, con su diario de caja. Odoo no deja compartir el mismo método de efectivo entre dos tiendas.
  • Para tocar ajustes y métodos de pago, un usuario del grupo Administrador de Punto de venta.
  • Para ver los asientos, la app Contabilidad o Facturación con la localización española (l10n_es).

El arqueo es la parte del día que nadie quiere hacer con prisa: contar billetes, restar el fondo, comparar con lo vendido y explicar por qué faltan cinco euros. Odoo 19 lo resuelve en una sola ventana, y lo que escribes en ella acaba en contabilidad sin que nadie teclee un asiento. Por eso conviene saber qué hace exactamente cada botón.

Vocabulario: lo que se dice en la tienda y lo que dice Odoo

En la tiendaEn Odoo 19
Abrir caja, turnoUna sesión del TPV: empieza con Abrir caja registradora y termina con Cerrar caja registradora
Fondo de caja, cambioCaja de apertura
Arqueo, recuentoRecuento de efectivo, en la ventana Cierre de caja
DescuadreDiferencia
Retirada de efectivo, ingreso de cambioEntrada/salida de efectivo
Hoja de caja, Z del díaEl informe Venta diaria

Paso 1. Revisa el método de pago en efectivo y su diario

Odoo controla la caja (apertura, recuento y diferencia) solo si el TPV tiene un método de pago de tipo efectivo. No hay casilla que marcar: el control se activa con el método.

  1. Ve a Punto de venta, Configuración, Métodos de pago y abre el método de efectivo de tu TPV.
  2. Comprueba que el Diario es un diario de caja dedicado a ese TPV. La documentación lo recomienda para que los asientos de cada caja queden separados, y el código lo impone en parte: un mismo método de efectivo no puede estar en dos TPV.
  3. Ve a Contabilidad, Configuración, Diarios, abre ese diario de caja y mira, en la pestaña Asientos contables, los campos Cuenta de ganancias y Cuenta de pérdidas.

Esas dos cuentas reciben los descuadres. Con la localización española, la plantilla de Odoo 19 trae la 778 (Ingresos excepcionales) y la 678 (Gastos excepcionales). Si tu asesor prefiere otras, cámbialas aquí antes del primer cierre. Si alguna está vacía, el cierre con descuadre se detiene con un error (está en Errores frecuentes).

Paso 2. Da de alta las monedas y billetes

Para contar por denominaciones en lugar de escribir un total:

  1. Ve a Punto de venta, Configuración, Monedas/billetes.
  2. Pulsa Nuevo y añade cada valor que aceptas.
  3. En la columna Punto de venta, elige el TPV donde vale ese valor, o déjala vacía para todos.

Paso 3. Pon un límite al descuadre

  1. Ve a Punto de venta, Configuración, Ajustes y elige tu TPV en el desplegable de arriba.
  2. En la sección Pago, marca Establecer la diferencia máxima.
  3. Escribe el importe en Diferencia autorizada y guarda.

Con el límite puesto, quien cierra la caja puede aceptar un descuadre de hasta ese importe. Por encima, Odoo solo deja cerrar a un usuario del grupo Administrador de Punto de venta. Sin el ajuste, cualquier cajero puede cerrar con cualquier diferencia: Odoo se limita a pedir confirmación.

Paso 4. Abre la caja

  1. Ve a Punto de venta, Tablero.
  2. En la tarjeta de tu TPV, pulsa Abrir caja registradora.
  3. En la ventana Control de apertura, comprueba el importe de Caja de apertura y corrígelo si el fondo real es otro.
  4. Pulsa Abrir caja registradora.

Odoo propone como fondo el efectivo contado en el último cierre de ese TPV. Si escribes otra cifra, la diferencia queda anotada en el historial de la sesión (Diferencia de efectivo al abrir); en el código de la 19.0 esa corrección no crea ningún asiento. Mientras la sesión está abierta, el botón de la tarjeta pasa a llamarse Seguir vendiendo.

Paso 5. Anota las entradas y salidas de efectivo

Todo lo que entra o sale del cajón sin ser una venta tiene que estar en Odoo, o el arqueo no cuadrará:

  1. En la pantalla de venta, pulsa el icono de menú (≡).
  2. Elige Entrada/salida de efectivo.
  3. Selecciona Entrada de efectivo o Salida de efectivo.
  4. Escribe el importe y el motivo, y pulsa Confirmar.

Según la documentación, solo los empleados con derechos básicos o avanzados pueden hacerlo. Cada movimiento es una línea en el diario de caja sin contrapartida definida: queda contra la cuenta transitoria del diario (la 572998 en el plan de Odoo) hasta que alguien de contabilidad la lleva a su sitio, por ejemplo al banco si era un ingreso de la recaudación.

Paso 6. Cierra la caja y cuenta

  1. En la pantalla de venta, pulsa el icono de menú (≡) y luego Cerrar caja registradora.
  2. Se abre la ventana Cierre de caja. Arriba, el número de pedidos y el total vendido en la sesión. Debajo, un bloque por método de pago con el importe esperado.
  3. En el bloque del efectivo verás Apertura, los pagos cobrados en efectivo, Entrada y salida de efectivo, Contado y Diferencia.
  4. Escribe lo que hay en el cajón en Recuento de efectivo. Tienes dos ayudas:
    • El icono del billete abre el recuento por Monedas/billetes: indicas cuántas hay de cada una y pulsas Confirmar. El detalle se copia en la Nota de cierre.
    • El icono de copiar rellena el campo con el importe esperado. Úsalo solo después de contar: deja el descuadre en cero aunque nadie haya mirado el cajón.
  5. Si cobras con tarjeta, cada método bancario con cobros tiene su propio campo de recuento, que Odoo ya trae relleno con lo esperado. Cámbialo si el total del datáfono no coincide.
  6. Añade una Nota de cierre si hay algo que explicar.
  7. Pulsa Cerrar caja registradora.

Antes de cerrar puedes descargar el informe Venta diaria, con todas las ventas de la sesión. Desde la misma ventana también se registra un último movimiento con Entrada/salida de efectivo.

Nota

Bares y restaurantes. Un TPV de restaurante no deja cerrar con pedidos en borrador que no estén programados para más tarde. Odoo abre una ventana con las opciones Revisar pedidos y Cancelar pedidos.

Paso 7. Si la caja no cuadra

Cuando lo contado no coincide con lo esperado, al pulsar Cerrar caja registradora aparece la ventana Diferencia de pagos:

Nota

El dinero contado no coincide con el esperado. ¿Desea registrar esta diferencia en los libros?

En inglés: The money counted doesn't match what we expected. Want to log the difference for the books?

Continuar de todos modos cierra la sesión y contabiliza la diferencia. Descartar te devuelve al recuento para volver a contar.

Si has puesto un límite en el paso 3 y el descuadre lo supera, el cajero ve otro mensaje y no puede cerrar:

Nota

La diferencia máxima permitida es … Contacte a su gerente para aceptar la diferencia de cierre.

En inglés: The maximum difference allowed is … Please contact your manager to accept the closing difference.

Tiene que cerrar la caja un usuario administrador del Punto de venta.

Qué pasa en contabilidad

Durante el día, los tickets no generan asientos. El asiento nace al cerrar la sesión, en el diario de pedidos del TPV, y agrupa todas las ventas no facturadas.

Un ejemplo con cifras inventadas para seguir los importes: fondo de 150 €, ventas de 2.060 € con IVA del 21 % (820 € en efectivo y 1.240 € con tarjeta), una retirada de 200 € para ingresar en el banco y 765 € contados al cierre.

Lo esperado en el cajón es 150 + 820 − 200 = 770 €. Faltan 5 €.

En el ejemplo se esperaban 770,00 euros en el cajón (150,00 + 820,00 − 200,00) y se contaron 765,00: la diferencia de −5,00 va al Debe de la 678 Gastos excepcionales contra la 570 Caja Ventana Cierre de caja, bloque del efectivo: Apertura 150,00; cobros en efectivo de la sesión 820,00; Entrada y salida de efectivo −200,00; lo esperado, 770,00; Contado 765,00; Diferencia −5,00. En Recuento de efectivo se escribe 765,00 y se pulsa Cerrar caja registradora. Odoo contabiliza el descuadre en el diario de caja: 678 Gastos excepcionales al Debe por 5,00 y 570 Caja al Haber por 5,00, con el texto Diferencia de efectivo observada durante el recuento (pérdida) - cierre. Si sobra dinero, la contrapartida es la 778 Ingresos excepcionales. Cierre de caja Apertura 150,00 (cobros en efectivo) 820,00 Entrada y salida de efectivo −200,00 (esperado) 770,00 Contado 765,00 Diferencia −5,00 Recuento de efectivo 765,00 Cerrar caja registradora Descuadre (diario de caja) Cuenta Debe Haber 678 Gastos excepcionales 5,00 570 Caja 5,00 «Diferencia de efectivo observadadurante el recuento (pérdida) - cierre» Si sobrara dinero, Odoo usaríala 778 Ingresos excepcionales. En el ejemplo se esperaban 770,00 euros en el cajón (150,00 + 820,00 − 200,00) y se contaron 765,00: la diferencia de −5,00 va al Debe de la 678 Gastos excepcionales contra la 570 Caja Ventana Cierre de caja, bloque del efectivo: Apertura 150,00; cobros en efectivo de la sesión 820,00; Entrada y salida de efectivo −200,00; lo esperado, 770,00; Contado 765,00; Diferencia −5,00. En Recuento de efectivo se escribe 765,00 y se pulsa Cerrar caja registradora. Odoo contabiliza el descuadre en el diario de caja: 678 Gastos excepcionales al Debe por 5,00 y 570 Caja al Haber por 5,00, con el texto Diferencia de efectivo observada durante el recuento (pérdida) - cierre. Si sobra dinero, la contrapartida es la 778 Ingresos excepcionales. Cierre de caja Apertura 150,00 (cobros en efectivo) 820,00 Entrada y salida de efectivo −200,00 (esperado) 770,00 Contado 765,00 Diferencia −5,00 Recuento de efectivo 765,00 Cerrar caja registradora Descuadre (diario de caja) Cuenta Debe Haber 678 Gastos excepcionales 5,00 570 Caja 5,00 «Diferencia de efectivo observadadurante el recuento (pérdida) - cierre» Si sobrara dinero, Odoo usaríala 778 Ingresos excepcionales.
El ejemplo de esta sección, con cifras inventadas y en euros: lo esperado en el cajón (150 + 820 − 200 = 770,00) frente a lo contado (765,00), y el asiento que deja la diferencia. Entre paréntesis, lo que no es texto de Odoo. Cuentas de la plantilla española y cálculo según el código de point_of_sale (rama 19.0). Esquema dibujado a partir de la versión 19; no es una captura de Odoo.
AsientoDebeHaber
Ventas de la sesión (diario del TPV)4301 Clientes (euros) (PoS): 2.060,00Cuenta de ventas del producto: 1.702,48 · 477 IVA repercutido: 357,52
Cobros en efectivo (diario de caja)570 Caja: 820,004301: 820,00
Cobros con tarjeta (diario de banco)Cuenta pendiente del método de pago: 1.240,004301: 1.240,00
Retirada de efectivo (diario de caja)572998 Cuenta transitoria: 200,00570 Caja: 200,00
Descuadre (diario de caja)678 Gastos excepcionales: 5,00570 Caja: 5,00

Detalles que salen del código y de la plantilla española:

  • La 4301 es la cuenta a cobrar que la localización asigna al TPV. Hace de puente: se carga con las ventas y se abona con los cobros, y queda a cero si todo se ha cobrado. Un método de pago puede usar otra si rellenas su Cuenta intermedia.
  • La línea del descuadre lleva el texto Diferencia de efectivo observada durante el recuento (pérdida) - cierre, o (ganancia) si sobra dinero. Búscala así en el diario de caja.
  • Las ventas se agrupan por cuenta de ingresos e impuesto. Si quieres una línea por producto en el asiento, activa Asiento de cierre por producto en la sección Contabilidad de los ajustes del TPV.
  • Los pedidos que se facturaron en el mostrador no entran en el bloque de ventas del asiento: su ingreso está en la factura.
  • El IVA de los tickets llega al modelo 303 por el mismo camino que el de las facturas, porque el asiento de la sesión lleva los impuestos con sus etiquetas de casilla.

Dónde revisar los cierres

  • Punto de venta, Pedidos, Sesiones: una línea por sesión, con quién la abrió (Abierta por), fechas y estado (En proceso, Control de cierre, Cerrado y registrado). Dentro de cada sesión, el historial guarda las diferencias de apertura y de cierre, y el botón Pedidos lista los tickets.
  • Punto de venta, Informes, Informe de la sesión y Detalles de ventas: los informes imprimibles.
  • En la tarjeta del TPV, el menú de los tres puntos tiene accesos a Sesiones y Pedidos filtrados para esa caja.

Lo que la norma española añade al mostrador

El límite de pagos en efectivo. El artículo 7 de la Ley 7/2012 prohíbe pagar en efectivo operaciones de 1.000 euros o más cuando alguna de las partes actúa como empresario o profesional (10.000 euros si el pagador es un particular sin domicilio fiscal en España). El TPV de Odoo no lo comprueba: en el código de point_of_sale y de los módulos españoles del TPV no hay ninguna validación de ese importe. Es una regla que tiene que conocer quien cobra.

Ticket o factura. Un ticket del TPV es una factura simplificada, con su límite de 400 € o 3.000 €. Con Veri*Factu activado, un pedido que lo supere y no se facture se bloquea con El pedido debe ser facturado, ya que su importe total supera los 400 €. Cómo cambiar ese importe está en Factura simplificada en Odoo 19.

Veri*Factu no espera al cierre. Según la documentación de Odoo 19, el registro de Veri*Factu se genera cuando el pedido se paga y, si en ese momento se emite factura, el registro es el de la factura. El cierre de caja no envía nada a la AEAT. La configuración está en Configurar Veri*Factu en Odoo 19 y los mensajes del mostrador, en Errores de Veri*Factu.

No se factura el día entero de golpe. Con Veri*Factu activado, Odoo no permite agrupar varios pedidos del TPV en una sola factura: With Veri*Factu enabled, POS orders cannot be consolidated into one invoice. (el mensaje no tiene traducción en la rama 19.0).

Resultado

  • Cada caja tiene su método de efectivo, su diario y sus cuentas de descuadre.
  • El cajero abre con el fondo real, anota retiradas e ingresos y cierra contando.
  • Cada sesión deja un asiento de ventas, los cobros por método y, si lo hay, el descuadre en la 678 o la 778.
  • Los descuadres grandes necesitan a un administrador.

Errores frecuentes

  • No puede cerrar el TPV si aún hay pedidos en borrador para este día. (You cannot close the POS while there are still draft orders for the day.) Hay pedidos sin cobrar. Cóbralos o elimínalos desde Pedidos, en la cabecera del TPV, y vuelve a cerrar.
  • Diríjase al diario … y define una cuenta de pérdidas. Esta cuenta se utilizará para registrar la diferencia en efectivo. (Please go on the … journal and define a Loss Account…) El diario de caja no tiene Cuenta de pérdidas. Con un sobrante, el mensaje equivalente pide la cuenta de ganancias. Rellénalas como en el paso 1.
  • La sesión ya está cerrada. Otro usuario cerró la sesión mientras el TPV seguía vendiendo. Odoo guarda esas ventas en una sesión de rescate, que se revisa y se contabiliza desde el tablero del Punto de venta.
  • Hay una diferencia entre los importes a registrar y los importes de los pedidos, probablemente se deba a los impuestos o a los cambios de configuraciones contables. El asiento de la sesión no cuadra, casi siempre porque alguien cambió un impuesto o una cuenta con la sesión abierta. Odoo ofrece Forzar el cierre de sesión, que lleva la diferencia a una línea aparte. Antes de forzar, que contabilidad mire qué se cambió.
  • No puede crear una sesión que inicie antes del … La fecha cae en un periodo con fecha de bloqueo. Revisa los bloqueos antes de abrir caja.
  • El arqueo nunca cuadra por la misma cantidad. Suele ser una retirada de efectivo que no se anotó con Entrada/salida de efectivo, o un fondo de apertura aceptado sin contar.

Preguntas frecuentes

¿Dónde se cierra la caja del TPV en Odoo 19?

En la pantalla de venta, con el icono de menú (≡) y la opción «Cerrar caja registradora». Se abre la ventana «Cierre de caja», donde escribes el efectivo contado y pulsas «Cerrar caja registradora». Si la sesión se ha quedado abierta sin TPV delante, también se cierra desde Punto de venta ‣ Pedidos ‣ Sesiones con el botón «Cerrar sesión y registrar asientos».

¿A qué cuenta va el descuadre de caja?

A la «Cuenta de pérdidas» o a la «Cuenta de ganancias» del diario de caja. Con la localización española, Odoo 19 propone por defecto la 678 (Gastos excepcionales) para los faltantes y la 778 (Ingresos excepcionales) para los sobrantes. Se cambian en el diario, pestaña «Asientos contables».

¿Puedo impedir que un empleado cierre con un descuadre grande?

Sí. En los ajustes del TPV, sección «Pago», activa «Establecer la diferencia máxima» y escribe el importe en «Diferencia autorizada». Por encima de ese importe, solo un usuario del grupo Administrador de Punto de venta puede cerrar.

¿El cierre de caja envía algo a Veri*Factu?

No. Con Veri*Factu activado, el registro de cada ticket se genera cuando el pedido se paga, según la documentación de Odoo 19, no al cerrar la sesión. El cierre solo contabiliza las ventas y el arqueo.

¿Hace falta Enterprise para el cierre de caja?

No. El módulo point_of_sale es de la edición Community y el cierre funciona igual en las dos. Lo que cambia es dónde revisas la contabilidad, porque los informes contables completos y la conciliación bancaria son de Enterprise.

Fuentes

  1. Documentación de Odoo 19 — Punto de venta, flujo de trabajo (abrir, caja y cerrar)odoo.com
  2. Documentación de Odoo 19 — Métodos de pago del Punto de ventaodoo.com
  3. Documentación de Odoo 19 — Informes del Punto de venta (sesiones)odoo.com
  4. Código fuente de point_of_sale (rama 19.0), ventana de cierre de cajagithub.com
  5. Código fuente de point_of_sale (rama 19.0), contabilización de la sesión (pos_session.py)github.com
  6. Plantilla contable española de Odoo 19 (cuentas 4301, 678 y 778 por defecto)github.com
  7. Código fuente de l10n_es_edi_verifactu_pos (rama 19.0)github.com
  8. Ley 7/2012, artículo 7, limitaciones a los pagos en efectivo (BOE, texto consolidado)boe.es

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