Xero Payroll UK integration
Xero Payroll for UK organisations (Payroll UK API 2.0). Manage employees with their employment, tax, opening balances, leave, statutory sick leave, pay templates, salary and wages and payment methods; timesheets and their lines (approve, revert); pay run calendars, earnings rates, deductions, benefits, reimbursements and leave types; read pay runs, payslips, earnings orders and settings. Only UK payroll organisations answer it (see Xero Payroll AU and NZ). National Insurance numbers and bank account numbers are left out of every response. Xero opens the UK payroll API only to apps it has given partner permissions. 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 UK use cases
- Find the tenantId before any accounting call
- Choose between several connected organisations
What you can do with Xero Payroll UK
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.
Leave, 5 operations
create_employee_leaveCreate employee leavePOSTCreates a leave record for an employee: leaveTypeID (from list_employee_leave_types), description (max 50 characters), startDate and endDate (YYYY-MM-DD).delete_employee_leaveDelete employee leaveDELETEDeletes a leave record of an employee. Returns the deleted leave.get_employee_leaveGet employee leaveGETReturns one leave record of an employee with its periods.list_employee_leavesList employee leavesGETLists the leave records of an employee (leave type, description, dates, periods with their status).update_employee_leaveUpdate employee leavePUTUpdates a leave record of an employee. The required fields must all be sent: read the current values with list_employee_leaves and send them back with your change.
Leave type, 5 operations
create_employee_leave_typeCreate employee leave typePOSTAssigns a leave type to an employee with its accrual settings (schedule of accrual, units accrued, maximum, opening balance).create_leave_typeCreate leave typePOSTCreates a leave type for the organisation: name, isPaidLeave and showOnPayslip.get_leave_typeGet leave typeGETReturns one leave type.list_employee_leave_typesList employee leave typesGETLists the leave types assigned to an employee with their accrual settings and the leaveTypeID that create_employee_leave needs.list_leave_typesList leave typesGETLists the leave types of the organisation, 100 per page. Set ActiveOnly to true to leave out inactive ones.
Salary and wage, 5 operations
create_employee_salary_and_wageCreate employee salary and wagePOSTCreates a salary and wages record for an employee (earnings rate, units per week, annual salary, effective date, status, Salary or Hourly).delete_employee_salary_and_wageDelete employee salary and wageDELETEDeletes a salary and wages record of an employee.get_employee_salary_and_wageGet employee salary and wageGETReturns one salary and wages record of an employee.list_employee_salary_and_wagesList employee salary and wagesGETLists the salary and wages records of an employee (earnings rate, units per week, rate, annual salary, effective date, status Active, Pending or History), 100 per page.update_employee_salary_and_wageUpdate employee salary and wagePUTUpdates a salary and wages record of an employee. The required fields must all be sent: read the current values with get_employee_salary_and_wage and send them back with your change.
Employee, 4 operations
create_employeeCreate employeePOSTCreates a payroll employee and returns it with its employeeID. Add employment details with create_employment.get_employeeGet employeeGETReturns one payroll employee: name, title, date of birth, gender, address, contact details, start and end dates, NI category. The National Insurance number is not returned by this tool.list_employeesList employeesGETLists payroll employees, 100 per page. Filter with filter (firstName==John,lastName==Smith,isOffPayrollWorker==false). National Insurance numbers are not returned by this tool.update_employeeUpdate employeePUTUpdates a payroll employee. The required fields must all be sent: read the current values with get_employee and send them back with your change.
Timesheet, 4 operations
create_timesheetCreate timesheetPOSTCreates a timesheet for an employee and payroll calendar period (payrollCalendarID, employeeID, startDate, endDate), optionally with its lines.delete_timesheetDelete timesheetDELETEDeletes a timesheet.get_timesheetGet timesheetGETReturns one timesheet with its lines (date, earnings rate, units).list_timesheetsList timesheetsGETLists timesheets, 100 per page. Filter by filter (employeeId==<id>,payrollCalendarId==<id>), status, startDate and endDate, and sort with sort.
Benefit, 3 operations
create_benefitCreate benefitPOSTCreates an employer benefit type: name, category (StakeholderPension or Other), liability and expense accounts, calculationType with percentage or standardAmount.get_benefitGet benefitGETReturns one employer benefit type.list_benefitsList benefitsGETLists the employer benefit types (pensions and other benefits) of the organisation, 100 per page.
Deduction, 3 operations
create_deductionCreate deductionPOSTCreates a deduction type for the organisation (name, category, liability account, fixed amount or percentage of gross).get_deductionGet deductionGETReturns one deduction type.list_deductionsList deductionsGETLists the deduction types set up for the organisation (name, category, liability account, calculation), 100 per page.
Earning, 3 operations
create_employee_earnings_templateCreate employee earnings templatePOSTAdds an earnings line to an employee pay template: earningsRateID (from list_earnings_rates) with numberOfUnits and ratePerUnit, or a fixedAmount.delete_employee_earnings_templateDelete employee earnings templateDELETEDeletes an earnings line from an employee pay template.update_employee_earnings_templateUpdate employee earnings templatePUTUpdates an earnings line of an employee pay template (units, rate per unit or fixed amount). Read the line first with get_employee_pay_template and send the values to keep.
Earnings rate, 3 operations
create_earnings_rateCreate earnings ratePOSTCreates an earnings rate: name, earningsType, rateType (RatePerUnit, MultipleOfOrdinaryEarningsRate or FixedAmount), typeOfUnits and expenseAccountID.get_earnings_rateGet earnings rateGETReturns one earnings rate.list_earnings_ratesList earnings ratesGETLists the earnings rates of the organisation (name, earnings type, rate type, units, expense account) with the earningsRateID that pay templates, salaries and timesheets need.
Line, 3 operations
create_timesheet_lineCreate timesheet linePOSTAdds a line to a timesheet: date (YYYY-MM-DD), earningsRateID and numberOfUnits, optional trackingItemID.delete_timesheet_lineDelete timesheet lineDELETEDeletes a line from a timesheet.update_timesheet_lineUpdate timesheet linePUTUpdates a timesheet line. The required fields must all be sent: read the current values with get_timesheet and send them back with your change.
Pay run calendar, 3 operations
create_pay_run_calendarCreate pay run calendarPOSTCreates a pay run calendar: name, calendarType, periodStartDate and paymentDate (YYYY-MM-DD).get_pay_run_calendarGet pay run calendarGETReturns one pay run calendar.list_pay_run_calendarsList pay run calendarsGETLists the pay run calendars (name, calendar type, current period dates, payment date) with the payrollCalendarID that employments and timesheets need.
Reimbursement, 3 operations
create_reimbursementCreate reimbursementPOSTCreates a reimbursement type: name and accountID.get_reimbursementGet reimbursementGETReturns one reimbursement type.list_reimbursementsList reimbursementsGETLists the reimbursement types of the organisation (name, account), 100 per page.
Ukopeningbalance, 3 operations
create_employee_opening_balancesCreate employee opening balancesPOSTSets the UK opening balances of an employee for the current tax year (statutory pay amounts received to date, prior employee number).get_employee_opening_balancesGet employee opening balancesGETReturns the UK opening balances of an employee for the current tax year (statutory adoption, maternity, paternity, shared parental and sick pay, prior employee number).update_employee_opening_balancesUpdate employee opening balancesPUTUpdates the UK opening balances of an employee. Read them first with get_employee_opening_balances and send the values to keep.
Earnings order, 2 operations
get_earnings_orderGet earnings orderGETReturns one earnings order.list_earnings_ordersList earnings ordersGETLists the earnings orders (statutory deductions taken from pay, each with its category and liability account), 100 per page.
Pay run, 2 operations
get_pay_runGet pay runGETReturns one pay run with its payslips and totals. Bank account numbers in payment lines are not returned.list_pay_runsList pay runsGETLists pay runs, 100 per page, with period, payment date, status (Draft or Posted), type and totals. Filter with status.
Payment method, 2 operations
create_employee_payment_methodCreate employee payment methodPOSTSets how an employee is paid (Cheque, Electronically or Manual) and, for electronic payment, the bank accounts. Account numbers are not echoed back in the response.get_employee_payment_methodGet employee payment methodGETReturns how an employee is paid (Cheque, Electronically or Manual) and the bank account names and sort codes. Bank account numbers are not returned by this tool.
Payslip, 2 operations
get_payslipGet payslipGETReturns one payslip with its earnings, leave, deduction, reimbursement, tax and payment lines. Bank account numbers are not returned.list_payslipsList payslipsGETLists the payslips of one pay run (PayRunID required, from list_pay_runs), 100 per page, with earnings, deductions, tax and payment lines. Bank account numbers are not returned.
Sick, 2 operations
create_statutory_sick_leaveCreate statutory sick leavePOSTRecords statutory sick leave for an employee: employeeID, leaveTypeID of the Statutory Sick Leave pay item, dates, workPattern, isPregnancyRelated, sufficientNotice. The response says whether the leave is entitled to statutory pay.get_statutory_sick_leaveGet statutory sick leaveGETReturns one statutory sick leave record with its entitlement (entitled or not, weeks requested, qualified, remaining, failure reasons).
Approve, 1 operation
approve_timesheetApprove timesheetPOSTApproves a timesheet. Takes no body; returns the timesheet.
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.
Employment, 1 operation
create_employmentCreate employmentPOSTAdds employment details to an employee: payrollCalendarID, startDate, employeeNumber and niCategories (each with niCategory letter and workplacePostcode).
Leave balance, 1 operation
list_employee_leave_balancesList employee leave balancesGETReturns the leave balances of an employee, per leave type (name, balance, type of units).
Leave period, 1 operation
list_employee_leave_periodsList employee leave periodsGETReturns the leave periods of an employee between startDate and endDate (pay period dates, units, status).
Pay template, 1 operation
get_employee_pay_templateGet employee pay templateGETReturns the pay template of an employee: its earnings lines (earnings rate, units, rate per unit or fixed amount) with their payTemplateEarningID.
Paytemplateearning, 1 operation
create_employee_earnings_templatesCreate employee earnings templatesPOSTAdds several earnings lines to an employee pay template in one call. Same line fields as create_employee_earnings_template.
Revert to draft, 1 operation
revert_timesheetRevert timesheetPOSTReverts a timesheet to draft. Takes no body; returns the timesheet.
Settings, 1 operation
get_settingsGet settingsGETReturns the payroll settings, including the accounts payroll posts to.
Statutory leave balance, 1 operation
get_employee_statutory_leave_balanceGet employee statutory leave balanceGETReturns the remaining balance of one statutory leave type for an employee as of a date (today by default). LeaveType is for example Sick.
Summary, 1 operation
list_employee_statutory_leavesList employee statutory leavesGETLists the statutory leaves of an employee (sick, maternity, paternity...) with type, dates and status. Set activeOnly to true for current and upcoming ones only.
Tax, 1 operation
get_employee_taxGet employee taxGETReturns the UK tax record of an employee: starter type and declaration, tax code, week 1 / month 1 basis, student and postgraduate loans, director status.
Tracking category, 1 operation
get_tracking_categoriesGet tracking categoriesGETReturns the tracking categories payroll uses for employee groups and timesheets.
Use Xero Payroll UK from Claude Code, Cursor or Codex
Connect Xero Payroll UK in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Xero Payroll UK 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 UK
- Create your workspace
Sign up free. Nothing to install.
- Connect Xero Payroll UK once
Add your Xero Payroll UK 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 UK integration FAQ
What can you do with the Xero Payroll UK integration?
LiveContext exposes 70 operations on Xero Payroll UK, covering leave, leave type, salary and wage and employee. Common uses include Find the tenantId before any accounting call and Choose between several connected organisations.
