---
title: "Creates a pay item"
method: POST
path: "/PayItems"
tags: ["PayrollAu"]
---

# Creates a pay item

`POST /PayItems`

## Headers

- `Idempotency-Key` string

## Request body

- PayItem
  - `EarningsRates` EarningsRate[]
    - `Name` string — Name of the earnings rate (max length = 100)
    - `AccountCode` string — See Accounts
    - `TypeOfUnits` string — Type of units used to record earnings (max length = 50). Only When RateType is RATEPERUNIT
    - `IsExemptFromTax` boolean — Most payments are subject to tax, so you should only set this value if you are sure that a payment is exempt from PAYG withholding
    - `IsExemptFromSuper` boolean — See the ATO website for details of which payments are exempt from SGC
    - `IsReportableAsW1` boolean — Boolean to determine if the earnings rate is reportable or exempt from W1
    - `IsQualifyingEarnings` boolean, required — Boolean to determine if the earnings rate is considered as qualifying earnings for superannuation guarantee calculations
    - `AllowanceContributesToAnnualLeaveRate` boolean — Boolean to determine if the allowance earnings rate contributes towards annual leave rate. Only applicable if EarningsType is ALLOWANCE and RateType is RATEPERUNIT
    - `AllowanceContributesToOvertimeRate` boolean — Boolean to determine if the allowance earnings rate contributes towards overtime allowance rate. Only applicable if EarningsType is ALLOWANCE and RateType is RATEPERUNIT
    - `EarningsType` 'FIXED' | 'ORDINARYTIMEEARNINGS' | 'OVERTIMEEARNINGS' | 'ALLOWANCE' | 'LUMPSUMD' | 'EMPLOYMENTTERMINATIONPAYMENT' | 'LUMPSUMA' | 'LUMPSUMB' | 'BONUSESANDCOMMISSIONS' | 'LUMPSUME' | 'LUMPSUMW' | 'DIRECTORSFEES' | 'PAIDPARENTALLEAVE' | 'WORKERSCOMPENSATION'
    - `EarningsRateID` string, uuid — Xero identifier
    - `RateType` 'FIXEDAMOUNT' | 'MULTIPLE' | 'RATEPERUNIT'
    - `RatePerUnit` string — Default rate per unit (optional). Only applicable if RateType is RATEPERUNIT.
    - `Multiplier` number, double — This is the multiplier used to calculate the rate per unit, based on the employee’s ordinary earnings rate. For example, for time and a half enter 1.5. Only applicable if RateType is MULTIPLE
    - `AccrueLeave` boolean — Indicates that this earnings rate should accrue leave. Only applicable if RateType is MULTIPLE
    - `Amount` number, double — Optional Amount for FIXEDAMOUNT RateType EarningsRate
    - `EmploymentTerminationPaymentType` 'O' | 'R'
    - `UpdatedDateUTC` string — Last modified timestamp
    - `CurrentRecord` boolean — Is the current record
    - `AllowanceType` 'CAR' | 'TRANSPORT' | 'LAUNDRY' | 'MEALS' | 'TRAVEL' | 'OTHER' | 'TOOLS' | 'TASKS' | 'QUALIFICATIONS'
    - `AllowanceCategory` 'NONDEDUCTIBLE' | 'UNIFORM' | 'PRIVATEVEHICLE' | 'HOMEOFFICE' | 'TRANSPORT' | 'GENERAL' | 'OTHER'
  - `DeductionTypes` DeductionType[]
    - `Name` string — Name of the earnings rate (max length = 100)
    - `AccountCode` string — See Accounts
    - `ReducesTax` boolean — Indicates that this is a pre-tax deduction that will reduce the amount of tax you withhold from an employee.
    - `ReducesSuper` boolean — Most deductions don’t reduce your superannuation guarantee contribution liability, so typically you will not set any value for this.
    - `IsExemptFromW1` boolean — Boolean to determine if the deduction type is reportable or exempt from W1
    - `DeductionTypeID` string, uuid — Xero identifier
    - `UpdatedDateUTC` string — Last modified timestamp
    - `DeductionCategory` 'NONE' | 'UNIONFEES' | 'WORKPLACEGIVING'
    - `CurrentRecord` boolean — Is the current record
  - `LeaveTypes` LeaveType[]
    - `Name` string — Name of the earnings rate (max length = 100)
    - `TypeOfUnits` string — The type of units by which leave entitlements are normally tracked. These are typically the same as the type of units used for the employee’s ordinary earnings rate
    - `LeaveTypeID` string, uuid — Xero identifier
    - `NormalEntitlement` number, double — The number of units the employee is entitled to each year
    - `LeaveLoadingRate` number, double — Enter an amount here if your organisation pays an additional percentage on top of ordinary earnings when your employees take leave (typically 17.5%)
    - `UpdatedDateUTC` string — Last modified timestamp
    - `IsPaidLeave` boolean — Set this to indicate that an employee will be paid when taking this type of leave
    - `ShowOnPayslip` boolean — Set this if you want a balance for this leave type to be shown on your employee’s payslips
    - `CurrentRecord` boolean — Is the current record
    - `LeaveCategoryCode` 'ANNUALLEAVE' | 'LONGSERVICELEAVE' | 'PERSONALSICKCARERSLEAVE' | 'ROSTEREDDAYOFF' | 'TIMEOFFINLIEU' | 'COMPASSIONATEANDBEREAVEMENTLEAVE' | 'STUDYLEAVE' | 'FAMILYANDDOMESTICVIOLENCELEAVE' | 'SPECIALPAIDLEAVE' | 'COMMUNITYSERVICELEAVE' | 'JURYDUTYLEAVE' | 'DEFENCERESERVELEAVE' — Code used to identify the Leave Category
    - `SGCExempt` boolean — Set this to indicate that the leave type is exempt from superannuation guarantee contribution
    - `IsQualifyingEarnings` boolean, required — Boolean to determine if the leave type is considered as qualifying earnings for superannuation guarantee calculations
  - `ReimbursementTypes` ReimbursementType[]
    - `Name` string — Name of the earnings rate (max length = 100)
    - `AccountCode` string — See Accounts
    - `ReimbursementTypeID` string, uuid — Xero identifier
    - `UpdatedDateUTC` string — Last modified timestamp
    - `CurrentRecord` boolean — Is the current record

## Response `200`

A successful request - currently returns empty array for JSON

- PayItems
  - `PayItems` PayItem
    - `EarningsRates` EarningsRate[]
      - `Name` string — Name of the earnings rate (max length = 100)
      - `AccountCode` string — See Accounts
      - `TypeOfUnits` string — Type of units used to record earnings (max length = 50). Only When RateType is RATEPERUNIT
      - `IsExemptFromTax` boolean — Most payments are subject to tax, so you should only set this value if you are sure that a payment is exempt from PAYG withholding
      - `IsExemptFromSuper` boolean — See the ATO website for details of which payments are exempt from SGC
      - `IsReportableAsW1` boolean — Boolean to determine if the earnings rate is reportable or exempt from W1
      - `IsQualifyingEarnings` boolean, required — Boolean to determine if the earnings rate is considered as qualifying earnings for superannuation guarantee calculations
      - `AllowanceContributesToAnnualLeaveRate` boolean — Boolean to determine if the allowance earnings rate contributes towards annual leave rate. Only applicable if EarningsType is ALLOWANCE and RateType is RATEPERUNIT
      - `AllowanceContributesToOvertimeRate` boolean — Boolean to determine if the allowance earnings rate contributes towards overtime allowance rate. Only applicable if EarningsType is ALLOWANCE and RateType is RATEPERUNIT
      - `EarningsType` 'FIXED' | 'ORDINARYTIMEEARNINGS' | 'OVERTIMEEARNINGS' | 'ALLOWANCE' | 'LUMPSUMD' | 'EMPLOYMENTTERMINATIONPAYMENT' | 'LUMPSUMA' | 'LUMPSUMB' | 'BONUSESANDCOMMISSIONS' | 'LUMPSUME' | 'LUMPSUMW' | 'DIRECTORSFEES' | 'PAIDPARENTALLEAVE' | 'WORKERSCOMPENSATION'
      - `EarningsRateID` string, uuid — Xero identifier
      - `RateType` 'FIXEDAMOUNT' | 'MULTIPLE' | 'RATEPERUNIT'
      - `RatePerUnit` string — Default rate per unit (optional). Only applicable if RateType is RATEPERUNIT.
      - `Multiplier` number, double — This is the multiplier used to calculate the rate per unit, based on the employee’s ordinary earnings rate. For example, for time and a half enter 1.5. Only applicable if RateType is MULTIPLE
      - `AccrueLeave` boolean — Indicates that this earnings rate should accrue leave. Only applicable if RateType is MULTIPLE
      - `Amount` number, double — Optional Amount for FIXEDAMOUNT RateType EarningsRate
      - `EmploymentTerminationPaymentType` 'O' | 'R'
      - `UpdatedDateUTC` string — Last modified timestamp
      - `CurrentRecord` boolean — Is the current record
      - `AllowanceType` 'CAR' | 'TRANSPORT' | 'LAUNDRY' | 'MEALS' | 'TRAVEL' | 'OTHER' | 'TOOLS' | 'TASKS' | 'QUALIFICATIONS'
      - `AllowanceCategory` 'NONDEDUCTIBLE' | 'UNIFORM' | 'PRIVATEVEHICLE' | 'HOMEOFFICE' | 'TRANSPORT' | 'GENERAL' | 'OTHER'
    - `DeductionTypes` DeductionType[]
      - `Name` string — Name of the earnings rate (max length = 100)
      - `AccountCode` string — See Accounts
      - `ReducesTax` boolean — Indicates that this is a pre-tax deduction that will reduce the amount of tax you withhold from an employee.
      - `ReducesSuper` boolean — Most deductions don’t reduce your superannuation guarantee contribution liability, so typically you will not set any value for this.
      - `IsExemptFromW1` boolean — Boolean to determine if the deduction type is reportable or exempt from W1
      - `DeductionTypeID` string, uuid — Xero identifier
      - `UpdatedDateUTC` string — Last modified timestamp
      - `DeductionCategory` 'NONE' | 'UNIONFEES' | 'WORKPLACEGIVING'
      - `CurrentRecord` boolean — Is the current record
    - `LeaveTypes` LeaveType[]
      - `Name` string — Name of the earnings rate (max length = 100)
      - `TypeOfUnits` string — The type of units by which leave entitlements are normally tracked. These are typically the same as the type of units used for the employee’s ordinary earnings rate
      - `LeaveTypeID` string, uuid — Xero identifier
      - `NormalEntitlement` number, double — The number of units the employee is entitled to each year
      - `LeaveLoadingRate` number, double — Enter an amount here if your organisation pays an additional percentage on top of ordinary earnings when your employees take leave (typically 17.5%)
      - `UpdatedDateUTC` string — Last modified timestamp
      - `IsPaidLeave` boolean — Set this to indicate that an employee will be paid when taking this type of leave
      - `ShowOnPayslip` boolean — Set this if you want a balance for this leave type to be shown on your employee’s payslips
      - `CurrentRecord` boolean — Is the current record
      - `LeaveCategoryCode` 'ANNUALLEAVE' | 'LONGSERVICELEAVE' | 'PERSONALSICKCARERSLEAVE' | 'ROSTEREDDAYOFF' | 'TIMEOFFINLIEU' | 'COMPASSIONATEANDBEREAVEMENTLEAVE' | 'STUDYLEAVE' | 'FAMILYANDDOMESTICVIOLENCELEAVE' | 'SPECIALPAIDLEAVE' | 'COMMUNITYSERVICELEAVE' | 'JURYDUTYLEAVE' | 'DEFENCERESERVELEAVE' — Code used to identify the Leave Category
      - `SGCExempt` boolean — Set this to indicate that the leave type is exempt from superannuation guarantee contribution
      - `IsQualifyingEarnings` boolean, required — Boolean to determine if the leave type is considered as qualifying earnings for superannuation guarantee calculations
    - `ReimbursementTypes` ReimbursementType[]
      - `Name` string — Name of the earnings rate (max length = 100)
      - `AccountCode` string — See Accounts
      - `ReimbursementTypeID` string, uuid — Xero identifier
      - `UpdatedDateUTC` string — Last modified timestamp
      - `CurrentRecord` boolean — Is the current record

## Other responses

- `400` — invalid input, object invalid - IsQualifyingEarnings is required. IsQualifyingEarnings cannot be true when IsExemptFromSuper is true.

---

[API](https://skmtc.net/xeroapi/apis/xero-payroll-au-api.md) · [All operations](https://skmtc.net/xeroapi/apis/xero-payroll-au-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/xeroapi/xero-payroll-au-api/revisions/35651d98854e/schema)
