Integración remota

Deposita un trabajo en la cola y recíbelo en Android.

El dispositivo se registra con un linkcode. Tu servidor envía el contenido al servicio remoto y la aplicación lo recoge para la impresora principal.

Actualizado:

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
Recibir también un aviso en mi servidor (opcional)

Al pulsar, se envía este ticket a tu terminal. Mientras el trabajo está pendiente, puedes consultar su estado sin volver a imprimir.

La respuesta aparecerá aquí al enviar el ticket.

Flujo completo

  1. 01

    1. Configura y prueba la impresora 1

    La cola remota documentada imprime en la impresora principal. Confirma su prueba interna.

  2. 02

    2. Activa el servicio web

    Habilita el servicio correspondiente en PosPrinterDriver y permite su ejecución en segundo plano.

  3. 03

    3. Registra el dispositivo

    Obtén o introduce el linkcode mostrado por la aplicación. Trátalo como una credencial.

  4. 04

    4. Envía desde tu backend

    Realiza una petición HTTPS GET o POST con linkcode y data al endpoint documentado.

  5. 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

bash
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.

text
https://gestion.posprinterdriver.com/api/v1/api/senddatatoprinter ?linkcode=TU_LINKCODE &data=CONTENIDO_CODIFICADO

Seguimiento 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

bash
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

EstadoSignificado
queuedEl servidor ha guardado el ticket.
dispatchedEl servidor ha reservado el trabajo; falta confirmación de recepción de Android.
receivedAndroid ha recogido el trabajo.
sendingAndroid empieza el envío a la impresora.
retry_waitEsperando 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_printerEl envío de datos terminó sin error detectado; no confirma salida física de papel.
failedFallo detectado. Puede haber salida parcial; revisa antes de reenviar.
unknownFalta confirmación. No se reimprime automáticamente.
legacy_completedLa 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.

json
{ "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ámetroObligatorioUso
linkcodeSíIdentifica el dispositivo registrado; debe mantenerse privado
dataSíTexto y comandos, hasta 60.000 bytes
returned_urlNoURL HTTPS para recibir cambios de estado
idempotency_keyRecomendadoClave del intento (máximo 128 caracteres) para evitar duplicados
pnNo usar para seleccionarEl 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.