{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["letter","agency","user_company","employee","mission","reason","compensation","joint_committee","applicable_law","signature"],"properties":{"letter":{"type":"object","additionalProperties":false,"required":["drafting_date","drafting_place"],"properties":{"reference":{"type":"string"},"drafting_date":{"type":"string","format":"date"},"drafting_place":{"type":"string"}}},"agency":{"type":"object","additionalProperties":false,"required":["name","legal_form","registered_office","bce_number","vat_number","onss_number","represented_by","license_number"],"properties":{"name":{"type":"string","description":"Name of the temporary work agency (agence d'intérim / uitzendbedrijf) — legal employer of the interim worker."},"legal_form":{"type":"string"},"registered_office":{"type":"string"},"bce_number":{"type":"string","pattern":"^0[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"vat_number":{"type":"string","pattern":"^BE0[0-9]{9}$"},"onss_number":{"type":"string"},"represented_by":{"type":"object","additionalProperties":false,"required":["name","title"],"properties":{"name":{"type":"string"},"title":{"type":"string"}}},"license_number":{"type":"string","description":"Regional employment agency licence number (VDAB / FOREM / Actiris / ADG) — mandatory for legal temporary work agencies in Belgium."}}},"user_company":{"type":"object","additionalProperties":false,"required":["name","legal_form","registered_office","bce_number","represented_by"],"properties":{"name":{"type":"string","description":"Name of the user company (entreprise utilisatrice / gebruikersonderneming) — directs the work but is not the legal employer."},"legal_form":{"type":"string"},"registered_office":{"type":"string"},"bce_number":{"type":"string","pattern":"^0[0-9]{3}\\.[0-9]{3}\\.[0-9]{3}$"},"represented_by":{"type":"object","additionalProperties":false,"required":["name","title"],"properties":{"name":{"type":"string"},"title":{"type":"string"}}},"work_location":{"type":"string","description":"Address where the interim worker performs work."}}},"employee":{"type":"object","additionalProperties":false,"required":["surname","given_name","national_register_number","address"],"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}$"},"address":{"type":"string"}}},"mission":{"type":"object","additionalProperties":false,"required":["function_title","function_description","start_date","contract_type"],"properties":{"function_title":{"type":"string"},"function_description":{"type":"string"},"start_date":{"type":"string","format":"date"},"end_date":{"type":"string","format":"date","description":"End date for fixed-term missions."},"contract_type":{"type":"string","enum":["fixed_term","defined_task","replacement"],"description":"Type of interim mission matching the permitted reason."},"cumulative_duration_months":{"type":"number","minimum":0,"maximum":18,"description":"Total cumulative months of interim missions for the same function at the same user company. CCT 108 limit: 18 months."},"schedule":{"type":"string","description":"Working schedule (e.g. 38h/week, Monday-Friday 08:00-17:00)."}}},"reason":{"type":"object","additionalProperties":false,"required":["category"],"properties":{"category":{"type":"string","enum":["replacement_permanent_worker","exceptional_workload","exceptional_work"],"description":"Permitted reason (Art. 1 Loi 24.7.1987): replacement of absent permanent worker, exceptional increase in workload, or exceptional work."},"replaced_worker_name":{"type":"string","description":"Name of the worker being replaced (required if category = replacement_permanent_worker)."},"replaced_worker_absence_reason":{"type":"string","description":"Reason for the replaced worker's absence (illness, parental leave, etc.)."},"exceptional_work_description":{"type":"string","description":"Description of the exceptional work or workload (required if category = exceptional_workload or exceptional_work)."}}},"compensation":{"type":"object","additionalProperties":false,"required":["gross_hourly_wage_eur","equal_pay_confirmed"],"properties":{"gross_hourly_wage_eur":{"type":"number","exclusiveMinimum":0,"description":"Gross hourly wage of the interim worker (EUR). Must be at minimum equal to the wage of a comparable permanent worker in the user company (CCT 108 Art. 10 equal pay principle)."},"equal_pay_confirmed":{"type":"boolean","description":"Agency confirms that the gross wage equals or exceeds the wage of a comparable permanent worker at the user company performing the same function (CCT 108 Art. 10)."},"function_classification":{"type":"string","description":"Function classification / barème applicable in the user company's CP (e.g. ouvrier cat. B, employé niveau 2)."},"payment_frequency":{"type":"string","enum":["weekly","biweekly","monthly"],"description":"Payment frequency."}}},"joint_committee":{"type":"object","additionalProperties":false,"required":["user_company_cp_number","user_company_cp_name"],"properties":{"user_company_cp_number":{"type":"string","description":"CP number of the user company — determines applicable wages and working conditions for the interim worker (CCT 108)."},"user_company_cp_name":{"type":"string","description":"Name of the user company's joint committee."}}},"applicable_law":{"type":"object","additionalProperties":false,"required":["governing_law","competent_court"],"properties":{"governing_law":{"type":"string"},"competent_court":{"type":"string"}}},"signature":{"type":"object","additionalProperties":false,"required":["copies","mention_lu_et_approuve"],"properties":{"copies":{"type":"integer","minimum":2},"mention_lu_et_approuve":{"type":"boolean"}}}}}