Guida al prodotto e alle API

Genera un documento

Cosa fa questo endpoint

Una chiamata trasforma un modello e i tuoi dati in un file finito. Il documento viene prodotto mentre attendi e la risposta contiene un indirizzo di download, senza polling. Per documenti lunghi o processi in blocco, l'endpoint in coda svolge lo stesso lavoro in background.

Invia il codice del modello e i dati e ricevi il documento. L'URL di download nella risposta è relativo all'indirizzo di base e si recupera con la stessa chiave API.

Richiesta
curl -X POST https://api.pdfgine.com/api/v1/render \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "templateCode": "invoice",
        "format": "pdf",
        "locale": "it",
        "purpose": "production",
        "data": {
          "document": { "title": "INV-2026-001" }
        }
      }'

Il campo format accetta "pdf" o "docx". I valori numerici restano validi per i client esistenti: 1 è PDF, 2 è DOCX. Le risposte restituiscono il formato come numero.

purpose production consuma quota. Quando provi un modello, invia editor-test: l'output non consuma quota e usa la revisione della bozza non pubblicata.

L'intero ciclo di richiesta e risposta

Questa è la risposta alla chiamata precedente e la chiamata che recupera il file. Lo stato è 202: la richiesta è stata accettata e il documento è pronto.

Risposta
HTTP/1.1 202 Accepted
X-PDFgine-Pages: 1
X-PDFgine-Quota-Remaining: 4999

{
  "documentId": "doc_a96063f5dcd5400286ce9b3be9b0595b",
  "format": "pdf",
  "templateCode": "invoice",
  "templateVersion": 1,
  "templateVersionSource": "published",
  "downloadUrl": "/api/v1/documents/doc_a96063f5dcd5400286ce9b3be9b0595b/download/pdf",
  "pageCount": 1,
  "quotaRemaining": 4999,
  "meteringBasis": "pdf-equivalent"
}
cURL
curl https://api.pdfgine.com/api/v1/documents/doc_a96063f5dcd5400286ce9b3be9b0595b/download/pdf \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -o invoice.pdf

Gli errori più comuni

  • La generazione risponde 202, non 200. Un client che considera errore qualsiasi stato diverso da 200 segnala un successo come errore.
  • purpose decide due cose insieme: production usa la versione pubblicata e consuma quota, editor-test usa la bozza non pubblicata senza consumarla. Provare un modello con production è il modo più costoso.
  • 422 non è un guasto del server. Il corpo elenca sotto errors tutti i campi richiesti dal modello: la soluzione è correggere i dati inviati, non riprovare.
  • 402 indica che la quota mensile di pagine è esaurita. L'intestazione X-PDFgine-Quota-Remaining ti avvisa prima di arrivarci.
  • downloadUrl è relativo all'indirizzo API. Memorizzarlo come URL assoluto lo rende inutilizzabile quando cambia l'indirizzo: salva documentId e costruisci l'indirizzo.
Risposta →