Skip to content

NZ Payroll employee tax requests without KiwiSaverStatus return 400 from 2026-11-05 ​

Provider
Xero
Endpoint
POST /payroll.xro/2.0/Employees/{EmployeeID}/Tax
Effective
2026-11-05
Severity
critical
Change
required-field
Status
verified

What changed ​

From 2026-11-05, KiwiSaverStatus is required when creating or updating employee tax details in NZ Payroll, for every tax code except WT and NSW. Requests that omit it return 400 Bad Request. Xero says it will not provide test instances or workarounds.

What to do ​

Send KiwiSaverStatus explicitly in every POST to /payroll.xro/2.0/Employees/{EmployeeID}/Tax whose tax code is not WT or NSW. Get it from your own employee record or read the current tax details with a GET before updating. Treat a 400 on this call as a data error to show the user, not a reason to retry.

Sources ​

Check your code ​

bash
npx shapi-cli scan .

shapi scan lists the call sites this change affects; shapi fix repairs them test-first when the advisory has an automatic fix. All advisories · Markdown · OSV · JSON