Skip to content

Document template · generic.business.invoice

Commercial Invoice

  • Render-verified
  • Commercial
  • Version 1.0.0

Country-agnostic commercial invoice. Intended to be complemented by the caller's country profile for local legal mentions (Art. 226 Council Directive 2006/112/EC for EU callers, equivalent national rules elsewhere).

JSON Schema

Fields in this template

Data sent to the API is validated against the template’s JSON Schema before anything is rendered. This template defines 36 fields:

Field Required Type Description
supplier Required object
supplier.name Required string
supplier.address Required string
supplier.vat_id Optional string Optional. Supplier VAT identification, e.g. BE0123456789.
supplier.contact_email Required string
customer Required object
customer.name Required string
customer.address Required string
customer.vat_id Optional string Optional. Customer VAT identification.
invoice Required object
invoice.number Required string
invoice.issue_date Required date
invoice.due_date Required date
invoice.reference Optional string Optional customer order reference.
invoice.notes Optional string Optional free-form note printed under the totals.
invoice.language_currency_overrides Optional object Optional overrides when the rendering locale differs from the country profile.
lines Required array of object
lines[].description Required string
lines[].quantity Required number
lines[].unit Required string Unit of measure (e.g. 'pcs', 'hour', 'kg').
lines[].unit_price Required number
lines[].vat_rate_pct Required number
lines[].amount_net Required number
totals Required object
totals.subtotal Required number
totals.vat_total Required number
totals.total Required number
totals.currency Required string ISO 4217 code, e.g. 'EUR'.
payment Required object
payment.iban Optional string Optional IBAN in electronic format, e.g. BE68539007547034.

+6 more fields — the full JSON Schema is available in the dashboard and via the API.

POST /render

Generate it

One POST /render call: send your JSON, get the finished PDF back. Or skip the JSON entirely and describe the document in plain language on chut.app.

curl
curl -X POST https://api.papii.eu/render \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "template": "generic.business.invoice",
    "data": { ... },
    "options": {"language": "en"}
  }' -o invoice.pdf

Frequently asked questions

What is “Commercial Invoice”?

Country-agnostic commercial invoice. Intended to be complemented by the caller's country profile for local legal mentions (Art. 226 Council Directive 2006/112/EC for EU callers, equivalent national rules elsewhere). On papii this document is available as template generic.business.invoice: a JSON Schema plus a deterministic PDF renderer, so the same data always produces the same document.

Can I generate a Commercial Invoice with AI?

Yes. chut.app — the AI back office papii powers — fills this template from a plain-language description: you describe the document in one sentence, the AI structures the data, papii validates it against the schema and renders the PDF. Developers can also call the papii API directly with structured JSON.

Is the Commercial Invoice template legally compliant?

This template is render-verified: its schema, sample data and PDF output are automatically tested on every release. It is published with status “ready”, meaning it has not yet been through papii’s final legal review. Where it references specific legislation, that is stated in the template description — always have a professional check documents with legal effect before relying on them.