End-to-end Dutch payroll workflow covering employee onboarding, loonheffing withholding (with 30% ruling checks), employer premium calculation, monthly Loonaangifte submission via Digipoort, payslip compliance, and annual jaaropgave delivery.
Verify the employer holds a loonheffingennummer from the Belastingdienst and that each employee has been onboarded with a valid BSN. Determine contract type (permanent vs fixed-term/on-call) because this drives the AWf premium rate (2.74% low vs 7.74% high). Confirm whether any employee qualifies for the 30% ruling and whether the loonheffingskorting should be applied at this employer.
Calculate gross salary including vakantiegeld accrual (minimum 8% of gross), any 13th-month or CAO-mandated supplements, and overtime per the applicable CAO. Verify the employee's hourly rate meets the Wettelijk Minimumloon (WML — EUR 14.71/hour from 1 Jan 2026; EUR 14.99 from 1 Jul 2026). Establish the SV-loon (social insurance wage) base, capped at the maximumpremieloon of EUR 79,409 for employer premium calculations.
Apply the correct loonheffing table (wit — with credits, or groen — without) using 2026 brackets: 35.75% up to EUR 38,883 (includes AOW 17.90%, Anw 0.10%, Wlz 9.65% for employees under AOW age), 37.56% up to EUR 78,426, and 49.50% above. Reduce by the algemene heffingskorting (max ~EUR 3,362) and arbeidskorting (max ~EUR 5,599) where applicable. For 30%-ruling employees, exclude the ruling portion from the loonheffing base.
Calculate all employer-only premiums on the SV-loon (capped at EUR 79,409). This includes AWf (2.74% low for permanent staff / 7.74% high for flexible), Aof (6.27% small employer / 7.63% large), Whk (employer-specific differentiated rate), Wko (0.50%), Ufo (0.68%), and ZVW werkgeversheffing (6.10%). Confirm whether the employer qualifies as 'klein' (small) for Aof — threshold is 25× the average premium wage.
Produce a loonstrook for each employee meeting the mandatory contents under the WML: employee name, period, gross salary, applicable minimum hourly wage, itemised deductions (loonheffing, pension contributions), net salary, and hours worked where variable. Net salary must be transferred to the employee's bank account by the agreed pay date.
Submit the Loonaangifte electronically via Digipoort (using certified payroll software) by the last day of the month following the pay period. The return must contain employee-level data including BSN, wages, loonheffing, and premium amounts. Pay the total loonheffingen (combined withholding + employer premiums) to the Belastingdienst by the same deadline using the betalingskenmerk from the return.
At year-end, produce a jaaropgave (annual income statement) for each employee by 1 March showing total fiscal wage, loonheffing withheld, and pension contributions. Reconcile cumulative Loonaangifte filings against the payroll ledger. Issue any correctie-berichten for errors discovered. Confirm 30% ruling employees receive a ruling-adjusted jaaropgave so they can correctly complete their personal income tax return (aangifte inkomstenbelasting).
Run this workflow in your AI agent
Install the MCP connector once — your agent loads the right skills, works through each phase, and routes to a licensed Netherlands accountant for review.
netherlands-payroll
Use this skill whenever asked about Dutch payroll, loonheffing, wage tax, social security
nl-payroll-tax
Use this skill whenever asked about Dutch payroll taxes (loonheffingen) or the work cost s