Integration

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.

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Xero Payroll UK.Built from the 70 Xero Payroll UK tools below, on the connection you add once.

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 Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Xero Payroll UK

  1. Create your workspace

    Sign up free. Nothing to install.

  2. 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.

  3. 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.

Popular integrations

Browse the whole catalog