Guía del producto y de la API

Listar plantillas

Qué es una plantilla

Una plantilla es un diseño de documento guardado con un código que eliges. Tiene dos estados a la vez: un borrador que sigues editando y una versión publicada que usa la generación de producción. Guardar no publica, por lo que un cambio incompleto no puede llegar a tus clientes.

Devuelve las plantillas de tu espacio de trabajo con los números de sus versiones publicadas. El código de la plantilla se usa al renderizar.

Solicitud
curl https://api.pdfgine.com/api/v1/templates \
  -H "X-PDFgine-Key: $PDFGINE_KEY"
Respuesta
[
  {
    "templateId": "tpl_eca4c9985ad74913902f0469469936a1",
    "code": "invoice",
    "name": "Factura corporativa",
    "version": 5,
    "publishedVersion": 1,
    "publishedAt": "2026-08-23T08:23:21+00:00"
  }
]

Formato del número de página

El contenido de un elemento de número de página es un formato: {{ page }} se convierte en la página actual y {{ pages }} en el total. Escribe «{{ page }} / {{ pages }}» y el documento imprime «3 / 12», con contadores en el PDF y códigos de campo PAGE/NUMPAGES en Word para actualizarse solos al añadir páginas. Si el contenido no incluye marcadores, se ignora y solo se imprime el número de página.

Guardar una versión

El guardado incluye la versión que crees estar editando. Si otra persona ha guardado mientras tanto, la respuesta es 409 e indica la versión actual, para evitar sobrescrituras silenciosas.

cURL
curl -X POST https://api.pdfgine.com/api/v1/templates \
  -H "X-PDFgine-Key: $PDFGINE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
        "code": "invoice",
        "name": "Factura corporativa",
        "saveMode": "manual",
        "expectedVersion": 5,
        "changeReason": "Logotipo movido al margen derecho.",
        "definition": {
          "page": { "size": "A4", "orientation": "portrait" },
          "elements": [
            { "type": "text", "text": "Factura corporativa", "fontSize": 24 }
          ]
        }
      }'
Respuesta
HTTP/1.1 409 Conflict

{
  "type": "https://pdfgine.dev/problems/template-conflict",
  "templateCode": "invoice",
  "currentVersion": 6,
  "currentDraftRevision": 0
}

expectedVersion es opcional, pero recomendable: sin él, gana la última escritura y el cambio anterior desaparece sin dejar rastro.

Los errores más habituales

  • 409 no es un error que debas reintentar a ciegas. Lee currentVersion, obtén la definición más reciente, aplica tu cambio sobre ella y guarda de nuevo.
  • Guardar no es publicar. La generación de producción sigue usando la última versión publicada hasta que publiques el borrador.
  • El listado devuelve como máximo 200 plantillas. Si hay más, la respuesta incluye una cabecera Link con rel="next"; síguela en lugar de suponer que la primera página contiene toda la biblioteca.
  • La lectura requiere templates:read y el guardado templates:write. Una clave de solo lectura recibe un 403 al guardar, no un 401.
  • Todas las demás llamadas encuentran la plantilla por su código. Puedes cambiar su nombre libremente; cambiar el código implica crear otra plantilla.