Pre-launch · ERPlora is in active development. You're viewing a product preview.
Back to apps Sales, payments and tax

Sales & POS

The till: build the check, charge it in cash, by card or split, and void or refund a sale.

Free
Start free
Turn it on from your Hub

Apps are turned on from the Apps page of your Hub. Create your free account to get one.

This documentation is only available in Spanish.

Para qué sirve y para quién

Ventas / TPV es la caja registradora del negocio: se monta la cuenta tocando artículos, se cobra en efectivo, con tarjeta o repartido entre varios medios, y queda una venta que ya no se puede cambiar, con su número del día, su IVA línea a línea y su tique o su factura. Sirve a los dos negocios:

  • En el restaurante, la cuenta vive abierta mientras la mesa come: se le añaden rondas, se manda a cocina, se imprime la cuenta para la mesa, se cobra entera o por partes, se divide o se junta.
  • En la peluquería, cada servicio del tique lleva a la profesional que lo hizo y la cuenta se cobra al terminar, con la clienta puesta.

Quién la usa:

  • El empleado (camarero, recepcionista, cajero): monta la cuenta, pone notas, invita una línea, aplica descuentos hasta el máximo del negocio, aparca y recupera cuentas, cobra y consulta las ventas.
  • El responsable: además vende a precio libre, aplica descuentos por encima del máximo, anula una cuenta abierta o una línea ya enviada a cocina, anula y devuelve ventas, ve las cifras y prepara las notas rápidas, las secciones, los medios de pago y los ajustes del TPV.
  • El propietario y el administrador: todo.

Ventas no guarda mesas ni clientes en la cuenta (son de Mesas y de Clientes), no numera facturas ni habla con la AEAT (se las pide a Facturación en el mismo cobro; la AEAT es de VeriFactu), no mueve el stock (lo hace Inventario al oír la venta) y no cuadra la caja (Caja lee las ventas; Ventas solo le pregunta si la caja está abierta antes de cobrar en efectivo).

Referencia adoptada

ERPlora no inventa flujos: adopta los que el mercado ya probó.

  • Cobrar por artículos y repartir el pago entre medios, como Square y Lightspeed. No se reparte por asiento.
  • Anular antes de que se mueva el dinero, devolver después, con motivo y permiso, sin mezclar los dos caminos: Toast — anulaciones y devoluciones frente a anulaciones, Lightspeed, Dynamics 365 Business Central, Square y Shopify trazan la misma línea.
  • La comanda nace al enviar, no al cobrar, por rondas (Toast — flujo de cocina).
  • Una cuenta abierta se cobra al precio con que se pidió (Square Orders, Oracle Simphony, Odoo, Business Central): cambiar el precio del catálogo no reprecia una cuenta que ya está abierta.
  • Notas rápidas preconfiguradas que se aplican de un toque (Lightspeed Restaurant K-Series).
  • Cada servicio lleva a quien lo hizo y la cita se cobra sin volver a teclearla (Fresha, Vagaro).
  • Tique o factura según la AEAT: tique (factura simplificada) hasta su límite, factura completa con nombre, NIF y domicilio por encima o a petición, copia marcada como duplicado (AEAT — facturas simplificadas, art. 4 del Real Decreto 1619/2012: 3.000 € con IVA en hostelería, comercio al por menor y peluquería).
  • Nada en efectivo desde 1.000 € en un negocio de España, también repartido entre medios (Ley 7/2012, art. 7).

Antes de empezar

  • Impuestos y Clientes se activan con Ventas y no se pueden apagar mientras Ventas esté encendida: sin las reglas de IVA no se cierra ninguna venta, y la venta guarda la ficha de su cliente.
  • Inventario es opcional. Con él, el TPV vende su catálogo y la venta baja el stock; sin él, el TPV vende a precio libre por sección y lo dice en la rejilla.
  • Servicios es opcional (peluquería). Con él, el TPV vende sus servicios (SALE-F38), al precio propio de la profesional si lo tiene, y una línea de servicio se puede pagar con un bono de la clienta (SALE-F27).
  • Facturación es opcional. Con ella, cada cobro sale con su tique (factura simplificada) o su factura numerados en su serie en el mismo cobro, y cada anulación o devolución con su rectificativa; sin ella, la venta es un tique sin documento fiscal. Configura antes el emisor en Facturación: sin él se cobra igual y el documento queda pendiente, a la vista, hasta «Emitir ahora» (SALE-F29).
  • Caja es opcional. Con «Activar caja» encendido, no se cobra en efectivo sin una sesión de caja abierta (SALE-F08); con tarjeta y otros medios, sí.
  • Los artículos tienen que tener categoría de IVA: si no, salen marcados «Falta el IVA» y no se venden.
  • De fábrica hay dos medios de pago: Efectivo y Tarjeta. Bizum, transferencia u otro se añaden con el asistente diciendo su tipo (SALE-F37).
  • Venta por peso: tecleando la cantidad (SALE-F10); no hay lector de báscula.

Configuración inicial, paso a paso:

  1. Ajustes del TPV: medios permitidos, descuentos y descuento máximo, cliente obligatorio, documento por defecto, cabecera y pie del tique (SALE-F34).
  2. Secciones, si se cobra a precio libre (frutería, varios) (SALE-F35).
  3. Notas rápidas, si la cocina recibe instrucciones repetidas (SALE-F36).
  4. Haz una venta de prueba con cada medio y comprueba el tique (SALE-F01, SALE-F02, SALE-F29).

Pantallas

Ventas / TPV se abre desde el menú Ventas / TPV y tiene cinco entradas: Vender, Ventas, Notas rápidas, Secciones y Ajustes. «Secciones» es lo que el producto actual llamaba «Departamentos»: la palabra corta cabe en la barra de pestañas de un móvil con las cinco a la vista.

Vender

Se abre a pantalla completa de la aplicación; el menú ⋮ de la tira de categorías tiene «Pantalla completa» / «Salir de pantalla completa» (la del navegador, cuando el dispositivo la permite). Dos zonas:

  • Catálogo: la tira de categorías de Inventario con su número de artículos («Todos» primero y, con Servicios, «Servicios» detrás), la lupa que abre el buscador («Buscar producto…», por nombre o SKU, en el servidor; con Servicios busca también sus servicios) y la rejilla: artículos con sus iniciales, su unidad y su precio, y al final la baldosa «Precio libre». En «Servicios», cada servicio con sus iniciales, su duración y su precio («Desde», «Por hora», «Variable» o «Gratis» si no es de precio fijo). La rejilla pide de 100 en 100, por categoría, y «Cargar más» trae los siguientes.
  • Cuenta (en el móvil, un cajón que abre el botón flotante con el total): arriba, el botón de pausa «Aparcar esta cuenta», el de cliente («Asignar cliente» o su nombre), «Cuentas abiertas» con su número, y «Cerrar» en el móvil; el título editable («Cuenta nueva») y los chips de cliente, «Atiende …» y «Falta el cliente». Cada línea: nombre, precio por unidad, marca de descuento o «Invitación», nota y profesional debajo; botones de descuento, nota, invitación y el selector de cantidad (una línea enviada a cocina solo enseña su cantidad, «Comanda N» y el botón ⊗ «Anular este artículo»; una pagada con bono, «Ya pagado · », 0,00 € y solo el botón de quitarla). Pie: la fila «Descuento del ticket» si lo hay, «Total» (el que calcula el servidor), el botón de descuento, la impresora («Imprimir cuenta») y «Cobrar · ».

Hojas que se abren encima: precio libre, importe de un servicio sin precio fijo, nota, descuento, «Anular «»», «Aparcar cuenta», «Quién atiende esta cuenta», «Tienes una cuenta a medias» y el buscador de clientes. Vacía: «Toca un producto para añadirlo.» y, sin artículos, «Sin productos.» (o el motivo: Inventario no está activo). Avisos arriba de la rejilla: artículos sin IVA («N artículos no se pueden vender…» con «Revisar el catálogo», solo a quien puede arreglarlo). Error de carga: «Error cargando el TPV» con «Reintentar».

Cobro

Hoja que abre «Cobrar». Arriba, el importe grande (el que calcula el servidor), «Cobrando N líneas de » si hay líneas marcadas y «Restante» al repartir. A un lado, el resumen («Tique» / «Factura», cliente), con «Factura» los datos del cliente y, con Servicios, «Líneas pagadas de otra forma»: cada línea de servicio del cobro con su hueco del bono (SALE-F27). Al otro, «Cobros tomados», los medios de pago (el efectivo, no disponible desde 1.000 €, con su motivo), «Entregado», «Cambio» y el teclado en efectivo, o «Importe exacto» y «Cobra en el datáfono y confirma.» con otro medio; «Repartir el cobro» y «Añadir este cobro». Pie: el motivo si no se puede cobrar y «Cobrar » («Cobrando…» mientras va); con la caja cerrada y efectivo, el rechazo y «Abrir sesión de caja».

Cuentas abiertas

Desplegable del icono de tique de la cuenta: «Aparcar esta cuenta» con su explicación, «Cuentas abiertas» y «Toca una cuenta para retomarla.», y una fila por cuenta abierta del negocio (título o importe, hora e importe) con su papelera. Vacía: «No hay cuentas abiertas». Un fallo se pinta encima de las filas.

Cuenta (precuenta)

Ventana «Cuenta» que abre la impresora del pie: el papel que se lleva a la mesa, con el aviso «Cuenta — no es una factura. El tiquet fiscal se entrega al cobrar.», y los botones de imprimir y cerrar.

Ventas

Título «Ventas», periodo («Hoy», «7 días», «30 días», «Todo»), seis cifras («Tickets», «Ingresos», «Ticket medio», «IVA», «Descuentos», «Anuladas») y la tabla (Fecha, Número, Cliente, Pago, Estado, Total) con el buscador «Buscar número o cliente…», filtros, vista tabla o tarjetas, 50 por página. Por fila: «Documento», «Reimprimir» y, según permiso, «Anular» y «Devolver». Vacía: «Aún no hay ventas.»; cargando: «Cargando…»; error: el aviso con «Reintentar».

Documento de venta

Ventana del tique de una venta: el papel tal como se imprime (título «Tique» o «Factura», cabecera, el número que le dio Facturación —«Factura FACT-2026-000012», «Tiquet TICKET-2026-000031»— o, sin él, el de la venta, fecha, líneas, una fila de IVA por clave fiscal, total, forma de pago, entregado y cambio, pie), la ✕ y la impresora. Toda impresión desde Ventas sale con «DUPLICADO». Error: «Error cargando el documento».

Devolver

Ventana «Devolver la venta »: explicación, una tarjeta por forma de pago («Cobrado», «Ya devuelto», «Devolvible», «Importe a devolver» y, si hace falta, «Devolver por»), «Devolver todo», «Qué se devuelve» (las líneas de la venta con una casilla cada una y, en una línea de varias unidades, «Unidades que vuelven»; la pagada con bono dice «Ya pagado · » y, marcada, «La sesión vuelve a .»), «Motivo» y «Devolver ». Cargando: «Cargando lo que se puede devolver…»; nada que devolver: «No queda nada por devolver en esta venta.».

Anular venta

Ventana «Anular la venta »: la explicación, el «Motivo (obligatorio)» y «Anular» / «Cancelar». Un rechazo se lee dentro de la ventana, que sigue abierta.

Notas rápidas

Explicación, tabla (Nota, Posición) con buscador, + para añadir y, por fila, «Editar» y «Eliminar». Vacía: «Todavía no hay notas rápidas…»; cargando: «Cargando notas rápidas…». Quien no tiene el permiso de ajustes la ve sin + ni acciones.

Secciones

Explicación, tabla (Nombre, IVA que cobra, Posición), + y, por fila, «Editar» y «Eliminar». Vacía: «Todavía no hay secciones…»; cargando: «Cargando secciones…». Quien no tiene el permiso de ajustes la ve sin + ni acciones.

Ajustes

Cabecera «TPV»: un interruptor o campo por ajuste (SALE-F34) y «Guardar». Cargando: «Cargando ajustes…»; error: «No se pudieron cargar los ajustes.» con «Reintentar»; sin permiso: «No tienes permiso para cambiar estos ajustes. Pídeselo a un administrador si lo necesitas.».

Estados de cada pantalla

Estado Qué ve la persona
Cargando «Cargando…» (o el texto de su pantalla) mientras llega el primer resultado.
Vacío El texto de su pantalla, con + si puede crear.
Error El aviso con «Reintentar»; un rechazo de una acción sale dentro de su hoja o ventana, junto a su campo.
Reconectando Lo pintado se queda; una franja avisa «Reconectando…» hasta que vuelve la conexión.
App inactiva (app_inactive) «Esta app no está activa en este negocio».
Sin permiso No aparece lo que no puede hacer; si llega por otra puerta, «No tienes permiso».

Flujos

ID Flujo Vertical Estado
SALE-F01 Vender y cobrar en efectivo común hecho
SALE-F02 Cobrar con tarjeta u otro medio sin cambio común hecho
SALE-F03 Repartir el cobro entre varios medios de pago común hecho
SALE-F04 Elegir tique o factura y los datos del cliente común hecho
SALE-F05 Cobrar cuando el negocio exige cliente común hecho
SALE-F06 Recuperar un cobro que se quedó sin respuesta común hecho
SALE-F07 El TPV avisa de lo que hoy no se puede vender común parcial
SALE-F08 Cobrar sin la caja abierta común hecho
SALE-F09 Vender a precio libre por sección común hecho
SALE-F10 Vender por peso, tecleando la cantidad común hecho
SALE-F11 Elegir los suplementos de un artículo común no hecho: Suplementos
SALE-F12 Componer un menú restaurante no hecho: Menús
SALE-F13 Poner una nota en una línea común hecho
SALE-F14 Aplicar un descuento a una línea o a la cuenta común parcial
SALE-F15 Invitar una línea común hecho
SALE-F16 Atribuir la cuenta o una línea a quien atiende común hecho
SALE-F17 Aparcar una cuenta y recuperarla común hecho
SALE-F18 Eliminar una cuenta abierta común hecho
SALE-F19 Abrir la cuenta de una mesa y dejarla en la mesa restaurante hecho
SALE-F20 Enviar la comanda a cocina y anular una línea enviada restaurante parcial
SALE-F21 Imprimir la cuenta para la mesa (precuenta) restaurante hecho
SALE-F22 Cobrar solo una parte de la cuenta restaurante hecho
SALE-F23 Dividir la cuenta de una mesa restaurante hecho
SALE-F24 Juntar las cuentas de dos mesas restaurante hecho
SALE-F25 Pasar la cuenta a otra mesa restaurante hecho
SALE-F26 Cobrar una cita desde la agenda peluquería hecho
SALE-F27 Pagar una línea con un bono peluquería hecho
SALE-F28 Consultar el historial y las cifras de ventas común hecho
SALE-F29 Ver y reimprimir el documento de una venta común hecho
SALE-F30 Anular una venta cobrada común hecho
SALE-F31 Devolver una venta (toda, una parte o por otro medio) común hecho
SALE-F32 Devolver la sesión de un bono peluquería hecho
SALE-F33 Unir las ventas de dos fichas de cliente común hecho
SALE-F34 Ajustar el TPV común hecho
SALE-F35 Dar de alta y ordenar las secciones del precio libre común hecho
SALE-F36 Preparar las notas rápidas común hecho
SALE-F37 Añadir un medio de pago (Bizum, transferencia…) común parcial
SALE-F38 Vender un servicio de Servicios peluquería hecho

SALE-F01 Vender y cobrar en efectivo

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Vender, Cobro Pasos: 1. En Vender, elige una categoría en la tira de arriba («Todos» enseña todo) o pulsa la lupa y busca por nombre o SKU. 2. Toca el artículo: entra como línea de la cuenta. Tocarlo otra vez (mismo profesional, sin nota ni descuento) sube la cantidad; el selector de la línea la sube o la baja, y a 0 la línea se quita. 3. Pulsa «Cobrar · » al pie de la cuenta (en el móvil, abre antes la cuenta con el botón flotante, que enseña el total). 4. En la hoja Cobro, con efectivo elegido, marca en el teclado el importe entregado; el cambio sale debajo en grande. 5. Pulsa «Cobrar ». 6. La hoja se cierra, la cuenta queda vacía y se abre el Documento de venta con el tique. Entra: los artículos y precios de Inventario; los tipos de IVA de Impuestos; los ajustes del TPV. Sale: la venta cobrada e inmutable, con número AAAAMMDD-NNNN del día del negocio, sus líneas, su pago y su desglose de IVA (una fila por clave fiscal, cerrada una sola vez: lo mismo que declara la factura), y la cuenta cerrada. Con Facturación, su tique (F2) numerado en la serie del año en el mismo cobro (INVOICE-F01): o los dos o ninguno. Ventas avisa de la venta cobrada: Inventario baja el stock (INVENTORY-F21) y Clientes suma la compra a la ficha (CUSTOMER-F20). Cada línea guarda la categoría, el tipo, el país, la región y la regla de Impuestos con que se cobró. Si falla: sin importe entregado el botón no cobra y se lee «Marca en el teclado el importe entregado»; corto, «Lo entregado no cubre el total». Un artículo sin IVA sale marcado «Falta el IVA» y al tocarlo dice «No se puede vender: sin categoría fiscal. Falta configurar el IVA.». Un rechazo al cobrar se pinta en la hoja con su frase (p. ej. «Un producto del tique ya no está en el catálogo. Quita la línea y vuelve a añadirla.») y la cuenta sigue intacta. Si mientras se cobra otro dispositivo cambia la cuenta (añade, cambia, quita, anula o cobra una línea, pone o quita un descuento, la divide, la junta o la cierra), gana el primero: el cobro no cobra nada, la hoja dice «La cuenta ha cambiado mientras se cobraba. No se ha cobrado nada; la cuenta se ha vuelto a cargar, revísala y vuelve a cobrar.» y el siguiente «Cobrar» cobra lo que hay; si gana el cobro, el cambio que llegaba se rechaza con «La cuenta ha cambiado mientras se cobraba. No se ha cambiado nada: revisa las líneas y vuelve a intentarlo.». Nunca entra en la venta una línea anulada o quitada ni se cobra otra cantidad u otro descuento del que guarda la cuenta. Implicados: INVENTORY-F21, CUSTOMER-F20, TAX-F18

SALE-F02 Cobrar con tarjeta u otro medio sin cambio

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Cobro Pasos: 1. Con la cuenta lista, pulsa «Cobrar · ». 2. En la hoja Cobro, toca Tarjeta (o el medio que sea; salen los medios activos que permiten los ajustes). 3. Se lee «Importe exacto» y «Cobra en el datáfono y confirma.»: cobra en el datáfono aparte. 4. Pulsa «Cobrar con tarjeta». El resultado es el de SALE-F01. Entra: los medios de pago del negocio. Sale: la venta con un pago por el importe exacto y sin cambio; el aviso de venta cobrada lleva el tipo de cada medio, para que Caja no lo sume al efectivo. Si falla: el TPV no habla con el datáfono: si la tarjeta se rechaza, cierra la hoja sin confirmar. Un medio que el negocio no permite o que ya no está activo se rechaza: «Esa forma de pago no está disponible en este negocio.». Implicados: ninguno

SALE-F03 Repartir el cobro entre varios medios de pago

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Cobro Pasos: 1. En la hoja Cobro, pulsa «Repartir el cobro». Arriba aparece «Restante». 2. Elige un medio, marca el «Importe de este cobro» (en efectivo, lo entregado) y pulsa «Añadir este cobro». Sin importe marcado, el cobro cubre todo lo que falta. 3. Los cobros tomados salen en «Cobros tomados»; la ✕ quita uno. 4. Cuando el restante llega a 0, pulsa «Cobrar ». Entra: los medios de pago y lo que entrega el cliente. Sale: una venta con una fila por medio; el cambio sale siempre del efectivo y nunca se reparte. Si falla: mientras falte dinero, el botón dice «Faltan »; si los cobros no suman el total al céntimo, el servidor lo rechaza: «Los cobros no suman el total de la venta.». En un negocio de España, una venta de 1.000 € o más no admite ningún cobro en efectivo, tampoco repartido: el botón de efectivo sale desactivado con su motivo y el servidor rechaza «Por ley, una venta de 1.000 € o más no se puede cobrar en efectivo, ni en parte. Cóbrala con tarjeta, Bizum o transferencia.». Partir la cuenta en varios cobros (SALE-F22) no lo salta: cuenta la cuenta entera (lo ya cobrado de ella y todo lo que le queda), porque la ley suma los pagos en que se fracciona una operación (Ley 7/2012, art. 7.Uno.1, párrafo 2): en una cuenta de 1.000 € o más ningún cobro parcial puede llevar efectivo. Implicados: ninguno

SALE-F04 Elegir tique o factura y los datos del cliente

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Cobro Pasos: 1. En la hoja Cobro, toca «Tique» o «Factura». Arranca en «Documento por defecto», o en «Factura» si «Emitir factura si el cliente tiene NIF» está encendido y el cliente asignado tiene NIF. 2. Con «Factura», debajo se piden «Nombre o razón social», «País», «NIF» y «Domicilio», ya rellenos si hay cliente asignado. Fuera de España se pide además el «Tipo de documento» (NIF-IVA de la UE, Identificación fiscal de su país, Pasaporte, Otro documento). 3. Si el importe pasa del límite de la factura simplificada (3.000 € en España), no hay botón «Tique»: sale «Esta venta no puede ser un tique» y los mismos datos. 4. Con los tres datos puestos se lee «Esta venta sale como factura completa» y se cobra como siempre. Entra: el cliente asignado (Clientes). Sale: la venta con su tipo de documento fijado al cobrar, que no se puede cambiar después y, con Facturación, su factura completa (F1) numerada en la serie «FACT» en el mismo cobro (INVOICE-F02); el nombre, NIF, dirección, país y tipo de documento del cliente viajan con ella y con el aviso de venta cobrada, y la venta guarda su copia (lo que declara un documento emitido después, SALE-F29). El nombre fiscal de una ficha con empresa es el de la empresa («Estudio Ana SL», la razón social que va con su CIF), no el de la persona; el TPV sigue enseñando a la persona. Si falla: sin los tres datos el botón dice «Faltan los datos del cliente»; una factura sin esos datos la rechaza el servidor por cualquier vía: «Una factura necesita el nombre, el NIF y la dirección del cliente. Rellénalos o cóbrala como tique.». El NIF se lee como lo lee Clientes: un NIF, NIE o CIF español que no cuadra sale bajo su casilla («Ese NIF no es válido.») y el botón dice «Revisa el NIF»; fuera de España, sin tipo de documento, «Indica qué tipo de documento es un NIF extranjero…» (el servidor lo rechaza igual, 422 en su campo; un NIF-IVA europeo lo comprueba el servidor). Un tique por encima del límite también lo rechaza el servidor por cualquier vía: «Por encima de 3.000 € esta venta no puede ser un tique: cóbrala como factura con los datos del cliente.». El país es un código ISO 3166-1 (la misma lista que Facturación: «UK» o «EL» no valen, «GB» sí): otro se rechaza con «Escribe el código ISO del país, p. ej. ES, FR o GB.» (422 en customer_country), también el que traiga una ficha vieja. Si Facturación rechaza los datos del destinatario de una factura (422), el cobro no se graba y se corrigen: nunca queda una factura «pendiente» que no se podría emitir. Implicados: CUSTOMER-F17, INVOICE-F02

SALE-F05 Cobrar cuando el negocio exige cliente

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Vender Pasos: 1. Con «Exigir cliente en cada venta» encendido y sin cliente, la cuenta enseña el chip «Falta el cliente» y «Cobrar» se ve bloqueado. 2. Al tocar «Cobrar» o el chip, sale «Este negocio exige un cliente en cada venta. Elige uno para seguir con el cobro.» y se abre el buscador de Clientes. 3. Elige o da de alta el cliente; el chip pasa a su nombre y «Cobrar» abre la hoja. Entra: el cliente que elige el buscador de Clientes. Sale: nada propio hasta cobrar; la venta lleva el cliente. Si falla: el servidor rechaza cualquier cobro sin cliente: «Este negocio exige un cliente en cada venta.». Implicados: CUSTOMER-F17, CUSTOMER-F18

SALE-F06 Recuperar un cobro que se quedó sin respuesta

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Cobro Pasos: 1. Pulsa «Cobrar…» y el hub no contesta (se reinicia, se cae la red). 2. El TPV pregunta él solo (hasta dos veces) si ese intento de cobro llegó a grabarse. 3. Si se grabó, se cierra como un cobro normal. Si no, sale «El servidor no responde (puede estar reiniciándose). Inténtalo de nuevo en unos segundos y, si persiste, avisa al encargado.» y volver a pulsar no duplica la venta. 4. Si no se pudo saber, sale «No hemos podido confirmar si el cobro se completó. Compruébalo en Ventas antes de volver a cobrar.» con el botón «Comprobar en Ventas». Entra: nada de otras apps. Sale: como mucho una venta por intento de cobro: la clave del intento nace al abrir la hoja y se reutiliza en cada reintento; el mismo intento devuelve la misma venta, también si dos dispositivos lo mandan a la vez (el segundo espera y recibe la venta del primero, nunca «no se ha cobrado»). Una clave ya usada para otra cuenta, otras líneas u otra venta de mostrador se rechaza: «Esa clave de intento ya se usó para otro cobro. Vuelve a abrir el cobro para cobrar este.». Si el documento fiscal de esa venta había quedado pendiente, el reintento se lo vuelve a pedir a Facturación (sin cobrar otra vez); si sigue sin poder, sigue pendiente, a la vista (SALE-F29). Si falla: ver los pasos 3 y 4; nunca dice «no se ha cobrado» sin saberlo. Implicados: ninguno

SALE-F07 El TPV avisa de lo que hoy no se puede vender

Estado: parcial — el aviso de que el negocio ya factura con VeriFactu y sus tiques no llegarían a Hacienda llega con VeriFactu Vertical: común Actor: empleado, responsable Pantalla: Vender Pasos: 1. Al abrir Vender, si hay artículos sin categoría fiscal, sale arriba de la rejilla «N artículos no se pueden vender: les falta el IVA.» y, a quien puede arreglarlo, «Revisar el catálogo», que lleva a Inventario. 2. Esos artículos salen en la rejilla marcados «Falta el IVA» y no entran en la cuenta. 3. Si Inventario no está activo, la rejilla lo explica y se vende a precio libre. Entra: el catálogo de venta de Inventario. Sale: nada. Si falla: si el catálogo no carga, «No se ha podido cargar el catálogo.» con «Reintentar»; el precio libre sigue disponible. Implicados: INVENTORY-F04 Pendiente: el aviso de que el negocio ya factura con VeriFactu y sus tiques no llegarían a Hacienda llega con VeriFactu.

SALE-F08 Cobrar sin la caja abierta

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Cobro Pasos: 1. Con «Activar caja» encendido en Caja y sin sesión de caja abierta, cobra en efectivo (también un cobro repartido con una parte en efectivo). 2. La hoja Cobro no cobra nada y dice «La caja está cerrada: abre una sesión de caja para cobrar en efectivo.»; a quien puede abrirla le ofrece «Abrir sesión de caja», que lleva a Caja. La pantalla Vender no cambia: la cuenta sigue ahí. 3. Abierta la sesión, vuelve a Vender y cobra. Con tarjeta, Bizum o transferencia se cobra siempre, con la caja abierta o cerrada. Entra: si la caja está activada y si hay sesión abierta, que Ventas pregunta a Caja (cash_register.session.current) con la sesión de quien cobra, solo cuando hay efectivo. Sale: nada propio; el cobro rechazado no gasta número. Si falla: si Caja no está en el negocio, está apagada o no contesta (un rechazo, un fallo), se cobra: el bloqueo cede antes que parar las ventas, y Caja enseña ese cobro entre los de fuera de turno (CASH_REGISTER-F17). Implicados: CASH_REGISTER-F04, CASH_REGISTER-F17

SALE-F09 Vender a precio libre por sección

Estado: hecho Vertical: común Actor: responsable (empleado con el permiso de precio libre) Pantalla: Vender Pasos: 1. Toca la baldosa «Precio libre», al final de la rejilla. 2. Marca el importe en el teclado y elige la sección en «Sección (IVA)»; cada botón enseña su tipo de IVA. 3. Pulsa «Añadir »: entra una línea con el nombre de la sección y ese importe. Nunca se suma a otra línea. Entra: las secciones del negocio (SALE-F35) o, si no hay, las categorías de IVA de Impuestos. Sale: una línea sin artículo de catálogo, con su importe y su categoría de IVA, que se cobra como cualquier otra. Si falla: «Añadir» no se puede pulsar sin importe y sección; sin secciones ni categorías, «No hay categorías de IVA que elegir. Configura antes tus tipos de IVA, en Impuestos.». Sin el permiso de precio libre la baldosa dice «Lo tiene que hacer un responsable» y el servidor rechaza la línea por cualquier vía (también al cobrar directamente). Implicados: TAX-F18

SALE-F10 Vender por peso, tecleando la cantidad

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Vender Pasos: 1. Toca un artículo cuya unidad es de masa, volumen o tiempo (kg, g, l, h…): entra como línea con su unidad. 2. Escribe la cantidad en el selector de la línea (p. ej. 0,532). 3. El importe se recalcula en el servidor y la línea muestra la unidad («0,532 kg»). Entra: la unidad del artículo, su escalón y la cantidad a la que se refiere su precio, de Inventario. Sale: la línea con su cantidad y su unidad congeladas. Si falla: una cantidad que no encaja con el escalón de la unidad se rechaza con «La cantidad no encaja con el escalón del producto» y la línea queda como estaba. No hay lector de báscula. Implicados: INVENTORY-F26

SALE-F11 Elegir los suplementos de un artículo

Estado: no hecho — los suplementos son de la app Suplementos, que todavía no existe en esta plataforma; hasta entonces un artículo entra sin suplementos Vertical: común Actor: empleado, responsable Pantalla: Vender Pasos: 1. Toca un artículo que tiene grupos de suplementos: se abre una hoja con su nombre; en cada grupo, su regla («Elige 1», «Hasta 3», «Opcional») y sus opciones con su precio extra. 2. Pulsa «Añadir»: la línea entra con sus suplementos y su precio congelado al pedir. Entra: los grupos y opciones de Suplementos. Sale: la línea con los suplementos elegidos; un suplemento con otro tipo de IVA sale al cobrar como línea propia. Si falla: lo dirá Suplementos. Implicados: MODIFIERS-F06

SALE-F12 Componer un menú

Estado: no hecho — los menús son de la app Menús, que todavía no existe en esta plataforma Vertical: restaurante Actor: empleado, responsable Pantalla: Vender Pasos: 1. En «Todos», los menús salen primero con la etiqueta «Menú». Toca uno y elige los platos de cada grupo. 2. Pulsa «Añadir · »; al cobrar el menú se reparte en tantas líneas como tipos de IVA tenga. Entra: los menús de Menús. Sale: una línea de menú; el aviso de venta lleva sus componentes para que Inventario baje cada plato. Si falla: lo dirá Menús. Implicados: COMBOS-F09, INVENTORY-F22

SALE-F13 Poner una nota en una línea

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Vender Pasos: 1. En la línea, toca el botón «Nota». 2. Toca las notas rápidas que salen arriba (se suman separadas por coma; tocarlas otra vez las quita) o escribe en el cuadro (hasta 255 caracteres). 3. Pulsa «Guardar»: la nota sale debajo de la línea. «Quitar», o dejar el cuadro vacío, la borra. Entra: las notas rápidas del negocio (SALE-F36). Sale: la nota en la línea; viaja a la comanda de cocina, a la cuenta impresa y queda congelada en la venta. Si falla: si las notas rápidas no cargan, «No se han podido cargar las notas rápidas: escribe la nota a mano.». Si no se guarda, «No se ha podido guardar ese cambio de la línea. La línea vuelve a estar como estaba.». Una línea ya enviada a cocina no tiene botón de nota. Implicados: ninguno

SALE-F14 Aplicar un descuento a una línea o a la cuenta

Estado: parcial — sin el PIN del encargado en el dispositivo del empleado (elevación de la plataforma): el descuento por encima del máximo lo aplica un responsable desde su sesión Vertical: común Actor: empleado, responsable Pantalla: Vender Pasos: 1. Para una línea, toca su etiqueta de precio («Descuento en la línea»); para toda la cuenta, el botón de etiqueta del pie («Descuento del ticket»). 2. Marca el porcentaje; en la cuenta puedes cambiar a importe fijo con el botón de la moneda. 3. Pulsa «Aplicar −N %» (o «Aplicar −»). «Quitar» lo borra. La línea enseña «−N %» y el pie la fila «Descuento del ticket». 4. Si el descuento pasa del máximo que el negocio deja dar sin autorización, solo lo puede aplicar un responsable; la cuenta guarda quién lo autorizó y no lo vuelve a comprobar al cobrar. Entra: «Permitir descuentos» y el descuento máximo de los ajustes. Sale: el descuento en la cuenta o en la línea; al cobrar se reparte entre las líneas, la base y el IVA declarados ya lo llevan descontado, y la venta guarda el importe descontado. Si falla: con «Permitir descuentos» apagado no hay botones y el servidor rechaza «Este negocio no permite descuentos.». Por encima del máximo sin ser responsable: «Ese descuento supera lo que este negocio permite sin que lo autorice el encargado.» y la cuenta sigue como estaba. Un importe mayor que la cuenta no se puede aplicar. Si otro dispositivo está cobrando esa cuenta, gana el primero (SALE-F01). Implicados: ninguno Pendiente: el PIN del encargado sobre el dispositivo del empleado llega con la elevación por PIN de la plataforma; mientras, el empleado le pasa el dispositivo o el responsable lo aplica desde el suyo.

SALE-F15 Invitar una línea

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Vender Pasos: 1. En la línea, toca el regalo («Invitar / quitar invitación»). 2. La línea queda a 0 con la marca «Invitación»; tocarlo otra vez la vuelve a cobrar. Entra: nada de otras apps. Sale: la línea invitada: no suma dinero ni IVA, pero el aviso de venta la lleva para que Inventario baje el stock; la venta guarda el coste de lo invitado. Si falla: «No se ha podido guardar ese cambio de la línea. La línea vuelve a estar como estaba.». Una línea ya enviada a cocina no se puede invitar. Implicados: INVENTORY-F21

SALE-F16 Atribuir la cuenta o una línea a quien atiende

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Vender Pasos: 1. En la cabecera de la cuenta, el chip «Atiende yo» dice a quién se atribuye. Tócalo. 2. En «Quién atiende esta cuenta», elige a la persona del equipo de Personal o «Yo (quien tenga la sesión)». 3. Las líneas que se añadan a partir de ahí quedan selladas con esa persona. Para corregir una línea ya puesta, toca el nombre que sale debajo de ella («De quién es esta línea») y elige otra persona o «El profesional de la cuenta». 4. Al cobrar, el chip vuelve a «yo». Entra: el equipo de Personal (fichas activas). Sale: la venta y cada línea atribuidas a esa persona (para el cierre por profesional). Si falla: «No se ha podido cargar el equipo. La venta se sigue atribuyendo a quien tenga la sesión.»; «No se ha podido mover la línea a otro profesional. Se queda con el que tenía.». Una línea enviada a cocina no se reasigna. Implicados: STAFF-F21

SALE-F17 Aparcar una cuenta y recuperarla

Estado: hecho Vertical: común Actor: empleado, responsable Pantalla: Cuentas abiertas Pasos: 1. Con una cuenta a medias, pulsa el botón de pausa («Aparcar esta cuenta») o, en Cuentas abiertas, «Aparcar esta cuenta». 2. En «Aparcar cuenta» el título viene con la hora; cámbialo si quieres («p. ej. Ana — terraza») y confirma: sale «Aparcada como «…»» y la pantalla queda vacía, también de cliente. 3. Para retomarla, abre Cuentas abiertas (icono de tique con el número de cuentas) y toca su fila; su cliente vuelve con ella. 4. Si delante hay otra cuenta, pregunta «Tienes una cuenta a medias»: «Aparcarla y abrir», «Eliminarla y abrir» o «Cancelar». 5. Al recargar la pantalla, cada dispositivo vuelve a la cuenta que tenía abierta. Entra: al retomar la cuenta, su cliente, de Clientes (CUSTOMER-F19). Sale: la cuenta sigue abierta con su título; aparcar nunca la anula. Si falla: «No se ha podido aparcar la cuenta. Sigue en pantalla.». Con «Permitir tiques aparcados» apagado no hay botón de aparcar en ningún sitio. Implicados: CUSTOMER-F19

SALE-F18 Eliminar una cuenta abierta

Estado: hecho Vertical: común Actor: responsable; una cuenta vacía, también el empleado Pantalla: Cuentas abiertas Pasos: 1. En Cuentas abiertas, toca la papelera de la cuenta: cambia a «Toca otra vez para eliminar — anula la cuenta». Si no se toca en 3 segundos, se desarma. 2. Toca otra vez: la cuenta desaparece de la lista. También se elimina con «Eliminarla y abrir» al cambiar de cuenta. Entra: la cuenta elegida. Sale: la cuenta queda anulada, no borrada (avisa: cuenta anulada); lo ya cobrado de ella sigue en sus ventas. Si falla: «No se ha podido eliminar esa cuenta abierta. Sigue en la lista.». Una cuenta ya cobrada no se puede anular: «Esa cuenta ya no está abierta.»; anularla dos veces no hace nada la segunda. Sin permiso de anular no hay papelera, salvo en una cuenta vacía (sin líneas vivas ni cobros): esa la elimina quien monta cuentas, porque un grupo que se va sin pedir no obliga a llamar a un responsable (como Mesas al cerrar una mesa vacía, TABLE-F21). Con algo pedido o cobrado, el servidor exige el permiso de anular (403). Implicados: TABLE-F20, TABLE-F21

SALE-F19 Abrir la cuenta de una mesa y dejarla en la mesa

Estado: hecho — sin preguntar los comensales en el TPV (ver «Lo que queda fuera») Vertical: restaurante Actor: empleado, responsable Pantalla: Vender Pasos: 1. Con Mesas activa y permiso de sentar, la barra de la cuenta tiene, antes del cliente, el botón de mesa (rejilla, «Asignar mesa»). Tócalo: se abre «Elegir mesa», con un buscador («Buscar mesa…», en el servidor) y las mesas en servicio como baldosas del color de su estado (Disponible verde, Ocupada roja, Reservada ámbar, Bloqueada gris), con el número, la zona, las plazas («4 pax»), el estado y, si la tiene, la reserva de hoy («Marta · 21:00»). Sin mesas: «Aún no hay mesas. Créalas en Mesas → Plano de sala.». 2. Toca una mesa Disponible o Reservada: la cuenta en pantalla se sienta allí (TABLE-F12) y toma su nombre como título («Mesa 4»); sin cuenta aún, Mesas abre una con ese título y el TPV la pone en pantalla (TABLE-F10). Una cuenta a la que se quitó la mesa se vuelve a sentar (TABLE-F24). Las Ocupadas y Bloqueadas no se pueden tocar (su título dice por qué). 3. La cabecera de la cuenta enseña su mesa («Mesa 4») y el botón se pinta en color. 4. «Quitar de la mesa», en la misma ventana, suelta la mesa sin cobrar: la mesa queda libre y la cuenta sigue abierta en Cuentas abiertas (TABLE-F13). Entra: las mesas, su estado y la mesa de la cuenta, de Mesas (table.table.list, table.floor.status, table.session.by_order), seguidos en vivo. Sale: nada propio; Mesas sienta (table.session.open con la cuenta, .restore) o suelta (table.session.park) con la sesión de quien atiende, y retitula la cuenta (sale.order.set_label). Si falla: el rechazo de Mesas dentro de la ventana, con sus palabras («Otro dispositivo acaba de ocupar esa mesa…», «Esa cuenta ya está en la mesa N.»…). Sin Mesas activa, o sin permiso de ver sus mesas y sentar, no hay botón ni se pregunta nada a Mesas. Implicados: TABLE-F10, TABLE-F12, TABLE-F13, TABLE-F24

SALE-F20 Enviar la comanda a cocina y anular una línea enviada

Estado: parcial — servidor hecho (envío por rondas y anulación de una línea enviada, también en la pantalla); la pestaña «Comanda actual» con el botón de envío la pone Cocina, que todavía no existe Vertical: restaurante Actor: empleado (enviar), responsable (anular) Pantalla: Vender Pasos: 1. Enviar a cocina marca las líneas pendientes de la cuenta con una ronda nueva («Comanda N») y la hora de envío; un doble envío no manda nada dos veces. 2. Una línea enviada queda bloqueada: ni cantidad, ni nota, ni descuento, ni invitación. 3. Para quitar un plato ya enviado, pulsa ⊗ «Anular este artículo» en su línea: se abre «Anular «»» con «Ya se envió a cocina. Sale de la cuenta y se guarda el motivo. Tiene que autorizarlo un responsable.», los motivos de un toque («Error al pedir», «El cliente lo cambia», «Agotado», «Pedido dos veces») y «O escribe el motivo…». «Anular artículo» no se puede pulsar sin motivo. 4. La línea sale de la cuenta, el total baja y la línea guarda el motivo, quién lo autorizó y cuándo. Entra: las líneas pendientes de la cuenta. Sale: las líneas con su ronda (avisa: comanda enviada, con las líneas, sus notas y quién atiende); al anular una línea enviada, avisa de la línea anulada con su motivo. Si falla: sin nada pendiente, «No hay nada nuevo que enviar a cocina.». Pedir que se quite una línea ya enviada la rechaza: «Esa línea ya no se puede quitar: ya se envió a cocina (anúlala con un motivo), ya está cobrada o ya no está en una cuenta abierta.». Anular una línea sin enviar, cobrada, ya anulada o sin motivo se rechaza con «Esa línea no se puede anular…». Implicados: KITCHEN-F29 Pendiente: la pestaña «Comanda actual» con el botón de envío la pone Cocina; hasta que exista, el envío se hace por el asistente o la API.

SALE-F21 Imprimir la cuenta para la mesa (precuenta)

Estado: hecho — imprime con el diálogo de impresión del dispositivo hasta que exista Impresión Vertical: restaurante Actor: empleado, responsable Pantalla: Cuenta (precuenta) Pasos: 1. Con la cuenta en pantalla, pulsa la impresora del pie («Imprimir cuenta»). 2. Se abre «Cuenta» con las líneas, notas, descuentos, el desglose de IVA, el total y el título, y el aviso «Cuenta — no es una factura. El tiquet fiscal se entrega al cobrar.». 3. Pulsa la impresora de arriba: sale por la impresora del dispositivo. Entra: la cuenta abierta y su total calculado por el servidor. Sale: un papel sin número fiscal; no consume numeración ni crea venta. Si falla: «No se pudo imprimir la cuenta». Implicados: ninguno Pendiente: la impresora de tiques en red llega con Impresión; hasta entonces se imprime con el diálogo de impresión del dispositivo.

SALE-F22 Cobrar solo una parte de la cuenta

Estado: hecho Vertical: restaurante Actor: empleado, responsable Pantalla: Vender Pasos: 1. Con dos o más líneas, toca las líneas que paga esta persona (la línea, no sus botones): se marcan con un círculo. 2. Pulsa «Cobrar»: la hoja dice «Cobrando N líneas de » y cobra solo esas. 3. Tras cobrar se abre el Documento de venta de ese cobro y, detrás, la cuenta sigue abierta con lo que falta; lo cobrado ya no vuelve a salir. Cobrar la última línea pendiente cierra la cuenta. Si es parcial o total lo dice lo que se cobró (las líneas fijadas al abrir la hoja), no lo que esté marcado al terminar. Entra: las líneas marcadas. Sale: una venta con esas líneas (avisa: venta cobrada); las líneas quedan atadas a su venta. El descuento en % de la cuenta se aplica a cada cobro; el de importe fijo, solo al que la cierra. Si falla: los mismos rechazos que un cobro normal, también el de la cuenta que cambió mientras se cobraba (SALE-F01): la hoja cobra las líneas y la versión que enseñaba al abrirse, nunca las de después. Si con la hoja abierta otro dispositivo cierra la cuenta, la pantalla la suelta al cerrar la hoja y avisa; no queda una cuenta fantasma. Implicados: ninguno

SALE-F23 Dividir la cuenta de una mesa

Estado: hecho — el botón «Dividir cuenta» es del control de mesa de Mesas (TABLE-F17) Vertical: restaurante Actor: empleado, responsable Pantalla: ninguna propia (el control de mesa es de Mesas; también por el asistente o la API) Pasos: 1. Se eligen las líneas que pasan a una cuenta nueva y se divide. 2. Las líneas pasan enteras a la cuenta nueva con su importe, su IVA y su ronda de cocina. Sin líneas, la cuenta nueva nace vacía. Entra: la cuenta y las líneas que se mueven. Sale: dos cuentas abiertas que suman lo mismo que la original al céntimo (avisa: cuenta abierta). Si falla: si otro dispositivo está cobrando esa cuenta, la división espera y, si la cobró, se rechaza («La cuenta ha cambiado…») sin mover nada. Implicados: TABLE-F17

SALE-F24 Juntar las cuentas de dos mesas

Estado: hecho — el botón «Fusionar» es del control de mesa de Mesas (TABLE-F16) Vertical: restaurante Actor: empleado, responsable Pantalla: ninguna propia (el control de mesa es de Mesas; también por el asistente o la API) Pasos: 1. Se elige la cuenta que se absorbe y la que queda. 2. Las líneas sin cobrar de una pasan a la otra y la vacía queda anulada. Entra: las dos cuentas. Sale: una sola cuenta; las líneas se mueven sin volver a crearlas, así que lo ya enviado a cocina no se envía otra vez. Repetirlo no cambia nada (avisa: cuentas juntadas, con la absorbida y la que queda). Si falla: si una de las dos ya no está abierta, se rechaza sin mover nada. Implicados: TABLE-F16, KITCHEN-F28

SALE-F25 Pasar la cuenta a otra mesa

Estado: hecho en Mesas (TABLE-F15): la cuenta no cambia Vertical: restaurante Actor: empleado, responsable Pantalla: ninguna Pasos: 1. En el control de mesa (de Mesas), pulsa «Transferir». 2. Elige la mesa libre. Entra: la mesa de destino, de Mesas. Sale: nada en Ventas. Si falla: lo dirá Mesas. Implicados: TABLE-F15

SALE-F26 Cobrar una cita desde la agenda

Estado: hecho — el botón «Cobrar» de la agenda es de Citas (APPOINTMENT-F17) Vertical: peluquería Actor: empleado, responsable Pantalla: Vender Pasos: 1. En la agenda de Citas, «Cobrar» abre la cuenta de la cita (con una línea por servicio, a su precio reservado y con la profesional) y lleva al TPV con esa cuenta en pantalla (/sale/pos?order=<id>). 2. Se cobra como en SALE-F01; si se aparca y se recupera, la cuenta sigue atada a la cita. 3. Pulsar «Cobrar» otra vez (o en otro dispositivo a la vez) vuelve a la misma cuenta abierta: una cita tiene una sola cuenta abierta, nunca dos. Entra: la cita, de Citas. Sale: la venta con la cita y la profesional (avisa: venta cobrada y venta nacida de una cita, con la cita, quién atendió y el total). Si falla: enlazar una cita a una cuenta que ya no está abierta se rechaza; enlazarla a otra cuenta cuando ya tiene una abierta, «Esa cita ya tiene una cuenta abierta: cobra esa (Cuentas abiertas).». Si la dirección nombra una cuenta que ya no está abierta (se cobró, se anuló) o que no existe, el TPV lo dice («Esa cuenta ya no está abierta…») y sigue como estaba. Implicados: APPOINTMENTS-F17

SALE-F27 Pagar una línea con un bono

Estado: hecho Vertical: peluquería Actor: empleado, responsable Pantalla: Cobro Pasos: 1. Con Servicios activa y la clienta asignada a la cuenta, pulsa «Cobrar»: aparece «Líneas pagadas de otra forma» con cada línea de un servicio del cobro y, en su hueco, «Pagar esta línea con un bono»: los bonos de la clienta que cubren ese servicio, el que se gasta primero y por qué (SERVICE-F22). 2. Si la línea es de más de una unidad («Corte × 2»), pulsa «Separar en N líneas»: un bono paga una línea entera de una unidad, y cada una tiene su hueco. 3. Elige el bono (viene elegido el que se gasta primero) y pulsa «Gastar una sesión»: la línea pasa a 0,00 € con «Ya pagado · », el importe del cobro baja y el hueco dice «: sesión gastada. Quedan N.» con «Deshacer». Lo que no paga el bono se cobra con su medio; si el bono paga todo, se cobra 0,00 € sin medio de pago. 4. Cobra: la línea sale en el tique a 0,00 € con «Ya pagado · » y la sesión queda gastada. 5. Cerrar la hoja, aparcar la cuenta, recargar o cobrarla en otro dispositivo no cambia nada: la línea de la cuenta guarda el bono que la paga. Entra: los bonos de la clienta y su saldo, de Servicios. Sale: la línea de la cuenta pagada con una sesión reservada de Servicios (avisa: cuenta cambiada); al cobrar, la venta con la línea a 0,00 € y la sesión gastada en la misma operación (SERVICE-F24). Quitar la línea, anularla o eliminar la cuenta suelta la sesión (SERVICE-F23); dividir o juntar cuentas la lleva con su línea. Una línea pagada con bono no cambia de cantidad, invitación ni descuento: se deshace el bono antes. Si falla: los motivos de Servicios se leen en el hueco («Este bono ya no tiene sesiones disponibles.», «Este bono ha caducado.»…). Una línea que no es de un servicio, una invitación o una de varias unidades no se puede pagar con bono («Un bono paga una línea de una unidad: separa la línea antes.»); un descuento de importe fijo de la cuenta mayor que lo que quedaría por pagar se rechaza («Ese descuento es mayor que el importe del que se descuenta.»). Al cobrar, nada se cobra si la sesión ya no está reservada (pasó un día, SERVICE-F25) o si la venta no es de la titular del bono: se lee el motivo en la hoja y se deshace el bono. El descuento máximo sin responsable se mide sobre lo que queda por pagar: una línea pagada con bono no cuenta. Sin permiso para gastar sesiones, el hueco no aparece. Queda fuera hasta la fase 2 (activación por hub): sin Servicios activa el hueco tampoco aparece y, si se apaga con líneas pagadas con bono, cobrarlas se rechaza («Servicios no está activa en este negocio…»); hoy la plataforma no apaga apps por hub y ese camino solo se prueba en los tests. Implicados: SERVICE-F22, SERVICE-F23, SERVICE-F24, SERVICE-F25

SALE-F28 Consultar el historial y las cifras de ventas

Estado: hecho Vertical: común Actor: empleado (historial), responsable (cifras) Pantalla: Ventas Pasos: 1. Abre Ventas / TPV → Ventas. Arriba, el periodo («Hoy» por defecto, «7 días», «30 días», «Todo»), contado en el día del negocio. 2. Las cifras del periodo: «Tickets», «Ingresos», «Ticket medio», «IVA», «Descuentos» y «Anuladas». «Ingresos» ya resta lo devuelto. 3. La tabla: Fecha, Número, Cliente, Pago, Estado (Completada, Anulada, Devuelta; con «Por devolver » si se devolvió una parte) y Total. Busca con «Buscar número o cliente…», filtra por estado, pago, fecha o total, u ordena. 4. Toca una fila para ver su documento (SALE-F29). La tabla se recarga sola cuando se cobra, anula o devuelve una venta. Entra: nada de otras apps. Sale: nada. Si falla: «Error cargando métricas» (las cifras salen como «—»). Vacía: «Aún no hay ventas.». Quien no tiene permiso de informes ve la tabla, sin las cifras. Un total que no es un importe dice «Escribe un importe, como 12,50» bajo su campo, y una fecha final anterior a la inicial, «La fecha final no puede ser anterior a la inicial.»; ninguno de los dos filtra y manda el periodo. Implicados: STAFF-F21

SALE-F29 Ver y reimprimir el documento de una venta

Estado: hecho — sin el QR de VeriFactu, que llega con su app Vertical: común Actor: empleado, responsable Pantalla: Documento de venta Pasos: 1. En Ventas, toca la fila o la acción «Documento»; también se abre solo tras cobrar, la cuenta entera o una parte (SALE-F22). 2. Se ve el tique («Tique», o «Factura» si se cobró como factura) con su cabecera, el número que le dio Facturación en el cobro («Factura FACT-2026-000012», «Tiquet TICKET-2026-000031»; sin Facturación, o mientras su documento está pendiente, el número de la venta), fecha, líneas, una fila de IVA por clave fiscal (un exento dice su causa: «Exento (E1)»), total, forma de pago, entregado y cambio, y el pie. Si su documento fiscal no se pudo emitir al cobrar, el papel lo dice bajo el número («Documento fiscal pendiente») y, encima del papel (fuera de lo que se imprime), el aviso «Documento fiscal pendiente — Facturación no pudo emitirlo al cobrar (falta el emisor, o un permiso). Cuando esté resuelto, emítelo ahora.» con «Emitir ahora». 3. Pulsa la impresora del pie para imprimirlo, o «Reimprimir» en la fila. Toda impresión desde Ventas sale con «DUPLICADO»; solo el primer papel justo tras cobrar es el original. 4. Documento pendiente: en la lista, una venta con algún documento fiscal pendiente (el suyo, la rectificativa de su anulación o la de una devolución) lleva la pastilla «Documento pendiente» bajo su estado y la acción «Emitir ahora» (quien cobra). «Emitir ahora» pide a Facturación, por nombre y con la sesión de quien lo pulsa, todo lo que espera, en orden (su tique o factura y luego las rectificativas) y sale «Documentos fiscales emitidos.». La fase 1 no tiene relay que lo emita solo. Entra: la venta, con el número de su documento fiscal (que Facturación le dio en el mismo cobro). Sale: el papel; reimprimir no crea venta ni documento fiscal. «Emitir ahora» emite los documentos que esperaban (avisa: venta con su documento, uno por documento). Si falla: «Cargando documento…» y «Error cargando el documento». «No se pudo imprimir». «Emitir ahora» rechazado dice el motivo de Facturación («Configura el emisor…») y no cambia nada; sin palabras del servidor, «No se han podido emitir los documentos. Inténtalo de nuevo.». Implicados: INVOICE-F01, INVOICE-F02, INVOICE-F06 Pendiente: el QR de VeriFactu llega con su app; el A4 de una factura con los datos del destinatario lo imprime Facturación (INVOICE-F18).

SALE-F30 Anular una venta cobrada

Estado: hecho Vertical: común Actor: responsable Pantalla: Ventas, Anular venta Pasos: 1. En Ventas, en una venta Completada sin devoluciones, pulsa «Anular». 2. Se abre «Anular la venta ». Escribe el «Motivo (obligatorio)» y pulsa «Anular», o «Cancelar». 3. Sale «Venta anulada», la ventana se cierra, la fila pasa a Anulada y la cifra «Anuladas» sube. Entra: la venta elegida. Sale: la venta marcada como anulada con hora, quién y motivo; no se borra (avisa: venta anulada). Con Facturación, la rectificativa del tique entero (R5, serie «RECT») en la misma anulación (INVOICE-F07); si el tique había quedado pendiente, se emite antes, en la misma anulación. Si Facturación sigue sin poder, la anulación sigue adelante y los dos documentos quedan pendientes, a la vista (SALE-F29, «Emitir ahora»). Inventario repone el stock (INVENTORY-F23) y Clientes resta la compra (CUSTOMER-F21). Si falla: sin motivo, «Hace falta un motivo para anular una venta»; si se cobró como factura completa, «Esta venta lleva factura completa: emite una factura rectificativa en vez de anularla»; con devoluciones, «Esta venta ya tiene devoluciones: devuelve el importe que queda en vez de anularla»; anulada desde otro dispositivo a la vez, «Esta venta ya está anulada». Un rechazo se lee dentro de la ventana, que sigue abierta. Sin permiso no aparece «Anular». Implicados: INVENTORY-F23, CUSTOMER-F21, INVOICE-F07

SALE-F31 Devolver una venta (toda, una parte o por otro medio)

Estado: hecho Vertical: común Actor: responsable Pantalla: Devolver Pasos: 1. En Ventas, en una venta Completada (también con factura), pulsa «Devolver». 2. «Devolver la venta » enseña una tarjeta por cada forma en que se pagó: «Cobrado», «Ya devuelto» y «Devolvible», con una propuesta de devolución total ya repartida («Devolver todo» la repone). 3. Si el cliente devuelve artículos, márcalos en «Qué se devuelve»: el importe se propone solo (la parte de cada línea marcada, sin pasar de lo que queda). Con dos o más unidades por devolver, sale «Unidades que vuelven» para elegir cuántas. Una línea de la que ya volvió una parte dice « de ya devueltas»; la que ya volvió entera sale como «Ya devuelta». Sin marcar nada solo se devuelve dinero. 4. Cambia el «Importe a devolver» de cada forma si solo vuelve una parte. Si el medio original ya no está disponible, elige otro en «Devolver por». 5. Escribe el «Motivo» y pulsa «Devolver ». 6. Sale «Devolución registrada.»; si ya no queda nada por devolver, la venta pasa a Devuelta; si queda, la fila dice «Por devolver ». Entra: lo cobrado y lo ya devuelto por cada forma de pago; las líneas de la venta y las que ya volvieron. Sale: el documento de devolución con una fila por forma de pago, las líneas que vuelven con sus unidades, su motivo y quién la hizo (avisa: venta devuelta, con las líneas devueltas y si queda devuelta del todo) y, con Facturación, su rectificativa en la misma devolución (R5 de un tique, R1 de una factura; por diferencias, o lo que queda si cierra la venta: INVOICE-F09, F10). Si falla: «: es más que los que quedan por devolver.», «: elige por dónde vuelve este dinero.», «Una devolución necesita un motivo.», «No queda dinero por devolver en esta venta.». Si otra devolución se lleva a la vez lo último de una línea marcada: «Una de las líneas marcadas ya se devolvió en otra devolución. Vuelve a abrir la devolución para ver lo que queda.». Si el hub no contesta, repetir con la misma clave no devuelve dos veces. Implicados: INVENTORY-F24, CUSTOMER-F22, INVOICE-F09, INVOICE-F10 Clientes resta lo devuelto del gasto de la ficha al oír «venta devuelta» (CUSTOMER-F22) e Inventario repone las unidades que vuelven (INVENTORY-F24), una vez por devolución.

SALE-F32 Devolver la sesión de un bono

Estado: hecho Vertical: peluquería Actor: responsable Pantalla: Devolver, Anular venta Pasos: 1. En Ventas, pulsa «Devolver» en una venta con líneas pagadas con bono (sale también en una pagada entera con bono, a 0,00 €, mientras le quede una sesión por devolver). 2. En «Qué se devuelve», la línea pagada con bono dice «Ya pagado · ». Márcala: «La sesión vuelve a .». 3. Escribe el «Motivo» y pulsa el botón: con dinero, «Devolver »; solo la sesión, «Devolver la sesión». 4. Anular la venta (SALE-F30) devuelve también todas sus sesiones. Entra: las líneas de la venta pagadas con bono y lo que ya volvió de cada una. Sale: la devolución (avisa: venta devuelta) y la sesión de vuelta en su bono en la misma operación (SERVICE-F26, SERVICE-F27). La venta pasa a Devuelta cuando vuelven todo el dinero y todas sus sesiones. Si falla: «Una devolución tiene que devolver dinero o la sesión de un bono.»; una sesión ya devuelta, «Una de las líneas marcadas ya se devolvió…». Queda fuera hasta la fase 2 (activación por hub): si Servicios no está activa, la devolución o la anulación de una venta con sesiones se rechaza («Servicios no está activa en este negocio…»); hoy la plataforma no apaga apps por hub y ese camino solo se prueba en los tests. Implicados: SERVICE-F26, SERVICE-F27

SALE-F33 Unir las ventas de dos fichas de cliente

Estado: hecho Vertical: común Actor: sistema Pantalla: ninguna Pasos: 1. En Clientes, alguien une dos fichas de la misma persona (CUSTOMER-F13). 2. Las ventas de la ficha absorbida pasan a la que queda, en cualquier estado. Entra: la ficha absorbida y la que queda (avisa Clientes: fichas unidas). Sale: el vínculo de las ventas con la ficha; el nombre impreso, el número y los importes no cambian. Si falla: no hay pantalla; repetirlo no cambia nada. Implicados: CUSTOMER-F13

SALE-F34 Ajustar el TPV

Estado: hecho Vertical: común Actor: responsable, administrador Pantalla: Ajustes Pasos: 1. Abre Ventas / TPV → Ajustes; arriba se lee «TPV». 2. Cambia lo que necesites: «Permitir efectivo», «Permitir tarjeta», «Permitir transferencia», «Mostrar productos en el TPV», «Mostrar servicios en el TPV», «Exigir cliente en cada venta», «Permitir descuentos», «Descuento máximo que puede aplicar solo quien cobra, por descuento (%)», «Permitir tiques aparcados», «Precios con IVA incluido», «Emitir factura si el cliente tiene NIF», «Documento por defecto» («Tique» o «Factura»), «Cabecera del recibo», «Pie del recibo», «Imagen de pie (URL)», «URL del QR promocional» y «Texto del QR promocional». 3. Pulsa Guardar: sale «Ajustes guardados.». Entra: nada de otras apps. Sale: los ajustes del negocio (una fila). El servidor aplica al cobrar «Permitir efectivo / tarjeta / transferencia», «Exigir cliente», «Permitir descuentos», el descuento máximo y los precios con IVA incluido; el TPV lee el resto al abrirse. Si falla: «No se pudieron guardar los ajustes.». Sin permiso, los campos se bloquean, no hay «Guardar» y sale «No tienes permiso para cambiar estos ajustes. Pídeselo a un administrador si lo necesitas.». Si se apagan todos los medios de pago que existen, el TPV y el servidor vuelven a aceptar todos los medios activos. Implicados: ninguno

SALE-F35 Dar de alta y ordenar las secciones del precio libre

Estado: hecho Vertical: común Actor: responsable Pantalla: Secciones Pasos: 1. Abre Ventas / TPV → Secciones. 2. Pulsa +, escribe el Nombre («p. ej. Frutas y verduras»), elige «IVA que cobra» y la Posición. 3. Pulsa «Añadir». Para cambiarlo, toca «Editar», corrige y pulsa «Guardar»; para quitarlo, «Eliminar» y confirma. 4. En Vender, la baldosa «Precio libre» ofrece estas secciones en ese orden, con su IVA al lado. Con la lista vacía ofrece las categorías de IVA tal cual. Entra: las categorías de IVA de Impuestos. Sale: la sección (nombre, categoría de IVA, posición). Lo ya vendido conserva el nombre y el IVA con que se cobró. Si falla: una categoría de IVA que no existe se rechaza junto a su campo. Una sección que otro ya borró: «Esa sección ya no está en este negocio. Recarga la lista y vuelve a intentarlo.». Implicados: TAX-F01

SALE-F36 Preparar las notas rápidas

Estado: hecho Vertical: común Actor: responsable Pantalla: Notas rápidas Pasos: 1. Abre Ventas / TPV → Notas rápidas. 2. Pulsa +, escribe la Nota (hasta 80 caracteres, p. ej. «sin sal») y la Posición. 3. Pulsa «Añadir». Para cambiarla, «Editar»; para quitarla, «Eliminar» y confirma. 4. En Vender, la hoja de la nota de una línea pinta estas notas como botones, en ese orden (SALE-F13). Entra: nada de otras apps. Sale: la nota rápida. Borrarla deja de ofrecerla; las notas ya escritas conservan su texto. Si falla: «No se ha podido guardar la nota rápida.»; una nota que ya no existe: «Esa nota rápida ya no está en este negocio. Recarga la lista y vuelve a intentarlo.». Implicados: ninguno

SALE-F37 Añadir un medio de pago (Bizum, transferencia…)

Estado: hecho — sin pantalla, como el producto actual (asistente o API) Vertical: común Actor: responsable, asistente Pantalla: ninguna (asistente o API) Pasos: 1. Pide al asistente que añada el medio y di de qué tipo es («añade Bizum como forma de pago, de tipo otro»): sin tipo se crea como efectivo. 2. El medio aparece en la hoja de cobro la próxima vez que se abre Vender. Entra: el nombre del medio y su tipo (efectivo, tarjeta, transferencia u otro). Sale: el medio de pago, activo. De fábrica el negocio tiene solo Efectivo y Tarjeta; «Permitir transferencia» no ofrece nada mientras no exista un medio de tipo transferencia. Si falla: un nombre repetido se rechaza: «Ya hay una forma de pago con ese nombre.». Implicados: ninguno

SALE-F38 Vender un servicio de Servicios

Estado: hecho Vertical: peluquería Actor: empleado, responsable Pantalla: Vender Pasos: 1. Con Servicios activa y «Mostrar servicios en el TPV» encendido, toca «Servicios» en la tira de categorías (o búscalo con la lupa). 2. Toca el servicio: entra como línea con su precio. Si no es de precio fijo («Desde», «Por hora», «Variable», «Gratis»), se abre «Importe de » con su precio como sugerencia: marca el importe y pulsa «Añadir ». 3. Cobra como en SALE-F01; la línea lleva a la profesional como cualquier otra (SALE-F16). 4. Precio de la profesional: un servicio de precio fijo hecho por una profesional que tiene su propio precio en Servicios (Fresha, Phorest y Timely cobran el suyo) entra a ese precio; sin precio propio, al del servicio. El precio se fija al añadir la línea: cambiar después de profesional (SALE-F16) no lo cambia. 5. Precio reservado: la cuenta de una cita (SALE-F26) cobra cada servicio al precio con que se reservó, aunque hoy el catálogo diga otro (booked_price). Ventas lo comprueba con Citas: la cita existe y la ve quien cobra, no está cancelada, no se presentó ni está cobrada, es de la clienta de la venta y reservó ese servicio a ese precio (uno menor, solo quien puede vender a precio libre). Sin Citas en el negocio, un precio reservado es un precio libre: solo para quien tiene ese permiso. El precio reservado manda sobre el de la profesional. Entra: los servicios en oferta, su tarifa, su mínimo y su máximo y su categoría fiscal, de Servicios; el precio propio de la profesional (sus asignaciones, service.assignment.list); la cita y lo que reservó, de Citas (appointment.appointment.get). Sale: una línea de servicio con el servicio, su precio congelado y la categoría fiscal del servicio; no mueve stock. Si falla: un servicio sin categoría fiscal sale «Falta el IVA» y no entra («No se puede vender: sin categoría fiscal. Falta configurar el IVA.»); uno archivado, «Ese servicio ya no se ofrece…»; un importe fuera del mínimo y el máximo del servicio, «Ese importe está fuera de lo que admite el servicio ( – ).». Un precio reservado que no casa con la cita: «Ese no es el precio que reservó la cita para este servicio: está cancelada, es de otra clienta, no reservó este servicio o lo reservó más barato.» (409 en su campo). Sin Servicios activa, «Servicios» no sale en la tira. Implicados: SERVICE-F09, SERVICE-F03, SERVICE-F05, APPOINTMENT-F17

Qué comparten los verticales

Pieza compartida Flujos que la usan
El cobro: mismo precio del servidor, mismo IVA, mismos rechazos y el mismo aviso de venta cobrada que escuchan Inventario y Clientes F01–F06, F22, F26
La cuenta abierta y sus líneas: el precio se congela al añadir la línea; aparcar, recuperar y cita son la misma cuenta F09–F18, F22–F24, F26
La hoja Cobro: medios, teclado, tique o factura, datos del cliente F01–F05, F22
La marca de líneas: sirve para cobrar una parte y para dividir la cuenta F22, F23
El chip «Atiende» y el sello de la línea F16, F20, F26
La anulación de una venta: un solo aviso, y cada app que reacciona decide su efecto F30
Los ajustes del TPV: los mismos para los dos negocios F34 y todos los de cobro

Servicios: lo que entra y lo que sale

Todo se puede pedir por las pantallas, el asistente (por voz o por texto, con la sesión de la propia persona) y la API, con las mismas reglas y los mismos permisos. Pensado para la voz: un producto se nombra por su id, su SKU o su nombre; un cliente por su id, su nombre, su teléfono o su email; una venta por su id o su número; una sección o una nota rápida por su id o su nombre; un medio de pago por su id, su nombre o su tipo («efectivo», «tarjeta»). Si un nombre casa con varios, se rechaza diciendo cuáles (409 *_ambiguous).

Lo que ofrece: consultas (leen, no cambian nada)

Qué da Quién puede Flujos Servicio
Las ventas, con búsqueda por número o cliente, filtros (estado, pago, cliente, profesional, días, total), orden y páginas (hasta 100); cada una dice si tiene algún documento fiscal pendiente ver ventas F28, F29 sale.sale.list
Una venta entera: cabecera, líneas, cobros, desglose de IVA y lo devuelto ver ventas F29 sale.sale.get
La venta grabada con una clave de intento de cobro ver ventas F06 sale.sale.by_idempotency_key
Las cifras de un periodo de días del negocio informes F28 sale.sale.stats
Lo vendido hoy y los tiques de hoy informes F28 sale.sale.today
Lo vendido cada uno de los últimos 7 días informes F28 sale.sale.last_7_days
Lo vendido por cada profesional en un periodo informes F16, F28 sale.sale.by_staff
Lo que cobraría una cuenta, o unas líneas, sin cobrar nada (total, base, IVA, descuentos, desglose y líneas) ver ventas F01, F21, F22 sale.checkout.preview
Las cuentas abiertas (o de otro estado), con búsqueda por título y páginas ver ventas F17 sale.order.list
Una cuenta con sus líneas sin cobrar ver ventas F17, F19 sale.order.get
Los medios de pago activos, con los que permite hoy el negocio ver medios de pago F02, F03 sale.payment_method.list
Los ajustes del TPV (para editarlos) ajustes F34 sale.settings.get
Los ajustes que el TPV necesita para vender ver ventas F01–F05 sale.pos_settings.get
Las secciones, en su orden, con su IVA de hoy ver ventas F09, F35 sale.department.list
Las notas rápidas, en su orden ver ventas F13, F36 sale.quick_note.list
El día del negocio de hoy ver ventas F28 sale.business_day.get
Por cada cobro de una venta, lo devuelto y lo que queda, y por cada línea lo que ya volvió ver ventas F31 sale.refund.options
Las devoluciones de una venta, con el estado y el número de su rectificativa ver ventas F31 sale.refund.list
La devolución grabada con una clave ver ventas F31 sale.refund.by_idempotency_key

Las ventas, las cifras, las cuentas, la previsión del cobro, los medios de pago, los ajustes, las secciones, las notas rápidas y lo devolvible se pueden seguir en vivo.

Lo que ofrece: acciones (cambian datos)

Qué hace Quién puede Flujos Servicio
Cobra una cuenta (entera o unas líneas) o unas líneas sueltas, con uno o varios medios; gasta las sesiones de sus líneas pagadas con bono; pide a Facturación su tique o su factura en el mismo cobro; en efectivo, solo con la caja abierta cobrar F01–F06, F08, F22, F26, F27 sale.sale.complete
El mismo cobro, con un descuento por encima del máximo descuento sin tope F14 sale.sale.complete_over_limit
Anula una venta cobrada con motivo (y devuelve sus sesiones de bono); con su rectificativa en la misma anulación (y antes su tique, si estaba pendiente) anular F30, F32 sale.sale.void
Emite ahora los documentos fiscales de una venta que esperan («Emitir ahora»): su tique o factura y las rectificativas de su anulación y de sus devoluciones cobrar (y el permiso de Facturación de cada documento) F29 sale.sale.issue_documents
Devuelve dinero de una venta por cobro, y las líneas que vuelven (las pagadas con bono devuelven su sesión); con su rectificativa en la misma devolución devolver F31, F32 sale.sale.refund
Abre una cuenta, con o sin líneas (artículos, servicios —a su precio reservado o al de la profesional— o precio libre); la de una cita que ya tiene una abierta devuelve esa (already) montar la cuenta F01, F17, F26, F38 sale.order.open
Añade un artículo del catálogo a una cuenta montar la cuenta F01, F10 sale.order.add_line
Añade un servicio de Servicios a una cuenta montar la cuenta F38 sale.order.add_service_line
Paga una línea de servicio con un bono de la clienta (reserva la sesión) montar la cuenta y gastar sesiones F27 sale.order.apply_voucher
Deshace el bono de una línea (suelta la sesión) montar la cuenta y gastar sesiones F27 sale.order.remove_voucher
Añade una línea a precio libre precio libre F09 sale.order.add_open_line
Cambia la cantidad, la invitación o la nota de una línea montar la cuenta F01, F10, F13, F15 sale.order.update_line
Cambia de quién es una línea montar la cuenta F16 sale.order.set_line_staff
Separa una línea de N unidades en N líneas montar la cuenta F27 sale.order.split_line
Quita una línea sin enviar montar la cuenta F01 sale.order.remove_line
Anula una línea ya enviada a cocina, con motivo anular F20 sale.order.void_line
Envía a cocina las líneas pendientes montar la cuenta F20 sale.order.fire
Divide una cuenta montar la cuenta F23 sale.order.split
Junta dos cuentas montar la cuenta F24 sale.order.merge
Anula una cuenta abierta (una vacía, sin líneas vivas ni cobros, con solo montar la cuenta) anular; vacía: montar la cuenta F18 sale.order.void
Pone el descuento de la cuenta (y su versión por encima del máximo) montar la cuenta / descuento sin tope F14 sale.order.set_discount, sale.order.set_discount_over_limit
Pone el descuento de una línea (y su versión por encima del máximo) montar la cuenta / descuento sin tope F14 sale.order.set_line_discount, sale.order.set_line_discount_over_limit
Pone el título de una cuenta (aparcar) montar la cuenta F17 sale.order.set_label
Enlaza una cuenta a su cita montar la cuenta F26 sale.order.set_appointment
Crea un medio de pago crear medios de pago F37 sale.payment_method.create
Guarda los ajustes del TPV ajustes F34 sale.settings.update
Crea, cambia y elimina secciones ajustes F35 sale.department.create, .update, .delete
Crea, cambia y elimina notas rápidas ajustes F36 sale.quick_note.create, .update, .delete

Lo que avisa

Aviso Cuándo Qué lleva Servicio
Venta cobrada Cobrar La venta, su número, cuenta, documento, importes en céntimos, moneda, momento, cliente y su copia fiscal, quién atendió, cita, cobros y líneas (producto o servicio, cantidad, si es servicio, si la pagó un bono, importes) sale.sale.completed
Venta nacida de una cita Cobrar una cuenta con cita La venta, la cita, quién atendió y el total sale.sale.created_from_appointment
Venta anulada Anular La venta, su número, motivo, quién y cuándo, total, cliente, cuenta y documento sale.sale.voided
Venta devuelta Devolver La venta, la devolución, el importe, el motivo, si queda devuelta del todo, los cobros y las líneas devueltas sale.sale.refunded
Ventas re-apuntadas Unir fichas La ficha que queda y la absorbida sale.sale.reassigned
Venta con su documento Un documento que no se pudo emitir en el cobro, la anulación o la devolución se emite después (reintento del cobro, «Emitir ahora» o la reacción de Facturación) La venta, el documento, su número, la devolución (refund_id) o si es el de la anulación (void); uno por documento sale.sale.invoiced
Cuenta abierta Abrir o dividir La cuenta sale.order.opened
Cuenta cambiada Cualquier cambio de líneas, descuentos o título La cuenta sale.order.changed
Comanda enviada Enviar a cocina La cuenta, su título, el canal, la ronda, quién atiende y las líneas con sus notas sale.order.fired
Cuenta cerrada Cobrar lo último de una cuenta La cuenta sale.order.completed
Cuenta anulada Anular una cuenta abierta La cuenta sale.order.voided
Cuentas juntadas Juntar La absorbida y la que queda sale.order.merged
Línea quitada Quitar o anular una línea La cuenta y la línea sale.order.line_removed
Línea anulada Anular una línea enviada La cuenta, la línea y el motivo sale.order.line_voided
Medio de pago, ajustes, sección, nota rápida Crearlos o cambiarlos Cuál sale.payment_method.created, sale.settings.updated, sale.department.*, sale.quick_note.*

A qué reacciona

Aviso De Qué hace Servicio
Fichas unidas (customer.customer.merged) Clientes Pasa las ventas de la ficha absorbida a la que queda (F33) sale.customer.reassign
Documento emitido (invoice.invoice.issued) Facturación Enlaza por su origen (source = {type, sale_id, refund_id, void}) un documento que quedó pendiente: la rectificativa de una devolución vuelve a esa devolución, la de una anulación a la venta, el tique o la factura del cobro a la venta; lo demás (factura manual, F3 que sustituye, rectificativa de una factura) es de Facturación (F29) sale.sale.record_invoice

Lo que necesita de otras apps

  • Impuestos (requisito): la regla y el cálculo del IVA de cada línea al cobrar.
  • Clientes (requisito): la ficha del cliente de la venta y su búsqueda por nombre o teléfono; el enlace de la cuenta con su cliente lo guarda Clientes (customer.order.link).
  • Inventario (opcional): el catálogo de venta, el precio, la unidad y la categoría fiscal de cada artículo, leídos con sus propias consultas al añadir la línea.
  • Personal (opcional): el equipo para el chip «Atiende».
  • Servicios (opcional): sus servicios en oferta (service.service.list_for_sale, y service.service.get al añadir la línea), los bonos de la clienta para un servicio (service.grant.tender_options) y las sesiones de bono: las reserva, las suelta, las gasta y las devuelve llamando a sus operaciones por nombre (service.session.hold, .release, .settle, .return), con la sesión de quien vende y en la misma transacción; el precio propio de una profesional (service.assignment.list).
  • Facturación (opcional): el tique (F2) o la factura (F1) de cada cobro, la rectificativa de cada anulación (R5) y de cada devolución (R1/R5), emitidos por sus operaciones por nombre (invoice.invoice.create_from_sale, .rectify_from_void, .rectify_from_refund) con la sesión de quien cobra y en la misma transacción.
  • Caja (opcional): si se puede cobrar en efectivo ahora (cash_register.session.current), solo cuando el cobro lleva efectivo.
  • Mesas (opcional): «Elegir mesa» del TPV (F19) habla con Mesas solo por el nombre de sus operaciones, desde la pantalla y con la sesión de quien atiende: table.table.list y table.floor.status (las mesas), table.session.by_order (la mesa de la cuenta), table.session.open con la cuenta en pantalla, .restore y .park. Sin Mesas activa no hay botón.
  • Citas (opcional): la cita de una cuenta y lo que reservó, para cobrar su precio reservado (appointment.appointment.get).

Quién la usa

App Para qué Servicio
Inventario Baja el stock al cobrarse una venta, lo repone al anularse y repone lo que vuelve en una devolución sale.sale.completed, sale.sale.voided, sale.sale.refunded
Clientes Suma la compra a la ficha, la resta al anularse y resta lo devuelto sale.sale.completed, sale.sale.voided, sale.sale.refunded
Servicios No reacciona a avisos: Ventas llama a sus operaciones de sesiones al montar, cobrar, anular y devolver service.session.*
Facturación Ventas le pide el documento en el mismo cobro, anulación o devolución; sus reacciones a los avisos lo emiten si entonces no pudo (INVOICE-F06) y lee la venta, sus líneas y sus devoluciones (la requiere) sale.sale.completed, sale.sale.voided, sale.sale.refunded
Caja No reacciona a avisos: lee las ventas, anulaciones y devoluciones de cada turno (la requiere); Ventas le pregunta si la caja está abierta Sale, Refund, sale.order.list
Citas Marca cobrada la cita de una venta y lo deshace al anularla; abre la cuenta de una cita (sale.order.open) y la lleva al TPV por su dirección sale.sale.created_from_appointment, sale.sale.voided
Mesas Abre, retitula, divide y junta las cuentas de sus mesas y anula la vacía de una mesa que se cierra, por las operaciones de Ventas con la sesión de quien está en la sala; lee el estado de cada cuenta sale.order.open, .set_label, .split, .merge, .void
VeriFactu, Cocina Reaccionarán a los avisos cuando existan los avisos de arriba

Quién puede qué

Permiso Propietario Administrador Responsable Empleado Servicio
Ver ventas, cuentas, ajustes del TPV, secciones y notas rápidas sí sí sí sí sale.view_sale
Montar la cuenta (abrir, añadir, cambiar, quitar, dividir, juntar, enviar a cocina, descuento hasta el máximo) sí sí sí sí sale.add_sale
Cobrar sí sí sí sí sale.take_payment
Vender a precio libre sí sí sí no sale.sell_open_price
Descuentos por encima del máximo sí sí sí no sale.discount_over_limit
Anular ventas, cuentas abiertas con algo pedido o cobrado y líneas enviadas (una cuenta vacía la anula quien monta la cuenta) sí sí sí no sale.void_sale
Devolver sí sí sí no sale.refund_sale
Ver los medios de pago sí sí sí sí sale.view_paymentmethod
Crear medios de pago sí sí sí no sale.add_paymentmethod
Ver las cifras sí sí sí no sale.view_reports
Ajustes, secciones y notas rápidas sí sí sí no sale.manage_settings

Los papeles llegan del SaaS con prefijo (hub_owner, hub_admin, hub_manager, hub_employee); el cajero del producto actual es un empleado.

Lo que toca la sesión de un bono pide además el permiso de Servicios, porque es Servicios quien la mueve con la sesión de quien vende: pagar una línea con bono, deshacerlo, quitar, anular o cobrar una línea pagada con bono, «Gastar sesiones» (service.redeem_package, lo tienen los cuatro papeles); anular o devolver una venta con sesiones, «Devolver sesiones de bono» (service.return_session: propietario, administrador y responsable, los mismos que anulan y devuelven).