Para desarrolladores
La generación ocurre a través de la API. No es una limitación, es el diseño.
Otra persona construyó la plantilla. Tú envías JSON a un endpoint y recibes un resultado de generación: el estado de cada documento, un enlace de descarga firmado y los bytes del PDF cuando los pides. De forma síncrona para un único documento, o como trabajo en cola con webhook firmado para un lote. Hay seis SDK nativos disponibles, más una API REST sencilla.
{
"documents": [{
"customer":
"Acme Inc.",
"total": 1240.00,
"lines": [ … ]
}]
}Inicio rápido
Genera tu primer PDF en unas pocas líneas
Todos los SDK siguen la misma forma, así que el ejemplo de abajo es la integración completa en cualquiera de ellos. Elige tu stack:
var pagr = new PagrClient( Environment.GetEnvironmentVariable("PAGR_KEY")); var result = await pagr.RenderAsync(templateId, new[] { new { customer = "Acme Inc.", total = 1240.00m, lines = order.Lines } }); // result.Status, result.Documents[0].ViewUrl
La entrega
Recibes la especificación completa de la plantilla en markdown
Cada campo vinculado, su tipo, si es siempre obligatorio o condicional, un valor de ejemplo y el formato que aplica la plantilla: todo aparece en la lista. Pásaselo a tu asistente de IA para redactar el mapeo de datos, o simplemente léelo y termina en diez minutos.
# epc certificate — data model · v1 (draft) ## Root object | Field | Type | Required | Example | |---------------------|--------|-------------|--------------| | `certificateNumber` | string | Always | "20240117-1" | | `postalCode` | string | Always | "9000" | | `buildingPhoto` | image | Always | "https://…" | | `energyScore` | number | Always | 148 | | `expiryDate` | date | Always | "2035-01-17" | | `remarks` | string | Conditional | null | `energyScore` prints as "148 kWh/m²", `expiryDate` as "17 January 2035" — send raw values, the template formats. … 4 more fields omitted.
Generado desde la plantilla, no de memoria
Se extrae de la plantilla que genera el documento, así que no puede quedarse obsoleto. Cuando el documento cambie, vuelve a generar la especificación y compárala con la anterior para ver exactamente qué campos se han movido.
Obligatorio o condicional, indicado de forma explícita
«Siempre» significa que el campo está vinculado fuera de cualquier condición. «Condicional» significa que vive dentro de un elemento condicional o una rama ternaria y puede faltar legítimamente.
Envía valores en bruto
Un número es un número y una fecha es una fecha ISO. La plantilla se encarga del formato, así que no construyes cadenas por tu lado.
Imágenes por URL
Envía una URL para fotos y logotipos. Los códigos de barras y QR no los envías: la plantilla los genera a partir del valor de tu JSON.
SDK
Seis clientes, un comportamiento
Cada SDK está escrito para sentirse nativo en su lenguaje y se mantiene a la par. Cada uno está en GitHub: elige un lenguaje para abrir su repositorio.
Generación masiva
El volumen pasa por el código, no por la interfaz
Generar en masa significa JSON hacia la API: un array de documentos en una sola llamada, o un trabajo asíncrono sobre un conjunto mayor. Es la versión de lo masivo que sigue comportándose bien cuando un registro viene mal formado a las 2 de la madrugada.
Un documento, ahora mismo
Llama a render y la respuesta trae el resultado: estado, número de páginas y un enlace de descarga firmado, con los bytes del PDF incluidos cuando los pides. Úsalo en una ruta de petición: un usuario pulsa «descargar factura» y el documento llega.
Lanza y olvídate, a escala
Encola un trabajo y sigue con lo tuyo. Cuando termina recibes un webhook firmado y con marca de tiempo (HMAC-SHA256, compatible con rotación) en lugar de que te pidan confiar en una respuesta.
Directo al usuario
Pide el PDF en bruto y genera sin persistencia: los bytes van directos a tu respuesta. Nada que limpiar, nada esperando en un bucket para convertirse en una cuestión de cumplimiento.
Pagr no entrega documentos. La generación termina al darte el PDF: enviarlo a un cliente, a un portal o a un archivo se queda en tu sistema, donde ya vive el registro de auditoría. El almacenamiento lo decides tú: guarda los archivos generados en Pagr con el periodo de retención que definas, o genera sin persistencia y no se conserva nada.
Plataforma
Hecho para estar debajo de un producto, no al lado
Aquí la multitenencia no es un nivel de plan. Organizaciones, proyectos, plantillas versionadas, claves con alcance limitado y seguimiento de uso son la forma en que está montada la plataforma.
Organizaciones y proyectos
Separa con limpieza tus entornos y tus clientes, con claves de API acotadas a cada uno.
Plantillas versionadas
Fija una versión por llamada. Revierte una edición defectuosa sin tocar un despliegue.
Uso y registros de auditoría
Sabe qué se generó, desde qué versión de plantilla y con qué clave.
Coge una clave y genera algo.
Un espacio de trabajo gratuito, una clave de prueba y 100 generaciones al mes. Sin tarjeta de crédito.


