Prueba la impresión por Internet
Introduce el código link que muestra PosPrinterDriver. El terminal debe tener activado el servicio web y la impresora nº 1 configurada y disponible.
CAFETERIA EN LA NUBE--------------------------------MESA 404 - Cafe encontrado1 Cafe con WiFi 1,50 EUR2 Galletas de datos 2,00 EUR1 Viaje por Internet GRATIS--------------------------------TOTAL 3,50 EURSi lees esto, el ticket ha viajadopor la nube y ha vuelto en papel.Prueba PosPrinterDriverNo valido como factura
Flujo completo
- 01
1. Configura y prueba la impresora 1
La cola remota documentada imprime en la impresora principal. Confirma su prueba interna.
- 02
2. Activa el servicio web
Habilita el servicio correspondiente en PosPrinterDriver y permite su ejecución en segundo plano.
- 03
3. Registra el dispositivo
Obtén o introduce el linkcode mostrado por la aplicación. Trátalo como una credencial.
- 04
4. Envía desde tu backend
Realiza una petición HTTPS GET o POST con linkcode y data al endpoint documentado.
- 05
5. Recibe el aviso e imprime
El servidor guarda el ticket y avisa al terminal por Action Cable. Android recoge el trabajo, comunica sus estados y lo envía a la impresora nº 1. Una respuesta OK significa que el servidor aceptó el trabajo; comprueba también la salida a papel.
Ejemplo POST recomendado
curl -X POST 'https://gestion.posprinterdriver.com/api/v1/api/senddatatoprinter' \ --data-urlencode 'linkcode=TU_LINKCODE' \ --data-urlencode 'data=Pedido #123Total: 12,50 €'- Para una integración automática, realiza la llamada desde tu servidor. La prueba de esta página usa un formulario POST con el código que tú introduces.
- No registres el linkcode completo en logs, analítica o herramientas de error.
Ejemplo GET
Úsalo solo si tu entorno no admite POST y codifica todos los parámetros.
https://gestion.posprinterdriver.com/api/v1/api/senddatatoprinter ?linkcode=TU_LINKCODE &data=CONTENIDO_CODIFICADOSeguimiento por trabajo
La API con seguimiento devuelve job_id, status_token, status_url, status y expires_at al aceptar un ticket. La prueba consulta esa referencia automáticamente durante unos dos minutos y permite volver a consultar sin imprimir otra vez.
Disponible al actualizar el servidor y Android a la versión con seguimiento (20.31). Los terminales anteriores solo pueden indicar retirada de la cola, no envío confirmado a la impresora.
Consultar el estado sin modificar la cola
curl 'https://gestion.posprinterdriver.com/api/v1/api/jobs/JOB_ID' -H 'Authorization: Bearer STATUS_TOKEN'- Usa el status_token devuelto al crear el trabajo. No es necesario exponer el código link en la URL.
- Un 404 significa que el trabajo no existe o ha caducado. Consultar nunca vuelve a imprimir.
Qué significa cada estado
| Estado | Significado |
|---|---|
| queued | El servidor ha guardado el ticket. |
| dispatched | El servidor ha reservado el trabajo; falta confirmación de recepción de Android. |
| received | Android ha recogido el trabajo. |
| sending | Android empieza el envío a la impresora. |
| retry_wait | Esperando impresora: conexión fallida antes de escribir. Android 20.33 o posterior reintenta automáticamente al recuperar la conexión, hasta la caducidad. |
| sent_to_printer | El envío de datos terminó sin error detectado; no confirma salida física de papel. |
| failed | Fallo detectado. Puede haber salida parcial; revisa antes de reenviar. |
| unknown | Falta confirmación. No se reimprime automáticamente. |
| legacy_completed | La app antigua retiró el trabajo de la cola, sin confirmación detallada. |
Recibir estados en tu backend
Añade returned_url al envío para recibir un POST JSON por cada cambio. La URL debe ser HTTPS y accesible desde Internet.
{ "job_id": "identificador-del-trabajo", "event_id": "identificador-del-evento", "status": "sent_to_printer", "error_code": null, "physical_print_confirmed": false}- Responde con HTTP 2xx. Los avisos se reintentan: deduplica por event_id y usa occurred_at porque pueden llegar fuera de orden.
- returned_url recibe estados; callbackurl mantiene el aviso antiguo posprintedriver=ok al retirar la cola o finalizar el envío.
- Protege tu receptor con una URL secreta y valida sus parámetros. Si hay una lista de dominios permitidos, solicita incluir el dominio del receptor.
Caducidad y duplicados
El historial y los trabajos pendientes caducan a los 7 días por defecto, configurables por el administrador. expires_at indica el límite de cada trabajo. El contenido del ticket se elimina al terminar con éxito, fallo o resultado desconocido. El historial caducado se borra automáticamente en la siguiente limpieza automática (cada cinco minutos).
Envía idempotency_key para identificar un intento. Repetir la misma clave y los mismos datos devuelve el mismo job_id durante su retención. Reutilizarla con otro contenido produce un conflicto. Tras la caducidad no se garantiza deduplicación.
Si la confirmación del terminal no llega en diez minutos, el mantenimiento marca el resultado como unknown. Si falla la conexión con la impresora antes de escribir, Android 20.33 o posterior comunica retry_wait y vuelve a intentarlo. Si el envío ya pudo empezar, no se repite. Un fallo del aviso de retorno solo reintenta ese aviso.
Parámetros verificados
| Parámetro | Obligatorio | Uso |
|---|---|---|
| linkcode | Sí | Identifica el dispositivo registrado; debe mantenerse privado |
| data | Sí | Texto y comandos, hasta 60.000 bytes |
| returned_url | No | URL HTTPS para recibir cambios de estado |
| idempotency_key | Recomendado | Clave del intento (máximo 128 caracteres) para evitar duplicados |
| pn | No usar para seleccionar | El backend revisado no lo aplica; la cola remota usa la impresora 1 |
Operación fiable
- Añade un identificador propio de trabajo para evitar duplicados en tu sistema.
- Aplica límites de tamaño y sanea el contenido antes de enviarlo.
- Distingue entre petición aceptada e impresión física confirmada.
- Si Android está sin conexión, revisa pendientes antes de reenviar manualmente.
- Mantén el dispositivo cargado y excluye la app de restricciones de batería cuando proceda.