Quickstart

From signing up to your first generated PDF — five minutes, no theory.

1. Create your account

Sign up with an email and a password. You land on the dashboard with a Free plan (50 generation credits + 20 AI credits, renewed monthly).

2. Create a template

From the Documents tab, click New document and pick a name (e.g. Invoice). You land in the editor with a default Hello-world template.

Replace the body with something concrete — the editor handles HTML, Tailwind classes, and Handlebars expressions:

<section class="p-12 font-sans">
  <h1 class="text-3xl font-bold">Invoice {{invoice.number}}</h1>
  <p class="mt-2 text-slate-600">Billed to {{customer.name}}</p>

  <table class="mt-8 w-full border-collapse">
    <thead>
      <tr class="border-b">
        <th class="text-left py-2">Item</th>
        <th class="text-right py-2">Amount</th>
      </tr>
    </thead>
    <tbody>
      {{#each items}}
        <tr class="border-b">
          <td class="py-2">{{label}}</td>
          <td class="py-2 text-right">{{amount}} €</td>
        </tr>
      {{/each}}
    </tbody>
  </table>

  {{#if paid}}
    <p class="mt-8 text-emerald-700 font-semibold">PAID</p>
  {{/if}}
</section>

Open the Variables panel on the right and seed it with sample data so the preview renders something meaningful:

{
  "invoice": { "number": "INV-2026-0142" },
  "customer": { "name": "Acme Corp" },
  "items": [
    { "label": "Pro subscription", "amount": 1200 },
    { "label": "Top-up — 1k PDFs", "amount": 80.50 }
  ],
  "paid": true
}

The right pane updates live. Click Save when happy.

3. Grab the document UUID

Still in the editor, copy the document's UUID from the integration panel (the long 1d8e5d56-… value). You'll pass it as documentId on every API call.

4. Create an API key

Open API Keys → New key, give it a name (e.g. Production or Dev — laptop). Copy the tk_live_… token immediately — it's shown once and never again. Stash it in your secret manager.

5. Render your first PDF

curl -X POST 'https://api.transactional.dev/v1/generate' \
  -H "x-api-token: $TRANSACTIONAL_API_TOKEN" \
  -H 'Content-Type: application/json' \
  -d '{
    "documentId": "1d8e5d56-1a4f-4b62-8c33-2d34a64b2f00",
    "variables": {
      "invoice": { "number": "INV-2026-0142" },
      "customer": { "name": "Acme Corp" },
      "items": [
        { "label": "Pro subscription", "amount": 1200 },
        { "label": "Top-up — 1k PDFs", "amount": 80.50 }
      ],
      "paid": true
    }
  }'

Response:

{
  "url": "https://files.transactional.dev/client/42/generated/.../1716470000000.pdf",
  "documentId": "1d8e5d56-1a4f-4b62-8c33-2d34a64b2f00"
}

That's your PDF. url is signed and short-lived — download it or stream it to your own bucket immediately.

Where to go next