Xero Payroll AU integration
Xero Payroll for Australian organisations (Payroll AU API 1.0). Manage employees, leave applications (create, approve, reject), timesheets, payroll calendars, pay items, super funds, and pay runs with their payslips; read the payroll settings. Only organisations on Xero's Australian payroll answer it: use Xero Payroll UK or Xero Payroll NZ for those regions. Employee bank account numbers, tax file numbers, employee ABNs, super fund membership numbers and super fund account numbers are left out of every response. Authentication is Xero OAuth 2.0 with the payroll scopes; call list_connections first and pass its tenantId as Xero-Tenant-Id.
Say what should happen.
The workflow builds itself.
Common Xero Payroll AU use cases
- Find the tenantId before any accounting call
- Choose between several connected organisations
What you can do with Xero Payroll AU
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Employee, 4 operations
create_employeesCreate employeesPOSTCreates one or more payroll employees. FirstName, LastName, DateOfBirth and HomeAddress are required per employee. Returns the created employees with their EmployeeID.get_employeeGet employeeGETReturns one payroll employee: personal details, pay template, leave balances, super memberships and tax declaration (bank account numbers and tax file number are not returned).list_employeesList employeesGETLists payroll employees, 100 per page. Filter with where (for example Status=="ACTIVE") and sort with order. Bank account numbers and tax file numbers are not returned by this tool.update_employeeUpdate employeePOSTUpdates a payroll employee. Send only the fields to change (the vendor example sends just MiddleNames). Returns the updated employee.
Leave application, 4 operations
create_leave_applicationsCreate leave applicationsPOSTCreates one or more leave applications for employees. Each needs EmployeeID, LeaveTypeID (from list_pay_items), Title, StartDate and EndDate.get_leave_applicationGet leave applicationGETReturns one leave application with its leave periods (pay period dates, units, status).list_leave_applicationsList leave applicationsGETLists leave applications (leave already approved or scheduled), 100 per page. Use list_leave_applications_v2 to also see leave requests awaiting approval.update_leave_applicationUpdate leave applicationPOSTUpdates a leave application (title, dates, description, leave periods). Send EmployeeID and LeaveTypeID with the change, as the vendor example does.
Pay run, 4 operations
create_pay_runCreate pay runPOSTCreates a pay run for a payroll calendar (PayrollCalendarID required, from list_payroll_calendars), as a DRAFT unless PayRunStatus POSTED is sent. Xero accepts one pay run per request. Posting is normally a separate step with update_pay_run.get_pay_runGet pay runGETReturns one pay run with its payslips (per employee wages, deductions, tax, super, net pay) and totals. Use get_payslip for a payslip lines.list_pay_runsList pay runsGETLists pay runs, 100 per page, with period dates, status (DRAFT or POSTED) and totals. Filter with where, for example PayRunStatus=="DRAFT".update_pay_runUpdate pay runPOSTUpdates a pay run. Setting PayRunStatus to POSTED finalises the pay run for payment: only do that when the user asked for it. Leave it out to keep the pay run a draft.
Superfund, 4 operations
create_superfundsCreate superfundsPOSTCreates one or more super funds. Type is required: REGULATED (give the fund USI, see list_superfund_products) or SMSF (give ABN, BSB, account number and name, ESA).get_superfundGet superfundGETReturns one super fund (type, name, USI or ABN, employer number). The fund bank account number is not returned.list_superfundsList superfundsGETLists the super funds set up for the organisation (regulated funds and self managed funds), 100 per page. Fund bank account numbers are not returned.update_superfundUpdate superfundPOSTUpdates a super fund. Type is required by the vendor schema; send it with the fields to change.
Timesheet, 4 operations
create_timesheetsCreate timesheetsPOSTCreates one or more timesheets. Each needs EmployeeID, StartDate and EndDate; TimesheetLines carry an EarningsRateID and NumberOfUnits, one number per day of the period.get_timesheetGet timesheetGETReturns one timesheet with its lines (earnings rate, tracking item, units per day).list_timesheetsList timesheetsGETLists timesheets, 100 per page, with employee, period, status and total hours. Filter with where, for example Status=="DRAFT".update_timesheetUpdate timesheetPOSTUpdates a timesheet (status, lines). EmployeeID, StartDate and EndDate are required by the vendor schema: read them with get_timesheet and send them back with the change.
Payroll calendar, 3 operations
create_payroll_calendarsCreate payroll calendarsPOSTCreates one or more payroll calendars. Each needs Name, CalendarType (WEEKLY, FORTNIGHTLY, FOURWEEKLY, MONTHLY, TWICEMONTHLY or QUARTERLY), StartDate and PaymentDate.get_payroll_calendarGet payroll calendarGETReturns one payroll calendar: name, calendar type, start date of the upcoming period and payment date.list_payroll_calendarsList payroll calendarsGETLists payroll calendars (name, calendar type, start date, payment date) with the PayrollCalendarID that create_pay_run needs.
Pay item, 2 operations
create_pay_itemsCreate pay itemsPOSTCreates pay items (earnings rates, deduction types, leave types, reimbursement types). Send the arrays to add; returns the pay items.list_pay_itemsList pay itemsGETLists the organisation pay items: earnings rates, deduction types, leave types and reimbursement types, with the ids other tools ask for (EarningsRateID, LeaveTypeID...).
Payslip, 2 operations
get_payslipGet payslipGETReturns one payslip with its lines: earnings, leave earnings, timesheet earnings, deductions, leave accrual, reimbursements, super and tax. Payslip ids come from get_pay_run.update_payslipUpdate payslipPOSTUpdates payslip lines. A line type left out is unchanged; a line type sent must carry ALL its lines, or Xero deletes the missing ones. Read the payslip with get_payslip first. Leave earnings come from leave applications.
Approve, 1 operation
approve_leave_applicationApprove leave applicationPOSTApproves a requested leave application so it is scheduled in payroll. Takes no body; returns the leave application.
Connection, 1 operation
list_connectionsList connectionsGETList the Xero organisations this connection is authorized for. Call it first: every payroll tool needs one of the returned tenantId values as its Xero-Tenant-Id.
Reject, 1 operation
reject_leave_applicationReject leave applicationPOSTRejects a requested leave application. Takes no body; returns the leave application.
Settings, 1 operation
get_settingsGet settingsGETReturns the payroll settings: the accounts payroll posts to, the tracking categories used for employee groups and timesheets, days in the payroll year, and whether employees are on STP Phase 2.
Superfund product, 1 operation
list_superfund_productsList superfund productsGETLooks up regulated super fund products by ABN or USI (give one of the two), returning product name, ABN and USI to use in create_superfunds.
V2, 1 operation
list_leave_applications_v2List leave applications v2GETLists leave applications like list_leave_applications, but also includes leave requests (not yet approved), with each leave period and its status.
Use Xero Payroll AU from Claude Code, Cursor or Codex
Connect Xero Payroll AU in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Xero Payroll AU operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Xero Payroll AU
- Create your workspace
Sign up free. Nothing to install.
- Connect Xero Payroll AU once
Add your Xero Payroll AU connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Xero Payroll AU integration FAQ
What can you do with the Xero Payroll AU integration?
LiveContext exposes 33 operations on Xero Payroll AU, covering employee, leave application, pay run and superfund. Common uses include Find the tenantId before any accounting call and Choose between several connected organisations.
