Document generation, as a service
Data in.
Documents out.
Design a template once. Send a JSON payload. Get back a finished PDF, with a webhook to tell your system it is ready. Invoices, statements, letters and certificates, from your own templates, priced per page in rand.
2
rendering engines
Choose per template
5
starter templates
Copy and generate in a minute
100
free pages a month
No card to start

curl -X POST https://api.tokoman.co.za/v1/documents \
-H "Authorization: Bearer tkm_live_…" \
-H "Content-Type: application/json" \
-d '{
"templateId": "invoice",
"correlationId": "INV-2026-0418",
"data": { "client": { "name": "Kruger Bros Farming" }, "total": 21160 }
}'
{ "status": "completed", "pageCount": 2, "url": "https://…/INV-2026-0418.pdf" }How it works
Three steps, and the third one runs itself
You do the first two once. After that, every document is a request your system makes and a webhook it receives.
01
Design the template once
Build it in the editor with live preview, upload your own HTML, or start from a starter template. Fields are declared, so a missing value is caught before anything is rendered.
02
Send the data
One request with the template's name and a JSON payload, over REST or a live connection. The response carries the finished document's link, page count and size.
03
Get told when it is ready
A signed webhook reaches your system with the link and whatever metadata you sent. Your customer gets their statement; your books know it happened.

What you get
Built for the documents a business actually sends
Every one of these came from a real invoice, statement or letter that had to go out correctly, on time, without a person opening a template.
Templates you own
HTML and CSS, with variables, conditions and loops. Static copy, banking details and legal text live in the template, so they never travel in a request.
Pages that add up
Declare which list should run over the page and how many rows fit. A statement with three lines and one with three hundred come from the same template.
Checked before it ships
Every payload is validated against the template's own schema first. A blank space in an invoice is worse than an error, because it gets sent.
Versions that never move
Every document remembers the version that made it. Change a template today and last year's invoice looks exactly as it did.
Webhooks, signed and retried
Each delivery is signed, carries a stable id, and is retried with backoff for an hour. A receiver that was down for a deploy still gets everything.
Realtime, if you want it
Open a live connection and generate without polling. Changes are pushed to you as they happen, filtered to what your key may see.
Your storage or ours
Documents live under your organisation's own prefix, behind time-limited links. On the Scale plan, they go straight into a bucket you own.
Two engines
A fast, proven engine for tables and letters, and a full browser engine for modern layouts and web fonts. Pick per template, or per document.
Priced per page, in rand
Plans include a monthly allowance; pages beyond it cost cents each. Or skip the plan, top up a wallet, and pay as you go.
Who it is for
Any system that sends paperwork
If your software already knows the numbers, Tokoman turns them into the page your customer expects.
Invoices and statements
Finance systems, billing platforms and marketplaces that send thousands a month.
Policy schedules and letters
Insurers and brokers producing schedules, renewal notices and confirmations.
Certificates and reports
Training providers, compliance teams and inspectors issuing numbered records.
Quotes and agreements
Sales teams and property platforms that need a signed-ready PDF on demand.

For developers
An API you can read in an afternoon
REST for the request, a signed webhook for the answer, and a realtime connection if polling is not your style. Keys are scoped, errors have codes, and the docs are the same code we test.
// What your endpoint receives, signed with your secret.
{
"event": "document.completed",
"data": {
"id": "8c1f…",
"correlationId": "INV-2026-0418",
"pageCount": 2,
"url": "https://…/INV-2026-0418.pdf",
"metadata": { "customer": "Kruger Bros" }
}
}Pricing
Per page, in rand
A plan includes pages every month; anything beyond it costs cents each. Paid plans come with 14 free days. Prices exclude VAT.
Sandbox
Build and test, free.
R0/ month
- 100 pages a month
- Stops at the limit
- Documents kept for 7 days
- 3 templates
- Watermarked output
Starter
For one product, one team.
R 249/ month
- 1 000 pages a month
- 0,25 rand a page after that
- Documents kept for 30 days
- Unlimited templates
- Clean output, no watermark
Business
For a business that sends documents every day.
R 899/ month
- 5 000 pages a month
- 0,18 rand a page after that
- Documents kept for 1 year
- Unlimited templates
- Clean output, no watermark
- Priority rendering
Scale
For volume, with your own storage.
R 2 499/ month
- 20 000 pages a month
- 0,12 rand a page after that
- Documents kept for 2 years
- Unlimited templates
- Clean output, no watermark
- Priority rendering
- Your own storage bucket
Pay as you go
No monthly fee. Top up, then pay per page. 0,35 rand a page, documents kept 30 days, no monthly fee.
Questions
Things people ask before they sign up
It turns a template and a JSON payload into a finished PDF. You design the template once; your system sends the data; Tokoman returns the document and tells you when it is ready.
Your first document is about a minute away
Sign up, copy a starter template, send it some data. The sandbox is free, needs no card, and gives you a hundred pages a month to build with.
