Xero · Capability

Xero Payroll NZ — PayrollNz

Xero Payroll NZ — PayrollNz. 71 operations. Lead operation: Retrieves deductions for a specific employee. Self-contained Naftiko capability covering one Xero business surface.

Run with Naftiko XeroPayrollNz

What You Can Do

GET
Getdeductions — Retrieves deductions for a specific employee
/v1/deductions
POST
Creatededuction — Creates a new deduction for a specific employee
/v1/deductions
GET
Getdeduction — Retrieves a single deduction by using a unique deduction ID
/v1/deductions/{deductionid}
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 an employees
/v1/employees
GET
Getemployee — Retrieves an employees using a unique employee ID
/v1/employees/{employeeid}
PUT
Updateemployee — Updates an existing employee
/v1/employees/{employeeid}
POST
Createemployment — Creates an employment detail for a specific employee
/v1/employees/{employeeid}/employment
GET
Getemployeeleaves — Retrieves leave records for a specific employee
/v1/employees/{employeeid}/leave
POST
Createemployeeleave — Creates leave records for a specific employee
/v1/employees/{employeeid}/leave
PUT
Updateemployeeleave — Updates leave records for a specific employee
/v1/employees/{employeeid}/leave/{leaveid}
DELETE
Deleteemployeeleave — Deletes a leave record for a specific employee
/v1/employees/{employeeid}/leave/{leaveid}
GET
Getemployeeleavebalances — Retrieves leave balances for a specific employee
/v1/employees/{employeeid}/leavebalances
GET
Getemployeeleaveperiods — Retrieves leave periods for a specific employee
/v1/employees/{employeeid}/leaveperiods
POST
Createemployeeleavesetup — Creates a leave set-up for a specific employee. This is required before viewing, configuring and requesting leave for an employee
/v1/employees/{employeeid}/leavesetup
GET
Getemployeeleavetypes — Retrieves leave types for a specific employee
/v1/employees/{employeeid}/leavetypes
POST
Createemployeeleavetype — Creates leave type records for a specific employee
/v1/employees/{employeeid}/leavetypes
GET
Getemployeeopeningbalances — Retrieves the opening balance for a specific employee
/v1/employees/{employeeid}/openingbalances
POST
Createemployeeopeningbalances — Creates opening balances for a specific employee
/v1/employees/{employeeid}/openingbalances
POST
Createmultipleemployeeearningstemplate — Creates multiple employee earnings template records for a specific employee
/v1/employees/{employeeid}/paytemplateearnings
GET
Getemployeepaytemplates — Retrieves pay templates for a specific employee
/v1/employees/{employeeid}/paytemplates
POST
Createemployeeearningstemplate — Creates earnings template records for an employee
/v1/employees/{employeeid}/paytemplates/earnings
PUT
Updateemployeeearningstemplate — Updates an earnings template records for an employee
/v1/employees/{employeeid}/paytemplates/earnings/{paytemplateearningid}
DELETE
Deleteemployeeearningstemplate — Deletes an employee's earnings template record
/v1/employees/{employeeid}/paytemplates/earnings/{paytemplateearningid}
GET
Getemployeepaymentmethod — Retrieves available payment methods for a specific employee
/v1/employees/{employeeid}/paymentmethods
POST
Createemployeepaymentmethod — Creates a payment method for an employee
/v1/employees/{employeeid}/paymentmethods
GET
Getemployeesalaryandwages — Retrieves an employee's salary and wages
/v1/employees/{employeeid}/salaryandwages
POST
Createemployeesalaryandwage — Creates an employee salary and wage record
/v1/employees/{employeeid}/salaryandwages
GET
Getemployeesalaryandwage — Retrieves an employee's salary and wages record by using a unique salary and wage ID
/v1/employees/{employeeid}/salaryandwages/{salaryandwagesid}
PUT
Updateemployeesalaryandwage — Updates an employee's salary and wages record
/v1/employees/{employeeid}/salaryandwages/{salaryandwagesid}
DELETE
Deleteemployeesalaryandwage — Deletes an employee's salary and wages record
/v1/employees/{employeeid}/salaryandwages/{salaryandwagesid}
GET
Getemployeetax — Retrieves tax records for a specific employee
/v1/employees/{employeeid}/tax
POST
Updateemployeetax — Updates the tax records for a specific employee
/v1/employees/{employeeid}/tax
GET
Getemployeeworkingpatterns — Retrieves employee's working patterns
/v1/employees/{employeeid}/working-patterns
POST
Createemployeeworkingpattern — Creates an employee working pattern
/v1/employees/{employeeid}/working-patterns
GET
Getemployeeworkingpattern — Retrieves employee's working patterns
/v1/employees/{employeeid}/working-patterns/{employeeworkingpatternid}
DELETE
Deleteemployeeworkingpattern — deletes employee's working patterns
/v1/employees/{employeeid}/working-patterns/{employeeworkingpatternid}
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 payroll calendar ID
/v1/payruncalendars/{payrollcalendarid}
GET
Getpayruns — Retrieves pay runs
/v1/payruns
POST
Createpayrun — Creates a pay run
/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 a unique pay slip ID
/v1/payslips/{payslipid}
PUT
Updatepaysliplineitems — Creates an employee pay slip
/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 settings
/v1/settings
GET
Gettrackingcategories — Retrieves tracking categories
/v1/settings/trackingcategories
GET
Getstatutorydeductions — Retrieves statutory deductions
/v1/statutorydeductions
GET
Getstatutorydeduction — Retrieves a specific statutory deduction by using a unique statutory deductions id
/v1/statutorydeductions/{id}
GET
Getsuperannuations — Retrieves superannuations
/v1/superannuations
POST
Createsuperannuation — Creates a new superannuation
/v1/superannuations
GET
Getsuperannuation — Retrieves a specific superannuation using a unique superannuation ID
/v1/superannuations/{superannuationid}
GET
Gettimesheets — Retrieves timesheets
/v1/timesheets
POST
Createtimesheet — Creates a new timesheet
/v1/timesheets
GET
Gettimesheet — Retrieves a specific timesheet by using a unique timesheet ID
/v1/timesheets/{timesheetid}
DELETE
Deletetimesheet — Deletes a timesheet
/v1/timesheets/{timesheetid}
POST
Approvetimesheet — Approves a timesheet
/v1/timesheets/{timesheetid}/approve
POST
Createtimesheetline — Create a new timesheet line for a specific time sheet
/v1/timesheets/{timesheetid}/lines
PUT
Updatetimesheetline — Updates a timesheet line for a specific timesheet
/v1/timesheets/{timesheetid}/lines/{timesheetlineid}
DELETE
Deletetimesheetline — Deletes a timesheet line for a specific timesheet
/v1/timesheets/{timesheetid}/lines/{timesheetlineid}
POST
Reverttimesheet — Reverts a timesheet to draft
/v1/timesheets/{timesheetid}/reverttodraft

MCP Tools

retrieves-deductions-specific-employee

Retrieves deductions for a specific employee

read-only idempotent
creates-new-deduction-specific-employee

Creates a new deduction for a specific employee

retrieves-single-deduction-using-unique

Retrieves a single deduction by using a unique deduction 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 an employees

retrieves-employees-using-unique-employee

Retrieves an employees using a unique employee ID

read-only idempotent
updates-existing-employee

Updates an existing employee

idempotent
creates-employment-detail-specific-employee

Creates an employment detail for a specific employee

retrieves-leave-records-specific-employee

Retrieves leave records for a specific employee

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

Creates leave records for a specific employee

updates-leave-records-specific-employee

Updates leave records for a specific employee

idempotent
deletes-leave-record-specific-employee

Deletes a leave record for a specific employee

idempotent
retrieves-leave-balances-specific-employee

Retrieves leave balances for a specific employee

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

Retrieves leave periods for a specific employee

read-only idempotent
creates-leave-set-up-specific

Creates a leave set-up for a specific employee. This is required before viewing, configuring and requesting leave for an employee

retrieves-leave-types-specific-employee

Retrieves leave types for a specific employee

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

Creates leave type records for a specific employee

retrieves-opening-balance-specific-employee

Retrieves the opening balance for a specific employee

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

Creates opening balances for a specific employee

creates-multiple-employee-earnings-template

Creates multiple employee earnings template records for a specific employee

retrieves-pay-templates-specific-employee

Retrieves pay templates for a specific employee

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

Creates earnings template records for an employee

updates-earnings-template-records-employee

Updates an earnings template records for an employee

idempotent
deletes-employee-s-earnings-template-record

Deletes an employee's earnings template record

idempotent
retrieves-available-payment-methods-specific

Retrieves available payment methods for a specific employee

read-only idempotent
creates-payment-method-employee

Creates a payment method for an employee

retrieves-employee-s-salary-and-wages

Retrieves an employee's salary and wages

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

Creates an employee salary and wage record

retrieves-employee-s-salary-and-wages-2

Retrieves an employee's salary and wages record by using a unique salary and wage ID

read-only idempotent
updates-employee-s-salary-and-wages

Updates an employee's salary and wages record

idempotent
deletes-employee-s-salary-and-wages

Deletes an employee's salary and wages record

idempotent
retrieves-tax-records-specific-employee

Retrieves tax records for a specific employee

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

Updates the tax records for a specific employee

retrieves-employee-s-working-patterns

Retrieves employee's working patterns

read-only idempotent
creates-employee-working-pattern

Creates an employee working pattern

retrieves-employee-s-working-patterns-2

Retrieves employee's working patterns

read-only idempotent
deletes-employee-s-working-patterns

deletes employee's working patterns

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 payroll calendar ID

read-only idempotent
retrieves-pay-runs

Retrieves pay runs

read-only idempotent
creates-pay-run

Creates a pay run

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-unique-pay

Retrieves a specific payslip by a unique pay slip ID

read-only idempotent
creates-employee-pay-slip

Creates an employee pay slip

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-settings

Retrieves settings

read-only idempotent
retrieves-tracking-categories

Retrieves tracking categories

read-only idempotent
retrieves-statutory-deductions

Retrieves statutory deductions

read-only idempotent
retrieves-specific-statutory-deduction-using

Retrieves a specific statutory deduction by using a unique statutory deductions id

read-only idempotent
retrieves-superannuations

Retrieves superannuations

read-only idempotent
creates-new-superannuation

Creates a new superannuation

retrieves-specific-superannuation-using-unique

Retrieves a specific superannuation using a unique superannuation ID

read-only idempotent
retrieves-timesheets

Retrieves timesheets

read-only idempotent
creates-new-timesheet

Creates a new timesheet

retrieves-specific-timesheet-using-unique

Retrieves a specific timesheet by using a unique timesheet ID

read-only idempotent
deletes-timesheet

Deletes a timesheet

idempotent
approves-timesheet

Approves a timesheet

create-new-timesheet-line-specific

Create a new timesheet line for a specific time sheet

updates-timesheet-line-specific-timesheet

Updates a timesheet line for a specific timesheet

idempotent
deletes-timesheet-line-specific-timesheet

Deletes a timesheet line for a specific timesheet

idempotent
reverts-timesheet-draft

Reverts a timesheet to draft

Capability Spec

payroll-nz-payrollnz.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Xero Payroll NZ — PayrollNz
  description: 'Xero Payroll NZ — PayrollNz. 71 operations. Lead operation: Retrieves deductions for a specific employee.
    Self-contained Naftiko capability covering one Xero business surface.'
  tags:
  - Xero
  - PayrollNz
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    XERO_API_KEY: XERO_API_KEY
capability:
  consumes:
  - type: http
    namespace: payroll-nz-payrollnz
    baseUri: https://api.xero.com/payroll.xro/2.0
    description: Xero Payroll NZ — PayrollNz business capability. Self-contained, no shared references.
    resources:
    - name: Deductions
      path: /Deductions
      operations:
      - name: getdeductions
        method: GET
        description: Retrieves deductions for a specific employee
        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 for a specific employee
        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 single 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: 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 and/or lastname
        - 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 an 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 an employees 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 an existing 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-Employment
      path: /Employees/{EmployeeID}/Employment
      operations:
      - name: createemployment
        method: POST
        description: Creates an employment detail 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
      path: /Employees/{EmployeeID}/Leave
      operations:
      - name: getemployeeleaves
        method: GET
        description: Retrieves 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: 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: updateemployeeleave
        method: PUT
        description: Updates 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: 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 leave 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: 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 leave balances 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: Employees-EmployeeID-LeavePeriods
      path: /Employees/{EmployeeID}/LeavePeriods
      operations:
      - name: getemployeeleaveperiods
        method: GET
        description: Retrieves leave periods 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: startDate
          in: query
          type: string
          description: Filter by start date
        - name: endDate
          in: query
          type: string
          description: Filter by end date
    - name: Employees-EmployeeID-LeaveSetup
      path: /Employees/{EmployeeID}/LeaveSetup
      operations:
      - name: createemployeeleavesetup
        method: POST
        description: Creates a leave set-up for a specific employee. This is required before viewing, configuring and requesting
          leave for an 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-LeaveTypes
      path: /Employees/{EmployeeID}/LeaveTypes
      operations:
      - name: getemployeeleavetypes
        method: GET
        description: Retrieves leave types 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: createemployeeleavetype
        method: POST
        description: Creates leave type 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-OpeningBalances
      path: /Employees/{EmployeeID}/OpeningBalances
      operations:
      - name: getemployeeopeningbalances
        method: GET
        description: Retrieves the 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: createemployeeopeningbalances
        method: POST
        description: Creates opening balances 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-PayTemplateEarnings
      path: /Employees/{EmployeeID}/PayTemplateEarnings
      operations:
      - name: createmultipleemployeeearningstemplate
        method: POST
        description: Creates multiple employee 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
      path: /Employees/{EmployeeID}/PayTemplates
      operations:
      - name: getemployeepaytemplates
        method: GET
        description: Retrieves pay templates 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: Employees-EmployeeID-PayTemplates-Earnings
      path: /Employees/{EmployeeID}/PayTemplates/Earnings
      operations:
      - name: createemployeeearningstemplate
        method: POST
        description: Creates earnings template records for an 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 an earnings template records for an 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: 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 an 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 available payment methods 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: createemployeepaymentmethod
        method: POST
        description: Creates a payment method for an 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
      path: /Employees/{EmployeeID}/SalaryAndWages
      operations:
      - name: getemployeesalaryandwages
        method: GET
        description: Retrieves an employee's salary and wages
        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 an employee salary and wage 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: 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 an employee's salary and wages record by 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 an employee's salary and wages 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: 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 an employee's salary and wages 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: SalaryAndWagesID
          in: path
          type: string
          description: Id for single salary and wages object
          required: true
    - name: Employees-EmployeeID-Tax
      path: /Employees/{EmployeeID}/Tax
      operations:
      - name: getemployeetax
        method: GET
        description: Retrieves tax 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: updateemployeetax
        method: POST
        description: Updates the tax 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-Working-Patterns
      path: /Employees/{EmployeeID}/Working-Patterns
      operations:
      - name: getemployeeworkingpatterns
        method: GET
        description: Retrieves employee's working patterns
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
      - name: createemployeeworkingpattern
        method: POST
        description: Creates an employee working pattern
        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-Working-Patterns-EmployeeWorkingPatternID
      path: /Employees/{EmployeeID}/Working-Patterns/{EmployeeWorkingPatternID}
      operations:
      - name: getemployeeworkingpattern
        method: GET
        description: Retrieves employee's working patterns
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: EmployeeWorkingPatternID
          in: path
          type: string
          description: Employee working pattern id for single object
          required: true
      - name: deleteemployeeworkingpattern
        method: DELETE
        description: deletes employee's working patterns
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: EmployeeID
          in: path
          type: string
          description: Employee id for single object
          required: true
        - name: EmployeeWorkingPatternID
          in: path
          type: string
          description: Employee working pattern id for single object
          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-PayrollCalendarID
      path: /PayRunCalendars/{PayrollCalendarID}
      operations:
      - name: getpayruncalendar
        method: GET
        description: Retrieves a specific payrun calendar by using a unique payroll calendar ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PayrollCalendarID
          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: createpayrun
        method: POST
        description: Creates a pay run
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - 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 a unique pay slip ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PaySlipID
          in: path
          type: string
          description: Identifier for the payslip
          required: true
      - name: updatepaysliplineitems
        method: PUT
        description: Creates an employee pay slip
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PaySlipID
          in: path
          type: string
          description: Identifier for the payslip
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          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 settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: Settings-TrackingCategories
      path: /Settings/TrackingCategories
      operations:
      - name: gettrackingcategories
        method: GET
        description: Retrieves t

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