Document generation for Dynamics 365 — and anything that can POST JSON
DocGen renders PDFs from JSON through LaTeX templates that live in a Git repository — branches are your environments, publishing pins a commit, and every document records the exact template revision that produced it.
invoice.tt template
rendered by the engine from JSON, stamped with template commit
eb46188.
Templates are T4 over LaTeX, committed to your tenant's Git repository. They bind to arbitrary JSON — no fixed schema, no per-entity classes — and document math (totals, VAT) is computed right in the template.
\newcommand{\eur}[1]{#1\,\euro}
<# foreach (var line in Model["items"].Items) { #>
<#= Tex.E(line["description"].Str) #>
& <#= line["qty"].Int #>
& \eur{<#= Money(line["unitPrice"].Dec) #>} \\
<# } #>Branches are environments (dev/test/live by default — add your own). Publishing pins the branch tip into an immutable bundle; production renders resolve the pin, never a moving branch HEAD.
POST /v1/workspaces/publish?environment=live
→ { "environment": "live", "commitSha": "eb461887…" }One authenticated request with your JSON payload. The compile runs in a sandboxed worker; poll the job and download the finished document.
POST /v1/documents
{ "templateId": "invoice",
"environment": "live", "data": { … } }
→ 202 { "jobId": "3c013c9d-…" }
GET /v1/documents/{id}/content → PDFlive count. Development, test,
workbench previews, and CI compiles are free, and metering is
idempotent on the job id — a retried job can never bill twice.
live environment. Development, test, previews, failed
renders and CI compiles are always free — build and iterate at no cost.
live — that's the whole deal.
€19 / month
50 live documents included
then €0.40 per extra document
€99 / month
750 live documents included
then €0.20 per extra document
€399 / month
5,000 live documents included
then €0.10 per extra document
Custom
Volume pricing & onboarding — contact us
Only successful live renders count toward your plan — dev, test,
previews and CI compiles are always free. Questions about volume or an annual
plan? Talk to us for a guided pilot with
your own templates.
curl -X POST https://api.docs.0-7.xyz/v1/documents \
-H "X-Api-Key: dk_…" \
-H "Content-Type: application/json" \
-d '{
"templateId": "invoice",
"environment": "live",
"data": { "client": { "name": "Contoso Retail AG" }, "items": [ … ] }
}'
Poll GET /v1/documents/{id} for state and the stamped
template commit; fetch the PDF from /content. Retries are safe —
send an Idempotency-Key header and a repeated submission returns
the original job. Full reference with every endpoint, request and response
shape: /docs.