Xero · Capability

Xero Payroll UK — PayrollUk

Xero Payroll UK — PayrollUk. 69 operations. Lead operation: Retrieves employee benefits. Self-contained Naftiko capability covering one Xero business surface.

Run with Naftiko XeroPayrollUk

What You Can Do

GET
Getbenefits — Retrieves employee benefits
/v1/benefits
POST
Createbenefit — Creates a new employee benefit
/v1/benefits
GET
Getbenefit — Retrieves a specific benefit by using a unique benefit ID
/v1/benefits/{id}
GET
Getdeductions — Retrieves deductions
/v1/deductions
POST
Creatededuction — Creates a new deduction
/v1/deductions
GET
Getdeduction — Retrieves a specific deduction by using a unique deduction ID
/v1/deductions/{deductionid}
GET
Getearningsorders — Retrieves earnings orders
/v1/earningsorders
GET
Getearningsorder — Retrieves a specific earnings orders by using a unique earnings orders id
/v1/earningsorders/{id}
GET
Getearningsrates — Retrieves earnings rates
/v1/earningsrates
POST
Createearningsrate — Creates a new earnings rate
/v1/earningsrates
GET
Getearningsrate — Retrieves a specific earnings rates by using a unique earnings rate id
/v1/earningsrates/{earningsrateid}
GET
Getemployees — Retrieves employees
/v1/employees
POST
Createemployee — Creates employees
/v1/employees
GET
Getemployee — Retrieves specific employees by using a unique employee ID
/v1/employees/{employeeid}
PUT
Updateemployee — Updates a specific employee's detail
/v1/employees/{employeeid}
POST
Createemployment — Creates employment detail for a specific employee using a unique employee ID
/v1/employees/{employeeid}/employment
GET
Getemployeeleaves — Retrieves a specific employee's leave records using a unique employee ID
/v1/employees/{employeeid}/leave
POST
Createemployeeleave — Creates leave records for a specific employee
/v1/employees/{employeeid}/leave
GET
Getemployeeleave — Retrieves a specific employee's leave record using a unique employee ID
/v1/employees/{employeeid}/leave/{leaveid}
PUT
Updateemployeeleave — Updates a specific employee's leave records
/v1/employees/{employeeid}/leave/{leaveid}
DELETE
Deleteemployeeleave — Deletes a specific employee's leave record
/v1/employees/{employeeid}/leave/{leaveid}
GET
Getemployeeleavebalances — Retrieves a specific employee's leave balances using a unique employee ID
/v1/employees/{employeeid}/leavebalances
GET
Getemployeeleaveperiods — Retrieves a specific employee's leave periods using a unique employee ID
/v1/employees/{employeeid}/leaveperiods
GET
Getemployeeleavetypes — Retrieves a specific employee's leave types using a unique employee ID
/v1/employees/{employeeid}/leavetypes
POST
Createemployeeleavetype — Creates employee leave type records
/v1/employees/{employeeid}/leavetypes
GET
Getemployeepaytemplate — Retrieves a specific employee pay templates using a unique employee ID
/v1/employees/{employeeid}/paytemplates
POST
Createemployeeearningstemplate — Creates an earnings template records for a specific employee
/v1/employees/{employeeid}/paytemplates/earnings
PUT
Updateemployeeearningstemplate — Updates a specific employee's earnings template records
/v1/employees/{employeeid}/paytemplates/earnings/{paytemplateearningid}
DELETE
Deleteemployeeearningstemplate — Deletes a specific employee's earnings template record
/v1/employees/{employeeid}/paytemplates/earnings/{paytemplateearningid}
GET
Getemployeepaymentmethod — Retrieves a specific employee's payment method using a unique employee ID
/v1/employees/{employeeid}/paymentmethods
POST
Createemployeepaymentmethod — Creates an employee payment method
/v1/employees/{employeeid}/paymentmethods
GET
Getemployeesalaryandwages — Retrieves a specific employee's salary and wages by using a unique employee ID
/v1/employees/{employeeid}/salaryandwages
POST
Createemployeesalaryandwage — Creates a salary and wage record for a specific employee
/v1/employees/{employeeid}/salaryandwages
GET
Getemployeesalaryandwage — Retrieves a specific salary and wages record for a specific employee using a unique salary and wage id
/v1/employees/{employeeid}/salaryandwages/{salaryandwagesid}
PUT
Updateemployeesalaryandwage — Updates salary and wages record for a specific employee
/v1/employees/{employeeid}/salaryandwages/{salaryandwagesid}
DELETE
Deleteemployeesalaryandwage — Deletes a salary and wages record for a specific employee
/v1/employees/{employeeid}/salaryandwages/{salaryandwagesid}
GET
Getemployeestatutoryleavebalances — Retrieves a specific employee's leave balances using a unique employee ID
/v1/employees/{employeeid}/statutoryleavebalance
GET
Getemployeetax — Retrieves tax records for a specific employee using a unique employee ID
/v1/employees/{employeeid}/tax
POST
Createmultipleemployeeearningstemplate — Creates multiple earnings template records for a specific employee using a unique employee ID
/v1/employees/{employeeid}/paytemplateearnings
GET
Getemployeeopeningbalances — Retrieves a specific employee's openingbalances using a unique employee ID
/v1/employees/{employeeid}/ukopeningbalances
POST
Createemployeeopeningbalances — Creates an opening balance for a specific employee
/v1/employees/{employeeid}/ukopeningbalances
PUT
Updateemployeeopeningbalances — Updates a specific employee's opening balances
/v1/employees/{employeeid}/ukopeningbalances
GET
Getleavetypes — Retrieves leave types
/v1/leavetypes
POST
Createleavetype — Creates a new leave type
/v1/leavetypes
GET
Getleavetype — Retrieves a specific leave type by using a unique leave type ID
/v1/leavetypes/{leavetypeid}
GET
Getpayruncalendars — Retrieves payrun calendars
/v1/payruncalendars
POST
Createpayruncalendar — Creates a new payrun calendar
/v1/payruncalendars
GET
Getpayruncalendar — Retrieves a specific payrun calendar by using a unique payrun calendar ID
/v1/payruncalendars/{payruncalendarid}
GET
Getpayruns — Retrieves pay runs
/v1/payruns
GET
Getpayrun — Retrieves a specific pay run by using a unique pay run ID
/v1/payruns/{payrunid}
GET
Getpayslips — Retrieves payslips
/v1/payslips
GET
Getpayslip — Retrieves a specific payslip by using a unique payslip ID
/v1/payslips/{payslipid}
GET
Getreimbursements — Retrieves reimbursements
/v1/reimbursements
POST
Createreimbursement — Creates a new reimbursement
/v1/reimbursements
GET
Getreimbursement — Retrieves a specific reimbursement by using a unique reimbursement id
/v1/reimbursements/{reimbursementid}
GET
Getsettings — Retrieves payroll settings
/v1/settings
GET
Gettrackingcategories — Retrieves tracking categories
/v1/settings/trackingcategories
POST
Createemployeestatutorysickleave — Creates statutory sick leave records
/v1/statutoryleaves/sick
GET
Getemployeestatutorysickleave — Retrieves a statutory sick leave for an employee
/v1/statutoryleaves/sick/{statutorysickleaveid}
GET
Getstatutoryleavesummary — Retrieves a specific employee's summary of statutory leaves using a unique employee ID
/v1/statutoryleaves/summary/{employeeid}
GET
Gettimesheets — Retrieves timesheets
/v1/timesheets
POST
Createtimesheet — Creates a new timesheet
/v1/timesheets
GET
Gettimesheet — Retrieve a specific timesheet by using a unique timesheet ID
/v1/timesheets/{timesheetid}
DELETE
Deletetimesheet — Deletes a specific timesheet
/v1/timesheets/{timesheetid}
POST
Approvetimesheet — Approves a specific timesheet
/v1/timesheets/{timesheetid}/approve
POST
Createtimesheetline — Creates a new timesheet line for a specific timesheet using a unique timesheet ID
/v1/timesheets/{timesheetid}/lines
PUT
Updatetimesheetline — Updates a specific timesheet line for a specific timesheet
/v1/timesheets/{timesheetid}/lines/{timesheetlineid}
DELETE
Deletetimesheetline — Deletes a specific timesheet line
/v1/timesheets/{timesheetid}/lines/{timesheetlineid}
POST
Reverttimesheet — Reverts a specific timesheet to draft
/v1/timesheets/{timesheetid}/reverttodraft

MCP Tools

retrieves-employee-benefits

Retrieves employee benefits

read-only idempotent
creates-new-employee-benefit

Creates a new employee benefit

retrieves-specific-benefit-using-unique

Retrieves a specific benefit by using a unique benefit ID

read-only idempotent
retrieves-deductions

Retrieves deductions

read-only idempotent
creates-new-deduction

Creates a new deduction

retrieves-specific-deduction-using-unique

Retrieves a specific deduction by using a unique deduction ID

read-only idempotent
retrieves-earnings-orders

Retrieves earnings orders

read-only idempotent
retrieves-specific-earnings-orders-using

Retrieves a specific earnings orders by using a unique earnings orders id

read-only idempotent
retrieves-earnings-rates

Retrieves earnings rates

read-only idempotent
creates-new-earnings-rate

Creates a new earnings rate

retrieves-specific-earnings-rates-using

Retrieves a specific earnings rates by using a unique earnings rate id

read-only idempotent
retrieves-employees

Retrieves employees

read-only idempotent
creates-employees

Creates employees

retrieves-specific-employees-using-unique

Retrieves specific employees by using a unique employee ID

read-only idempotent
updates-specific-employee-s-detail

Updates a specific employee's detail

idempotent
creates-employment-detail-specific-employee

Creates employment detail for a specific employee using a unique employee ID

retrieves-specific-employee-s-leave-records

Retrieves a specific employee's leave records using a unique employee ID

read-only idempotent
creates-leave-records-specific-employee

Creates leave records for a specific employee

retrieves-specific-employee-s-leave-record

Retrieves a specific employee's leave record using a unique employee ID

read-only idempotent
updates-specific-employee-s-leave-records

Updates a specific employee's leave records

idempotent
deletes-specific-employee-s-leave-record

Deletes a specific employee's leave record

idempotent
retrieves-specific-employee-s-leave-balances

Retrieves a specific employee's leave balances using a unique employee ID

read-only idempotent
retrieves-specific-employee-s-leave-periods

Retrieves a specific employee's leave periods using a unique employee ID

read-only idempotent
retrieves-specific-employee-s-leave-types

Retrieves a specific employee's leave types using a unique employee ID

read-only idempotent
creates-employee-leave-type-records

Creates employee leave type records

retrieves-specific-employee-pay-templates

Retrieves a specific employee pay templates using a unique employee ID

read-only idempotent
creates-earnings-template-records-specific

Creates an earnings template records for a specific employee

updates-specific-employee-s-earnings-template

Updates a specific employee's earnings template records

idempotent
deletes-specific-employee-s-earnings-template

Deletes a specific employee's earnings template record

idempotent
retrieves-specific-employee-s-payment-method

Retrieves a specific employee's payment method using a unique employee ID

read-only idempotent
creates-employee-payment-method

Creates an employee payment method

retrieves-specific-employee-s-salary-and

Retrieves a specific employee's salary and wages by using a unique employee ID

read-only idempotent
creates-salary-and-wage-record

Creates a salary and wage record for a specific employee

retrieves-specific-salary-and-wages

Retrieves a specific salary and wages record for a specific employee using a unique salary and wage id

read-only idempotent
updates-salary-and-wages-record

Updates salary and wages record for a specific employee

idempotent
deletes-salary-and-wages-record

Deletes a salary and wages record for a specific employee

idempotent
retrieves-specific-employee-s-leave-balances-2

Retrieves a specific employee's leave balances using a unique employee ID

read-only idempotent
retrieves-tax-records-specific-employee

Retrieves tax records for a specific employee using a unique employee ID

read-only idempotent
creates-multiple-earnings-template-records

Creates multiple earnings template records for a specific employee using a unique employee ID

retrieves-specific-employee-s-openingbalances-using

Retrieves a specific employee's openingbalances using a unique employee ID

read-only idempotent
creates-opening-balance-specific-employee

Creates an opening balance for a specific employee

updates-specific-employee-s-opening-balances

Updates a specific employee's opening balances

idempotent
retrieves-leave-types

Retrieves leave types

read-only idempotent
creates-new-leave-type

Creates a new leave type

retrieves-specific-leave-type-using

Retrieves a specific leave type by using a unique leave type ID

read-only idempotent
retrieves-payrun-calendars

Retrieves payrun calendars

read-only idempotent
creates-new-payrun-calendar

Creates a new payrun calendar

retrieves-specific-payrun-calendar-using

Retrieves a specific payrun calendar by using a unique payrun calendar ID

read-only idempotent
retrieves-pay-runs

Retrieves pay runs

read-only idempotent
retrieves-specific-pay-run-using

Retrieves a specific pay run by using a unique pay run ID

read-only idempotent
retrieves-payslips

Retrieves payslips

read-only idempotent
retrieves-specific-payslip-using-unique

Retrieves a specific payslip by using a unique payslip ID

read-only idempotent
retrieves-reimbursements

Retrieves reimbursements

read-only idempotent
creates-new-reimbursement

Creates a new reimbursement

retrieves-specific-reimbursement-using-unique

Retrieves a specific reimbursement by using a unique reimbursement id

read-only idempotent
retrieves-payroll-settings

Retrieves payroll settings

read-only idempotent
retrieves-tracking-categories

Retrieves tracking categories

read-only idempotent
creates-statutory-sick-leave-records

Creates statutory sick leave records

retrieves-statutory-sick-leave-employee

Retrieves a statutory sick leave for an employee

read-only idempotent
retrieves-specific-employee-s-summary-statutory

Retrieves a specific employee's summary of statutory leaves using a unique employee ID

read-only idempotent
retrieves-timesheets

Retrieves timesheets

read-only idempotent
creates-new-timesheet

Creates a new timesheet

retrieve-specific-timesheet-using-unique

Retrieve a specific timesheet by using a unique timesheet ID

read-only idempotent
deletes-specific-timesheet

Deletes a specific timesheet

idempotent
approves-specific-timesheet

Approves a specific timesheet

creates-new-timesheet-line-specific

Creates a new timesheet line for a specific timesheet using a unique timesheet ID

updates-specific-timesheet-line-specific

Updates a specific timesheet line for a specific timesheet

idempotent
deletes-specific-timesheet-line

Deletes a specific timesheet line

idempotent
reverts-specific-timesheet-draft

Reverts a specific timesheet to draft

Capability Spec

payroll-uk-payrolluk.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Xero Payroll UK — PayrollUk
  description: 'Xero Payroll UK — PayrollUk. 69 operations. Lead operation: Retrieves employee benefits. Self-contained Naftiko
    capability covering one Xero business surface.'
  tags:
  - Xero
  - PayrollUk
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    XERO_API_KEY: XERO_API_KEY
capability:
  consumes:
  - type: http
    namespace: payroll-uk-payrolluk
    baseUri: https://api.xero.com/payroll.xro/2.0
    description: Xero Payroll UK — PayrollUk business capability. Self-contained, no shared references.
    resources:
    - name: Benefits
      path: /Benefits
      operations:
      - name: getbenefits
        method: GET
        description: Retrieves employee benefits
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
      - name: createbenefit
        method: POST
        description: Creates a new employee benefit
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Benefits-id
      path: /Benefits/{id}
      operations:
      - name: getbenefit
        method: GET
        description: Retrieves a specific benefit by using a unique benefit ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Identifier for the benefit
          required: true
    - name: Deductions
      path: /Deductions
      operations:
      - name: getdeductions
        method: GET
        description: Retrieves deductions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
      - name: creatededuction
        method: POST
        description: Creates a new deduction
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Deductions-deductionId
      path: /Deductions/{deductionId}
      operations:
      - name: getdeduction
        method: GET
        description: Retrieves a specific deduction by using a unique deduction ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: deductionId
          in: path
          type: string
          description: Identifier for the deduction
          required: true
    - name: EarningsOrders
      path: /EarningsOrders
      operations:
      - name: getearningsorders
        method: GET
        description: Retrieves earnings orders
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
    - name: EarningsOrders-id
      path: /EarningsOrders/{id}
      operations:
      - name: getearningsorder
        method: GET
        description: Retrieves a specific earnings orders by using a unique earnings orders id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: Identifier for the deduction
          required: true
    - name: EarningsRates
      path: /EarningsRates
      operations:
      - name: getearningsrates
        method: GET
        description: Retrieves earnings rates
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
      - name: createearningsrate
        method: POST
        description: Creates a new earnings rate
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: EarningsRates-EarningsRateID
      path: /EarningsRates/{EarningsRateID}
      operations:
      - name: getearningsrate
        method: GET
        description: Retrieves a specific earnings rates by using a unique earnings rate id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EarningsRateID
          in: path
          type: string
          description: Identifier for the earnings rate
          required: true
    - name: Employees
      path: /Employees
      operations:
      - name: getemployees
        method: GET
        description: Retrieves employees
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: filter
          in: query
          type: string
          description: Filter by first name, lastname, and/or whether they are an off-payroll worker
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
      - name: createemployee
        method: POST
        description: Creates employees
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID
      path: /Employees/{EmployeeID}
      operations:
      - name: getemployee
        method: GET
        description: Retrieves specific employees by using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
      - name: updateemployee
        method: PUT
        description: Updates a specific employee's detail
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID-Employment
      path: /Employees/{EmployeeID}/Employment
      operations:
      - name: createemployment
        method: POST
        description: Creates employment detail for a specific employee using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID-Leave
      path: /Employees/{EmployeeID}/Leave
      operations:
      - name: getemployeeleaves
        method: GET
        description: Retrieves a specific employee's leave records using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
      - name: createemployeeleave
        method: POST
        description: Creates leave records for a specific employee
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID-Leave-LeaveID
      path: /Employees/{EmployeeID}/Leave/{LeaveID}
      operations:
      - name: getemployeeleave
        method: GET
        description: Retrieves a specific employee's leave record using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: LeaveID
          in: path
          type: string
          description: Leave id for single object
          required: true
      - name: updateemployeeleave
        method: PUT
        description: Updates a specific employee's leave records
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: LeaveID
          in: path
          type: string
          description: Leave id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deleteemployeeleave
        method: DELETE
        description: Deletes a specific employee's leave record
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: LeaveID
          in: path
          type: string
          description: Leave id for single object
          required: true
    - name: Employees-EmployeeID-LeaveBalances
      path: /Employees/{EmployeeID}/LeaveBalances
      operations:
      - name: getemployeeleavebalances
        method: GET
        description: Retrieves a specific employee's leave balances using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
    - name: Employees-EmployeeID-LeavePeriods
      path: /Employees/{EmployeeID}/LeavePeriods
      operations:
      - name: getemployeeleaveperiods
        method: GET
        description: Retrieves a specific employee's leave periods using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: startDate
          in: query
          type: string
          description: Filter by start date
        - name: endDate
          in: query
          type: string
          description: Filter by end date
    - name: Employees-EmployeeID-LeaveTypes
      path: /Employees/{EmployeeID}/LeaveTypes
      operations:
      - name: getemployeeleavetypes
        method: GET
        description: Retrieves a specific employee's leave types using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
      - name: createemployeeleavetype
        method: POST
        description: Creates employee leave type records
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID-PayTemplates
      path: /Employees/{EmployeeID}/PayTemplates
      operations:
      - name: getemployeepaytemplate
        method: GET
        description: Retrieves a specific employee pay templates using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
    - name: Employees-EmployeeID-PayTemplates-earnings
      path: /Employees/{EmployeeID}/PayTemplates/earnings
      operations:
      - name: createemployeeearningstemplate
        method: POST
        description: Creates an earnings template records for a specific employee
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID-PayTemplates-earnings-PayTemplateEarningID
      path: /Employees/{EmployeeID}/PayTemplates/earnings/{PayTemplateEarningID}
      operations:
      - name: updateemployeeearningstemplate
        method: PUT
        description: Updates a specific employee's earnings template records
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: PayTemplateEarningID
          in: path
          type: string
          description: Id for single pay template earnings object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deleteemployeeearningstemplate
        method: DELETE
        description: Deletes a specific employee's earnings template record
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: PayTemplateEarningID
          in: path
          type: string
          description: Id for single pay template earnings object
          required: true
    - name: Employees-EmployeeID-PaymentMethods
      path: /Employees/{EmployeeID}/PaymentMethods
      operations:
      - name: getemployeepaymentmethod
        method: GET
        description: Retrieves a specific employee's payment method using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
      - name: createemployeepaymentmethod
        method: POST
        description: Creates an employee payment method
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID-SalaryAndWages
      path: /Employees/{EmployeeID}/SalaryAndWages
      operations:
      - name: getemployeesalaryandwages
        method: GET
        description: Retrieves a specific employee's salary and wages by using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
      - name: createemployeesalaryandwage
        method: POST
        description: Creates a salary and wage record for a specific employee
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID-SalaryAndWages-SalaryAndWagesID
      path: /Employees/{EmployeeID}/SalaryAndWages/{SalaryAndWagesID}
      operations:
      - name: getemployeesalaryandwage
        method: GET
        description: Retrieves a specific salary and wages record for a specific employee using a unique salary and wage id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: SalaryAndWagesID
          in: path
          type: string
          description: Id for single pay template earnings object
          required: true
      - name: updateemployeesalaryandwage
        method: PUT
        description: Updates salary and wages record for a specific employee
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: SalaryAndWagesID
          in: path
          type: string
          description: Id for single pay template earnings object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deleteemployeesalaryandwage
        method: DELETE
        description: Deletes a salary and wages record for a specific employee
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: SalaryAndWagesID
          in: path
          type: string
          description: Id for single salary and wages object
          required: true
    - name: Employees-EmployeeID-StatutoryLeaveBalance
      path: /Employees/{EmployeeID}/StatutoryLeaveBalance
      operations:
      - name: getemployeestatutoryleavebalances
        method: GET
        description: Retrieves a specific employee's leave balances using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: LeaveType
          in: query
          type: string
          description: Filter by the type of statutory leave
        - name: AsOfDate
          in: query
          type: string
          description: The date from which to calculate balance remaining. If not specified, current date UTC is used.
    - name: Employees-EmployeeID-Tax
      path: /Employees/{EmployeeID}/Tax
      operations:
      - name: getemployeetax
        method: GET
        description: Retrieves tax records for a specific employee using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
    - name: Employees-EmployeeID-paytemplateearnings
      path: /Employees/{EmployeeID}/paytemplateearnings
      operations:
      - name: createmultipleemployeeearningstemplate
        method: POST
        description: Creates multiple earnings template records for a specific employee using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Employees-EmployeeID-ukopeningbalances
      path: /Employees/{EmployeeID}/ukopeningbalances
      operations:
      - name: getemployeeopeningbalances
        method: GET
        description: Retrieves a specific employee's openingbalances using a unique employee ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
      - name: createemployeeopeningbalances
        method: POST
        description: Creates an opening balance for a specific employee
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: updateemployeeopeningbalances
        method: PUT
        description: Updates a specific employee's opening balances
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: LeaveTypes
      path: /LeaveTypes
      operations:
      - name: getleavetypes
        method: GET
        description: Retrieves leave types
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
        - name: ActiveOnly
          in: query
          type: boolean
          description: Filters leave types by active status. By default the API returns all leave types.
      - name: createleavetype
        method: POST
        description: Creates a new leave type
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: LeaveTypes-LeaveTypeID
      path: /LeaveTypes/{LeaveTypeID}
      operations:
      - name: getleavetype
        method: GET
        description: Retrieves a specific leave type by using a unique leave type ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: LeaveTypeID
          in: path
          type: string
          description: Identifier for the leave type
          required: true
    - name: PayRunCalendars
      path: /PayRunCalendars
      operations:
      - name: getpayruncalendars
        method: GET
        description: Retrieves payrun calendars
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
      - name: createpayruncalendar
        method: POST
        description: Creates a new payrun calendar
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: PayRunCalendars-PayRunCalendarID
      path: /PayRunCalendars/{PayRunCalendarID}
      operations:
      - name: getpayruncalendar
        method: GET
        description: Retrieves a specific payrun calendar by using a unique payrun calendar ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PayRunCalendarID
          in: path
          type: string
          description: Identifier for the payrun calendars
          required: true
    - name: PayRuns
      path: /PayRuns
      operations:
      - name: getpayruns
        method: GET
        description: Retrieves pay runs
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
        - name: status
          in: query
          type: string
          description: By default get payruns will return all the payruns for an organization. You can add GET https://api.xero.com/payroll.xro/2.0/payRuns?statu={PayRunStatus}
            to fil
    - name: PayRuns-PayRunID
      path: /PayRuns/{PayRunID}
      operations:
      - name: getpayrun
        method: GET
        description: Retrieves a specific pay run by using a unique pay run ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PayRunID
          in: path
          type: string
          description: Identifier for the pay run
          required: true
    - name: Payslips
      path: /Payslips
      operations:
      - name: getpayslips
        method: GET
        description: Retrieves payslips
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
        - name: PayRunID
          in: query
          type: string
          description: PayrunID which specifies the containing payrun of payslips to retrieve. By default, the API does not
            group payslips by payrun.
          required: true
    - name: Payslips-PayslipID
      path: /Payslips/{PayslipID}
      operations:
      - name: getpayslip
        method: GET
        description: Retrieves a specific payslip by using a unique payslip ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PayslipID
          in: path
          type: string
          description: Identifier for the payslip
          required: true
    - name: Reimbursements
      path: /Reimbursements
      operations:
      - name: getreimbursements
        method: GET
        description: Retrieves reimbursements
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Page number which specifies the set of records to retrieve. By default the number of the records per
            set is 100.
      - name: createreimbursement
        method: POST
        description: Creates a new reimbursement
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Reimbursements-ReimbursementID
      path: /Reimbursements/{ReimbursementID}
      operations:
      - name: getreimbursement
        method: GET
        description: Retrieves a specific reimbursement by using a unique reimbursement id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ReimbursementID
          in: path
          type: string
          description: Identifier for the reimbursement
          required: true
    - name: Settings
      path: /Settings
      operations:
      - name: getsettings
        method: GET
        description: Retrieves payroll settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: Settings-trackingCategories
      p

# --- truncated at 32 KB (95 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xero/refs/heads/main/capabilities/payroll-uk-payrolluk.yaml