{"$schema":"https://json-schema.org/draft/2020-12/schema","title":"Loonbrief / Fiche de paie / Lohnabrechnung — détaillée (BE)","description":"Belgian monthly payslip (loonbrief / fiche de paie / Lohnabrechnung). Mandatory content per Royal Decree of 27 September 1966 (Art. 15 Wet 12.4.1965 op de bescherming van het loon / Loi du 12.4.1965 sur la protection de la rémunération) plus joint-committee additions and ONSS/RSZ rules. Mandatory items (KB 27.9.1966): (1) employer name and address, (2) employee name and first-name initial, (3) employee registration number with the employer, (4) period covered, (5) volume of services rendered (hours, days, units), (6) base salary with unit, (7a) sums due in cash for work performed, overtime, public holidays, suspension pay, premiums, (7b) benefits in kind, (7c) gross total, (8) social security deductions (RSZ employee 13.07 %), (9) amounts exempt from social security, (10) taxable amount, (11) professional withholding (bedrijfsvoorheffing / précompte professionnel), (12) amounts exempt from tax, (13) net allocated, (14) deductible items (advances, garnishments, fines, meal-voucher employee share), (15) net to be paid in cash. Employee NSSO contribution is 13.07 % since 1989. Special social-security contribution (bijzondere bijdrage sociale zekerheid / cotisation spéciale sécurité sociale, Art. 106 Wet 30.3.94) is withheld monthly by anticipation on the annual amount (€0 to €182.82 depending on bracket). Bedrijfsvoorheffing is computed by barème per Annexe III KB/WIB 92 (revised yearly — 2026 baremes). Werkbonus (low-pay social-contribution credit, Loi 24.12.2002) reduces the employee NSSO when gross is under the threshold. Employer NSSO is approx. 25 % (employees) plus sectoral wage-moderation contribution. Meal vouchers: employer share max €6.91 per worked day, employee share min €1.09; eco-cheques €250/year max under CCT 98. Transport allowance: tax-exempt within the section 38, §1, 9° WIB 92 ceilings (public transport employer share, bicycle €0.36/km up to 40 km/day in 2026, car flat-rate per kilometric scale). Pécule de vacances / vakantiegeld: simple holiday pay paid with monthly salary for employees (bedienden) — workers receive it through ONVA/RJV. End-of-year premium / eindejaarspremie / 13e mois: per applicable joint-committee CCT (e.g. CP 200 = 100 % monthly salary in December). The applicable joint committee (paritair comité / commission paritaire) and CCT govern wage scales (loonbarema's), seniority, premiums and indexation (automatic indexation per Loi 2.8.1971).","type":"object","required":["company","social_secretariat","period","employee","earnings","deductions","indemnities","net_pay","employer_cost"],"additionalProperties":false,"properties":{"company":{"type":"object","required":["name","address","bce_number","vat_number","onss_number","joint_committee"],"additionalProperties":false,"properties":{"name":{"type":"string","minLength":1},"legal_form":{"type":"string","description":"SA/NV, SRL/BV, SComm/CommV, SC/CV, SNC/VOF, ASBL/VZW"},"address":{"type":"string","minLength":1},"bce_number":{"type":"string","pattern":"^[0-9]{4}\\.[0-9]{3}\\.[0-9]{3}$","description":"Belgian company number (BCE/KBO) — 10 digits formatted XXXX.XXX.XXX"},"vat_number":{"type":"string","pattern":"^BE0[0-9]{9}$","description":"BTW/TVA number BE0XXXXXXXXX"},"onss_number":{"type":"string","description":"ONSS / RSZ employer registration (NOSS), e.g. 010-1234567-12"},"joint_committee":{"type":"object","required":["number","name"],"additionalProperties":false,"properties":{"number":{"type":"string","description":"Paritair comité / Commission paritaire number, e.g. 200, 124, 209"},"name":{"type":"string","description":"Official PC/CP name, e.g. 'Aanvullend PC voor de bedienden / CP auxiliaire pour employés'"}}}}},"social_secretariat":{"type":"object","description":"Erkend sociaal secretariaat / Secrétariat social agréé that produced the payslip (SD Worx, Securex, Acerta, Group S, Partena, Liantis, etc.). Optional when payroll is run in-house.","additionalProperties":false,"required":["name","approval_number"],"properties":{"name":{"type":"string","minLength":1},"approval_number":{"type":"string","description":"MB/AM ministerial approval number, e.g. 'MB 7.3.1946 nr. 120'"},"calculation_ref":{"type":"string","description":"Internal calculation reference (Securex 'Ref. berekening')"}}},"period":{"type":"object","required":["year","month","from_date","to_date","payment_date"],"additionalProperties":false,"properties":{"year":{"type":"integer","minimum":2020,"maximum":2100},"month":{"type":"integer","minimum":1,"maximum":12},"from_date":{"type":"string","format":"date"},"to_date":{"type":"string","format":"date"},"payment_date":{"type":"string","format":"date"},"calculation_date":{"type":"string","format":"date"}}},"employee":{"type":"object","required":["surname","given_name","address","national_register_number","matricule","function","status","regime","remuneration_type","joined_company","iban"],"additionalProperties":false,"properties":{"surname":{"type":"string","minLength":1},"given_name":{"type":"string","minLength":1},"address":{"type":"string","minLength":1},"national_register_number":{"type":"string","pattern":"^[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}-[0-9]{3}\\.[0-9]{2}$","description":"Rijksregisternummer / Numéro national YY.MM.DD-NNN.CC"},"matricule":{"type":"string","minLength":1,"description":"Inschrijvingsnummer bij de werkgever"},"birth_date":{"type":"string","format":"date"},"nationality":{"type":"string"},"function":{"type":"string","minLength":1,"description":"Beroepskwalificatie / qualification professionnelle"},"status":{"type":"string","enum":["arbeider","bediende","dienstbode","leerling","kaderlid"],"description":"Statuut: arbeider (worker, blue-collar) / bediende (employee, white-collar) / dienstbode / leerling / kaderlid"},"regime":{"type":"string","enum":["voltijds","deeltijds"],"description":"Voltijds (full-time) / deeltijds (part-time)"},"fte_percentage":{"type":"number","minimum":0,"maximum":100,"description":"Tewerkstellingsbreuk / fraction d'occupation in %"},"weekly_schedule":{"type":"string","description":"Werkschema, e.g. '5 dagen/week — 38 u' or '4/5 deeltijds'"},"remuneration_type":{"type":"string","enum":["maandloon","uurloon","stukloon","prestatieloon"],"description":"Maandloon (monthly) / uurloon (hourly) / stukloon (piece-rate) / prestatieloon (performance)"},"contract_type":{"type":"string","enum":["onbepaalde_duur","bepaalde_duur","vervangingsovereenkomst","studentencontract","flexijob","interim"],"description":"Aard contract: CDI / CDD / replacement / student / flexi-job / interim"},"marital_status":{"type":"string","enum":["ongehuwd","gehuwd","wettelijk_samenwonend","feitelijk_samenwonend","gescheiden","weduwnaar"]},"spouse_income":{"type":"string","enum":["geen","professioneel","vervangingsinkomen","klein_pensioen"],"description":"Inkomen echtgeno(o)t(e) — fiscaal relevant"},"dependents":{"type":"object","additionalProperties":false,"properties":{"children":{"type":"integer","minimum":0},"children_handicapped":{"type":"integer","minimum":0},"other":{"type":"integer","minimum":0},"other_handicapped":{"type":"integer","minimum":0}}},"joined_company":{"type":"string","format":"date","description":"Datum indiensttreding firma"},"joined_sector":{"type":"string","format":"date","description":"Anciënniteit sector — vaak ouder dan firma"},"iban":{"type":"string","pattern":"^BE[0-9]{14}$","description":"Belgian IBAN BE + 14 digits"},"bic":{"type":"string"},"tax_residence":{"type":"string","enum":["vlaams_gewest","waals_gewest","brussels_gewest"],"description":"Fiscale woonplaats — bepaalt regionale belastingvermindering"}}},"performance":{"type":"object","description":"Prestaties van de maand — used in the body table.","additionalProperties":false,"properties":{"days_worked":{"type":"number","minimum":0,"description":"Effectief gepresteerde dagen"},"hours_worked":{"type":"number","minimum":0,"description":"Effectief gepresteerde uren"},"days_holiday":{"type":"number","minimum":0,"description":"Vakantiedagen opgenomen"},"days_public_holiday":{"type":"number","minimum":0,"description":"Wettelijke feestdagen"},"days_sick_guaranteed":{"type":"number","minimum":0,"description":"Gewaarborgd loon ziekte (1ste maand bediende, 30 dagen arbeider)"},"days_unpaid":{"type":"number","minimum":0},"days_other":{"type":"number","minimum":0}}},"earnings":{"type":"object","description":"Brutobezoldigingen — gross-pay rows. Each line carries the wage code (looncode) Securex/SD Worx use, the unit, the quantity, the unit price and the amount. The 'gross_subject_to_onss' total is the basis on which RSZ-werknemer 13,07 % is calculated.","required":["lines","gross_subject_to_onss"],"additionalProperties":false,"properties":{"lines":{"type":"array","minItems":1,"items":{"type":"object","required":["code","description","amount"],"additionalProperties":false,"properties":{"code":{"type":"string","description":"Looncode (Securex/SD Worx code, e.g. 000 bezoldiging, 220 betaalde feestdag, 230 vakantiegeld, 250 eindejaarspremie, 320 overuren, 410 voordelen alle aard auto, 411 ATN GSM)"},"description":{"type":"string","minLength":1},"unit":{"type":"string","description":"uren / dagen / maand / stuks / forfait"},"quantity":{"type":"number"},"unit_price":{"type":"number"},"amount":{"type":"number","description":"Bedrag in EUR — positief"},"subject_to_onss":{"type":"boolean","default":true,"description":"Of het bedrag onderworpen is aan RSZ"}}}},"gross_subject_to_onss":{"type":"number","minimum":0,"description":"** Totaal bruto onderworpen aan RSZ"}}},"deductions":{"type":"object","description":"Aftrekken — onss employee, werkbonus, taxable amount, withholding tax, special social security contribution, advances, garnishments. Order follows the official calculation cascade: gross → onss → werkbonus → taxable → bedrijfsvoorheffing → netto → BBSZ → meal voucher employee share → other deductions → net cash.","required":["onss_employee","taxable_amount","withholding_tax","net_allocated","net_to_pay"],"additionalProperties":false,"properties":{"onss_employee":{"type":"object","required":["amount","rate"],"additionalProperties":false,"properties":{"amount":{"type":"number","minimum":0,"description":"Bedrag — RSZ inhouding (gross × 13.07 % minus werkbonus)"},"rate":{"type":"number","description":"13.07 — sinds 1989"}}},"werkbonus":{"type":"object","description":"Werkbonus / Bonus à l'emploi — vermindering van persoonlijke RSZ-bijdrage voor lage lonen (Loi 24.12.2002, Loi-programme 23.12.2009).","additionalProperties":false,"required":["amount"],"properties":{"amount":{"type":"number","minimum":0,"description":"Korting op RSZ — wordt afgetrokken van de berekende 13,07 %"}}},"taxable_amount":{"type":"number","description":"** Belastbaar — gross_subject_to_onss − onss_employee + voordelen alle aard belastbaar"},"withholding_tax":{"type":"object","required":["amount","barème"],"additionalProperties":false,"properties":{"amount":{"type":"number","minimum":0,"description":"Bedrijfsvoorheffing (code 286 / fiscale code) — Annexe III KB/WIB 92"},"barème":{"type":"string","enum":["I","II","III"],"description":"Schaal I (alleenstaand of gehuwd met inkomen partner), II (gehuwd, partner zonder inkomen), III (niet-inwoners) — Annexe III KB/WIB 92"},"reduction_for_dependents":{"type":"number","minimum":0,"description":"Vermindering wegens kinderlast / personnes à charge"},"reduction_other":{"type":"number","minimum":0,"description":"Andere verminderingen (handicap, alimentatie, groepsverzekering)"},"reduction_werkbonus":{"type":"number","minimum":0,"description":"Vermindering bedrijfsvoorheffing op werkbonus (€) — Art. 154bis WIB 92"}}},"net_allocated":{"type":"number","description":"** Netto toegekende som — taxable − withholding_tax + niet-belastbare bedragen"},"special_social_security_contribution":{"type":"number","minimum":0,"description":"Bijzondere bijdrage sociale zekerheid / cotisation spéciale sécurité sociale (BBSZ — Art. 106 Loi 30.3.94). Maandelijkse voorafname op jaarbedrag (€0 to €182,82)."},"meal_voucher_employee_share":{"type":"number","minimum":0,"description":"Inhouding maaltijdcheques werknemersaandeel — minimum €1,09/cheque (KB 12.10.2010)"},"advances":{"type":"number","minimum":0,"description":"Voorschotten op loon"},"garnishments":{"type":"number","minimum":0,"description":"Loonbeslag of loonsoverdracht (Art. 1409 Ger.W.)"},"fines_and_other":{"type":"number","minimum":0,"description":"Boeten of andere af te trekken bedragen"},"net_to_pay":{"type":"number","description":"*** Netto te betalen (in speciën / op rekening)"}}},"indemnities":{"type":"object","description":"Niet-belastbare vergoedingen / niet aan RSZ onderworpen — separately listed informational rows (transport, meal vouchers employer share, eco-cheques, ATN already taxed, expense allowance).","additionalProperties":false,"properties":{"transport_allowance":{"type":"object","additionalProperties":false,"properties":{"public_transport":{"type":"number","minimum":0,"description":"Tussenkomst openbaar vervoer (CCT 19/9 / 19octies) — werkgeversbijdrage in NMBS-trein, MIVB, De Lijn, TEC abonnement"},"bicycle":{"type":"number","minimum":0,"description":"Fietsvergoeding — €0,36/km vrijgesteld in 2026, max 40 km/dag (Art. 38, §1, 14° WIB 92)"},"car_private":{"type":"number","minimum":0,"description":"Vergoeding eigen wagen — forfait kilometrische schaal (CCT 19octies)"},"kilometers":{"type":"number","minimum":0}}},"meal_vouchers":{"type":"object","additionalProperties":false,"properties":{"count":{"type":"integer","minimum":0},"face_value":{"type":"number","minimum":0,"description":"Nominale waarde — max €8,00 (KB 12.10.2010 met indexatie)"},"employer_share":{"type":"number","minimum":0,"description":"Werkgeversaandeel — max €6,91/cheque vrijgesteld"},"employee_share":{"type":"number","minimum":0,"description":"Werknemersaandeel — min €1,09/cheque"}}},"eco_cheques":{"type":"object","description":"Ecocheques (CCT 98) — €250/jaar/voltijds — vrijgesteld van RSZ en belasting. Notification on the loonbrief is best-practice.","additionalProperties":false,"properties":{"amount_period":{"type":"number","minimum":0},"ytd_total":{"type":"number","minimum":0}}},"expense_allowance":{"type":"number","minimum":0,"description":"Forfaitaire onkostenvergoeding (Art. 31bis WIB 92) — niet-belastbaar"},"telework_allowance":{"type":"number","minimum":0,"description":"Thuiswerkvergoeding — €154,74/maand vrijgesteld (RSZ-instructies + Circulaire 2021/C/20 indexed)"},"benefits_in_kind_taxable":{"type":"array","description":"Voordelen alle aard reeds in brutoloon opgenomen — afzonderlijke informatieve regels.","items":{"type":"object","required":["type","amount"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["bedrijfswagen","tankkaart","gsm","internet","laptop","huisvesting","andere"]},"description":{"type":"string"},"amount":{"type":"number","minimum":0}}}}}},"reservations":{"type":"object","description":"Reserveringen — vakantiegeld en eindejaarspremie. Bediende: enkelvoudig vakantiegeld in maandloon, dubbel vakantiegeld eenmaal per jaar (mei/juni). Arbeider: vakantiegeld via ONVA/RJV. Eindejaarspremie volgens CCT van het paritair comité (vaak 100 % maandloon op CP 200).","additionalProperties":false,"properties":{"holiday_pay_simple":{"type":"number","minimum":0,"description":"Enkelvoudig vakantiegeld — 7,67 % brutoloon (bediende)"},"holiday_pay_double_reservation":{"type":"number","minimum":0,"description":"Dubbel vakantiegeld provisie — 7,67 % maandloon (bediende, wordt in mei/juni uitbetaald)"},"year_end_premium_reservation":{"type":"number","minimum":0,"description":"Eindejaarspremie / 13e mois — provisie volgens CCT PC (CP 200: 100 % maandloon × prorata jaar)"},"ytd_gross":{"type":"number","minimum":0,"description":"Cumul brutoloon dit jaar"},"ytd_net":{"type":"number","minimum":0},"ytd_withholding_tax":{"type":"number","minimum":0}}},"leave_balance":{"type":"object","description":"Saldo wettelijke vakantie + bijkomende verlofdagen.","additionalProperties":false,"properties":{"statutory_days_total":{"type":"number","minimum":0,"description":"Wettelijke vakantie 20 dagen (5-dagen week) / 24 (6-dagen)"},"statutory_days_taken":{"type":"number","minimum":0},"statutory_days_remaining":{"type":"number","minimum":0},"extra_legal_days_remaining":{"type":"number","minimum":0,"description":"Anciënniteitsverlof of CCT-verlof"},"compensation_days_remaining":{"type":"number","minimum":0,"description":"Inhaalrust overuren / ADV-dagen"}}},"net_pay":{"type":"object","required":["amount","method"],"additionalProperties":false,"properties":{"amount":{"type":"number","description":"Eindbedrag te betalen — gelijk aan deductions.net_to_pay"},"method":{"type":"string","enum":["overschrijving","contant","cheque"],"description":"Betaalwijze — Wet 23.8.2015 verplicht overschrijving sinds 1.10.2016 behalve uitzonderingen"},"reference":{"type":"string","description":"Mededeling op de overschrijving"}}},"employer_cost":{"type":"object","description":"Werkgeverskost — informatief, niet ingehouden bij werknemer. Patronale RSZ basisbijdrage (~25 % bediende), loonmatigingsbijdrage (Loi 23.12.1989), patronale lasten op maaltijdcheques en groepsverzekering, vakantiebijdrage (15,84 % arbeider via ONVA), bedrijfsongevallenverzekering AOW, FBZ.","required":["onss_employer","total_cost"],"additionalProperties":false,"properties":{"onss_employer_basic":{"type":"number","minimum":0,"description":"Basis patronale RSZ-bijdrage (~19,88 % + 5,12 % loonmatiging)"},"onss_employer":{"type":"number","minimum":0,"description":"Patronale RSZ-bijdrage totaal — gemiddeld 25 % bediende, 32 % arbeider"},"wage_moderation":{"type":"number","minimum":0,"description":"Loonmatigingsbijdrage / cotisation de modération — Loi 23.12.1989"},"holiday_fund_onva":{"type":"number","minimum":0,"description":"Vakantiekas ONVA/RJV (15,84 % arbeider) — niet van toepassing op bediende"},"industrial_accident_insurance":{"type":"number","minimum":0,"description":"Verplichte arbeidsongevallenverzekering (Wet 10.4.1971)"},"group_insurance_employer":{"type":"number","minimum":0,"description":"Werkgeversbijdrage groepsverzekering (Wet 28.4.2003 WAP / LPC)"},"meal_voucher_employer_share":{"type":"number","minimum":0},"fbz_sectorale_bijdrage":{"type":"number","minimum":0,"description":"Fonds voor bestaanszekerheid sectoraal"},"asbestos_pension_other":{"type":"number","minimum":0,"description":"AFB / AKAB / andere sectorbijdragen"},"total_cost":{"type":"number","minimum":0,"description":"Totale werkgeverskost = brutoloon + alle patronale bijdragen + extralegale voordelen werkgever"}}}}}