Skip to content

Document template · be.accounting.payslip

Payslip — Simple (BE)

  • Render-verified
  • Commercial
  • Version 1.0.0

Belgian simple payslip — mandatory content per AR 27.9.1966 and Loi 12.4.1965

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 43 fields:

Field Required Type Description
letter Required object Document metadata
letter.place Required string Place of issuance
letter.date Required date Issuance date (ISO 8601)
letter.language Required enum Language for rendering
letter.document_reference Optional string Internal document reference
employer Required object Employer identification — Art. 1(1) AR 27.9.1966
employer.name Required string Legal name of the employer
employer.legal_form Optional string Legal form (SRL, SA, SNC, etc.)
employer.address Required string Full postal address
employer.vat_number Required string Belgian VAT number (BE0xxxxxxxxx)
employer.bce_number Required string BCE/KBO number (0xxx.xxx.xxx)
employer.onss_number Required string NSSO employer registration number
employer.joint_committee Optional string Applicable joint committee (commission paritaire / paritair comité)
employer.phone Optional string
employer.email Optional string
employee Required object Employee identification — Art. 1(2) AR 27.9.1966
employee.name Required string Full name of the employee
employee.niss Optional string Belgian National Social Security Number (numéro NISS / INSZ-nummer)
employee.function Required string Job title / function
employee.status Required enum Employment status (employé / ouvrier)
employee.start_date Optional date Employment start date
employee.iban Optional string IBAN for salary payment — protection de la rémunération (Loi 12.4.1965 Art. 5)
employee.cost_center Optional string Internal cost center
payslip Required object Payslip computation — Art. 1 AR 27.9.1966 mandatory content
payslip.period Required string Pay period (e.g. 'March 2026', '2026-03')
payslip.payment_date Required date Actual payment date
payslip.base_salary Required number Base contractual gross salary (EUR)
payslip.gross_additions Optional array of object Additional gross components (ATN, bonuses, overtime, etc.)
payslip.total_gross Required number Total gross salary (base + additions) subject to NSSO
payslip.onss_rate Required number Employee NSSO rate (%) — standard 13.07%

+13 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": "be.accounting.payslip",
    "data": { ... },
    "options": {"language": "en"}
  }' -o payslip.pdf

Frequently asked questions

What is “Payslip — Simple (BE)”?

Belgian simple payslip — mandatory content per AR 27.9.1966 and Loi 12.4.1965 On papii this document is available as template be.accounting.payslip: a JSON Schema plus a deterministic PDF renderer, so the same data always produces the same document.

Can I generate a Payslip — Simple (BE) 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 Payslip — Simple (BE) 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.