Manual de Solicitar Factura mediante Código QR

GLOP TPV Solicitud Facturas — Versión 1.1 — Abril 2026

En pocas palabras: El módulo de Solicitar Factura permite que un cliente final, tras recibir su justificante o factura simplificada, pueda escanear un código QR impreso en el papel y solicitar que se le emita una factura completa con sus datos fiscales (nombre, NIF, dirección, etc.). El Glop TPV procesa automáticamente estas solicitudes y, opcionalmente, envía la factura por correo electrónico al cliente. El proceso principal es automático y no requiere intervención del personal del establecimiento, aunque también se dispone de un botón para reimprimir el QR bajo demanda.

1. Introducción

1.1 ¿Qué es Solicitar Factura?

El módulo de Solicitar Factura de GLOP ofrece a los clientes finales de un establecimiento la posibilidad de solicitar una factura completa con sus datos fiscales simplemente escaneando un código QR con su teléfono móvil.

Hasta ahora, si un cliente quería factura, debía solicitarla en el momento de pagar o volver al establecimiento. Con esta funcionalidad, el cliente puede hacerlo cómodamente desde su móvil en cualquier momento posterior a la compra.

El sistema se compone de tres partes que trabajan juntas:

  • Glop TPV: Imprime el código QR en los justificantes y facturas simplificadas del establecimiento, y procesa automáticamente las solicitudes recibidas.
  • Formulario web: La página donde el cliente rellena sus datos fiscales tras escanear el QR.
  • Procesamiento automático: El TPV consulta periódicamente si hay nuevas solicitudes y las gestiona sin intervención del personal.

1.2 Tres escenarios de uso

La funcionalidad cubre tres situaciones habituales:

Escenarios de solicitud de factura
EscenarioSituaciónQué ocurre
Justificante abierto El cliente recibe un justificante (cuenta sin cobrar) con QR. Escanea el QR y envía sus datos antes de pagar. El TPV asigna los datos del cliente a la cuenta. Cuando se cobre, se emitirá factura completa automáticamente en lugar de factura simplificada.
Factura simplificada cerrada El cliente ya ha pagado y tiene una factura simplificada con QR. Escanea el QR y envía sus datos después de pagar. El TPV abona la factura simplificada original y genera una nueva factura completa con los datos fiscales del cliente.
Factura completa cerrada El cliente ya ha pagado y tiene una factura completa, pero necesita modificar los datos fiscales (cambio de razón social, corrección de NIF, actualización de dirección, etc.). Escanea el QR y envía los datos corregidos. El TPV abona la factura original y genera una nueva factura completa con los datos fiscales actualizados.
Nota: El primer escenario (justificante abierto) está disponible para todas las licencias, tengan o no Cloud. El segundo escenario (factura simplificada cerrada) y el tercer escenario (modificación de factura completa) requieren licencia Cloud.

2. Requisitos previos

Antes de empezar: Verifique que su instalación de GLOP cumple con los siguientes requisitos para poder utilizar el módulo de Solicitar Factura.
RequisitoDescripciónObligatorio
Parámetro de terminal activado Cada terminal donde se desee ofrecer la solicitud de factura por QR debe tener activados los parámetros correspondientes en su configuración (ver sección 3). Obligatorio
Conexión a internet El TPV necesita conexión a internet para consultar las solicitudes pendientes en la nube y confirmar su procesamiento. Obligatorio
Licencia Cloud Para el escenario de facturas simplificadas cerradas (donde el cliente ya ha pagado), se requiere licencia Cloud. Sin ella, solo funciona el escenario de justificantes abiertos. Según escenario
Sin licencia Cloud: El escenario de justificantes abiertos funciona con cualquier licencia. Sin embargo, para el escenario de facturas simplificadas cerradas (solicitar factura después de pagar) es necesaria la licencia Cloud.

3. Configuración de parámetros en Glop

Para activar el módulo de Solicitar Factura es necesario configurar los parámetros del terminal desde el mantenimiento de terminales en Glop TPV.

3.1 Parámetros de terminal

Acceda al mantenimiento de terminales en Glop TPV. En la sección de parámetros encontrará las siguientes opciones relacionadas con Solicitar Factura:

Bloque 1: Solicitud de factura por QR en Justificantes

ParámetroFunciónRequisito
Activar solicitud de factura por QR a través de Justificantes Activa la funcionalidad en justificantes (cuentas sin cobrar). Cuando está marcado, se imprime el código QR en los justificantes y el TPV comienza a consultar periódicamente si hay solicitudes pendientes. Cualquier licencia
Obligar Factura al Solicitar Cuando un cliente ha enviado sus datos fiscales a través del QR y la cuenta aún está abierta, el sistema fuerza automáticamente que el documento de cobro sea una factura completa en lugar de una factura simplificada. El cajero no podrá cambiar el tipo de documento. Cualquier licencia
Enviar Email al Solicitar Envía automáticamente un duplicado de la factura generada por correo electrónico a la dirección que el cliente proporcionó en el formulario web. Cualquier licencia
Imprimir siempre QR en Justificante Cuando está activado, el código QR de solicitud de factura se incluye siempre integrado dentro del propio justificante, asegurando que el cliente siempre reciba el QR en el documento. Se activa automáticamente al activar el parámetro principal del bloque. Cualquier licencia

Bloque 2: Solicitud de factura por QR en Facturas Simplificadas

ParámetroFunciónRequisito
Activar solicitud de factura por QR a través de Factura Simplificada Activa la funcionalidad en facturas simplificadas ya cobradas. Permite que el cliente solicite factura completa incluso después de haber pagado. El sistema abona el documento original y genera una nueva factura. Cloud
Permitir Modificar Factura al Solicitar Permite que también se imprima el papel con QR de solicitud tras la emisión de facturas completas, para que el cliente pueda solicitar una modificación de los datos fiscales de una factura ya emitida. Cloud

3.2 Dependencia entre parámetros

Los parámetros se organizan en dos bloques independientes, cada uno con su parámetro principal:

Jerarquía de parámetros
  • Activar solicitud de factura por QR a través de Justificantes (parámetro principal bloque 1)
    • Obligar Factura al Solicitar
    • Enviar Email al Solicitar
    • Imprimir siempre QR en Justificante
  • Activar solicitud de factura por QR a través de Factura Simplificada (parámetro principal bloque 2 — solo Cloud)
    • Permitir Modificar Factura al Solicitar
Importante: Cada bloque funciona de forma independiente. Si desactiva un parámetro principal, sus parámetros dependientes se desactivarán automáticamente. El bloque 2 (Factura Simplificada) y su subparámetro solo estarán disponibles si la licencia incluye el módulo Cloud.

3.3 Configuración recomendada

Según el tipo de establecimiento y licencia, estas son las configuraciones recomendadas:

Caso de usoConfiguración
Básico: Solo quiero que los clientes puedan pedir factura antes de pagar Activar QR en Justificantes + Obligar Factura al Solicitar + Enviar Email al Solicitar (Imprimir siempre QR en Justificante se activa automáticamente)
Completo: Quiero que los clientes puedan pedir factura antes y después de pagar, y modificar datos Todos los parámetros de ambos bloques activados (Imprimir siempre QR en Justificante se activa automáticamente con el bloque 1)
Solo post-pago: Quiero que los clientes puedan pedir factura después de pagar Activar QR en Factura Simplificada + Permitir Modificar Factura
Sin email: No quiero enviar facturas por correo Activar QR en Justificantes + Obligar Factura al Solicitar (sin Enviar Email)

4. El código QR en justificantes y facturas simplificadas

4.1 Dónde aparece el QR

Una vez activada la funcionalidad, el código QR se imprime automáticamente en los documentos del establecimiento. Según el tipo de documento, aparece de dos formas distintas:

1 QR integrado en el documento: El código QR aparece directamente dentro del justificante (cuenta sin cobrar, justificante de factura, justificante servicio a domicilio), junto con un texto explicativo para el cliente.
2 Papel separado con QR: Se imprime un pequeño papel adicional justo después del documento principal, con el código QR y un mensaje invitando al cliente a solicitar su factura. Se usa en facturas simplificadas (ya cobradas) y en facturas completas.

4.2 En qué documentos se imprime

El QR se imprime en los siguientes tipos de documentos, según los parámetros activados:

Tipo de documentoParámetro necesarioTipo de QR
Justificante (cuenta sin cobrar) Activar QR a través de Justificantes QR integrado en el documento
Justificante de factura Activar QR a través de Justificantes QR integrado en el documento
Justificante servicio a domicilio Activar QR a través de Justificantes QR integrado en el documento
Factura simplificada (cobrada) Activar QR a través de Factura Simplificada Papel separado
Factura completa (cobrada) Permitir Modificar Factura al Solicitar Papel separado
Nota: Los documentos de abono nunca incluyen código QR de solicitud de factura, ya que un abono no es un documento sobre el que tenga sentido solicitar factura.

4.3 Texto del QR

El texto que acompaña al código QR es personalizable. Por defecto incluye un mensaje invitando al cliente a escanear el código para solicitar su factura. Los textos se pueden personalizar desde el archivo de configuración (ver sección 9).

4.4 Validez del QR

El código QR tiene una validez de 90 días desde la fecha de emisión del documento. Pasado este tiempo, el cliente verá un mensaje indicando que el QR ha expirado y no podrá solicitar factura.

4.5 Actualización de diseños existentes

En instalaciones nuevas, los diseños de los documentos (justificantes, facturas, etc.) ya incluyen de serie los campos necesarios para mostrar el código QR y el texto de solicitud de factura. No es necesario hacer nada adicional.

Sin embargo, en instalaciones que se actualizan desde una versión anterior, los diseños personalizados existentes no incluirán automáticamente los campos del QR. En este caso, hay dos opciones:

Opción A: Restablecer el diseño al predeterminado (recomendado)

Esta es la opción más rápida. Desde Glop, acceda al Diseñador de documentos y pulse el botón “Reestablecer informe”. Esto sustituirá el diseño actual por el diseño predeterminado, que ya incluye los campos del QR.

1 Acceda al Diseñador de documentos en Glop.
2 Seleccione el diseño del documento que desea restablecer (por ejemplo, “Justificante”).
3 Pulse el botón “Reestablecer informe”.
4 Confirme la acción en el diálogo de confirmación.
Atención: Al restablecer un informe se pierden todas las personalizaciones realizadas sobre ese diseño (cambios de fuente, logotipo, disposición de elementos, campos añadidos, etc.). Si el establecimiento tiene un diseño personalizado que desea conservar, utilice la Opción B.

Opción B: Añadir los campos manualmente en el editor

Si el establecimiento tiene un diseño personalizado y no desea perderlo, puede añadir los campos del QR manualmente desde el editor de informes (FastReport). Es imprescindible que los objetos tengan los nombres exactos indicados a continuación, ya que el sistema los busca por nombre.

1 Acceda al Diseñador de documentos en Glop y seleccione el diseño a modificar.
2 Pulse “Editar informe” para abrir el editor de FastReport.
3 Añada un objeto de tipo Imagen (Picture) en la zona del diseño donde desee que aparezca el código QR. En sus propiedades, establezca el nombre (Name) como: imgQR_SF
4 Añada un objeto de tipo Texto (Memo) encima o debajo de la imagen. En sus propiedades, establezca el nombre (Name) como: lbLeyendaSF
5 Guarde el diseño.
Los nombres deben ser exactos. El sistema busca los objetos por su nombre para asignarles el código QR y el texto. Si los nombres no coinciden exactamente (por ejemplo, si escribe imgQRSF en lugar de imgQR_SF), el QR no se mostrará en el documento impreso. No se producirá ningún error, simplemente el QR no aparecerá.
ObjetoNombre exactoTipo en FastReportFunción
Código QR imgQR_SF Imagen (Picture) Muestra el código QR que el cliente escaneará con su móvil.
Texto leyenda lbLeyendaSF Texto (Memo) Muestra el mensaje que acompaña al QR (por ejemplo, “Escanee este código QR para solicitar su factura”). El texto se rellena automáticamente desde la configuración.

Diseños que necesitan estos campos

Los campos imgQR_SF y lbLeyendaSF deben añadirse (o verificar que existen) en los siguientes diseños de documentos:

  • Justificante (cuenta sin cobrar)
  • Justificante de factura
  • Justificante servicio a domicilio
  • Justificante factura servicio a domicilio
Nota: Los diseños de facturas simplificadas y facturas completas no necesitan estos campos, ya que en esos documentos el QR se imprime en un papel separado que se genera automáticamente.

5. Botón Cliente/QR en la pantalla del TPV

Además de la impresión automática del QR en los documentos, el TPV incluye un botón “Cliente/QR” que permite al personal del establecimiento imprimir manualmente el papel con el código QR de solicitud de factura para cualquier documento seleccionado.

5.1 Dónde aparece el botón

El botón “Cliente/QR” está disponible en dos ubicaciones del TPV:

UbicaciónDescripción
Pantalla táctil principal Aparece en el panel lateral de botones de las pantallas táctiles (hostelería y comercio). Permite imprimir el QR del documento (ticket o factura) seleccionado en la lista.
Vista de salón (mesas) Aparece en la vista de gestión de mesas y salones. Permite imprimir el QR asociado a la mesa seleccionada.

5.2 Cuándo está disponible

El botón “Cliente/QR” solo está habilitado cuando el parámetro Activar solicitud de factura por QR a través de Justificantes está activo en el terminal. Si la funcionalidad no está activada, el botón aparece deshabilitado.

5.3 Cómo funciona

1 El cajero selecciona un documento (ticket o mesa) en la pantalla del TPV.
2 Pulsa el botón “Cliente/QR”.
3 El sistema imprime un papel con el código QR de solicitud de factura correspondiente a ese documento. El tipo de documento impreso (justificante de ticket o justificante de factura) se determina automáticamente según la configuración del terminal o del salón.
Caso de uso típico: Un cliente pide la cuenta, pero el justificante original se ha extraviado o el QR no se escanea bien. El cajero puede usar el botón “Cliente/QR” para imprimir un nuevo papel con el QR de solicitud de factura sin necesidad de reimprimir todo el justificante.
Importante: Es necesario tener un documento seleccionado antes de pulsar el botón. Si no hay ningún documento seleccionado, el sistema mostrará un mensaje indicando que debe seleccionar un documento o una mesa.

6. Experiencia del cliente (formulario web)

Esta sección describe lo que ve y hace el cliente final cuando escanea el código QR de su justificante o factura simplificada.

6.1 Escaneo del QR

El cliente escanea el código QR impreso en su justificante o factura simplificada utilizando la cámara de su teléfono móvil. No necesita instalar ninguna aplicación especial: la cámara nativa del móvil reconoce el QR y abre automáticamente el navegador web.

6.2 Vista previa de la factura simplificada

Si el QR corresponde a una factura simplificada ya cobrada y la licencia tiene Cloud activo, antes de mostrar el formulario se presenta una vista previa de la factura simplificada con:

  • Datos fiscales del establecimiento (nombre, CIF, dirección).
  • Líneas de la factura simplificada (artículos, cantidades, precios).
  • Total de la compra.

El cliente puede revisar que se trata de su compra correcta y pulsar “Continuar” para acceder al formulario de solicitud.

6.3 Formulario de solicitud

El formulario web solicita al cliente los siguientes datos fiscales:

CampoDescripciónObligatorio
NIF / CIF / NIE Documento de identificación fiscal del cliente. Se valida automáticamente (formato y dígito de control). Sí
Nombre / Razón social Nombre completo o razón social (en caso de empresa). Sí
Apellidos Apellidos del cliente (no aplica para empresas). No
Correo electrónico Dirección de email donde recibir la factura. Sí
Dirección Dirección fiscal. Sí
Código postal Se rellena automáticamente al seleccionar la dirección. Sí
Localidad Se rellena automáticamente al seleccionar la dirección. Sí
Provincia Se rellena automáticamente al seleccionar la dirección. Sí

6.4 Autocompletado inteligente

El formulario ofrece autocompletado para facilitar la experiencia del cliente:

1 Autocompletado por NIF: Si el cliente ya existe en la base de datos del establecimiento, al introducir su NIF/CIF/NIE el sistema reconoce automáticamente sus datos y rellena el nombre, apellidos, dirección y email. El cliente solo tiene que verificar que los datos son correctos.

6.5 Validación del NIF

El sistema valida automáticamente el formato del documento de identificación fiscal:

  • NIF: 8 dígitos + letra de control (ejemplo: 12345678Z).
  • NIE: Letra (X, Y o Z) + 7 dígitos + letra de control (ejemplo: X1234567L).
  • CIF: Letra de tipo de entidad + 7 dígitos + dígito o letra de control (ejemplo: B12345678).

Si el formato no es válido, se muestra un mensaje de error y no se permite enviar el formulario.

6.6 Envío y confirmación

Tras rellenar y enviar el formulario, el cliente ve una página de confirmación indicando que su solicitud ha sido recibida correctamente y que la factura será procesada en breve.

6.7 Situaciones especiales

El cliente puede encontrar los siguientes mensajes al escanear un QR:

SituaciónMensajeCausa
QR expirado Se muestra una página indicando que el código ha expirado. Han pasado más de 90 días desde la emisión del documento.
Solicitud duplicada Se muestra una página indicando que ya se ha solicitado factura para esta compra. El cliente (u otra persona) ya envió una solicitud de factura para la misma compra.

7. Procesamiento automático en el TPV

Una vez que el cliente envía su solicitud de factura a través del formulario web, el Glop TPV se encarga de procesarla automáticamente. No se requiere ninguna acción por parte del personal del establecimiento.

7.1 Consulta periódica de solicitudes

Cuando alguno de los parámetros principales está activo, el TPV consulta automáticamente cada 15 segundos si hay solicitudes pendientes para ese terminal. Este intervalo es configurable (ver sección 9).

Funcionamiento transparente: La consulta se ejecuta en segundo plano y no interfiere con el uso normal del TPV. El personal del establecimiento no percibe ningún cambio en su flujo de trabajo habitual.

7.2 Escenario 1: Justificante abierto (cuenta sin cobrar)

Cuando la solicitud corresponde a una cuenta que aún no ha sido cobrada:

1 El TPV recibe la solicitud con los datos fiscales del cliente.
2 Crea o actualiza el cliente en la base de datos del establecimiento con los datos recibidos (nombre, NIF, dirección, email). Si ya existe un cliente con ese NIF, actualiza sus datos.
3 Asigna el cliente a la cuenta abierta y la marca internamente como “cliente actualizado por QR”.
4 Cuando el cajero vaya a cobrar esa cuenta, el sistema fuerza automáticamente el tipo de documento a Factura (si el parámetro está activado). El cajero verá que el tipo de documento ya está seleccionado como “Factura” y no podrá cambiarlo.
Para el cajero: Al abrir la pantalla de cobro de esa cuenta, verá que el tipo de documento está fijado en “Factura” y el botón de email aparece resaltado en verde. No necesita hacer nada especial: simplemente cobra como de costumbre y el sistema se encarga del resto.

7.3 Escenario 2: Factura simplificada cerrada (ya cobrada)

Cuando la solicitud corresponde a una factura simplificada que ya ha sido cobrada:

1 El TPV recibe la solicitud con los datos fiscales del cliente.
2 Crea o actualiza el cliente en la base de datos con los datos recibidos.
3 Genera un abono del documento original (anulación contable de la factura simplificada).
4 Genera una nueva factura completa con los datos fiscales del cliente, que reemplaza al documento original.
5 Si el parámetro de envío de email está activo, envía la factura por correo electrónico al cliente.
Importante: Este escenario solo funciona si el parámetro Activar solicitud de factura por QR a través de Factura Simplificada está activo, lo cual requiere licencia Cloud.

7.4 Escenario 3: Factura completa cerrada (modificación de datos fiscales)

Cuando la solicitud corresponde a una factura completa que ya ha sido emitida y el cliente necesita modificar sus datos fiscales (por ejemplo, cambio de razón social, corrección de NIF, actualización de dirección, etc.):

1 El TPV recibe la solicitud con los datos fiscales actualizados del cliente.
2 Actualiza el cliente en la base de datos con los nuevos datos recibidos.
3 Genera un abono de la factura original (anulación contable de la factura completa).
4 Genera una nueva factura completa con los datos fiscales corregidos, que reemplaza a la factura original.
5 Si el parámetro de envío de email está activo, envía la nueva factura por correo electrónico al cliente.
Importante: Este escenario solo funciona si el parámetro Permitir Modificar Factura al Solicitar está activo, lo cual requiere licencia Cloud.
Diferencia con el escenario 2: En el escenario de factura simplificada cerrada, el cliente no tenía factura completa y la solicita por primera vez. En este escenario, el cliente ya tiene una factura completa pero necesita corregir o actualizar los datos fiscales que figuran en ella.

7.5 Resumen del procesamiento

Comparativa de los tres escenarios
AspectoJustificante abiertoFactura simplificada cerradaFactura completa cerrada
Estado del documento Sin cobrar Ya cobrado (FS) Ya cobrado (Factura)
Motivo de la solicitud El cliente quiere factura completa El cliente quiere factura completa El cliente necesita corregir datos fiscales
Acción del TPV Asigna cliente a la cuenta; al cobrar se emite factura Abona la FS original y genera nueva factura Abona la factura original y genera nueva factura con datos corregidos
Intervención del cajero Ninguna (solo cobra como siempre) Ninguna (proceso totalmente automático) Ninguna (proceso totalmente automático)
Parámetro necesario Activar QR a través de Justificantes Activar QR a través de Factura Simplificada Permitir Modificar Factura al Solicitar
Licencia necesaria Cualquier licencia Cloud Cloud

8. Envío de factura por correo electrónico

8.1 Cuándo se envía el email

Si el parámetro Enviar Email al Solicitar está activo, el sistema envía automáticamente la factura por correo electrónico al cliente en los siguientes momentos:

  • Justificante abierto: El email se envía tras cobrar la cuenta (una vez generada la factura).
  • Factura simplificada cerrada: El email se envía automáticamente tras generar la nueva factura (proceso completamente automático).
  • Factura completa cerrada: El email se envía automáticamente tras generar la nueva factura con los datos fiscales corregidos (proceso completamente automático).

8.2 Dirección de envío

La factura se envía a la dirección de correo electrónico que el cliente proporcionó en el formulario web al solicitar la factura.

8.3 Indicador visual en el cobro

Cuando una cuenta tiene un cliente asignado por QR y el parámetro de email está activo, en la pantalla de cobro el botón de email aparece resaltado en verde, indicando al cajero que la factura se enviará por correo al cliente.


9. Configuración avanzada

Estas opciones de configuración permiten ajustar el comportamiento del módulo. Se configuran en el archivo INI del TPV.

9.1 Intervalo de consulta

El tiempo entre cada consulta de solicitudes pendientes se puede ajustar:

Configuración en el archivo INI del TPV

[solicitarfactura]

interval=15

El valor se expresa en segundos. Por defecto es 15 segundos. Puede aumentarse si se desea reducir la carga de red, o reducirse si se necesita que las solicitudes se procesen más rápidamente.

9.2 Textos del QR impreso

Los textos que acompañan al código QR en el papel separado se pueden personalizar:

Configuración en el archivo INI

[solicitarfactura]

txtsolicitarjusti=Escanee este código QR para solicitar su factura

txtsolicitarfra=Escanee este código QR para solicitar su factura

txtmodiffra=Escanee este código QR para modificar los datos de su factura

Clave INISe usa enSituación
txtsolicitarjusti QR integrado en justificantes (cuentas sin cobrar) El cliente aún no ha pagado. El texto le invita a proporcionar sus datos fiscales para que, cuando se cobre la cuenta, se emita directamente una factura completa.
txtsolicitarfra Papel separado tras facturas simplificadas (ya cobradas) El cliente ya ha pagado pero solo tiene una factura simplificada. El texto le invita a solicitar una factura completa con sus datos fiscales.
txtmodiffra Papel separado tras facturas completas (ya emitidas) El cliente ya tiene factura completa pero necesita corregir o actualizar los datos fiscales (cambio de NIF, razón social, dirección, etc.).
Consejo: Adapte el texto al idioma y estilo de su establecimiento. Por ejemplo, un restaurante podría usar: “Si necesita factura, escanee este QR con su móvil”.

10. Preguntas frecuentes

¿El cliente necesita instalar alguna aplicación?

No. El código QR se escanea con la cámara nativa del teléfono móvil (disponible en todos los smartphones actuales, tanto iPhone como Android). Al escanearlo se abre automáticamente el navegador web con el formulario de solicitud.

¿Cuánto tarda en procesarse la solicitud?

El TPV consulta cada 15 segundos (por defecto) si hay nuevas solicitudes. En el caso de un justificante abierto, los datos del cliente se asignan a la cuenta en menos de un minuto. En el caso de una factura simplificada cerrada o una factura completa cerrada, el abono y la nueva factura se generan automáticamente también en menos de un minuto.

¿Qué pasa si el TPV está apagado cuando el cliente envía la solicitud?

La solicitud queda almacenada en la nube con estado “pendiente”. Cuando el TPV se encienda y comience a consultar solicitudes, la procesará automáticamente. No se pierde ninguna solicitud.

¿Un cliente puede solicitar factura más de una vez para la misma compra?

No. Si un cliente intenta solicitar factura para una compra que ya tiene una solicitud registrada, verá un mensaje indicando que ya se ha solicitado factura para esa compra. Esto evita solicitudes duplicadas.

¿Qué ocurre si el cliente introduce un NIF incorrecto?

El formulario web valida el formato del NIF/CIF/NIE en tiempo real. Si el formato no es válido (dígito de control incorrecto, longitud incorrecta, etc.), el formulario no permite el envío y muestra un mensaje de error.

¿Puedo desactivar la funcionalidad para un terminal concreto?

Sí. Cada terminal tiene sus propios parámetros de solicitud de factura por QR. Puede activarlos en los terminales de caja principal y desactivarlos en terminales secundarios, por ejemplo.

¿El QR funciona si no hay internet en el momento de escanear?

El cliente necesita conexión a internet en su móvil para acceder al formulario web. Si no tiene conexión, puede guardar el documento y escanearlo más tarde (dentro del plazo de 90 días).

¿Qué pasa si el cliente ya está en la base de datos?

Si el NIF que introduce el cliente ya existe en la base de datos del establecimiento, el formulario autocompleta automáticamente los datos (nombre, apellidos, dirección, email). El cliente puede verificarlos, corregirlos si es necesario y enviar la solicitud. En el TPV, los datos del cliente se actualizan con la información enviada.

¿El cajero necesita hacer algo especial?

En la mayoría de los casos, no. Para justificantes abiertos, el cajero simplemente cobra como siempre y el sistema fuerza el tipo de documento a Factura automáticamente. Para facturas simplificadas cerradas y para modificaciones de facturas completas, el proceso es completamente automático y no requiere ninguna acción del personal.

¿Se puede reimprimir el QR de solicitud de factura?

Sí. El botón “Cliente/QR” en la pantalla táctil y en la vista de salón permite reimprimir el papel con el código QR de solicitud de factura para cualquier documento seleccionado. Esto es útil si el cliente ha extraviado el justificante original o si el QR no se escanea correctamente. El botón solo está disponible cuando la funcionalidad de solicitud de factura por QR está activa en el terminal (ver sección 5).

¿Un cliente puede modificar los datos fiscales de una factura ya emitida?

Sí, siempre que el parámetro Permitir Modificar Factura al Solicitar esté activo (requiere licencia Cloud). Tras la emisión de una factura completa, se imprime un papel separado con un QR que permite al cliente solicitar la modificación de sus datos fiscales. El TPV abona la factura original y genera una nueva con los datos corregidos.


Documento generado para GLOP — Última actualización: Abril 2026 — Versión 1.1

Integración de plataforma de Mesas API en Glop

Requisitos:

  • La licencia con el módulo Mesas API y la integración necesaria. Configurar la integración en el propio Glop.
  • En caso de querer realizar pagos directos a las mesas, será necesario disponer de una licencia con el módulo de PagosQR

Configuración desde Glop:

La configuración en Glop se llevará a cabo en la sección de terminales, dentro de la pestaña «Módulos/API/PEDIDOS MESAS» en su apartado correspondiente.

Simplemente, será necesario marcar la casilla de verificación para activar la integración y activar los parámetros de aparcar automáticamente los pedidos recibidos y añadir artículos recibidos de nuevos pedidos a las mesas ya abiertas según conveniencia. Enlace al manual de configuraciones necesarias: Link

En caso de querer realizar pagos deberemos acceder a la pestaña de PAGOS QR y activar el envío de tickets en tiempo real.

Además tendremos que crear la forma de pago de tipo QR asociada.

También para gestionar pagos parciales por importe en los tickets deberemos habilitar su respectivo parámetro en la sección de parámetros del terminal.

Configuración desde App.glop.es (Sólo soporte)

Para activar una integración de pedidos mesa a un cliente se deberá seleccionar tanto la integración como la localización en la plataforma app.glop.es.

En el caso de que la integración cuente con la posibilidad de realizar Pagos QR, se deberá también activar dicho parámetro en el apartado de Cobros apps QR.

Localizaciones: Deliveries | Glop API Rest

  1. Obtención de localizacionesPara poder obtener las reservas y redirigirlas a nuestros terminales, necesitamos que la plataforma integradora de Reservas nos envíe localizaciones/restaurantes a las que van dirigidos las reservas.
    Nosotros hacemos un mapeo entre localizaciones y terminal de Glop de envío de las reservas.

    La plataforma integradora deberá desarrollar un endpoint al cual llamaremos para que nos devuelva las localizaciones. La respuesta debe tener estas características:[ { "id":"96f8adc9-c1dd-42a8-94a1-6b6d669bcce6", "nombre":"Nombre Localización 1" }, { "id":"96f0d827-8b28-4f65-a874-89f67e76a9b4", "nombre":"Nombre Localización 2" } ]El campo id debe ser único para todos las localizaciones existentes. El id de localización lo obtenemos de la llamada explicada aquí.El campo nombre es el nombre de cada localización (restaurante o establecimiento)
    Este endpoint debe ser remitido por la plataforma integradora a joaquin@glop.es.
  2. Nuestro sistema siempre utiliza el id de localización de un JSON de reserva para «llevarlo» hasta el terminal (una vez mapeado).
  3. La plataforma integradora necesita obtener de Glop los identificadores de las mesas para hacer un match entre el salón de Glop y el de la plataforma Obtener mesas por id grupo | Glop API Rest “La solicitud requiere que el Servicio Glop esté activo para responder a esta petición. Esto es necesario para la correcta recuperación de tablas a través de los grupos de terminales.” El ID de grupo se refiere a un establecimiento (Localización) que agrupa al menos un terminal. Un grupo puede contener uno o más terminales. Por ejemplo, si un propietario tiene dos establecimientos, esto implicaría tener dos ID de grupos diferentes: uno con uno o más terminales y el otro con sus propios terminales. Aquí un enlace al endpoint de obtener la lista de grupos de terminales: Obtener lista grupos terminales | Glop API Rest

Mesas: Obtener mesas por id grupo | Glop API Rest

  1. Obtención de mesas
    Para poder asignar las reservas a las mesas equivalentes en los salones de glop, las plataformas integradoras deberán usar este endpoint para recibir los identificadores únicos de cada mesa.
    Nosotros hacemos un mapeo entre el número de mesa en los salones Glop y los identificadores que devolvemos en el endpoint. Para poder realizar esta llamada, el software Glop deberá estar en marcha.

    Estructura endpoint a sistema externo de reservas

    curl --request GET \ --url https://api.glop.es/api/v1/cloud/tables?id_grupo={id_grupo} \ --header 'Accept: application/json' \ --header 'Authorization: Bearer 123'
    • Id_grupo: ID del grupo de terminales sobre el cual queremos obtener las mesas.
    • Authorization: Token de acceso que se obtendrá mediante el endpoint de obtener token.

      Nuestro endpoint devolverá una respuesta con estos parámetros:
    [ { "id_mesa": "12", "numero_mesa": "9", "id_salon": "1", "nombre_salon": "Salon Glop" } ]
    • id_mesa: Identificador único de la mesa.
    • numero_mesa: Número de la mesa en el salón de glop.
    • id_salon: Identificador único del salón al cual pertenece la mesa.
    • nombre_salon: Nombre del salón al cual pertenece la mesa en glop.

Revisión de los salones corresponden al grupo de terminales correcto

Revisar que los salones en la tabla TB_SALONES apunten al grupo de terminales correcto, sino al realizar la llamadas de obtener mesas no devolverá nada.

Obtener token de acceso: Autorización | Glop API Rest

  1. Obtención del token
    Para poder realizar llamadas a la API de Glop se necesitará obtener el Bearer Token de autorización mediante este endpoint. Para poder obtenerlo necesitaremos tener un sitio configurado con API Rest en App.glop.es.

    Estructura endpoint a sistema externo de reservas

    curl --request POST \ --url https://api.glop.es/api/v1/auth/oauth/token \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data '{ "grant_type": "client_credentials", "client_id": "{{client_id_client_user}}", "client_secret": "{{client_secret_client_user}}", "scope": "*" }'
    • client_id: Id de las credenciales de API Rest del sitio.
    • client_secret: Secret de las credenciales de API Rest del sitio.
      Estos valores deberán ser suministrados por el soporte de Glop.

      Nuestro endpoint devolverá una respuesta con estos parámetros:

      { "token_type": "string", "expires_in": 0, "access_token": "string" }El token a usar será el devuelto en el parámetro access_token.

Obtener Pedidos: Recibir pedidos | Glop API Rest

Glop siempre añadirá al ticket de la mesa los productos que se envíen. No se aceptarán anulaciones de líneas ya enviadas ni actualizaciones de las mismas.

Cada vez que se llame con el mismo id_mesa, se añadirán los nuevos productos a las líneas del ticket ya existente en esa mesa. Precaución: no enviar líneas de tickets que ya se enviaron anteriormente ya que se entenderán como líneas nuevas. Si no existiera ticket en esa mesa, se abriría la mesa y se crearía uno nuevo con las líneas. Si se recibe el id_mesa, el pedido se aparcará en dicha mesa en Glop, sin embargo si no se recibe el pedido se aparcará como un pedido delivery.

Estructura endpoint a sistema externo de reservas

curl --request POST \
  --url https://api.glop.es/api/v1/delivery/orders \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123' \
  --header 'Content-Type: application/json' \
  --data '{
  "orderId": "6205109ce29381c7615f187c",
  "id_mesa": "1",
  "deliveryTime": "2022-02-10T14:05:00.000000Z",
  "_created": "2022-02-10T13:18:19.000000Z",
  "_updated": "2022-02-10T13:18:20.000000Z",
  "location": "6143250ca254e1a8323bec47",
  "orderIsAlreadyPaid": true,
  "discountTotal": 0,
  "channel": {
    "slug": "uber"
  },
  "payment": {
    "amount": 3200
  },
  "customer": {
    "name": "Hector",
    "phoneNumber": "912123123",
    "phoneAccessCode": "612123123",
    "email": "900f97630cd5@deliverect.com"
  },
  "deliveryAddress": {
    "street": "Avinguda asdasd Palmer, 3",
    "streetNumber": "4, 6º",
    "postalCode": "08840",
    "city": "Viladecans"
  },
  "clientComments": "Entrega sin contacto.",
  "orderType": 2,
  "deliveryCost": 0,
  "serviceCharge": 0,
  "deliveryTip": 0,
  "items": [
    {
      "plu": "9-rusa",
      "name": "RUSA",
      "price": 700,
      "quantity": 1,
      "discount": 0,
      "productType": 1
    },
    {
      "plu": "M-241-packfamiliarpollo",
      "name": "PACK FAMILIAR POLLO",
      "price": 2500,
      "quantity": 1,
      "discount": 0,
      "productType": 1,
      "subItems": [
        {
          "plu": "1-241-1-polloentero",
          "name": "POLLO ENTERO",
          "quantity": 1,
          "productType": 1
        },
        {
          "plu": "23-241-2-patatasasadasakompana",
          "name": "PATATAS ASADAS AKOMPAÑA",
          "quantity": 1,
          "productType": 1
        },
        {
          "plu": "6-241-3-croquetasdepollo",
          "name": "CROQUETAS DE POLLO",
          "quantity": 1,
          "productType": 1
        },
        {
          "plu": "61-241-4-alioli",
          "name": "ALIOLI",
          "quantity": 1,
          "productType": 1
        }
      ]
    }
  ]
}'

Obtener Grupos de terminales: Obtener grupos de terminales | Glop API Rest

Obtener lista grupos terminales. El ID de grupo se refiere a un establecimiento (Localización) que agrupa al menos un terminal. Un grupo puede contener uno o más terminales. Por ejemplo, si un propietario tiene dos establecimientos, esto implicaría tener dos ID de grupos diferentes: uno con uno o más terminales y el otro con sus propios terminales.

curl --request GET \
  --url https://api.glop.es/api/v1/cloud/terminal-groups \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123'

Obtener lista productos: Obtener lista productos | Glop API Rest

Endpoint para obtener productos.

Esta llamada puede ser parametrizada para obtener productos según:

  • ID

Este endpoint está paginado: para más información lea aquí

curl --request GET \
  --url https://api.glop.es/api/v1/cloud/products \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123' \
  --header 'Content-Type: '

Obtener listado de terminales: Obtener listado de terminales | Glop API Rest

Obtener lista terminales.

curl --request GET \
  --url https://api.glop.es/api/v1/cloud/terminals \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123'

Módulo de Pagos QR

Obtener pre ticket por mesa: Obtener pre ticket por mesa | Glop API Rest

Esta llamada es una obtención ad-hoc contra los terminales GLOP para pedir tickets. Un ticket deberá estar aparcado en mesa para poder ser devuelto, si la mesa está abierta con ese ticket, el ticket en cuestión NO SE DEVOLVERÁ.

  1. Es una llamada no instantánea que puede dar timeout a los 20 segundos de iniciarse
  2. Si el parámetro mode=1 -> el ticket se bloqueará en GLOP y no podrá ser cobrado por el terminal, solamente por el método de pago externo que haya solicitado este ticket
  3. Si el parámetro mode=0 -> el ticket será devuelto pero no se bloqueará: SOLAMENTE USAR para consultar si hay ticket en esa mesa.
  4. El parámetro mode es OBLIGATORIO enviarlo.

El Servicio Glop debe estar activo para poder responder a esta petición.

curl --request GET \
  --url 'https://api.glop.es/api/v1/cloud/pretickets?mode=0' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123'
  --data '{ 
	"id_grupo": 1,
	"id_mesa": 1,
	"mode": 0
  }'

Detalle de las líneas.

El campo detail_type_product de los detalles de las líneas indicará si ese detalle es un producto COMBINADO, es una LÍNEA DE ARTÍCULO de menú o ARTÍCULO EXTRA. Es necesario saber esta información para cada detalle ya que si es ARTÍCULO EXTRA, el total de la línea con ARTÍCULOS EXTRAS será el resultado de la suma de total_amount más el precio de sus detalles con detail_type_product=3

Datos de prueba

Para las pruebas utilizar (no es necesario Servicio Glop activo) id_mesa=99999 id_grupo=1

Posibles errores

1.- Cuando el ticket se encuentra abierto en el TPV. Para poder obtener un ticket, este debe estar aparcado en mesa.

{
    "error": "La mesa está abierta: aparque el ticket.",
    "code": 500
}

2.- Cuando la mesa de la que se solicita el ticket no tiene ninguno.

{
    "error": "La mesa no tiene ticket aparcado.",
    "code": 500
}

Liberar un pre ticket / Cancelación de pago: Liberar un pre ticket / Cancelación de pago | Glop API Rest

Para cancelar el pago y que el ticket se pueda modificar en el terminal o utilizar otro método de pago.

Si se vuelve a querer pagar este ticket por un método de pago, volver a llamar al endpoint Obtener preticket por mesa.

curl --request PUT \
  --url https://api.glop.es/api/v1/cloud/pretickets \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer 123' \
  --header 'Content-Type: application/json' \
  --data '{
  "id_ticket": "string",
  "id_terminal": "string",
  "payments": {
    "payment_channel": "string"
  }
}'

Pagar un pre ticket / Cerrar ticket: Pagar un pre ticket / Cerrar ticket | Glop API Rest

Marcar un ticket como pagado.

Pago completo del ticket

  • El campo payments.payment_1_amount debe ser igual al total del ticket entregado en Obtener preticket por mesa.
  • El campo payment_type debe ser igual a 0.
  • No es necesario enviar las líneas del ticket a partir de la versión 8.0, no enviar ticket_lines: ver el ejemplo Ejemplo pago total. En versiones anteriores será necesario enviar un array vacío.
curl --location --request PATCH 'https://api.glop.es/api/v1/cloud/pretickets' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer 123' \
--data '{
    "id_ticket": "string",
    "id_terminal": "string",
    "num_ticket": "string",
    "sell_channel": "string",
    "pending_amount": "string",
    "date_new": "string",
    "id_mesa": "string",
    "payment_type": "0",
    "payment_channel": "string",
    "payments": {
        "payment_channel": "string",
        "payment_1_amount": "string",
        "payment_2_amount": "string",
        "payment_3_amount": "string"
    }
}'

Pagos parciales por importe del ticket

  • El campo payment_type debe ser igual a 2.
  • No es necesario enviar las líneas del ticket a partir de la versión 8.0, no enviar ticket_lines: ver el ejemplo Ejemplo pago parcial por importe. En versiones anteriores será necesario enviar un array vacío.
  • El campo payments.payment_1_amount será menor que el total del ticket entregado en «Obtener preticket por mesa».

El ticket se marcará como pagado en el terminal en el que se creó según el campo id_terminal.

curl --location --request PATCH 'https://api.glop.es/api/v1/cloud/pretickets' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer 123' \
--data '{
    "id_ticket": "string",
    "id_terminal": "string",
    "num_ticket": "string",
    "sell_channel": "string",
    "pending_amount": "string",
    "date_new": "string",
    "id_mesa": "string",
    "payment_type": "2",
    "payment_channel": "string",
    "payments": {
        "payment_channel": "string",
        "payment_1_amount": "string"
    }
}
'

Pagos parciales por artículos del ticket

  • El campo payment_type debe ser igual a 1.
  • Se deberán enviar las líneas de los artículos que se pagan (en array ticket_lines) y la suma individual (campo de cada línea amount_item) de estas corresponderá al valor de payments.payment_1_amount (la cantidad que se está pagando).
  • El campo ud_item de las líneas de los artículos acepta como máximo 3 cifras decimales.
  • El campo ud_item podrá ser igual o inferior a la línea recibida del ticket original recibido de Obtener preticket por mesa.
curl --location --request PATCH 'https://api.glop.es/api/v1/cloud/pretickets' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer 123' \
--data '
{
    "id_ticket": "string",
    "id_terminal": "string",
    "num_ticket": "string",
    "sell_channel": "string",
    "pending_amount": "string",
    "date_new": "string",
    "id_mesa": "string",
    "payment_type": "1",
    "payment_channel": "string",
    "payments": {
        "payment_channel": "string",
        "payment_1_amount": "string"
    },
    "ticket_lines": [
        {
            "id_item": "string",
            "id_lin_ticket": "string",
            "description_item": "string",
            "amount_item": "string",
            "ud_item": "string",
            "total_amount": "string",
            "tax_perc": "string",
            "tax_amount": "string",
            "tax": "string",
            "date_sale": "string",
            "id_terminal": "string",
            "id_employee": "string"
        }
    ]
}
'

Caso de uso:

  1. Obtener lista productos: Obtenemos la lista de productos disponibles a través de la integración, asegurando que el sistema pueda recuperar con precisión la información sobre los productos que se ofrecen.
  2. Obtener mesas por grupo de terminal: Continuamos verificando que el sistema pueda obtener de manera precisa la lista de mesas asociadas a un grupo específico de terminales de la integración, asegurando así que las mesas estén correctamente identificadas y disponibles para su uso.
  3. Recibir pedidos: A continuación, procedemos a recibir pedidos desde la integración, asegurándonos de que el sistema pueda procesar adecuadamente los pedidos entrantes y asignarlos a las mesas correspondientes de manera precisa y eficiente.
  4. Si la integración cuenta con la modalidad de pagos:
    • Pago parcial Por artículo: Luego, realizamos una prueba de pago parcial por artículo utilizando la funcionalidad de la integración, asegurando que el sistema pueda gestionar correctamente el pago parcial de artículos individuales dentro de un pedido.
    • Pago Parcial Por Importe: Continuamos con una prueba de pago parcial por importe utilizando la funcionalidad proporcionada por la integración, asegurándonos de que el sistema pueda gestionar correctamente el pago parcial de un pedido según el importe especificado.
    • Pago completo del ticket: Finalmente, realizamos una prueba completa de pago del ticket utilizando la funcionalidad proporcionada por la integración, asegurándonos de que el sistema pueda procesar adecuadamente el pago completo del pedido.
  5. Get Pre Ticket By Mesa y Grupo: Seguimos probando la funcionalidad para obtener un pre-ticket asociado a una mesa y grupo de terminales de la integración específicos, asegurando que el sistema pueda recuperar con precisión la información relevante para la gestión de pedidos.
  6. Liberar Pre Ticket: Probamos la capacidad del sistema para liberar un pre-ticket asociado a un pedido en la integración, asegurándonos de que el sistema pueda cancelar adecuadamente la reserva de un pedido pendiente.
  7. Save order (pedido mesa API): Finalizamos realizando pruebas para guardar un pedido de mesa utilizando la API de la integración, verificando que el sistema pueda registrar correctamente los detalles del pedido y mantener un registro adecuado de las transacciones.

Resumen:

Este documento proporciona información detallada sobre la integración con GLOP para las Mesas API.

  • Se requiere una licencia de Glop y la configuración del módulo de integración en el apartado Módulos/API/PEDIDOS MESA.
  • Se describen los diferentes casos de uso llevados a cabo con la integración.
  • Se presentan varios endpoints necesarios para la integración con GLOP, como obtener listado de productos, recibir pedidos y obtener mesas por id grupo de terminales.
  • Se detalla la estructura de los endpoints, ejemplos de respuestas y la importancia de ciertos parámetros como el User-id.

Manual de Configuración Restoo

REQUISITOS DE LICENCIA

  • La licencia debe ser Cloud o Business.
  • Debe tener marcado el módulo de Restoo en el apartado API Rest.
  • Previamente se debe configurar el Restoo (Cliente).
  • No se pueden tener habilitada más de una integración de Reservas Online de manera simultánea.

CONFIGURACIÓN DE RESTOO

Como configuración en la plataforma de Restoo tendremos que dirigirnos a la pestaña de mapeo de mesas y unir las mesas de la plataforma con las mesas de Glop mediante los ID’s de las mesas. Link

CREACIÓN DE LA RESERVA

Para crear una reserva desde la plataforma de Restoo simplemente tendremos que clickar en el botón de nueva. Enlace a la plataforma: Link

Seleccionar la fecha de la reserva.

El número de adultos y niños que se sentarán.

Seleccionar el turno y la hora de la reserva.

Y finalmente asignar la mesa en la cual se van a sentar.

GESTIÓN DE LA RESERVA DESDE GLOP

Para acceder a la gestión de reservas desde Glop primero tendremos que acceder al TPV, después en utilidades y para finalizar en Reserva Online.

Una vez estemos ya en la pestaña de Reservas Online, podremos observar un listado con todas las reservas confirmadas o pendientes de confirmar para así poder gestionarlas individualmente.

Estas reservas, podrán ser canceladas desde el botón cancelar, seleccionando una de ellas.

Nota: Cuando una reserva no cuenta con Zona ni Turno la reserva es de Cover Manager, si la reserva cuenta con dichos campos, es una reserva de Glop

Para gestionar la reserva, seleccionaremos una de ellas del listado, pulsaremos sobre el botón gestionar. Tras esto se abrirá la pantalla de ventas con la mesa seleccionada, donde podremos añadir artículos o aparcarla vacía. Si la aparcamos vacía aparecerá de color rojo como mesa reservada y si la aparcamos con articulo estará de color azul como mesa ocupada.

Tras gestionar la reserva, si por algún motivo lo deseamos podemos desvincular la reserva de esa mesa, a través del botón desvincular, de forma que la mesa volverá a aparecer en estado libre para ser ocupada.

Vídeo flujo completo de gestión de reservas


Nota de funcionamiento

En el caso de haber modificado el APIREST original de la instalación en la nube y/o licencia, es necesario borrar los registros de APIREST_BEARER de la tabla TB_TERMINALES para que conecte correctamente con los nuevos datos generados. Al intentar traspasar una mesa de una reserva, la cual en la plataforma de Restoo está asignada a 2 mesas, en glop se realizará correctamente pero este cambio no se reflejará ni en la plataforma de Restoo ni en la Api Rest de Glop.

Volver arriba

Acceder a WikiGlop