{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","employer","employee","absence","salary","breakdown","totals","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","vat_number","onss_number","joint_committee"],"properties":{"name":{"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","description":"Numéro et nom de la Commission paritaire / Paritair Comité."},"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"}}}}},"employee":{"type":"object","additionalProperties":false,"required":["given_name","surname","address","national_register_number","date_of_birth","statut","function_title","start_date"],"properties":{"given_name":{"type":"string"},"surname":{"type":"string"},"address":{"type":"string"},"national_register_number":{"type":"string","description":"NISS / Rijksregisternummer (format YY.MM.DD-NNN.CC)."},"date_of_birth":{"type":"string","format":"date"},"statut":{"type":"string","enum":["arbeider","bediende"],"description":"Statut du travailleur : ouvrier (arbeider) ou employé (bediende)."},"function_title":{"type":"string"},"start_date":{"type":"string","format":"date","description":"Date d'entrée en service."}}},"absence":{"type":"object","additionalProperties":false,"required":["start_date"],"properties":{"start_date":{"type":"string","format":"date","description":"Premier jour d'incapacité de travail."},"end_date":{"type":"string","format":"date","description":"Dernier jour d'incapacité couvert par ce décompte (facultatif si absence en cours)."},"medical_certificate_date":{"type":"string","format":"date","description":"Date de réception du certificat médical par l'employeur."},"cause":{"type":"string","enum":["illness","accident_private","other"],"description":"Cause de l'incapacité : maladie (illness), accident de la vie privée (accident_private) ou autre (other)."},"waiting_day_applies":{"type":"boolean","description":"Réponse acceptée pour compatibilité avec la version 1.0.0 ; le document ne l'imprime pas."}}},"salary":{"type":"object","additionalProperties":false,"required":["gross_monthly","currency"],"properties":{"gross_monthly":{"type":"number","minimum":0,"description":"Salaire mensuel brut de référence."},"gross_daily":{"type":"number","minimum":0,"description":"Salaire journalier brut de référence."},"currency":{"type":"string","enum":["EUR"]}}},"breakdown":{"type":"array","minItems":1,"items":{"type":"object","additionalProperties":false,"required":["period_label","from_date","to_date","days","rate_pct","gross_amount","employer_amount"],"properties":{"period_label":{"type":"string","description":"Étiquette de la période (texte libre)."},"from_date":{"type":"string","format":"date"},"to_date":{"type":"string","format":"date"},"days":{"type":"integer","minimum":0,"description":"Nombre de jours calendrier couverts par cette ligne."},"rate_pct":{"type":"number","minimum":0,"maximum":100,"description":"Taux de rémunération appliqué sur la période, en pourcentage."},"gross_amount":{"type":"number","minimum":0,"description":"Montant brut total pour la période (avant déduction ONSS)."},"employer_amount":{"type":"number","minimum":0,"description":"Montant à charge de l'employeur pour la période."},"mutuelle_amount":{"type":"number","minimum":0,"description":"Montant à charge de la mutualité pour la période."}}}},"totals":{"type":"object","additionalProperties":false,"required":["total_gross","total_employer"],"properties":{"total_gross":{"type":"number","minimum":0,"description":"Total brut toutes périodes confondues."},"total_employer":{"type":"number","minimum":0,"description":"Total à charge de l'employeur."},"total_mutuelle":{"type":"number","minimum":0,"description":"Total à charge de la mutuelle."}}},"notes":{"type":"string","description":"Remarques libres (ex. convention collective applicable, cas particulier)."},"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"}}}}}