Voor ontwikkelaars
Renderen gebeurt via de API. Dat is geen beperking, dat is het ontwerp.
Iemand anders bouwde de template. Jij stuurt JSON naar een endpoint en krijgt een renderresultaat terug (de status per document, een ondertekende downloadlink en de PDF-bytes zelf als je erom vraagt), synchroon voor één document, of als job in de wachtrij met een ondertekende webhook voor een batch. Er zijn zes native SDK’s beschikbaar, plus een gewone REST-API.
{
"documents": [{
"customer":
"Acme Inc.",
"total": 1240.00,
"lines": [ … ]
}]
}Snel starten
Render je eerste PDF in een handvol regels
Elke SDK volgt dezelfde vorm, dus het voorbeeld hieronder is de volledige integratie in elk van hen. Kies je 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
De overdracht
Je krijgt de volledige markdown-specificatie van de template
Elk gebonden veld, het type, of het altijd verplicht of voorwaardelijk is, een voorbeeldwaarde en de opmaak die de template toepast: het staat er allemaal in. Geef het aan je AI-assistent om de datamapping te schrijven, of lees het gewoon en wees in tien minuten klaar.
# 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.
Gegenereerd uit de template, niet uit het geheugen
Het wordt uitgelezen uit de template die rendert, dus het kan niet verouderen. Verandert het document, genereer de specificatie opnieuw en leg ze naast de vorige om precies te zien welke velden verschoven zijn.
Verplicht of voorwaardelijk, expliciet vermeld
„Altijd” betekent dat het veld buiten elke voorwaarde gebonden is. „Voorwaardelijk” betekent dat het binnen een voorwaardelijk element of een ternaire tak zit en terecht kan ontbreken.
Stuur ruwe waarden
Een getal is een getal en een datum is een ISO-datum. De template bepaalt de opmaak, dus jij bouwt geen strings aan jouw kant.
Afbeeldingen via URL
Stuur een URL voor foto’s en logo’s. Barcodes en QR-codes stuur je helemaal niet mee — de template genereert ze uit de waarde in je JSON.
SDK’s
Zes clients, één gedrag
Elke SDK is geschreven om native aan te voelen in zijn taal en wordt gelijk gehouden. Elke SDK staat op GitHub — kies een taal om de repository te openen.
Bulkgeneratie
Volume loopt via code, niet via de interface
Bulk renderen betekent JSON naar de API — een documents-array in één call, of een asynchrone job over een grotere set. Het is de versie van bulk die zich nog steeds gedraagt wanneer één record om 2 uur ’s nachts verkeerd gevormd is.
Eén document, nu meteen
Roep render aan en het resultaat zit in dezelfde response: status, paginatelling en een ondertekende downloadlink, met de PDF-bytes erbij als je erom vraagt. Gebruik het in een request-pad: een gebruiker klikt op „factuur downloaden” en het document komt binnen.
Fire and forget, op schaal
Zet een job in de wachtrij en ga verder. Als hij klaar is, krijg je een ondertekende webhook met tijdstempel — HMAC-SHA256, rotatiebestendig — in plaats van dat je een response moet vertrouwen.
Rechtstreeks naar de gebruiker
Vraag de ruwe PDF en render zonder persistentie: de bytes gaan rechtstreeks door naar je response. Niets op te ruimen, niets dat in een bucket ligt te wachten om een compliancevraag te worden.
Pagr verzend geen documenten naar eindklanten. De PDF (of signed link) wordt binnen de API call teruggegeven, het versturen naar een klant, een portaal of een archief blijft in jouw systeem, waar het audittraject al leeft. Opslag bepaal je zelf: houd de gerenderde bestanden in Pagr met een bewaartermijn die jij instelt, of render zonder persistentie en er blijft niets achter.
Platform
Gebouwd om ónder een product te zitten, niet ernaast
Multi-tenancy is hier geen abonnementsniveau. Organisaties, projecten, geversioneerde templates, afgebakende sleutels en verbruiksregistratie zijn hoe het platform in elkaar zit.
Organisaties en projecten
Organiseer je templates per project, gebruik een test- of productie-API-sleutel die tot elk daarvan beperkt zijn.
Geversioneerde templates
Zet een versie vast per call. Draai een slechte bewerking terug zonder een deployment aan te raken.
Verbruik en audittrajecten
Weet wat er gerenderd is, vanuit welke templateversie en met welke sleutel.
Pak een API-key en render iets.
Een gratis werkruimte, een testsleutel en 100 renders per maand. Geen kredietkaart nodig.


