Authenticate with OAuth 2.0 with payroll.read and payroll.write scopes; obtain the AU organization's tenant ID and set it in the Xero-Tenant-Id header.
List pay calendars via GET https://api.xero.com/payroll.xro/1.0/PayCalendars to find the applicable calendar ID and confirm the next scheduled pay period.
Create a pay run via POST /payroll.xro/1.0/PayRuns with PayCalendarID and PayRunPeriodStartDate; Xero creates the pay run in Draft status with auto-calculated ordinary earnings.
Retrieve and update individual payslips via GET and POST /payroll.xro/1.0/Payslip/{PayslipID} — add EarningsLines (e.g., overtime, allowances), LeaveAccrualLines, or SuperannuationLines as needed.
Post the pay run by PUTting to /payroll.xro/1.0/PayRuns/{PayRunID} with PayRunStatus: POSTED; Xero calculates PAYG withholding and super and marks the payrun ready for payment.
Known gotchas
AU Payroll uses the /payroll.xro/1.0 base path — different from the UK and NZ paths which use 2.0; using the wrong version path returns 404.
Super Guarantee contributions are calculated by Xero automatically at the current SG rate; if you manually add SuperannuationLines, verify you are not double-counting the mandatory employer contribution.
STP (Single Touch Payroll) Phase 2 reporting is required in Australia; posting a pay run triggers an STP submission — ensure employee TFN declarations and payment summary exclusion flags are correctly set before posting.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp