From c37850da6c68fccfabc0499e7ed5706d925e8bc1 Mon Sep 17 00:00:00 2001 From: Jovino Margathe Date: Mon, 11 May 2026 16:06:31 +1000 Subject: [PATCH] feat!: Make IsQualifyingEarnings mandatory for AU payroll BREAKING CHANGE: IsQualifyingEarnings is now required on EarningsRate, LeaveType, and LeaveLine schemas (V1). IncludeLeaveLoadingInQualifyingEarnings is required on TaxDeclaration when IncludeLeaveLoadingInSGC is provided. Values are no longer derived when omitted. --- xero-payroll-au.yaml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/xero-payroll-au.yaml b/xero-payroll-au.yaml index 2c61390d8..5e2da1b89 100644 --- a/xero-payroll-au.yaml +++ b/xero-payroll-au.yaml @@ -1647,7 +1647,7 @@ paths: EmploymentTerminationPaymentType: O CurrentRecord: true "400": - description: invalid input, object invalid - When IsQualifyingEarnings supplied it will be validated against the IsExemptFromSuper and other fields. + description: invalid input, object invalid - IsQualifyingEarnings is required. IsQualifyingEarnings cannot be true when IsExemptFromSuper is true. requestBody: required: true content: @@ -4230,6 +4230,8 @@ components: example: General expenses EarningsRate: type: object + required: + - IsQualifyingEarnings properties: Name: description: Name of the earnings rate (max length = 100) @@ -4258,7 +4260,7 @@ components: type: boolean example: false IsQualifyingEarnings: - description: Optional Boolean to determine if the earnings rate is considered as qualifying earnings for superannuation guarantee calculations. When not specified value is calculated based on earnings type and superannuation settings + description: Boolean to determine if the earnings rate is considered as qualifying earnings for superannuation guarantee calculations type: boolean example: true AllowanceContributesToAnnualLeaveRate: @@ -4361,6 +4363,8 @@ components: example: true LeaveType: type: object + required: + - IsQualifyingEarnings properties: Name: description: Name of the earnings rate (max length = 100) @@ -4411,7 +4415,7 @@ components: type: boolean example: true IsQualifyingEarnings: - description: Optional Boolean to determine if the earnings rate is considered as qualifying earnings for superannuation guarantee calculations. When not specified value is calculated based on earnings type and superannuation settings + description: Boolean to determine if the leave type is considered as qualifying earnings for superannuation guarantee calculations type: boolean example: true ReimbursementType: @@ -4549,7 +4553,7 @@ components: x-is-msdate-time: true example: /Date(1583967733054+0000)/ IncludeLeaveLoadingInQualifyingEarnings: - description: Optional Boolean to determine if leave loading is considered as qualifying earnings for superannuation guarantee calculations + description: Boolean to determine if leave loading is considered as qualifying earnings for superannuation guarantee calculations. Required when IncludeLeaveLoadingInSGC is specified in the payload type: boolean example: true type: object @@ -4770,6 +4774,8 @@ components: $ref: "#/components/schemas/LeaveLine" LeaveLine: type: object + required: + - IsQualifyingEarnings properties: LeaveTypeID: description: Xero leave type identifier @@ -4787,7 +4793,7 @@ components: type: boolean example: true IsQualifyingEarnings: - description: Optional Boolean to determine if the earnings rate is considered as qualifying earnings for superannuation guarantee calculations. When not specified value is calculated based on superannuation settings + description: Boolean to determine if the leave line is considered as qualifying earnings for superannuation guarantee calculations type: boolean example: true NumberOfUnits: