Xero · Capability

Xero Payroll AU API — PayrollAu

Xero Payroll AU API — PayrollAu. 32 operations. Lead operation: Searches payroll employees. Self-contained Naftiko capability covering one Xero business surface.

Run with Naftiko XeroPayrollAu

What You Can Do

GET
Getemployees — Searches payroll employees
/v1/employees
POST
Createemployee — Creates a payroll employee
/v1/employees
GET
Getemployee — Retrieves an employee's detail by unique employee id
/v1/employees/{employeeid}
POST
Updateemployee — Updates an employee's detail
/v1/employees/{employeeid}
GET
Getleaveapplications — Retrieves leave applications
/v1/leaveapplications
POST
Createleaveapplication — Creates a leave application
/v1/leaveapplications
GET
Getleaveapplicationsv2 — Retrieves leave applications including leave requests
/v1/leaveapplications/v2
GET
Getleaveapplication — Retrieves a leave application by a unique leave application id
/v1/leaveapplications/{leaveapplicationid}
POST
Updateleaveapplication — Updates a specific leave application
/v1/leaveapplications/{leaveapplicationid}
POST
Approveleaveapplication — Approve a requested leave application by a unique leave application id
/v1/leaveapplications/{leaveapplicationid}/approve
POST
Rejectleaveapplication — Reject a leave application by a unique leave application id
/v1/leaveapplications/{leaveapplicationid}/reject
GET
Getpayitems — Retrieves pay items
/v1/payitems
POST
Createpayitem — Creates a pay item
/v1/payitems
GET
Getpayruns — Retrieves pay runs
/v1/payruns
POST
Createpayrun — Creates a pay run
/v1/payruns
GET
Getpayrun — Retrieves a pay run by using a unique pay run id
/v1/payruns/{payrunid}
POST
Updatepayrun — Updates a pay run
/v1/payruns/{payrunid}
GET
Getpayrollcalendars — Retrieves payroll calendars
/v1/payrollcalendars
POST
Createpayrollcalendar — Creates a Payroll Calendar
/v1/payrollcalendars
GET
Getpayrollcalendar — Retrieves payroll calendar by using a unique payroll calendar ID
/v1/payrollcalendars/{payrollcalendarid}
GET
Getpayslip — Retrieves for a payslip by a unique payslip id
/v1/payslip/{payslipid}
POST
Updatepayslip — Updates a payslip
/v1/payslip/{payslipid}
GET
Getsettings — Retrieves payroll settings
/v1/settings
GET
Getsuperfundproducts — Retrieves superfund products
/v1/superfundproducts
GET
Getsuperfunds — Retrieves superfunds
/v1/superfunds
POST
Createsuperfund — Creates a superfund
/v1/superfunds
GET
Getsuperfund — Retrieves a superfund by using a unique superfund ID
/v1/superfunds/{superfundid}
POST
Updatesuperfund — Updates a superfund
/v1/superfunds/{superfundid}
GET
Gettimesheets — Retrieves timesheets
/v1/timesheets
POST
Createtimesheet — Creates a timesheet
/v1/timesheets
GET
Gettimesheet — Retrieves a timesheet by using a unique timesheet id
/v1/timesheets/{timesheetid}
POST
Updatetimesheet — Updates a timesheet
/v1/timesheets/{timesheetid}

MCP Tools

searches-payroll-employees

Searches payroll employees

read-only idempotent
creates-payroll-employee

Creates a payroll employee

retrieves-employee-s-detail-unique-employee

Retrieves an employee's detail by unique employee id

read-only idempotent
updates-employee-s-detail

Updates an employee's detail

retrieves-leave-applications

Retrieves leave applications

read-only idempotent
creates-leave-application

Creates a leave application

retrieves-leave-applications-including-leave

Retrieves leave applications including leave requests

read-only idempotent
retrieves-leave-application-unique-leave

Retrieves a leave application by a unique leave application id

read-only idempotent
updates-specific-leave-application

Updates a specific leave application

approve-requested-leave-application-unique

Approve a requested leave application by a unique leave application id

reject-leave-application-unique-leave

Reject a leave application by a unique leave application id

retrieves-pay-items

Retrieves pay items

read-only idempotent
creates-pay-item

Creates a pay item

retrieves-pay-runs

Retrieves pay runs

read-only idempotent
creates-pay-run

Creates a pay run

retrieves-pay-run-using-unique

Retrieves a pay run by using a unique pay run id

read-only idempotent
updates-pay-run

Updates a pay run

retrieves-payroll-calendars

Retrieves payroll calendars

read-only idempotent
creates-payroll-calendar

Creates a Payroll Calendar

retrieves-payroll-calendar-using-unique

Retrieves payroll calendar by using a unique payroll calendar ID

read-only idempotent
retrieves-payslip-unique-payslip-id

Retrieves for a payslip by a unique payslip id

read-only idempotent
updates-payslip

Updates a payslip

retrieves-payroll-settings

Retrieves payroll settings

read-only idempotent
retrieves-superfund-products

Retrieves superfund products

read-only idempotent
retrieves-superfunds

Retrieves superfunds

read-only idempotent
creates-superfund

Creates a superfund

retrieves-superfund-using-unique-superfund

Retrieves a superfund by using a unique superfund ID

read-only idempotent
updates-superfund

Updates a superfund

retrieves-timesheets

Retrieves timesheets

read-only idempotent
creates-timesheet

Creates a timesheet

retrieves-timesheet-using-unique-timesheet

Retrieves a timesheet by using a unique timesheet id

read-only idempotent
updates-timesheet

Updates a timesheet

Capability Spec

payroll-au-payrollau.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Xero Payroll AU API — PayrollAu
  description: 'Xero Payroll AU API — PayrollAu. 32 operations. Lead operation: Searches payroll employees. Self-contained
    Naftiko capability covering one Xero business surface.'
  tags:
  - Xero
  - PayrollAu
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    XERO_API_KEY: XERO_API_KEY
capability:
  consumes:
  - type: http
    namespace: payroll-au-payrollau
    baseUri: https://api.xero.com/payroll.xro/1.0
    description: Xero Payroll AU API — PayrollAu business capability. Self-contained, no shared references.
    resources:
    - name: Employees
      path: /Employees
      operations:
      - name: getemployees
        method: GET
        description: Searches payroll employees
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-Modified-Since
          in: header
          type: string
          description: Only records created or modified since this timestamp will be returned
        - name: where
          in: query
          type: string
          description: Filter by an any element
        - name: order
          in: query
          type: string
          description: Order by an any element
        - name: page
          in: query
          type: integer
          description: e.g. page=1 – Up to 100 employees will be returned in a single API call
      - name: createemployee
        method: POST
        description: Creates a payroll employee
        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 employee's detail by 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: POST
        description: Updates an 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: LeaveApplications
      path: /LeaveApplications
      operations:
      - name: getleaveapplications
        method: GET
        description: Retrieves leave applications
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-Modified-Since
          in: header
          type: string
          description: Only records created or modified since this timestamp will be returned
        - name: where
          in: query
          type: string
          description: Filter by an any element
        - name: order
          in: query
          type: string
          description: Order by an any element
        - name: page
          in: query
          type: integer
          description: e.g. page=1 – Up to 100 objects will be returned in a single API call
      - name: createleaveapplication
        method: POST
        description: Creates a leave application
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: LeaveApplications-v2
      path: /LeaveApplications/v2
      operations:
      - name: getleaveapplicationsv2
        method: GET
        description: Retrieves leave applications including leave requests
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-Modified-Since
          in: header
          type: string
          description: Only records created or modified since this timestamp will be returned
        - name: where
          in: query
          type: string
          description: Filter by an any element
        - name: order
          in: query
          type: string
          description: Order by an any element
        - name: page
          in: query
          type: integer
          description: e.g. page=1 – Up to 100 objects will be returned in a single API call
    - name: LeaveApplications-LeaveApplicationID
      path: /LeaveApplications/{LeaveApplicationID}
      operations:
      - name: getleaveapplication
        method: GET
        description: Retrieves a leave application by a unique leave application id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: LeaveApplicationID
          in: path
          type: string
          description: Leave Application id for single object
          required: true
      - name: updateleaveapplication
        method: POST
        description: Updates a specific leave application
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: LeaveApplicationID
          in: path
          type: string
          description: Leave Application id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: LeaveApplications-LeaveApplicationID-approve
      path: /LeaveApplications/{LeaveApplicationID}/approve
      operations:
      - name: approveleaveapplication
        method: POST
        description: Approve a requested leave application by a unique leave application id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: LeaveApplicationID
          in: path
          type: string
          description: Leave Application id for single object
          required: true
    - name: LeaveApplications-LeaveApplicationID-reject
      path: /LeaveApplications/{LeaveApplicationID}/reject
      operations:
      - name: rejectleaveapplication
        method: POST
        description: Reject a leave application by a unique leave application id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: LeaveApplicationID
          in: path
          type: string
          description: Leave Application id for single object
          required: true
    - name: PayItems
      path: /PayItems
      operations:
      - name: getpayitems
        method: GET
        description: Retrieves pay items
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-Modified-Since
          in: header
          type: string
          description: Only records created or modified since this timestamp will be returned
        - name: where
          in: query
          type: string
          description: Filter by an any element
        - name: order
          in: query
          type: string
          description: Order by an any element
        - name: page
          in: query
          type: integer
          description: e.g. page=1 – Up to 100 objects will be returned in a single API call
      - name: createpayitem
        method: POST
        description: Creates a pay item
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          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: If-Modified-Since
          in: header
          type: string
          description: Only records created or modified since this timestamp will be returned
        - name: where
          in: query
          type: string
          description: Filter by an any element
        - name: order
          in: query
          type: string
          description: Order by an any element
        - name: page
          in: query
          type: integer
          description: e.g. page=1 – Up to 100 PayRuns will be returned in a single API call
      - 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 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: PayRun id for single object
          required: true
      - name: updatepayrun
        method: POST
        description: Updates a pay run
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PayRunID
          in: path
          type: string
          description: PayRun id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: PayrollCalendars
      path: /PayrollCalendars
      operations:
      - name: getpayrollcalendars
        method: GET
        description: Retrieves payroll calendars
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-Modified-Since
          in: header
          type: string
          description: Only records created or modified since this timestamp will be returned
        - name: where
          in: query
          type: string
          description: Filter by an any element
        - name: order
          in: query
          type: string
          description: Order by an any element
        - name: page
          in: query
          type: integer
          description: e.g. page=1 – Up to 100 objects will be returned in a single API call
      - name: createpayrollcalendar
        method: POST
        description: Creates a Payroll Calendar
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: PayrollCalendars-PayrollCalendarID
      path: /PayrollCalendars/{PayrollCalendarID}
      operations:
      - name: getpayrollcalendar
        method: GET
        description: Retrieves payroll calendar by using a unique payroll calendar ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PayrollCalendarID
          in: path
          type: string
          description: Payroll Calendar id for single object
          required: true
    - name: Payslip-PayslipID
      path: /Payslip/{PayslipID}
      operations:
      - name: getpayslip
        method: GET
        description: Retrieves for a payslip by a unique payslip id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PayslipID
          in: path
          type: string
          description: Payslip id for single object
          required: true
      - name: updatepayslip
        method: POST
        description: Updates a payslip
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: PayslipID
          in: path
          type: string
          description: Payslip id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Settings
      path: /Settings
      operations:
      - name: getsettings
        method: GET
        description: Retrieves payroll settings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: SuperfundProducts
      path: /SuperfundProducts
      operations:
      - name: getsuperfundproducts
        method: GET
        description: Retrieves superfund products
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: ABN
          in: query
          type: string
          description: The ABN of the Regulated SuperFund
        - name: USI
          in: query
          type: string
          description: The USI of the Regulated SuperFund
    - name: Superfunds
      path: /Superfunds
      operations:
      - name: getsuperfunds
        method: GET
        description: Retrieves superfunds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-Modified-Since
          in: header
          type: string
          description: Only records created or modified since this timestamp will be returned
        - name: where
          in: query
          type: string
          description: Filter by an any element
        - name: order
          in: query
          type: string
          description: Order by an any element
        - name: page
          in: query
          type: integer
          description: e.g. page=1 – Up to 100 SuperFunds will be returned in a single API call
      - name: createsuperfund
        method: POST
        description: Creates a superfund
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Superfunds-SuperFundID
      path: /Superfunds/{SuperFundID}
      operations:
      - name: getsuperfund
        method: GET
        description: Retrieves a superfund by using a unique superfund ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: SuperFundID
          in: path
          type: string
          description: Superfund id for single object
          required: true
      - name: updatesuperfund
        method: POST
        description: Updates a superfund
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: SuperFundID
          in: path
          type: string
          description: Superfund id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Timesheets
      path: /Timesheets
      operations:
      - name: gettimesheets
        method: GET
        description: Retrieves timesheets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: If-Modified-Since
          in: header
          type: string
          description: Only records created or modified since this timestamp will be returned
        - name: where
          in: query
          type: string
          description: Filter by an any element
        - name: order
          in: query
          type: string
          description: Order by an any element
        - name: page
          in: query
          type: integer
          description: e.g. page=1 – Up to 100 timesheets will be returned in a single API call
      - name: createtimesheet
        method: POST
        description: Creates a timesheet
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: Timesheets-TimesheetID
      path: /Timesheets/{TimesheetID}
      operations:
      - name: gettimesheet
        method: GET
        description: Retrieves a timesheet by using a unique timesheet id
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: TimesheetID
          in: path
          type: string
          description: Timesheet id for single object
          required: true
      - name: updatetimesheet
        method: POST
        description: Updates a timesheet
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: TimesheetID
          in: path
          type: string
          description: Timesheet id for single object
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.XERO_API_KEY}}'
  exposes:
  - type: rest
    namespace: payroll-au-payrollau-rest
    port: 8080
    description: REST adapter for Xero Payroll AU API — PayrollAu. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/employees
      name: employees
      description: REST surface for Employees.
      operations:
      - method: GET
        name: getemployees
        description: Searches payroll employees
        call: payroll-au-payrollau.getemployees
        with:
          If-Modified-Since: rest.If-Modified-Since
          where: rest.where
          order: rest.order
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createemployee
        description: Creates a payroll employee
        call: payroll-au-payrollau.createemployee
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/employees/{employeeid}
      name: employees-employeeid
      description: REST surface for Employees-EmployeeID.
      operations:
      - method: GET
        name: getemployee
        description: Retrieves an employee's detail by unique employee id
        call: payroll-au-payrollau.getemployee
        with:
          EmployeeID: rest.EmployeeID
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updateemployee
        description: Updates an employee's detail
        call: payroll-au-payrollau.updateemployee
        with:
          EmployeeID: rest.EmployeeID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/leaveapplications
      name: leaveapplications
      description: REST surface for LeaveApplications.
      operations:
      - method: GET
        name: getleaveapplications
        description: Retrieves leave applications
        call: payroll-au-payrollau.getleaveapplications
        with:
          If-Modified-Since: rest.If-Modified-Since
          where: rest.where
          order: rest.order
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createleaveapplication
        description: Creates a leave application
        call: payroll-au-payrollau.createleaveapplication
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/leaveapplications/v2
      name: leaveapplications-v2
      description: REST surface for LeaveApplications-v2.
      operations:
      - method: GET
        name: getleaveapplicationsv2
        description: Retrieves leave applications including leave requests
        call: payroll-au-payrollau.getleaveapplicationsv2
        with:
          If-Modified-Since: rest.If-Modified-Since
          where: rest.where
          order: rest.order
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/leaveapplications/{leaveapplicationid}
      name: leaveapplications-leaveapplicationid
      description: REST surface for LeaveApplications-LeaveApplicationID.
      operations:
      - method: GET
        name: getleaveapplication
        description: Retrieves a leave application by a unique leave application id
        call: payroll-au-payrollau.getleaveapplication
        with:
          LeaveApplicationID: rest.LeaveApplicationID
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updateleaveapplication
        description: Updates a specific leave application
        call: payroll-au-payrollau.updateleaveapplication
        with:
          LeaveApplicationID: rest.LeaveApplicationID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/leaveapplications/{leaveapplicationid}/approve
      name: leaveapplications-leaveapplicationid-approve
      description: REST surface for LeaveApplications-LeaveApplicationID-approve.
      operations:
      - method: POST
        name: approveleaveapplication
        description: Approve a requested leave application by a unique leave application id
        call: payroll-au-payrollau.approveleaveapplication
        with:
          LeaveApplicationID: rest.LeaveApplicationID
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/leaveapplications/{leaveapplicationid}/reject
      name: leaveapplications-leaveapplicationid-reject
      description: REST surface for LeaveApplications-LeaveApplicationID-reject.
      operations:
      - method: POST
        name: rejectleaveapplication
        description: Reject a leave application by a unique leave application id
        call: payroll-au-payrollau.rejectleaveapplication
        with:
          LeaveApplicationID: rest.LeaveApplicationID
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/payitems
      name: payitems
      description: REST surface for PayItems.
      operations:
      - method: GET
        name: getpayitems
        description: Retrieves pay items
        call: payroll-au-payrollau.getpayitems
        with:
          If-Modified-Since: rest.If-Modified-Since
          where: rest.where
          order: rest.order
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createpayitem
        description: Creates a pay item
        call: payroll-au-payrollau.createpayitem
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/payruns
      name: payruns
      description: REST surface for PayRuns.
      operations:
      - method: GET
        name: getpayruns
        description: Retrieves pay runs
        call: payroll-au-payrollau.getpayruns
        with:
          If-Modified-Since: rest.If-Modified-Since
          where: rest.where
          order: rest.order
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createpayrun
        description: Creates a pay run
        call: payroll-au-payrollau.createpayrun
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/payruns/{payrunid}
      name: payruns-payrunid
      description: REST surface for PayRuns-PayRunID.
      operations:
      - method: GET
        name: getpayrun
        description: Retrieves a pay run by using a unique pay run id
        call: payroll-au-payrollau.getpayrun
        with:
          PayRunID: rest.PayRunID
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updatepayrun
        description: Updates a pay run
        call: payroll-au-payrollau.updatepayrun
        with:
          PayRunID: rest.PayRunID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/payrollcalendars
      name: payrollcalendars
      description: REST surface for PayrollCalendars.
      operations:
      - method: GET
        name: getpayrollcalendars
        description: Retrieves payroll calendars
        call: payroll-au-payrollau.getpayrollcalendars
        with:
          If-Modified-Since: rest.If-Modified-Since
          where: rest.where
          order: rest.order
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createpayrollcalendar
        description: Creates a Payroll Calendar
        call: payroll-au-payrollau.createpayrollcalendar
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/payrollcalendars/{payrollcalendarid}
      name: payrollcalendars-payrollcalendarid
      description: REST surface for PayrollCalendars-PayrollCalendarID.
      operations:
      - method: GET
        name: getpayrollcalendar
        description: Retrieves payroll calendar by using a unique payroll calendar ID
        call: payroll-au-payrollau.getpayrollcalendar
        with:
          PayrollCalendarID: rest.PayrollCalendarID
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/payslip/{payslipid}
      name: payslip-payslipid
      description: REST surface for Payslip-PayslipID.
      operations:
      - method: GET
        name: getpayslip
        description: Retrieves for a payslip by a unique payslip id
        call: payroll-au-payrollau.getpayslip
        with:
          PayslipID: rest.PayslipID
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updatepayslip
        description: Updates a payslip
        call: payroll-au-payrollau.updatepayslip
        with:
          PayslipID: rest.PayslipID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/settings
      name: settings
      description: REST surface for Settings.
      operations:
      - method: GET
        name: getsettings
        description: Retrieves payroll settings
        call: payroll-au-payrollau.getsettings
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/superfundproducts
      name: superfundproducts
      description: REST surface for SuperfundProducts.
      operations:
      - method: GET
        name: getsuperfundproducts
        description: Retrieves superfund products
        call: payroll-au-payrollau.getsuperfundproducts
        with:
          ABN: rest.ABN
          USI: rest.USI
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/superfunds
      name: superfunds
      description: REST surface for Superfunds.
      operations:
      - method: GET
        name: getsuperfunds
        description: Retrieves superfunds
        call: payroll-au-payrollau.getsuperfunds
        with:
          If-Modified-Since: rest.If-Modified-Since
          where: rest.where
          order: rest.order
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createsuperfund
        description: Creates a superfund
        call: payroll-au-payrollau.createsuperfund
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/superfunds/{superfundid}
      name: superfunds-superfundid
      description: REST surface for Superfunds-SuperFundID.
      operations:
      - method: GET
        name: getsuperfund
        description: Retrieves a superfund by using a unique superfund ID
        call: payroll-au-payrollau.getsuperfund
        with:
          SuperFundID: rest.SuperFundID
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updatesuperfund
        description: Updates a superfund
        call: payroll-au-payrollau.updatesuperfund
        with:
          SuperFundID: rest.SuperFundID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/timesheets
      name: timesheets
      description: REST surface for Timesheets.
      operations:
      - method: GET
        name: gettimesheets
        description: Retrieves timesheets
        call: payroll-au-payrollau.gettimesheets
        with:
          If-Modified-Since: rest.If-Modified-Since
          where: rest.where
          order: rest.order
          page: rest.page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createtimesheet
        description: Creates a timesheet
        call: payroll-au-payrollau.createtimesheet
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/timesheets/{timesheetid}
      name: timesheets-timesheetid
      description: REST surface for Timesheets-TimesheetID.
      operations:
      - method: GET
        name: gettimesheet
        description: Retrieves a timesheet by using a unique timesheet id
        call: payroll-au-payrollau.gettimesheet
        with:
          TimesheetID: rest.TimesheetID
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: updatetimesheet
        description: Updates a timesheet
        call: payroll-au-payrollau.updatetimesheet
        with:
          TimesheetID: rest.TimesheetID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: payroll-au-payrollau-mcp
    port: 9090
    transport: http
    description: MCP adapter for Xero Payroll AU API — PayrollAu. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: searches-payroll-employees
      description: Searches payroll employees
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: payroll-au-payrollau.getemployees
      with:
        If-Modified-Since: tools.If-Modified-Since
        where: tools.where
        order: tools.order
        page: tools.page
      outputParameters:
      - type: object
        mapping: $.
    - name: creates-payroll-employee
      description: Creates a payroll employee
      hints

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