{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","employer","employee","reference_year","benefit_lines","signature"],"properties":{"letter":{"type":"object","additionalProperties":false,"required":["place","date","language"],"properties":{"place":{"type":"string"},"date":{"type":"string","format":"date"},"language":{"type":"string","enum":["fr","nl","de","en"]},"reference":{"type":"string"}}},"employer":{"type":"object","additionalProperties":false,"required":["name","address","bce_number","onss_number","joint_committee"],"properties":{"name":{"type":"string"},"address":{"type":"string"},"bce_number":{"type":"string","description":"Numéro d'entreprise BCE/KBO."},"vat_number":{"type":"string","description":"Numéro de TVA/BTW."},"onss_number":{"type":"string","description":"Numéro ONSS/RSZ."},"joint_committee":{"type":"string","description":"CP / PC numéro et libellé."},"social_secretariat":{"type":"string"},"seat_region":{"type":"string","enum":["nl_region","fr_region","brussels","de_region"],"description":"Linguistic region of the operating seat of the employer (Flemish decree of 19 July 1973, decree of the French Community of 30 June 1982, coordinated laws of 18 July 1966, art. 52). Optional; when given, the language of the document is compared with it and a warning (information only) is raised when they do not fit."}}},"employee":{"type":"object","additionalProperties":false,"required":["given_name","surname","employee_id","function_title","start_date"],"properties":{"given_name":{"type":"string"},"surname":{"type":"string"},"employee_id":{"type":"string"},"function_title":{"type":"string"},"department":{"type":"string"},"start_date":{"type":"string","format":"date"},"statut":{"type":"string","enum":["bediende","arbeider","kaderlid"]}}},"reference_year":{"type":"integer","minimum":2020,"maximum":2100,"description":"Année de référence du récapitulatif (ex. 2025)."},"gross_annual_salary":{"type":"number","minimum":0,"description":"Salaire annuel brut de base (hors avantages extralégaux), en EUR."},"benefit_lines":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["category","name","employer_annual_eur"],"properties":{"category":{"type":"string","description":"Catégorie de l'avantage (ex. 'Pension', 'Santé', 'Alimentation', 'Mobilité', 'Formation', 'Flexibilité')."},"name":{"type":"string"},"description":{"type":"string"},"employer_annual_eur":{"type":"number","minimum":0,"description":"Contribution annuelle employeur en EUR."},"employee_annual_eur":{"type":"number","minimum":0,"description":"Contribution annuelle travailleur en EUR (retenue salariale le cas échéant)."},"total_annual_eur":{"type":"number","minimum":0,"description":"Valeur totale annuelle de l'avantage en EUR."},"nsso_treatment":{"type":"string","description":"Traitement ONSS de l'avantage (ex. 'Exonéré ONSS', 'Assujetti ONSS')."},"tax_treatment":{"type":"string","description":"Traitement IPP de l'avantage (ex. 'Exonéré IPP', 'ATN imposable')."},"legal_ref":{"type":"string","description":"Référence légale principale de l'avantage, telle que l'employeur l'indique."}}}},"total_employer_cost_eur":{"type":"number","minimum":0,"description":"Coût total employeur en EUR : salaire annuel brut + contributions employeur aux avantages."},"total_benefits_value_eur":{"type":"number","minimum":0,"description":"Valeur totale des avantages extralégaux en EUR."},"disclaimer":{"type":"string","description":"Mention légale: ce récapitulatif n'est pas un document fiscal officiel."},"signature":{"type":"object","additionalProperties":false,"required":["signatory_name","signatory_title","date"],"properties":{"signatory_name":{"type":"string"},"signatory_title":{"type":"string"},"date":{"type":"string","format":"date"}}}}}