How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Xero PayrollUk API

The PayrollUk API from Xero — 47 operation(s) for payrolluk.

Xero PayrollUk API is one of 10 APIs that Xero publishes on the APIs.io network, described by a machine-readable OpenAPI specification and an AsyncAPI event-driven specification.

Tagged areas include Payroll UK. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, and an AsyncAPI specification.

This API exposes 69 operations across 47 paths, and defines 106 schemas. It is described by OpenAPI 3.2.0, at version 11.1.0.

Requests are made against a single base URL, https://api.xero.com/api.xro/2.0.

69 operations 47 paths 106 schemas 5 DELETE38 GET20 POST6 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
11.1.0
Base URL
https://api.xero.com/api.xro/2.0
Authentication
OAuth 2.0
Terms of Service
Resource Areas
1

Authentication & Security 1

Xero PayrollUk API declares 1 security scheme for authenticating requests. It supports OAuth 2.0 (OAuth2) using the authorizationCode flow, exposing 16 scopes.

  • OAuth2 — For more information

Paths & Operations 69

Across 47 paths, the API surfaces 69 operations — 5 DELETE, 38 GET, 20 POST, 6 PUT. Each is listed below with its method, path, parameters, and response codes.

PayrollUk 69
GET
/Employees
Retrieves employees
getEmployees 3 params → 200400
POST
/Employees
Creates employees
createEmployee 2 params body → 200400
GET
/Employees/{EmployeeID}
Retrieves specific employees by using a unique employee ID
getEmployee 2 params → 200
PUT
/Employees/{EmployeeID}
Updates a specific employee's detail
updateEmployee 3 params body → 200400
POST
/Employees/{EmployeeID}/Employment
Creates employment detail for a specific employee using a unique employee ID
createEmployment 3 params body → 200400
GET
/Employees/{EmployeeID}/Tax
Retrieves tax records for a specific employee using a unique employee ID
getEmployeeTax 2 params → 200
GET
/Employees/{EmployeeID}/ukopeningbalances
Retrieves a specific employee's openingbalances using a unique employee ID
getEmployeeOpeningBalances 2 params → 200
POST
/Employees/{EmployeeID}/ukopeningbalances
Creates an opening balance for a specific employee
createEmployeeOpeningBalances 3 params body → 200400
PUT
/Employees/{EmployeeID}/ukopeningbalances
Updates a specific employee's opening balances
updateEmployeeOpeningBalances 3 params body → 200400
GET
/Employees/{EmployeeID}/Leave
Retrieves a specific employee's leave records using a unique employee ID
getEmployeeLeaves 2 params → 200
POST
/Employees/{EmployeeID}/Leave
Creates leave records for a specific employee
createEmployeeLeave 3 params body → 200400
GET
/Employees/{EmployeeID}/Leave/{LeaveID}
Retrieves a specific employee's leave record using a unique employee ID
getEmployeeLeave 3 params → 200
PUT
/Employees/{EmployeeID}/Leave/{LeaveID}
Updates a specific employee's leave records
updateEmployeeLeave 4 params body → 200400
DELETE
/Employees/{EmployeeID}/Leave/{LeaveID}
Deletes a specific employee's leave record
deleteEmployeeLeave 3 params → 200
GET
/Employees/{EmployeeID}/LeaveBalances
Retrieves a specific employee's leave balances using a unique employee ID
getEmployeeLeaveBalances 2 params → 200
GET
/Employees/{EmployeeID}/StatutoryLeaveBalance
Retrieves a specific employee's leave balances using a unique employee ID
getEmployeeStatutoryLeaveBalances 4 params → 200
GET
/StatutoryLeaves/Summary/{EmployeeID}
Retrieves a specific employee's summary of statutory leaves using a unique employee ID
getStatutoryLeaveSummary 3 params → 200
POST
/StatutoryLeaves/Sick
Creates statutory sick leave records
createEmployeeStatutorySickLeave 2 params body → 200400
GET
/StatutoryLeaves/Sick/{StatutorySickLeaveID}
Retrieves a statutory sick leave for an employee
getEmployeeStatutorySickLeave 2 params → 200
GET
/Employees/{EmployeeID}/LeavePeriods
Retrieves a specific employee's leave periods using a unique employee ID
getEmployeeLeavePeriods 4 params → 200400
GET
/Employees/{EmployeeID}/LeaveTypes
Retrieves a specific employee's leave types using a unique employee ID
getEmployeeLeaveTypes 2 params → 200400
POST
/Employees/{EmployeeID}/LeaveTypes
Creates employee leave type records
createEmployeeLeaveType 3 params body → 200400
GET
/Employees/{EmployeeID}/PaymentMethods
Retrieves a specific employee's payment method using a unique employee ID
getEmployeePaymentMethod 2 params → 200400
POST
/Employees/{EmployeeID}/PaymentMethods
Creates an employee payment method
createEmployeePaymentMethod 3 params body → 200400
GET
/Employees/{EmployeeID}/PayTemplates
Retrieves a specific employee pay templates using a unique employee ID
getEmployeePayTemplate 2 params → 200400
POST
/Employees/{EmployeeID}/PayTemplates/earnings
Creates an earnings template records for a specific employee
createEmployeeEarningsTemplate 3 params body → 200400
PUT
/Employees/{EmployeeID}/PayTemplates/earnings/{PayTemplateEarningID}
Updates a specific employee's earnings template records
updateEmployeeEarningsTemplate 4 params body → 200400
DELETE
/Employees/{EmployeeID}/PayTemplates/earnings/{PayTemplateEarningID}
Deletes a specific employee's earnings template record
deleteEmployeeEarningsTemplate 3 params → 200
POST
/Employees/{EmployeeID}/paytemplateearnings
Creates multiple earnings template records for a specific employee using a unique employee ID
createMultipleEmployeeEarningsTemplate 3 params body → 200400
GET
/Benefits
Retrieves employee benefits
getBenefits 2 params → 200
POST
/Benefits
Creates a new employee benefit
createBenefit 2 params body → 200400
GET
/Benefits/{id}
Retrieves a specific benefit by using a unique benefit ID
getBenefit 2 params → 200
GET
/Deductions
Retrieves deductions
getDeductions 2 params → 200
POST
/Deductions
Creates a new deduction
createDeduction 2 params body → 200400
GET
/Deductions/{deductionId}
Retrieves a specific deduction by using a unique deduction ID
getDeduction 2 params → 200
GET
/EarningsOrders
Retrieves earnings orders
getEarningsOrders 2 params → 200
GET
/EarningsOrders/{id}
Retrieves a specific earnings orders by using a unique earnings orders id
getEarningsOrder 2 params → 200
GET
/EarningsRates
Retrieves earnings rates
getEarningsRates 2 params → 200
POST
/EarningsRates
Creates a new earnings rate
createEarningsRate 2 params body → 200400
GET
/EarningsRates/{EarningsRateID}
Retrieves a specific earnings rates by using a unique earnings rate id
getEarningsRate 2 params → 200
GET
/LeaveTypes
Retrieves leave types
getLeaveTypes 3 params → 200
POST
/LeaveTypes
Creates a new leave type
createLeaveType 2 params body → 200400
GET
/LeaveTypes/{LeaveTypeID}
Retrieves a specific leave type by using a unique leave type ID
getLeaveType 2 params → 200
GET
/Reimbursements
Retrieves reimbursements
getReimbursements 2 params → 200
POST
/Reimbursements
Creates a new reimbursement
createReimbursement 2 params body → 200400
GET
/Reimbursements/{ReimbursementID}
Retrieves a specific reimbursement by using a unique reimbursement id
getReimbursement 2 params → 200
GET
/Timesheets
Retrieves timesheets
getTimesheets 7 params → 200
POST
/Timesheets
Creates a new timesheet
createTimesheet 2 params body → 200400
GET
/Timesheets/{TimesheetID}
Retrieve a specific timesheet by using a unique timesheet ID
getTimesheet 2 params → 200
DELETE
/Timesheets/{TimesheetID}
Deletes a specific timesheet
deleteTimesheet 2 params → 200400
POST
/Timesheets/{TimesheetID}/Lines
Creates a new timesheet line for a specific timesheet using a unique timesheet ID
createTimesheetLine 3 params body → 200400
POST
/Timesheets/{TimesheetID}/Approve
Approves a specific timesheet
approveTimesheet 3 params → 200400
POST
/Timesheets/{TimesheetID}/RevertToDraft
Reverts a specific timesheet to draft
revertTimesheet 3 params → 200400
PUT
/Timesheets/{TimesheetID}/Lines/{TimesheetLineID}
Updates a specific timesheet line for a specific timesheet
updateTimesheetLine 4 params body → 200400
DELETE
/Timesheets/{TimesheetID}/Lines/{TimesheetLineID}
Deletes a specific timesheet line
deleteTimesheetLine 3 params → 200400
GET
/PayRunCalendars
Retrieves payrun calendars
getPayRunCalendars 2 params → 200
POST
/PayRunCalendars
Creates a new payrun calendar
createPayRunCalendar 2 params body → 200400
GET
/PayRunCalendars/{PayRunCalendarID}
Retrieves a specific payrun calendar by using a unique payrun calendar ID
getPayRunCalendar 2 params → 200
GET
/Employees/{EmployeeID}/SalaryAndWages
Retrieves a specific employee's salary and wages by using a unique employee ID
getEmployeeSalaryAndWages 3 params → 200400
POST
/Employees/{EmployeeID}/SalaryAndWages
Creates a salary and wage record for a specific employee
createEmployeeSalaryAndWage 3 params body → 200400
GET
/Employees/{EmployeeID}/SalaryAndWages/{SalaryAndWagesID}
Retrieves a specific salary and wages record for a specific employee using a unique salary and wage id
getEmployeeSalaryAndWage 3 params → 200
PUT
/Employees/{EmployeeID}/SalaryAndWages/{SalaryAndWagesID}
Updates salary and wages record for a specific employee
updateEmployeeSalaryAndWage 4 params body → 200400
DELETE
/Employees/{EmployeeID}/SalaryAndWages/{SalaryAndWagesID}
Deletes a salary and wages record for a specific employee
deleteEmployeeSalaryAndWage 3 params → 200
GET
/PayRuns
Retrieves pay runs
getPayRuns 3 params → 200
GET
/PayRuns/{PayRunID}
Retrieves a specific pay run by using a unique pay run ID
getPayRun 2 params → 200
GET
/Payslips
Retrieves payslips
getPaySlips 3 params → 200
GET
/Payslips/{PayslipID}
Retrieves a specific payslip by using a unique payslip ID
getPaySlip 2 params → 200
GET
/Settings
Retrieves payroll settings
getSettings 1 param → 200
GET
/Settings/trackingCategories
Retrieves tracking categories
getTrackingCategories 1 param → 200

Schemas 106

The contract defines 106 schemas that model the data the API accepts and returns. The most detailed are Payslip (28 properties), Employee (19 properties), EmployeeStatutorySickLeave (16 properties), Deduction (16 properties). Each schema is shown below with its type and property counts.

TimesheetObject
object
3 properties
LeaveEarningsLines
array
LeaveAccrualLines
array
Account
object
4 properties
EmployeeTax
object
11 properties
SalaryAndWages
object
3 properties
EmployeeLeave
object
7 properties 4 required
EmploymentObject
object
3 properties
SalaryAndWageObject
object
3 properties
EmployeeStatutorySickLeaveObject
object
3 properties
Address
object
5 properties 3 required
DeductionLines
array
BenefitLines
array
EarningsOrder
object
5 properties 1 required
EarningsTemplate
object
6 properties
Payslips
object
3 properties
EmployeeLeaveType
object
7 properties 2 required
ContractType
string
The contract type of the employee.
Deduction
object
16 properties 2 required
EmployeeOpeningBalancesObject
object
3 properties
EmployeeObject
object
3 properties
TimesheetLines
array
PaymentLine
object
5 properties
EarningsRates
object
3 properties
StatutoryDeductionCategory
string
Statutory Deduction Category
Pagination
object
4 properties
EarningsOrderObject
object
3 properties
EarningsTemplateObject
object
3 properties
CourtOrderLines
array
ReimbursementObject
object
3 properties
Employment
object
6 properties 4 required
Employees
object
3 properties
PayRun
object
12 properties
Contracts
object
7 properties 3 required
EarningsLine
object
9 properties
TimesheetEarningsLines
array
Payslip
object
28 properties
EarningsOrders
object
3 properties
NICategoryLetter
string
The employee's NI Category letter.
SalaryAndWage
object
9 properties 6 required
Reimbursements
object
3 properties
PayRunObject
object
3 properties
EmployeeLeaveBalances
object
3 properties
TrackingCategory
object
2 properties
EarningsRate
object
10 properties 5 required
DevelopmentalRoleDetails
object
4 properties 3 required
CourtOrderLine
object
2 properties
LeavePeriods
object
3 properties
BankAccount
object
3 properties 3 required
ReimbursementLine
object
3 properties
EmployeePayTemplate
object
2 properties 1 required
EmployeeLeaves
object
3 properties
ReimbursementLines
array
Accounts
object
1 property
EmploymentStatus
string
The employment status of the employee.
EmployeeStatutorySickLeave
object
16 properties 7 required
EmployeeStatutoryLeaveBalance
object
3 properties
EmployeeStatutoryLeavesSummaries
object
3 properties
PaymentLines
array
EmployeePayTemplates
object
3 properties
EarningsRateObject
object
3 properties
EmployeeLeaveTypes
object
3 properties
TaxLine
object
6 properties
DeductionLine
object
4 properties
DeductionObject
object
3 properties
Problem
object
The object returned for a bad request
6 properties
Timesheet
object
9 properties 4 required
Employee
object
19 properties 6 required
EarningsLines
array
Settings
object
3 properties
InvalidField
object
2 properties
LeaveAccrualLine
object
2 properties
TimesheetLine
object
5 properties 3 required
LeavePeriod
object
4 properties
EmployeeTaxObject
object
3 properties
EmployeeLeaveObject
object
3 properties
BenefitLine
object
5 properties
TaxLines
array
Benefit
object
14 properties 6 required
LeaveTypes
object
3 properties
Deductions
object
3 properties
PaymentMethod
object
2 properties 1 required
PayRunCalendars
object
3 properties
TrackingCategories
object
3 properties
EarningsTemplates
array
PayRuns
object
3 properties
LeaveEarningsLine
object
6 properties
EmployeePayTemplateObject
object
3 properties
Reimbursement
object
4 properties 2 required
TimesheetLineObject
object
3 properties
NICategory
object
5 properties 2 required
EmployeeStatutoryLeaveSummary
object
7 properties
EmployeeOpeningBalances
object
6 properties
PayslipObject
object
3 properties
TimesheetEarningsLine
object
6 properties
PayRunCalendarObject
object
3 properties
LeaveType
object
8 properties 3 required
EmployeeLeaveTypeObject
object
3 properties
BenefitObject
object
3 properties
LeaveTypeObject
object
3 properties
PayRunCalendar
object
7 properties 4 required
Benefits
object
3 properties
Timesheets
object
3 properties
EmployeeLeaveBalance
object
4 properties
EmployeeStatutoryLeaveBalanceObject
object
3 properties
PaymentMethodObject
object
3 properties

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

xero-payrolluk-api-openapi.yml Raw ↑

Other APIs Xero publishes across the network.

Xero Accounting API
Xero Asset API
Xero BankFeeds API
Xero Files API
Xero Finance API
Xero Identity API
Xero PayrollAu API
Xero PayrollNz API
Xero Project API
Where this information came from

This is an independent, third-party profile of Xero PayrollUk API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.