VAT calculator
POST /api/v1/tools/vatAdd or remove an explicit VAT rate. Does not determine legal tax treatment.
{
"amount": "100.00",
"rate": 24,
"amountType": "net"
}Free public beta
Deterministic calculations, PDF documents and small data conversions for applications, automations and AI agents. No payment details required. The website remains public; only key management requires email verification.
curl https://kilplane.ee/api/v1/tools/vat \
-H "Authorization: Bearer $KILPLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":"100.00","rate":24,"amountType":"net"}'Returns a JSON result with API/rule versions, request ID and a source link. Supply monetary inputs as decimal strings. The VAT rate is explicit; the API does not decide legal tax treatment.
POST /api/v1/tools/vatAdd or remove an explicit VAT rate. Does not determine legal tax treatment.
{
"amount": "100.00",
"rate": 24,
"amountType": "net"
}POST /api/v1/tools/percentageCalculate a percentage of an amount.
{
"amount": "200",
"percent": "15"
}POST /api/v1/tools/date-differenceCount calendar days between two ISO dates (maximum ten years).
{
"start": "2026-01-01",
"end": "2026-01-31",
"inclusive": true
}POST /api/v1/tools/business-daysCount workdays using the Estonian holiday calendar. Maximum ten years.
{
"start": "2026-01-01",
"end": "2026-01-31"
}POST /api/v1/tools/csv-to-jsonConvert small CSV text to JSON. Input limit 64 KiB.
{
"text": "name;amount\nTest;10",
"delimiter": ";"
}POST /api/v1/tools/json-to-csvConvert a JSON array to CSV with formula protection.
{
"text": "[{\"name\":\"Test\",\"amount\":10}]",
"delimiter": ";"
}Send JSON to POST /api/v1/documents with the same bearer key and receive PDF bytes directly. Supports invoices, quotes, estimates, receipts, credit notes, purchase/sales orders, pro forma invoices, work orders and packing slips.
curl https://kilplane.ee/api/v1/documents \ -H "Authorization: Bearer $KILPLANE_API_KEY" \ -H "Content-Type: application/json" \ --data @invoice.json \ --output invoice.pdf
Save this as invoice.json:
{
"type": "invoice",
"from": "Näidis OÜ",
"to": "Klient OÜ",
"number": "INV-001",
"date": "2026-10-24",
"due_date": "2026-11-07",
"currency": "EUR",
"vat_status": "registered",
"tax": 24,
"items": [
{
"name": "Kujundustöö",
"quantity": 2,
"unit_cost": "50.00"
}
],
"notes": "Täname koostöö eest!"
}Supported type values: invoice, quote, estimate, receipt, credit_note, purchase_order, sales_order, proforma_invoice, work_order, packing_slip.
Each attempt that reaches document validation counts as one request against the same free allowance. Maximum JSON body: 64 KiB. PDFs are generated in memory and returned with attachment headers; they are not saved to browser history or a public file store. Generating a PDF does not send, sign or submit it.
On errors, the response is JSON rather than PDF. Check the status and Content-Type before saving the result. View document schema.
60 requests/minute and 10,000/day per key, resetting at midnight UTC. Maximum request body: 64 KiB. Up to three active keys per developer. These are free beta allowances, checked against shared usage records; simultaneous requests can briefly overshoot. Future changes will be documented here. There is no billing.
Requests are processed on our server. We store operation name, key ID, status, duration and request ID, not request bodies or results. Do not send secrets in CSV or JSON. Revoke unused keys in the dashboard. Only a SHA-256 hash of each key is stored.
Errors: 400 malformed JSON, 401 invalid/revoked key, 404 unknown tool, 413 oversized body, 415 wrong content type, 422 invalid inputs, 429 allowance reached, 503 temporary service failure. Respect Retry-After and avoid retrying validation failures.
Prefer local processing? Download the Node.js runner for the same six operations. It runs on your device without an API key and without sending inputs to Kilplane.
Download local runner (.zip)Requires Node.js 20 or newer. GitHub publication is pending repository selection. This first runner covers the six calculator/data operations; browser-based image tools and document generation are not included in the local runner yet.