Xero · OpenAPI Overlay 1.0.0
API Evangelist overlay for Xero Payroll Nz API
39 actions
39 updates
update
extends
openapi/xero-payrollnz-api-openapi.yml
Derived by API Evangelist
Built from the contracts Xero publishes. Xero did not publish this file.
What the actions change
x-idempotencyx-mcp-toolsx-apievangelist-profiledx-mcp-serverx-llms-txtx-authentication
Targets 39 · first 16 shown; the file carries all of them
$.info
$.paths['/Timesheets/{TimesheetID}/Approve'].post
$.paths['/Deductions'].post
$.paths['/EarningsRates'].post
$.paths['/Employees'].post
$.paths['/Employees/{EmployeeID}/PayTemplates/Earnings'].post
$.paths['/Employees/{EmployeeID}/Leave'].post
$.paths['/Employees/{EmployeeID}/LeaveSetup'].post
$.paths['/Employees/{EmployeeID}/LeaveTypes'].post
$.paths['/Employees/{EmployeeID}/OpeningBalances'].post
$.paths['/Employees/{EmployeeID}/PaymentMethods'].post
$.paths['/Employees/{EmployeeID}/SalaryAndWages'].post
$.paths['/Employees/{EmployeeID}/Working-Patterns'].post
$.paths['/Employees/{EmployeeID}/Employment'].post
$.paths['/LeaveTypes'].post
$.paths['/Employees/{EmployeeID}/PayTemplateEarnings'].post
OpenAPI Overlay
overlay: 1.0.0
info:
title: API Evangelist overlay for Xero Payroll Nz API
version: 1.0.0
extends: openapi/xero-payrollnz-api-openapi.yml
x-generated: '2026-10-20'
x-method: generated
x-source: openapi/xero-payrollnz-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-mcp-server: mcp/xero-mcp.yml
x-llms-txt: llms/xero-llms.txt
x-authentication: authentication/xero-authentication.yml
- target: $.paths['/Timesheets/{TimesheetID}/Approve'].post
description: 'approveTimesheet: x-idempotency, x-mcp-tools'
update:
x-idempotency:
header: Idempotency-Key
max_length: 128
source: components.parameters.idempotencyKey
x-mcp-tools:
- approve-payroll-timesheet
- 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}/LeaveSetup'].post
description: 'createEmployeeLeaveSetup: 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}/OpeningBalances'].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['/Employees/{EmployeeID}/Working-Patterns'].post
description: 'createEmployeeWorkingPattern: 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['/PayRuns'].post
description: 'createPayRun: 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['/Superannuations'].post
description: 'createSuperannuation: x-idempotency'
update:
x-idempotency:
header: Idempotency-Key
max_length: 128
source: components.parameters.idempotencyKey
- target: $.paths['/Timesheets'].post
description: 'createTimesheet: x-idempotency, x-mcp-tools'
update:
x-idempotency:
header: Idempotency-Key
max_length: 128
source: components.parameters.idempotencyKey
x-mcp-tools:
- create-payroll-timesheet
- target: $.paths['/Timesheets/{TimesheetID}/Lines'].post
description: 'createTimesheetLine: x-idempotency, x-mcp-tools'
update:
x-idempotency:
header: Idempotency-Key
max_length: 128
source: components.parameters.idempotencyKey
x-mcp-tools:
- add-payroll-timesheet-line
- target: $.paths['/Timesheets/{TimesheetID}'].delete
description: 'deleteTimesheet: x-mcp-tools'
update:
x-mcp-tools:
- delete-payroll-timesheet
- target: $.paths['/Employees/{EmployeeID}/LeaveBalances'].get
description: 'getEmployeeLeaveBalances: x-mcp-tools'
update:
x-mcp-tools:
- list-payroll-employee-leave-balances
- target: $.paths['/Employees/{EmployeeID}/LeavePeriods'].get
description: 'getEmployeeLeavePeriods: x-mcp-tools'
update:
x-mcp-tools:
- list-payroll-leave-periods
- target: $.paths['/Employees/{EmployeeID}/LeaveTypes'].get
description: 'getEmployeeLeaveTypes: x-mcp-tools'
update:
x-mcp-tools:
- list-payroll-employee-leave-types
- target: $.paths['/Employees/{EmployeeID}/Leave'].get
description: 'getEmployeeLeaves: x-mcp-tools'
update:
x-mcp-tools:
- list-payroll-employee-leave
- target: $.paths['/Employees'].get
description: 'getEmployees: x-mcp-tools'
update:
x-mcp-tools:
- list-payroll-employees
- target: $.paths['/LeaveTypes'].get
description: 'getLeaveTypes: x-mcp-tools'
update:
x-mcp-tools:
- list-payroll-leave-types
- target: $.paths['/Timesheets/{TimesheetID}'].get
description: 'getTimesheet: x-mcp-tools'
update:
x-mcp-tools:
- get-payroll-timesheet
- target: $.paths['/Timesheets'].get
description: 'getTimesheets: x-mcp-tools'
update:
x-mcp-tools:
- list-timesheets
- target: $.paths['/Timesheets/{TimesheetID}/RevertToDraft'].post
description: 'revertTimesheet: x-idempotency, x-mcp-tools'
update:
x-idempotency:
header: Idempotency-Key
max_length: 128
source: components.parameters.idempotencyKey
x-mcp-tools:
- revert-payroll-timesheet
- 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}/SalaryAndWages/{SalaryAndWagesID}'].put
description: 'updateEmployeeSalaryAndWage: x-idempotency'
update:
x-idempotency:
header: Idempotency-Key
max_length: 128
source: components.parameters.idempotencyKey
- target: $.paths['/Employees/{EmployeeID}/Tax'].post
description: 'updateEmployeeTax: x-idempotency'
update:
x-idempotency:
header: Idempotency-Key
max_length: 128
source: components.parameters.idempotencyKey
- target: $.paths['/PaySlips/{PaySlipID}'].put
description: 'updatePaySlipLineItems: 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, x-mcp-tools'
update:
x-idempotency:
header: Idempotency-Key
max_length: 128
source: components.parameters.idempotencyKey
x-mcp-tools:
- update-payroll-timesheet-line
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.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/xero-payrollnz-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.