{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","employer","employee","training","retention","void_conditions","applicable_law","signature"],"properties":{"letter":{"type":"object","additionalProperties":false,"required":["drafting_date","drafting_place","effective_date"],"properties":{"reference":{"type":"string","description":"Internal employer reference for this clause (e.g. ECOL-2026-0012)."},"drafting_date":{"type":"string","format":"date","description":"Date on which the clause is signed — must be before or on the training start date (Art. 22bis §1 Loi 3.7.1978: forme écrite avant ou lors de l'entrée en formation)."},"drafting_place":{"type":"string","description":"City where the clause is signed."},"effective_date":{"type":"string","format":"date","description":"Date from which the clause takes effect (= training start date or earlier)."}}},"employer":{"type":"object","additionalProperties":false,"required":["name","legal_form","registered_office","bce_number","vat_number","onss_number","represented_by"],"properties":{"name":{"type":"string"},"legal_form":{"type":"string","description":"Forme juridique (SRL/BV, SA/NV, SCS/Comm.V, ASBL/VZW, ...)."},"registered_office":{"type":"string","description":"Registered office address of the employer."},"bce_number":{"type":"string","pattern":"^0[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$","description":"Numéro d'entreprise BCE/KBO (format 0xxx.xxx.xxx)."},"vat_number":{"type":"string","pattern":"^BE0[0-9]{9}$","description":"Numéro TVA/BTW (format BE0xxxxxxxxx)."},"onss_number":{"type":"string","description":"Numéro d'immatriculation ONSS/RSZ (format 1.xxx.xxx-xx)."},"represented_by":{"type":"object","additionalProperties":false,"required":["name","title"],"properties":{"name":{"type":"string"},"title":{"type":"string"}}}}},"employee":{"type":"object","additionalProperties":false,"required":["surname","given_name","national_register_number","function_title","net_monthly_salary","onss_ceiling_exceeded"],"properties":{"surname":{"type":"string"},"given_name":{"type":"string"},"national_register_number":{"type":"string","pattern":"^[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}-[0-9]{3}\\.[0-9]{2}$","description":"Numéro de registre national/NISS (format YY.MM.DD-NNN.CC)."},"function_title":{"type":"string","description":"Job title / fonction du travailleur au moment de la formation."},"net_monthly_salary":{"type":"number","exclusiveMinimum":0,"description":"Net monthly salary at time of training — must exceed the ONSS monthly ceiling for the clause to be valid (Art. 22bis §2 Loi 3.7.1978, indexed annually). Indexed 2026 threshold: approx. €3,622/month net."},"onss_ceiling_exceeded":{"type":"boolean","description":"Employer confirms that the net monthly salary exceeds the ONSS indexed ceiling applicable at training start date. If false the clause is void by law."},"social_secretariat":{"type":"string","description":"Name of the approved social secretariat managing payroll (Acerta, SD Worx, Securex, Liantis, Partena, ...)."}}},"training":{"type":"object","additionalProperties":false,"required":["title","provider","start_date","end_date","total_cost_eur","cost_breakdown"],"properties":{"title":{"type":"string","description":"Official title of the training programme."},"provider":{"type":"string","description":"Name of the training organisation / provider."},"start_date":{"type":"string","format":"date","description":"Date of commencement of training."},"end_date":{"type":"string","format":"date","description":"Date of completion of training."},"total_cost_eur":{"type":"number","exclusiveMinimum":0,"description":"Total documented cost of training in EUR (registration fees + materials + travel + accommodation where applicable). Must be supported by invoices — estimates are insufficient."},"cost_breakdown":{"type":"object","additionalProperties":false,"required":["registration_fee_eur"],"properties":{"registration_fee_eur":{"type":"number","minimum":0,"description":"Registration / tuition fees (EUR)."},"materials_eur":{"type":"number","minimum":0,"description":"Course materials and books (EUR)."},"travel_eur":{"type":"number","minimum":0,"description":"Travel costs reimbursed by employer (EUR)."},"accommodation_eur":{"type":"number","minimum":0,"description":"Accommodation costs (EUR)."}}},"duration_days":{"type":"integer","minimum":1,"description":"Duration of training in working days."},"duration_hours":{"type":"integer","minimum":1,"description":"Duration of training in hours."},"is_deal_emploi_training":{"type":"boolean","description":"Whether this training falls within the statutory 5 days/year right (Deal pour l'emploi — Loi-programme 2023-2024 for companies with ≥ 20 FTE). If true, this portion cannot be subject to a training clause — only additional training beyond the statutory minimum may be covered."},"individual_training_plan_reference":{"type":"string","description":"Reference to the individual training plan (plan de formation individuel / individueel opleidingsplan) in which this training appears (required for companies with ≥ 20 FTE since 2024)."},"certification":{"type":"string","description":"Name of the certification or diploma obtained upon completion, if any."}}},"retention":{"type":"object","additionalProperties":false,"required":["period_months","degressive_schedule"],"properties":{"period_months":{"type":"integer","minimum":1,"maximum":36,"description":"Retention/loyalty period in months — maximum 3 years (Art. 22bis, CCT 22). Starts from the end date of training."},"degressive_schedule":{"type":"array","minItems":1,"description":"Mandatory degressive reimbursement schedule (Cass. 5.10.1992 — flat rate without decrease is void). Each entry specifies the reimbursement percentage applicable in that period.","items":{"type":"object","additionalProperties":false,"required":["year_label","percentage","max_amount_eur"],"properties":{"year_label":{"type":"string","description":"Human-readable label for this period (e.g. 'Année 1 / Jaar 1', '1ère année après fin de formation')."},"percentage":{"type":"integer","minimum":0,"maximum":80,"description":"Reimbursement percentage of total training cost. Maximum 80% in year 1, must decrease in subsequent years (Art. 22bis §4, Cass. 5.10.1992)."},"max_amount_eur":{"type":"number","minimum":0,"description":"Maximum reimbursement amount in EUR for this period (percentage × total_cost_eur, capped at legal maximum)."}}}},"start_reference":{"type":"string","enum":["end_of_training","start_of_training"],"description":"Whether the retention period starts from the end date or start date of training. Default is end_of_training."}}},"void_conditions":{"type":"object","additionalProperties":false,"required":["dismissal_without_serious_cause","constructive_dismissal","resignation_during_training"],"properties":{"dismissal_without_serious_cause":{"type":"boolean","description":"Clause is void if employee is dismissed by the employer without serious cause (Art. 22bis §5 Loi 3.7.1978 — mandatory nullity). Must be true."},"constructive_dismissal":{"type":"boolean","description":"Clause is void in case of employer-initiated constructive dismissal (acte équipollent à rupture / aan opzegging gelijkwaardig handelen). Must be true."},"resignation_during_training":{"type":"boolean","description":"Clause does not apply if employee resigns during the training itself. Must be true."},"employer_non_renewal_cdd":{"type":"boolean","description":"Clause is void if employer does not renew a fixed-term contract at expiry."},"additional_void_events":{"type":"array","items":{"type":"string"},"description":"Any additional contractually agreed situations in which the clause is inapplicable."}}},"applicable_law":{"type":"object","additionalProperties":false,"required":["governing_law","competent_court"],"properties":{"governing_law":{"type":"string","description":"Governing law (always Belgian law / droit belge / Belgisch recht)."},"competent_court":{"type":"string","description":"Competent labour court (Tribunal du travail / Arbeidsrechtbank) with seat."}}},"signature":{"type":"object","additionalProperties":false,"required":["copies","mention_lu_et_approuve"],"properties":{"copies":{"type":"integer","minimum":2,"description":"Number of original signed copies (minimum 2 — one per party)."},"mention_lu_et_approuve":{"type":"boolean","description":"Whether each party must add the handwritten mention 'lu et approuvé / gelezen en goedgekeurd / gelesen und genehmigt' before their signature."}}}}}