Xero · OpenAPI Overlay 1.0.0

API Evangelist overlay for Xero Payroll Uk API

27 actions 27 updates update extends openapi/xero-payrolluk-api-openapi.yml
Derived by API Evangelist Built from the contracts Xero publishes. Xero did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-idempotencyx-apievangelist-profiledx-llms-txtx-authentication

Targets 27 · first 16 shown; the file carries all of them

$.info
$.paths['/Timesheets/{TimesheetID}/Approve'].post
$.paths['/Benefits'].post
$.paths['/Deductions'].post
$.paths['/EarningsRates'].post
$.paths['/Employees'].post
$.paths['/Employees/{EmployeeID}/PayTemplates/earnings'].post
$.paths['/Employees/{EmployeeID}/Leave'].post
$.paths['/Employees/{EmployeeID}/LeaveTypes'].post
$.paths['/Employees/{EmployeeID}/ukopeningbalances'].post
$.paths['/Employees/{EmployeeID}/PaymentMethods'].post
$.paths['/Employees/{EmployeeID}/SalaryAndWages'].post
$.paths['/StatutoryLeaves/Sick'].post
$.paths['/Employees/{EmployeeID}/Employment'].post
$.paths['/LeaveTypes'].post
$.paths['/Employees/{EmployeeID}/paytemplateearnings'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist overlay for Xero Payroll Uk API
  version: 1.0.0
extends: openapi/xero-payrolluk-api-openapi.yml
x-generated: '2026-10-20'
x-method: generated
x-source: openapi/xero-payrolluk-api-openapi.yml
x-rationale: 'Records our enhancements without mutating the spec: Idempotency-Key support marked per operation (from
  the spec''s own parameters) and, where applicable, the official Xero MCP tools that call each operation (from
  mcp/xero-tool-crosswalk.yml).'
actions:
- target: $.info
  description: API Evangelist provenance and agent-surface pointers.
  update:
    x-apievangelist-profiled: '2026-10-20'
    x-llms-txt: llms/xero-llms.txt
    x-authentication: authentication/xero-authentication.yml
- target: $.paths['/Timesheets/{TimesheetID}/Approve'].post
  description: 'approveTimesheet: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Benefits'].post
  description: 'createBenefit: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Deductions'].post
  description: 'createDeduction: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/EarningsRates'].post
  description: 'createEarningsRate: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees'].post
  description: 'createEmployee: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/PayTemplates/earnings'].post
  description: 'createEmployeeEarningsTemplate: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/Leave'].post
  description: 'createEmployeeLeave: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/LeaveTypes'].post
  description: 'createEmployeeLeaveType: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/ukopeningbalances'].post
  description: 'createEmployeeOpeningBalances: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/PaymentMethods'].post
  description: 'createEmployeePaymentMethod: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/SalaryAndWages'].post
  description: 'createEmployeeSalaryAndWage: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/StatutoryLeaves/Sick'].post
  description: 'createEmployeeStatutorySickLeave: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/Employment'].post
  description: 'createEmployment: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/LeaveTypes'].post
  description: 'createLeaveType: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/paytemplateearnings'].post
  description: 'createMultipleEmployeeEarningsTemplate: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/PayRunCalendars'].post
  description: 'createPayRunCalendar: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Reimbursements'].post
  description: 'createReimbursement: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Timesheets'].post
  description: 'createTimesheet: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Timesheets/{TimesheetID}/Lines'].post
  description: 'createTimesheetLine: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Timesheets/{TimesheetID}/RevertToDraft'].post
  description: 'revertTimesheet: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}'].put
  description: 'updateEmployee: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/PayTemplates/earnings/{PayTemplateEarningID}'].put
  description: 'updateEmployeeEarningsTemplate: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/Leave/{LeaveID}'].put
  description: 'updateEmployeeLeave: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/ukopeningbalances'].put
  description: 'updateEmployeeOpeningBalances: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/SalaryAndWages/{SalaryAndWagesID}'].put
  description: 'updateEmployeeSalaryAndWage: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey
- target: $.paths['/Timesheets/{TimesheetID}/Lines/{TimesheetLineID}'].put
  description: 'updateTimesheetLine: x-idempotency'
  update:
    x-idempotency:
      header: Idempotency-Key
      max_length: 128
      source: components.parameters.idempotencyKey

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/xero-payrolluk-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.