Guia do produto e da API

Renderizar um documento

O que este endpoint faz

Uma chamada transforma um modelo e seus dados em um arquivo pronto. O documento é produzido enquanto você espera e a resposta inclui um endereço de download; não é preciso consultar o status. Para documentos longos ou tarefas em lote, o endpoint de fila faz o mesmo em segundo plano.

Envie o código do modelo e seus dados e receba o documento. A URL de download da resposta é relativa ao endereço base e usa a mesma chave de API.

Solicitação
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": "pt",
        "purpose": "production",
        "data": {
          "document": { "title": "INV-2026-001" }
        }
      }'

O campo format aceita "pdf" ou "docx". Valores numéricos continuam funcionando para clientes existentes: 1 é PDF, 2 é DOCX. As respostas retornam o formato como número.

O propósito production consome cota. Ao testar um modelo, envie editor-test: essa saída não consome cota e usa a revisão do rascunho não publicado.

O ciclo completo

Esta é a resposta à chamada acima e a chamada que busca o arquivo. O status é 202: a solicitação foi aceita e o documento está pronto.

Resposta
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

Os problemas mais comuns

  • A renderização responde 202, não 200. Um cliente que trata qualquer código diferente de 200 como falha reporta sucesso como erro.
  • purpose decide duas coisas ao mesmo tempo: production usa a versão publicada e consome cota; editor-test usa o rascunho não publicado e não consome nada. Testar com production é a forma mais cara de experimentar um modelo.
  • 422 não é uma falha do servidor. O corpo lista em errors todos os campos exigidos pelo modelo; a correção está nos dados enviados, não em uma nova tentativa.
  • 402 significa que a cota mensal de páginas acabou. O cabeçalho X-PDFgine-Quota-Remaining avisa antes de você chegar a esse ponto.
  • downloadUrl é relativa ao endereço da API. Guardá-la como URL absoluta deixa de funcionar quando o endereço muda; guarde documentId e monte o endereço.
Resposta →