Xero Payroll New Zealand API
Payroll management API for New Zealand businesses using Xero. Supports managing employees, pay runs, pay slips, leave management, and compliance with New Zealand payroll regulations including KiwiSaver and PAYE.
Payroll management API for New Zealand businesses using Xero. Supports managing employees, pay runs, pay slips, leave management, and compliance with New Zealand payroll regulations including KiwiSaver and PAYE.
openapi: 3.0.0
info:
version: 12.0.2
title: "Xero Payroll NZ"
description: "This is the Xero Payroll API for orgs in the NZ region."
termsOfService: "https://developer.xero.com/xero-developer-platform-terms-conditions/"
contact:
name: Xero Platform Team
email: [email protected]
url: https://developer.xero.com
tags:
- name: PayrollNz
servers:
- description: Xero Payroll NZ API
url: https://api.xero.com/payroll.xro/2.0
paths:
/Employees:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- payroll.employees
- payroll.employees.read
tags:
- PayrollNz
operationId: getEmployees
x-hasPayrollUkProblem: true
summary: Retrieves employees
parameters:
- in: query
name: filter
description: Filter by first name and/or lastname
schema:
type: string
example: firstName==John,lastName==Smith
- in: query
name: page
description: Page number which specifies the set of records to retrieve. By default the number of the records per set is 100.
schema:
type: integer
example: 5
responses:
"200":
description: search results matching criteria
content:
application/json:
schema:
$ref: "#/components/schemas/Employees"
example:
id: 00000000-0000-0000-0000-000000000000
providerName: provider-name
dateTimeUTC: 2020-08-24T20:16:14.6198711
httpStatusCode: OK
pagination:
page: 1
pageSize: 100
pageCount: 1
itemCount: 8
problem: null
employees:
- employeeID: 68342973-c405-4b86-b5d3-d7b877c27995
firstName: Casual
lastName: Worker
dateOfBirth: 1990-12-01T00:00:00
gender: M
email: null
phoneNumber: null
startDate: 2019-02-07T00:00:00
address:
addressLine1: 30 King ST
addressLine2: null
city: Rangiora
suburb: null
countryName: NEW ZEALAND
postCode: "7400"
payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
updatedDateUTC: 2019-09-24T05:08:45
createdDateUTC: 2019-09-22T23:58:23
endDate: null
engagementType: Casual
fixedTermEndDate: null
- employeeID: 1c4f0c92-03ad-43f2-a690-ee51397ece6a
firstName: GST
lastName: Contractor
dateOfBirth: null
gender: null
email: null
phoneNumber: null
startDate: 2019-01-30T00:00:00
address:
addressLine1: null
addressLine2: null
city: null
suburb: null
countryName: null
postCode: null
payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
updatedDateUTC: 2019-09-23T00:16:25
createdDateUTC: 2019-09-23T00:12:16
endDate: null
engagementType: null
fixedTermEndDate: null
"400":
description: validation error for a bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
post:
security:
- OAuth2:
- payroll.employees
tags:
- PayrollNz
operationId: createEmployee
x-hasPayrollUkProblem: true
x-example:
- dateOfBirthValue:
key: dateOfBirth
keyPascal: DateOfBirth
keySnake: date_of_birth
is_date: true
object: employee
java_datatype: LocalDate
csharp_datatype: DateTime
default: LocalDate.of(2000, Month.OCTOBER, 28)
java: LocalDate.of(2000, Month.OCTOBER, 28)
csharp: new DateTime(2000, 10, 10)
php: new DateTime('2000-10-28')
node: "'2000-10-28'"
python: dateutil.parser.parse('2000-10-28T00:00:00Z')
ruby: "'YYYY-MM-DD'"
- Address:
key: address
keyPascal: Address
keySnake: address
is_object: true
- addressLine1:
key: addressLine1
keyPascal: AddressLine1
keySnake: address_line_1
default: 123 Test st
object: address
- city:
key: city
keyPascal: City
keySnake: city
object: address
default: Rangiora
- postCode:
key: postCode
keyPascal: PostCode
keySnake: post_code
object: address
default: 7400
- countryName:
key: countryName
keyPascal: CountryName
keySnake: country_name
default: NEW ZEALAND
object: address
is_last: true
- employee:
key: employee
keyPascal: Employee
is_object: true
- firstName:
key: firstName
keyPascal: FirstName
keySnake: first_name
default: Adam
object: employee
- lastName:
key: lastName
keyPascal: LastName
keySnake: last_name
default: Adamson
object: employee
- dateOfBirth:
is_variable: true
nonString: true
key: dateOfBirth
keyPascal: DateOfBirth
keySnake: date_of_birth
default: dateOfBirth
python: date_of_birth
ruby: date_of_birth
object: employee
- setHomeAddress:
is_last: true
is_variable: true
nonString: true
key: address
keyPascal: Address
default: address
python: address
ruby: address
object: employee
summary: Creates an employees
parameters:
- $ref: "#/components/parameters/idempotencyKey"
responses:
"200":
description: search results matching criteria
content:
application/json:
schema:
$ref: "#/components/schemas/EmployeeObject"
example:
id: 00000000-0000-0000-0000-000000000000
providerName: provider-name
dateTimeUTC: 2020-08-24T20:27:22.5779577
httpStatusCode: OK
pagination: null
problem: null
employee:
employeeID: 658be485-3feb-402e-9e77-ac17623aad42
firstName: Mike
lastName: Johntzxzpxhmkgson
dateOfBirth: 2000-01-01T00:00:00
gender: M
email: [email protected]
phoneNumber: null
startDate: null
address:
addressLine1: 101 Green St
addressLine2: null
city: San Francisco
suburb: null
countryName: null
postCode: "4351"
payrollCalendarID: null
updatedDateUTC: 2020-08-24T20:27:22
createdDateUTC: 2020-08-24T20:27:22
endDate: null
engagementType: null
fixedTermEndDate: null
"400":
description: validation error for a bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/Employee"
example:
title: Mr
firstName: Mike
lastName: Johntzxzpxhmkgson
dateOfBirth: "2000-01-01"
address:
addressLine1: 101 Green St
city: San Francisco
postCode: "4351"
countryName: United Kingdom
email: [email protected]
gender: M
/Employees/{EmployeeID}:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- payroll.employees
- payroll.employees.read
tags:
- PayrollNz
operationId: getEmployee
x-hasPayrollUkProblem: true
summary: Retrieves an employees using a unique employee ID
parameters:
- name: EmployeeID
x-snake: employee_id
in: path
required: true
description: Employee id for single object
schema:
type: string
format: uuid
example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
responses:
"200":
description: search results matching criteria
content:
application/json:
schema:
$ref: "#/components/schemas/EmployeeObject"
example:
id: 00000000-0000-0000-0000-000000000000
providerName: provider-name
dateTimeUTC: 2020-08-24T20:16:15.3542191
httpStatusCode: OK
pagination: null
problem: null
employee:
employeeID: 68342973-c405-4b86-b5d3-d7b877c27995
firstName: Casual
lastName: Worker
dateOfBirth: 1990-12-01T00:00:00
gender: M
email: null
phoneNumber: null
startDate: 2019-02-07T00:00:00
address:
addressLine1: 30 King ST
addressLine2: null
city: Rangiora
suburb: null
countryName: NEW ZEALAND
postCode: "7400"
payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
updatedDateUTC: 2019-09-24T05:08:45
createdDateUTC: 2019-09-22T23:58:23
endDate: null
engagementType: FixedTerm
fixedTermEndDate: 2026-01-01T00:00:00
put:
security:
- OAuth2:
- payroll.employees
tags:
- PayrollNz
operationId: updateEmployee
x-hasPayrollUkProblem: true
x-example:
- dateOfBirthValue:
key: dateOfBirth
keyPascal: DateOfBirth
keySnake: date_of_birth
is_date: true
object: employee
java_datatype: LocalDate
csharp_datatype: DateTime
default: LocalDate.of(2000, Month.OCTOBER, 28)
java: LocalDate.of(2000, Month.OCTOBER, 28)
csharp: new DateTime(2000, 10, 10)
php: new DateTime('2000-10-28')
node: "'2000-10-28'"
python: dateutil.parser.parse('2000-10-28T00:00:00Z')
ruby: "'YYYY-MM-DD'"
- Address:
key: address
keyPascal: Address
keySnake: address
is_object: true
- addressLine1:
key: addressLine1
keyPascal: AddressLine1
keySnake: address_line_1
default: 123 Test st
object: address
- city:
key: city
keyPascal: City
keySnake: city
object: address
default: Rangiora
- postCode:
key: postCode
keyPascal: PostCode
keySnake: post_code
object: address
default: 7400
- countryName:
key: countryName
keyPascal: CountryName
keySnake: country_name
default: NEW ZEALAND
object: address
is_last: true
- employee:
key: employee
keyPascal: Employee
is_object: true
- firstName:
key: firstName
keyPascal: FirstName
keySnake: first_name
default: Adam
object: employee
- lastName:
key: lastName
keyPascal: LastName
keySnake: last_name
default: Adamson
object: employee
- dateOfBirth:
is_variable: true
nonString: true
key: dateOfBirth
keyPascal: DateOfBirth
keySnake: date_of_birth
default: dateOfBirth
python: date_of_birth
ruby: date_of_birth
object: employee
- setHomeAddress:
is_last: true
is_variable: true
nonString: true
key: address
keyPascal: Address
default: address
python: address
ruby: address
object: employee
summary: Updates an existing employee
parameters:
- $ref: "#/components/parameters/idempotencyKey"
- name: EmployeeID
x-snake: employee_id
in: path
required: true
description: Employee id for single object
schema:
type: string
format: uuid
example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
responses:
"200":
description: successful response
content:
application/json:
schema:
$ref: "#/components/schemas/EmployeeObject"
example:
id: 00000000-0000-0000-0000-000000000000
providerName: provider-name
dateTimeUTC: 2020-08-24T20:29:43.3452832
httpStatusCode: OK
pagination: null
problem: null
employee:
employeeID: 68342973-c405-4b86-b5d3-d7b877c27995
firstName: Tony
lastName: Starkgtrzgquusrson
dateOfBirth: 1999-01-01T00:00:00
gender: M
email: [email protected]
phoneNumber: null
startDate: 2019-02-07T00:00:00
address:
addressLine1: 101 Green St
addressLine2: null
city: San Francisco
suburb: null
countryName: null
postCode: "4432"
payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
updatedDateUTC: 2020-08-24T20:29:43
createdDateUTC: 2019-09-22T23:58:23
endDate: null
engagementType: null
fixedTermEndDate: null
"400":
description: validation error for a bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/Employee"
example:
title: Mr
firstName: Tony
lastName: Starkgtrzgquusrson
dateOfBirth: "1999-01-01"
address:
addressLine1: 101 Green St
city: San Francisco
postCode: "4432"
countryName: United Kingdom
email: [email protected]
gender: M
/Employees/{EmployeeID}/Employment:
parameters:
- $ref: "#/components/parameters/requiredHeader"
post:
security:
- OAuth2:
- payroll.employees
tags:
- PayrollNz
operationId: createEmployment
x-hasPayrollUkProblem: true
x-example:
- startDateValue:
key: startDate
keyPascal: StartDate
keySnake: start_date
is_date: true
java_datatype: LocalDate
csharp_datatype: DateTime
default: LocalDate.of(2020, Month.OCTOBER, 28)
java: LocalDate.of(2020, Month.OCTOBER, 28)
csharp: new DateTime(2020, 10, 10)
php: new DateTime('2020-10-28')
node: "'2020-10-28'"
python: dateutil.parser.parse('2020-10-28T00:00:00Z')
ruby: "'YYYY-MM-DD'"
- employment:
key: employment
keyPascal: Employment
keySnake: employment
is_object: true
- payrollCalendarID:
key: payrollCalendarID
keyPascal: PayrollCalendarID
keySnake: payroll_calendar_id
is_uuid: true
default: 00000000-0000-0000-0000-000000000000
object: employment
- startDate:
is_variable: true
nonString: true
key: startDate
keyPascal: StartDate
keySnake: start_date
default: startDate
python: start_date
ruby: start_date
object: employment
- engagementType:
is_variable: true
key: engagementType
keyPascal: EngagementType
keySnake: engagement_type
object: employment
- fixedTermEndDate:
is_variable: true
nonString: true
key: fixedTermEndDate
keyPascal: FixedTermEndDate
keySnake: fixed_term_end_date
object: employment
is_last: true
summary: Creates an employment detail for a specific employee
parameters:
- $ref: "#/components/parameters/idempotencyKey"
- name: EmployeeID
x-snake: employee_id
in: path
required: true
description: Employee id for single object
schema:
type: string
format: uuid
example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
responses:
"200":
description: search results matching criteria
content:
application/json:
schema:
$ref: "#/components/schemas/EmploymentObject"
example:
id: 00000000-0000-0000-0000-000000000000
providerName: provider-name
dateTimeUTC: 2020-08-24T20:53:58.8624623
httpStatusCode: OK
pagination: null
problem: null
employment:
payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
startDate: 2020-09-02T00:00:00
engagementType: FixedTerm
fixedTermEndDate: 2026-01-01T00:00:00
"400":
description: validation error for a bad request
content:
application/json:
schema:
$ref: "#/components/schemas/Problem"
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/Employment"
example:
payrollCalendarID: 9aa56064-990f-4ad3-a189-d966d8f6a030
startDate: "2020-09-02"
engagementType: FixedTerm
fixedTermEndDate: "2026-01-01"
/Employees/{EmployeeID}/Tax:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- payroll.employees
- payroll.employees.read
tags:
- PayrollNz
operationId: getEmployeeTax
x-hasPayrollUkProblem: true
summary: Retrieves tax records for a specific employee
parameters:
- name: EmployeeID
x-snake: employee_id
in: path
required: true
description: Employee id for single object
schema:
type: string
format: uuid
example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
responses:
"200":
description: search results matching criteria
content:
application/json:
schema:
$ref: "#/components/schemas/EmployeeTaxObject"
example:
id: 00000000-0000-0000-0000-000000000000
providerName: provider-name
dateTimeUTC: 2020-08-24T20:57:27.5434491
httpStatusCode: OK
pagination: null
problem: null
employeeTax:
irdNumber: "111111111"
taxCode: M
esctRatePercentage: 17.5
isEligibleForKiwiSaver: true
hasSpecialStudentLoanRate: false
specialStudentLoanRatePercentage: null
specialTaxRatePercentage: null
kiwiSaverContributions: MakeContributions
kiwiSaverOptOutDate: null
kiwiSaverContributionHolidayEndDate: null
kiwiSaverEmployeeContributionRatePercentage: 3
kiwiSaverEmployerContributionRatePercentage: 3
kiwiSaverEmployerSalarySacrificeContributionRatePercentage: 0
hasStudentLoanBalance: false
studentLoanBalance: null
studentLoanAsAt: null
post:
security:
- OAuth2:
- payroll.employees
tags:
- PayrollNz
operationId: updateEmployeeTax
x-hasPayrollUkProblem: true
x-example:
- studentLoanAsAtValue:
key: studentLoanAsAt
keyPascal: StudentLoanAsAt
keySnake: student_loan_as_at
is_date: true
java_datatype: LocalDate
csharp_datatype: DateTime
default: LocalDate.of(2020, Month.OCTOBER, 30)
java: LocalDate.of(2020, Month.OCTOBER, 30)
csharp: new DateTime(2020, 10, 12)
php: new DateTime('2020-10-30')
node: "'2020-10-30'"
python: dateutil.parser.parse('2020-10-30T00:00:00Z')
ruby: "'YYYY-MM-DD'"
- employeeTax:
key: employeeTax
keyPascal: EmployeeTax
keySnake: employee_tax
is_object: true
- irdNumber:
key: irdNumber
keyPascal: IrdNumber
keySnake: ird_number
default: 111111111
object: employeeTax
- hasSpecialStudentLoanRate:
key: hasSpecialStudentLoanRate
keyPascal: HasSpecialStudentLoanRate
keySnake: has_special_student_loan_rate
nonString: true
default: true
object: employeeTax
- specialStudentLoanRatePercentage:
key: specialStudentLoanRatePercentage
keyPascal: SpecialStudentLoanRatePercentage
keySnake: special_student_loan_rate_percentage
nonString: true
default: 2
object: employeeTax
- isEligibleForKiwiSaver:
key: isEligibleForKiwiSaver
keyPascal: IsEligibleForKiwiSaver
keySnake: is_eligible_for_kiwi_saver
nonString: true
default: true
object: employeeTax
- esctRatePercentage:
key: esctRatePercentage
keyPascal: EsctRatePercentage
keySnake: esct_rate_percentage
default: 17.5
nonString: true
is_money: true
object: employeeTax
- kiwiSaverContributions:
key: kiwiSaverContributions
keyPascal: KiwiSaverContributions
keySnake: kiwi_saver_contributions
nonString: true
default: DeductionCategory.NzOther
php: XeroAPI\XeroPHP\Models\PayrollNz\EmployeeTax\KiwiSaverContributionsEnum.MakeContributions
node: EmployeeTax.KiwiSaverContributionsEnum.MakeContributions
ruby: XeroRuby::PayrollNz::EmployeeTax::kiwi_saver_contributions_enum::MAKECONTRIBUTIONS
python: kiwi_saver_contributions_enum::MAKECONTRIBUTIONS
java: com.xero.models.payrollnz.EmployeeTax.KiwiSaverContributionsEnum.MakeContributions
csharp: EmployeeTax.KiwiSaverContributionsEnum.MakeContributions
object: employeeTax
- kiwiSaverEmployeeContributionRatePercentage:
key: kiwiSaverEmployeeContributionRatePercentage
keyPascal: KiwiSaverEmployeeContributionRatePercentage
keySnake: kiwi_saver_employee_contribution_rate_percentage
default: 4
is_money: true
nonString: true
object: employeeTax
- kiwiSaverEmployerSalarySacrificeContributionRatePercentage:
key: kiwiSaverEmployerSalarySacrificeContributionRatePercentage
keyPascal: KiwiSaverEmployerSalarySacrificeContributionRatePercentage
keySnake: kiwi_saver_employer_salary_sacrifice_contribution_rate_percentage
default: 2
nonString: true
object: employeeTax
- taxCode:
key: taxCode
keyPascal: TaxCode
keySnake: tax_code
nonString: true
default: TaxCode.MSL
php: XeroAPI\XeroPHP\Models\PayrollNz\TaxCode\MSL
node: TaxCode.MSL
ruby: XeroRuby::PayrollNz::TaxCode::MSL
python: tax_code:::MSL
java: com.xero.models.payrollnz.TaxCode.MSL
csharp: TaxCode.MSL
object: employeeTax
- hasStudentLoanBalance:
key: hasStudentLoanBalance
keyPascal: HasStudentLoanBalance
keySnake: has_student_loan_balance
nonString: true
default: true
object: employeeTax
- studentLoanBalance:
key: studentLoanBalance
keyPascal: StudentLoanBalance
keySnake: student_loan_balance
default: 30.0000
nonString: true
is_money: true
object: employeeTax
- studentLoanAsAt:
key: studentLoanAsAt
keyPascal: StudentLoanAsAt
keySnake: student_loan_as_at
is_variable: true
nonString: true
default: studentLoanAsAt
python: student_loan_as_at
ruby: student_loan_as_at
object: employeeTax
is_last: true
summary: Updates the tax records for a specific employee
parameters:
- $ref: "#/components/parameters/idempotencyKey"
- name: EmployeeID
x-snake: employee_id
in: path
required: true
description: Employee id for single object
schema:
type: string
format: uuid
example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
responses:
"200":
description: search results matching criteria
content:
application/json:
schema:
$ref: "#/components/schemas/EmployeeTaxObject"
example:
id: 00000000-0000-0000-0000-000000000000
providerName: provider-name
dateTimeUTC: 2020-08-24T20:57:27.5434491
httpStatusCode: OK
pagination: null
problem: null
employeeTax:
irdNumber: "111111111"
taxCode: M
esctRatePercentage: 17.5
isEligibleForKiwiSaver: true
hasSpecialStudentLoanRate: false
specialStudentLoanRatePercentage: null
specialTaxRatePercentage: null
kiwiSaverContributions: MakeContributions
kiwiSaverOptOutDate: null
kiwiSaverContributionHolidayEndDate: null
kiwiSaverEmployeeContributionRatePercentage: 3
kiwiSaverEmployerContributionRatePercentage: 3
kiwiSaverEmployerSalarySacrificeContributionRatePercentage: 0
hasStudentLoanBalance: false
studentLoanBalance: null
studentLoanAsAt: null
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/EmployeeTax"
example:
irdNumber: "111111111"
taxCode: M
esctRatePercentage: 17.5
isEligibleForKiwiSaver: true
hasSpecialStudentLoanRate: false
specialStudentLoanRatePercentage: null
specialTaxRatePercentage: null
kiwiSaverContributions: MakeContributions
kiwiSaverOptOutDate: null
kiwiSaverContributionHolidayEndDate: null
kiwiSaverEmployeeContributionRatePercentage: 3
kiwiSaverEmployerContributionRatePercentage: 3
kiwiSaverEmployerSalarySacrificeContributionRatePercentage: 0
hasStudentLoanBalance: false
studentLoanBalance: null
studentLoanAsAt: null
/Employees/{EmployeeID}/OpeningBalances:
parameters:
- $ref: "#/components/parameters/requiredHeader"
get:
security:
- OAuth2:
- payroll.employees
- payroll.employees.read
tags:
- PayrollNz
operationId: getEmployeeOpeningBalances
x-hasPayrollUkProblem: true
summary: Retrieves the opening balance for a specific employee
parameters:
- name: EmployeeID
x-snake: employee_id
in: path
required: true
description: Employee id for single object
schema:
type: string
format: uuid
example: 4ff1e5cc-9835-40d5-bb18-09fdb118db9c
responses:
"200":
description: search results matching criteria
content:
application/json:
schema:
$ref: "#/components/schemas/EmployeeOpeningBalancesObject"
example:
id: 00000000-0000-0000-0000-000000000000
providerName: provider-name
dateTimeUTC: 2020-08-28T20:00:07.7343966
httpStatusCode: OK
pagination:
page: 1
pageSize: 100
pageCount: 1
itemCount: 8
problem: null
openingBalances:
- periodEndDate: 2020-10-01T00:00:00
daysPaid: 3
unpaidWeeks: 2
grossEarnings: 40
post:
security:
- OAuth2:
- payroll.employees
tags:
- PayrollNz
operationId: createEmployeeOpeningBalances
x-hasPayrollUkProblem: true
summary: Creates opening balances for a specific employee
x-example:
- periodEndDateValue:
key: periodEndDate
keyPascal: PeriodEndDate
keySnake: period_end_date
is_date: true
java_datatype: LocalDate
csharp_datatype: DateTime
default: LocalDate.of(2020, Month.OCTOBER, 30)
java: LocalDate.of(2020, Month.OCTOBER, 30)
csharp: new DateTime(2020, 10, 12)
php: new DateTime('2020-10-30')
node: "'2020-10-30'"
python: dateutil.parser.parse('2020-10-30T00:00:00Z')
ruby: "'YYYY-MM-DD'"
- employeeOpeningBalance:
key: employeeOpeningBalance
keyPascal: EmployeeOpeningBalance
keySnake: employee_opening_balance
is_object: true
- periodEndDate:
is_variable: true
nonString: true
key: periodEndDate
keyPascal: PeriodEndDate
keySnake: period_end_date
default: periodEndDate
python: period_end_date
ruby: period_end_date
object: employeeOpeningBalance
- daysPaid:
key: daysPaid
keyPascal: DaysPaid
keySnake: days_paid
default: 5
nonString: true
object: employeeOpeningBalance
- unpaidWeeks:
key: unpaidWeeks
keyPascal: UnpaidWeeks
keySnake: unpaid_weeks
default: 0
nonString: true
object: employeeOpeningBalance
- grossEarnings:
key: grossEarnings
keyPascal: GrossEarnings
keySnake: gross_earnings
default: 1730.77
is_money: true
nonString: true
object: employeeOpeningBalance
is_last: true
- employeeOpeningBalances:
# --- truncated at 32 KB (290 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/xero/refs/heads/main/openapi/xero-payroll-nz-openapi.yml