API di stampa

Usa un service account del workspace per ottenere un token di accesso e accodare job di stampa tramite l'API Labels.

Circa 9 minuti

Superficie di integrazione supportata

L'integrazione esterna documentata è POST /v2/jobs. Accetta ID template salvato, percorso stampante, formato, orientamento, numero copie e dati dinamici.

Le altre route API sono usate dall'applicazione web Labels e dall'Agente di Stampa. Considerale interne salvo che il contratto del deployment le esponga esplicitamente.

Ottieni un token di accesso

  1. 1

    Copia la configurazione di integrazione

    Registra URL token, audience, scope, ID tenant, endpoint di stampa, chiave API e segreto API mostrato una sola volta.

  2. 2

    Richiedi un token client credentials

    Invia la chiave API come client_id e il segreto come client_secret all'URL token mostrato nella configurazione dell'integrazione.

  3. 3

    Mantieni il token temporaneo

    Conservalo solo fino alla scadenza, poi richiedine uno nuovo. Non inserire mai il segreto API in URL o log.

bash
curl --request POST "$DOORMAN_TOKEN_URL" \
  --header "Content-Type: application/x-www-form-urlencoded" \
  --data-urlencode "grant_type=client_credentials" \
  --data-urlencode "client_id=$LABELS_API_KEY" \
  --data-urlencode "client_secret=$LABELS_API_SECRET" \
  --data-urlencode "audience=$DOORMAN_AUDIENCE" \
  --data-urlencode "scope=$DOORMAN_SCOPE"

Header della richiesta

HeaderValore
AuthorizationBearer <access_token>
Content-Typeapplication/json
x-tenantL'ID tenant mostrato nella configurazione di integrazione
Idempotency-KeyPer POST /v2/jobs: una chiave stabile dell'evento applicativo, riusata solo per retry identici.

Payload del job di stampa

CampoDescrizione
idTID del template salvato.
printerIdID stampante rilevato dall'agente. Da preferire quando disponibile.
printerNome stampante. Usato come percorso di riserva e conservato nel job.
formatNome o ID del formato stampante selezionato.
orientationportrait o landscape.
numberCopiesNumero positivo di copie per ogni record etichetta.
dataArray di oggetti con chiavi uguali ai nomi esatti dei campi dinamici.

Valida senza stampare

Invia lo stesso payload a POST /v2/jobs/validate prima di accodarlo. Verifica forma, accesso al workspace, template, percorso stampante, assegnazione agent e nomi dei campi dinamici.

La validazione non è distruttiva: non crea né stampa job e non consuma la quota. Controlla gli avvisi sui campi mancanti o sconosciuti prima dell'uso in produzione.

bash
curl --request POST "$LABELS_API_BASE/v2/jobs/validate" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --header "x-tenant: $LABELS_TENANT_ID" \
  --data @print-job.json

Metti un job in coda

Con dati dinamici la risposta corretta è un array con l'ID del job accodato. Una richiesta con solo template può restituire un singolo ID. Conservalo per assistenza e correlazione.

bash
curl --request POST "$LABELS_PRINT_ENDPOINT" \
  --header "Authorization: Bearer $ACCESS_TOKEN" \
  --header "Content-Type: application/json" \
  --header "x-tenant: $LABELS_TENANT_ID" \
  --header "Idempotency-Key: shipment-2026-0042" \
  --data '{
    "idT": "template-id",
    "printerId": "printer-id",
    "printer": "Production Printer",
    "format": "100 x 50 mm",
    "orientation": "landscape",
    "numberCopies": 1,
    "data": [
      {
        "batch": "A1",
        "lotNumber": "LOT-2026-0042"
      }
    ]
  }'

Risposte comuni

StatoSignificato
200 / 201Il job è stato accodato; la risposta contiene uno o più ID.
400Contesto tenant o dati della richiesta mancanti o non validi.
401Token bearer mancante, scaduto o non valido.
403Il service account non ha jobs:enqueue, il tenant è vietato o la quota blocca la richiesta.
404Il template indicato non esiste nel tenant.
500Il server non ha accodato il job. Registra errore e contesto, senza credenziali.