{"$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): employer and employee identification, period, work performed, gross pay rows, deductions, non-taxable allowances, benefits in kind already in the gross pay, reservations, leave balance, payment and the informative employer cost.","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},"seat_region":{"type":"string","description":"Linguistic region of the operating seat (optional): Dutch-language region, French-language region, Brussels-Capital or German-language region. The language of the request is compared with it: a warning, never a refusal (Flemish decree of 19 July 1973, art. 5 and 10; decree of the French Community of 30 June 1982; coordinated laws of 18 July 1966, art. 52). The AI never proposes it.","enum":["nl_region","fr_region","brussels","de_region"]},"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 number"},"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. 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"},"calculation_ref":{"type":"string","description":"Internal calculation reference"}}},"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 (gewest)"}}},"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":"Dagen gewaarborgd loon ziekte"},"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), the unit, the quantity, the unit price and the amount. The 'gross_subject_to_onss' total is the basis of the employee RSZ contribution.","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 (wage code of the payroll software)"},"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, meal voucher employee share, advances, garnishments.","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"},"rate":{"type":"number","description":"RSZ-percentage werknemer (%)"}}},"werkbonus":{"type":"object","description":"Werkbonus / Bonus à l'emploi — vermindering van persoonlijke RSZ-bijdrage voor lage lonen.","additionalProperties":false,"required":["amount"],"properties":{"amount":{"type":"number","minimum":0,"description":"Korting op RSZ — wordt afgetrokken van de berekende persoonlijke RSZ-bijdrage"}}},"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 / précompte professionnel"},"barème":{"type":"string","enum":["I","II","III"],"description":"Schaal van de bedrijfsvoorheffing"},"reduction_for_dependents":{"type":"number","minimum":0,"description":"Vermindering wegens kinderlast / personnes à charge"},"reduction_other":{"type":"number","minimum":0,"description":"Andere verminderingen"},"reduction_werkbonus":{"type":"number","minimum":0,"description":"Vermindering bedrijfsvoorheffing op werkbonus (€)"}}},"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)."},"meal_voucher_employee_share":{"type":"number","minimum":0,"description":"Inhouding maaltijdcheques werknemersaandeel"},"advances":{"type":"number","minimum":0,"description":"Voorschotten op loon"},"garnishments":{"type":"number","minimum":0,"description":"Loonbeslag of loonsoverdracht"},"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 — werkgeversbijdrage in het abonnement"},"bicycle":{"type":"number","minimum":0,"description":"Fietsvergoeding"},"car_private":{"type":"number","minimum":0,"description":"Vergoeding eigen wagen"},"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 per cheque"},"employer_share":{"type":"number","minimum":0,"description":"Werkgeversaandeel per cheque"},"employee_share":{"type":"number","minimum":0,"description":"Werknemersaandeel per cheque"}}},"eco_cheques":{"type":"object","description":"Ecocheques","additionalProperties":false,"properties":{"amount_period":{"type":"number","minimum":0},"ytd_total":{"type":"number","minimum":0}}},"expense_allowance":{"type":"number","minimum":0,"description":"Forfaitaire onkostenvergoeding"},"telework_allowance":{"type":"number","minimum":0,"description":"Thuiswerkvergoeding"},"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.","additionalProperties":false,"properties":{"holiday_pay_simple":{"type":"number","minimum":0,"description":"Enkelvoudig vakantiegeld (bediende)"},"holiday_pay_double_reservation":{"type":"number","minimum":0,"description":"Dubbel vakantiegeld provisie (bediende)"},"year_end_premium_reservation":{"type":"number","minimum":0,"description":"Eindejaarspremie / 13e mois — provisie"},"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 vakantiedagen totaal"},"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"},"reference":{"type":"string","description":"Mededeling op de overschrijving"}}},"employer_cost":{"type":"object","description":"Werkgeverskost — informatief, niet ingehouden bij werknemer.","required":["onss_employer","total_cost"],"additionalProperties":false,"properties":{"onss_employer_basic":{"type":"number","minimum":0,"description":"Basis patronale RSZ-bijdrage"},"onss_employer":{"type":"number","minimum":0,"description":"Patronale RSZ-bijdrage totaal"},"wage_moderation":{"type":"number","minimum":0,"description":"Loonmatigingsbijdrage / cotisation de modération salariale"},"holiday_fund_onva":{"type":"number","minimum":0,"description":"Bijdrage vakantiekas ONVA/RJV"},"industrial_accident_insurance":{"type":"number","minimum":0,"description":"Arbeidsongevallenverzekering"},"group_insurance_employer":{"type":"number","minimum":0,"description":"Werkgeversbijdrage groepsverzekering"},"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"}}}}}