Xero · Schema

PaySlip

AccountingBank FeedsFinanceFinancial ServicesInvoicingPayrollSmall Business

Properties

Name Type Description
paySlipID string The Xero identifier for a PaySlip
employeeID string The Xero identifier for payroll employee
payRunID string The Xero identifier for the associated payrun
lastEdited string The date payslip was last updated
firstName string Employee first name
lastName string Employee last name
totalEarnings number Total earnings before any deductions. Same as gross earnings for NZ.
grossEarnings number Total earnings before any deductions. Same as total earnings for NZ.
totalPay number The employee net pay
totalEmployerTaxes number The employer's tax obligation
totalEmployeeTaxes number The part of an employee's earnings that is deducted for tax purposes
totalDeductions number Total amount subtracted from an employee's earnings to reach total pay
totalReimbursements number Total reimbursements are nontaxable payments to an employee used to repay out-of-pocket expenses when the person incurs those expenses through employment
totalStatutoryDeductions number Total amounts required by law to subtract from the employee's earnings
totalSuperannuation number Benefits (also called fringe benefits, perquisites or perks) are various non-earnings compensations provided to employees in addition to their normal earnings or salaries
bacsHash string BACS Service User Number
paymentMethod string The payment method code
earningsLines object
leaveEarningsLines object
timesheetEarningsLines object
deductionLines object
reimbursementLines object
leaveAccrualLines object
superannuationLines object
paymentLines object
employeeTaxLines object
employerTaxLines object
statutoryDeductionLines object
taxSettings object
grossEarningsHistory object
View JSON Schema on GitHub

JSON Schema

xero-pay-slip-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/xero/main/json-schema/xero-pay-slip-schema.json",
  "title": "PaySlip",
  "x-generated": "2026-10-20",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/xero-payrollnz-api-openapi.yml#/components/schemas/PaySlip",
  "type": "object",
  "properties": {
    "paySlipID": {
      "description": "The Xero identifier for a PaySlip",
      "type": "string",
      "format": "uuid"
    },
    "employeeID": {
      "description": "The Xero identifier for payroll employee",
      "type": "string",
      "format": "uuid"
    },
    "payRunID": {
      "description": "The Xero identifier for the associated payrun",
      "type": "string",
      "format": "uuid"
    },
    "lastEdited": {
      "description": "The date payslip was last updated",
      "type": "string",
      "format": "date",
      "x-is-datetime": true
    },
    "firstName": {
      "description": "Employee first name",
      "type": "string"
    },
    "lastName": {
      "description": "Employee last name",
      "type": "string"
    },
    "totalEarnings": {
      "description": "Total earnings before any deductions. Same as gross earnings for NZ.",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "grossEarnings": {
      "description": "Total earnings before any deductions. Same as total earnings for NZ.",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "totalPay": {
      "description": "The employee net pay",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "totalEmployerTaxes": {
      "description": "The employer's tax obligation",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "totalEmployeeTaxes": {
      "description": "The part of an employee's earnings that is deducted for tax purposes",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "totalDeductions": {
      "description": "Total amount subtracted from an employee's earnings to reach total pay",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "totalReimbursements": {
      "description": "Total reimbursements are nontaxable payments to an employee used to repay out-of-pocket expenses when the person incurs those expenses through employment",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "totalStatutoryDeductions": {
      "description": "Total amounts required by law to subtract from the employee's earnings",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "totalSuperannuation": {
      "description": "Benefits (also called fringe benefits, perquisites or perks) are various non-earnings compensations provided to employees in addition to their normal earnings or salaries",
      "type": "number",
      "format": "double",
      "x-is-money": true
    },
    "bacsHash": {
      "description": "BACS Service User Number",
      "type": "string"
    },
    "paymentMethod": {
      "description": "The payment method code",
      "type": "string",
      "enum": [
        "Cheque",
        "Electronically",
        "Manual"
      ]
    },
    "earningsLines": {
      "$ref": "#/$defs/EarningsLines"
    },
    "leaveEarningsLines": {
      "$ref": "#/$defs/LeaveEarningsLines"
    },
    "timesheetEarningsLines": {
      "$ref": "#/$defs/TimesheetEarningsLines"
    },
    "deductionLines": {
      "$ref": "#/$defs/DeductionLines"
    },
    "reimbursementLines": {
      "$ref": "#/$defs/ReimbursementLines"
    },
    "leaveAccrualLines": {
      "$ref": "#/$defs/LeaveAccrualLines"
    },
    "superannuationLines": {
      "$ref": "#/$defs/SuperannuationLines"
    },
    "paymentLines": {
      "$ref": "#/$defs/PaymentLines"
    },
    "employeeTaxLines": {
      "$ref": "#/$defs/TaxLines"
    },
    "employerTaxLines": {
      "$ref": "#/$defs/TaxLines"
    },
    "statutoryDeductionLines": {
      "$ref": "#/$defs/StatutoryDeductionLines"
    },
    "taxSettings": {
      "$ref": "#/$defs/TaxSettings"
    },
    "grossEarningsHistory": {
      "$ref": "#/$defs/GrossEarningsHistory"
    }
  },
  "$defs": {
    "DeductionLine": {
      "type": "object",
      "properties": {
        "deductionTypeID": {
          "description": "Xero identifier for payroll deduction",
          "type": "string",
          "format": "uuid"
        },
        "displayName": {
          "description": "name of earnings rate for display in UI",
          "type": "string"
        },
        "amount": {
          "description": "The amount of the deduction line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "subjectToTax": {
          "description": "Identifies if the deduction is subject to tax",
          "type": "boolean"
        },
        "percentage": {
          "description": "Deduction rate percentage",
          "type": "number",
          "format": "double",
          "x-is-money": true
        }
      }
    },
    "DeductionLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/DeductionLine"
      }
    },
    "EarningsLine": {
      "type": "object",
      "properties": {
        "earningsLineID": {
          "description": "Xero identifier for payroll earnings line",
          "type": "string",
          "format": "uuid"
        },
        "earningsRateID": {
          "description": "Xero identifier for payroll earnings rate",
          "type": "string",
          "format": "uuid"
        },
        "displayName": {
          "description": "name of earnings rate for display in UI",
          "type": "string"
        },
        "ratePerUnit": {
          "description": "Rate per unit for earnings line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "numberOfUnits": {
          "description": "Earnings number of units",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "fixedAmount": {
          "description": "Earnings fixed amount. Only applicable if the EarningsRate RateType is Fixed",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "amount": {
          "description": "The amount of the earnings line.",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "isLinkedToTimesheet": {
          "description": "Identifies if the earnings is taken from the timesheet. False for earnings line",
          "type": "boolean"
        },
        "isAverageDailyPayRate": {
          "description": "Identifies if the earnings is using an average daily pay rate",
          "type": "boolean"
        },
        "isSystemGenerated": {
          "description": "Flag to identify whether the earnings line is system generated or not.",
          "type": "boolean"
        }
      }
    },
    "EarningsLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/EarningsLine"
      }
    },
    "GrossEarningsHistory": {
      "type": "object",
      "properties": {
        "daysPaid": {
          "description": "Number of days the employee worked in the pay period (0 - 365)",
          "type": "integer",
          "format": "int32"
        },
        "unpaidWeeks": {
          "description": "Number of full weeks the employee didn't work in the pay period (0 - 52)",
          "type": "integer",
          "format": "int32"
        }
      }
    },
    "LeaveAccrualLine": {
      "type": "object",
      "properties": {
        "leaveTypeID": {
          "description": "Xero identifier for the Leave type",
          "type": "string",
          "format": "uuid"
        },
        "numberOfUnits": {
          "description": "Leave accrual number of units",
          "type": "number",
          "format": "double",
          "x-is-money": true
        }
      }
    },
    "LeaveAccrualLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/LeaveAccrualLine"
      }
    },
    "LeaveEarningsLine": {
      "type": "object",
      "properties": {
        "earningsLineID": {
          "description": "Xero identifier for payroll earnings line",
          "type": "string",
          "format": "uuid"
        },
        "earningsRateID": {
          "description": "Xero identifier for payroll leave earnings rate",
          "type": "string",
          "format": "uuid"
        },
        "displayName": {
          "description": "name of earnings rate for display in UI",
          "type": "string"
        },
        "ratePerUnit": {
          "description": "Rate per unit for leave earnings line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "numberOfUnits": {
          "description": "Leave earnings number of units",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "fixedAmount": {
          "description": "Leave earnings fixed amount. Only applicable if the EarningsRate RateType is Fixed",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "amount": {
          "description": "The amount of the earnings line.",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "isLinkedToTimesheet": {
          "description": "Identifies if the leave earnings is taken from the timesheet. False for leave earnings line",
          "type": "boolean"
        },
        "isAverageDailyPayRate": {
          "description": "Identifies if the earnings is using an average daily pay rate",
          "type": "boolean"
        },
        "isSystemGenerated": {
          "description": "Flag to identify whether the earnings line is system generated or not.",
          "type": "boolean"
        }
      }
    },
    "LeaveEarningsLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/LeaveEarningsLine"
      }
    },
    "PaymentLine": {
      "type": "object",
      "properties": {
        "paymentLineID": {
          "description": "Xero identifier for payroll payment line",
          "type": "string",
          "format": "uuid"
        },
        "amount": {
          "description": "The amount of the payment line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "accountNumber": {
          "description": "The account number",
          "type": "string"
        },
        "sortCode": {
          "description": "The account sort code",
          "type": "string"
        },
        "accountName": {
          "description": "The account name",
          "type": "string"
        }
      }
    },
    "PaymentLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/PaymentLine"
      }
    },
    "ReimbursementLine": {
      "type": "object",
      "properties": {
        "reimbursementTypeID": {
          "description": "Xero identifier for payroll reimbursement",
          "type": "string",
          "format": "uuid"
        },
        "description": {
          "description": "Reimbursement line description",
          "type": "string"
        },
        "amount": {
          "description": "Reimbursement amount",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "ratePerUnit": {
          "description": "Rate per unit for leave earnings line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "numberOfUnits": {
          "description": "Leave earnings number of units",
          "type": "number",
          "format": "double",
          "x-is-money": true
        }
      }
    },
    "ReimbursementLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/ReimbursementLine"
      }
    },
    "StatutoryDeductionLine": {
      "type": "object",
      "properties": {
        "statutoryDeductionTypeID": {
          "description": "Xero identifier for payroll statutory deduction type",
          "type": "string",
          "format": "uuid"
        },
        "amount": {
          "description": "The amount of the statutory deduction line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "fixedAmount": {
          "description": "Fixed Amount",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "manualAdjustment": {
          "description": "Identifies if the tax line is a manual adjustment",
          "type": "boolean"
        }
      }
    },
    "StatutoryDeductionLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/StatutoryDeductionLine"
      }
    },
    "SuperannuationLine": {
      "type": "object",
      "properties": {
        "superannuationTypeID": {
          "description": "Xero identifier for payroll superannuation type",
          "type": "string",
          "format": "uuid"
        },
        "displayName": {
          "description": "Benefit display name",
          "type": "string"
        },
        "amount": {
          "description": "The amount of the superannuation line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "fixedAmount": {
          "description": "Superannuation fixed amount",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "percentage": {
          "description": "Superannuation rate percentage",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "manualAdjustment": {
          "description": "manual adjustment made",
          "type": "boolean"
        }
      }
    },
    "SuperannuationLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/SuperannuationLine"
      }
    },
    "TaxCode": {
      "description": "Tax codes used for employee tax",
      "type": "string",
      "enum": [
        "ND",
        "M",
        "ME",
        "MSL",
        "MESL",
        "SB",
        "S",
        "SH",
        "ST",
        "SBSL",
        "SSL",
        "SHSL",
        "STSL",
        "WT",
        "CAE",
        "EDW",
        "NSW",
        "STC",
        "STCSL"
      ]
    },
    "TaxLine": {
      "type": "object",
      "properties": {
        "taxLineID": {
          "description": "Xero identifier for payroll tax line",
          "type": "string",
          "format": "uuid"
        },
        "description": {
          "description": "Tax line description",
          "type": "string"
        },
        "amount": {
          "description": "The amount of the tax line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "globalTaxTypeID": {
          "description": "Tax type ID",
          "type": "string"
        },
        "manualAdjustment": {
          "description": "Identifies if the tax line is a manual adjustment",
          "type": "boolean"
        }
      }
    },
    "TaxLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/TaxLine"
      }
    },
    "TaxSettings": {
      "type": "object",
      "properties": {
        "periodUnits": {
          "description": "The number of units for the period type",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "periodType": {
          "description": "The type of period (\"weeks\" or \"months\")",
          "type": "string",
          "enum": [
            "weeks",
            "months"
          ]
        },
        "taxCode": {
          "$ref": "#/$defs/TaxCode"
        },
        "specialTaxRate": {
          "description": "Tax rate for STC and WT",
          "type": "string"
        },
        "lumpSumTaxCode": {
          "description": "Tax code for a lump sum amount",
          "type": "string"
        },
        "lumpSumAmount": {
          "description": "The total of the lump sum amount",
          "type": "string"
        }
      }
    },
    "TimesheetEarningsLine": {
      "type": "object",
      "properties": {
        "earningsLineID": {
          "description": "Xero identifier for payroll earnings line",
          "type": "string",
          "format": "uuid"
        },
        "earningsRateID": {
          "description": "Xero identifier for payroll leave earnings rate",
          "type": "string",
          "format": "uuid"
        },
        "displayName": {
          "description": "name of earnings rate for display in UI",
          "type": "string"
        },
        "ratePerUnit": {
          "description": "Rate per unit for leave earnings line",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "numberOfUnits": {
          "description": "Leave earnings number of units",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "fixedAmount": {
          "description": "Leave earnings fixed amount. Only applicable if the EarningsRate RateType is Fixed",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "amount": {
          "description": "The amount of the earnings line.",
          "type": "number",
          "format": "double",
          "x-is-money": true
        },
        "isLinkedToTimesheet": {
          "description": "Identifies if the leave earnings is taken from the timesheet. False for leave earnings line",
          "type": "boolean"
        },
        "isAverageDailyPayRate": {
          "description": "Identifies if the earnings is using an average daily pay rate",
          "type": "boolean"
        },
        "isSystemGenerated": {
          "description": "Flag to identify whether the earnings line is system generated or not.",
          "type": "boolean"
        }
      }
    },
    "TimesheetEarningsLines": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/TimesheetEarningsLine"
      }
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

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

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/xero-pay-slip"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.