{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","employer","employee","salary","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"},"purpose":{"type":"string","description":"Finalité de l'attestation (ex. demande de crédit hypothécaire, location, dossier social)."}}},"employer":{"type":"object","additionalProperties":false,"required":["name","address","bce_number","vat_number","onss_number","joint_committee"],"properties":{"name":{"type":"string"},"legal_form":{"type":"string"},"address":{"type":"string"},"bce_number":{"type":"string","description":"Numéro d'entreprise BCE / KBO (format 0xxx.xxx.xxx)."},"vat_number":{"type":"string","description":"Numéro TVA / BTW (format BE0xxxxxxxxx)."},"onss_number":{"type":"string","description":"Numéro d'immatriculation ONSS / RSZ."},"joint_committee":{"type":"string"},"social_secretariat":{"type":"object","additionalProperties":false,"required":["name","approval_number"],"properties":{"name":{"type":"string"},"approval_number":{"type":"string"}}},"represented_by":{"type":"object","additionalProperties":false,"required":["name","title"],"properties":{"name":{"type":"string"},"title":{"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; the language of the document is compared with it and a mismatch only warns."}}},"employee":{"type":"object","additionalProperties":false,"required":["given_name","surname","national_register_number","function_title","start_date","contract_type","regime"],"properties":{"given_name":{"type":"string"},"surname":{"type":"string"},"national_register_number":{"type":"string","description":"NISS / Rijksregisternummer (format YY.MM.DD-NNN.CC)."},"function_title":{"type":"string"},"start_date":{"type":"string","format":"date","description":"Date d'entrée en service."},"contract_type":{"type":"string","enum":["cdi","cdd","student","interim","other"]},"regime":{"type":"string","enum":["full_time","part_time"],"description":"Régime de travail (temps plein / temps partiel)."},"fte_percentage":{"type":"number","minimum":0,"maximum":100,"description":"Fraction d'occupation en pourcentage (obligatoire si regime = part_time)."}}},"salary":{"type":"object","additionalProperties":false,"required":["reference_month","gross_monthly","onss_worker_rate_pct","onss_worker_amount","professional_withholding_tax","net_monthly","currency"],"properties":{"reference_month":{"type":"string","description":"Mois de référence (format YYYY-MM)."},"gross_monthly":{"type":"number","description":"Salaire mensuel brut de base."},"gross_annual":{"type":"number","description":"Salaire annuel brut (incluant 13ème mois et primes contractuelles)."},"onss_worker_rate_pct":{"type":"number","description":"Taux de la cotisation ONSS du travailleur appliqué, en pourcentage."},"onss_worker_amount":{"type":"number","description":"Montant ONSS travailleur mensuel (gross_monthly × onss_worker_rate_pct / 100)."},"professional_withholding_tax":{"type":"number","description":"Précompte professionnel mensuel retenu."},"net_monthly":{"type":"number","description":"Salaire net mensuel (gross - ONSS - précompte +/- autres)."},"currency":{"type":"string","enum":["EUR"]},"thirteenth_month":{"type":"object","additionalProperties":false,"required":["applies"],"properties":{"applies":{"type":"boolean"},"annual_amount":{"type":"number"}}},"contractual_bonus":{"type":"object","additionalProperties":false,"required":["applies"],"properties":{"applies":{"type":"boolean"},"description":{"type":"string"},"annual_target_amount":{"type":"number"}}},"meal_vouchers":{"type":"object","additionalProperties":false,"required":["face_value","employer_share","employee_share"],"properties":{"face_value":{"type":"number"},"employer_share":{"type":"number"},"employee_share":{"type":"number"}}},"eco_cheques_annual":{"type":"number","description":"Montant annuel des éco-chèques."},"company_car_atn_monthly":{"type":"number","description":"Avantage de toute nature mensuel pour la voiture de société."},"hospitalization_insurance":{"type":"boolean","description":"Assurance hospitalisation collective fournie par l'employeur."},"group_insurance":{"type":"object","additionalProperties":false,"required":["applies"],"properties":{"applies":{"type":"boolean"},"employer_contribution_pct":{"type":"number","description":"Taux de contribution employeur à l'assurance groupe (pension complémentaire)."}}},"other_benefits":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["label"],"properties":{"label":{"type":"string"},"monthly_value":{"type":"number"}}}}}},"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"}}}}}