ZenHR’s native integration with Xero enables seamless transfer of employee data, payroll, off-cycle payments, and journal entries from ZenHR to Xero. This integration allows organizations to leverage ZenHR’s user-friendly HRMS capabilities while keeping accounting accurate, up-to-date, and synchronized in Xero.
TABLE OF CONTENTS
-
How to Activate This Integration
1. On Xero2. On ZenHR
-
How to Use Xero Integration
1. Mapping Xero GL Identifiers With ZenHR Financial Transactions3. Syncing Organizational Levels
4. Posting Journal Entries
1. Set Up Journal Entries Structure
2. Posting salaries from ZenHR to Xero
3. Posting Off-Cycle Payments and Vacation In-Advance Salaries From ZenHR to Xero
4. Posting Provisions From ZenHR to Xero - Xero Event Viewer
How to Activate This Integration
On Xero
Step 1: Configure the integration on Xero
1. Go to https://developer.xero.com and log in to your Xero account:

2. On the My Apps page, click on the New app button.

3. In the Add a new app window:
- Enter the App name.
- Under Integration type, select Web app.
- In the Company or application URL field, enter: [https://www.zenhr.com].
- In the Redirect URI field, enter:[https://app.zenhr.com/integration/v1/integration/oauth_callbacklocale=en]
4. Check Agree to Xero’s terms and conditions
5. Click Create app.

6. Click Configuration from the left-hand menu.
7. Click Add another URI, then add the following URL [https://app.zenhr.com/integration/v1/integration/oauth_callback?locale=ar]

8. Click Generate a Secret.
9. Copy and securely save your Client Secret, as it will only be displayed once
On ZenHR
Step 1: Configure the integration on ZenHR
1. Go to System Preferences → Integration Setup → Marketplace Integrations → Xero Setup.
2. Add API KEY, fill in API key name and paste your Client ID and Client Secret from Xero
3. Click Create to generate the API key.
Activate the toggles in the Employee Data and Journal Entries.
Then click Save.
Click on the "Add New Token" button.
-
Click “Allow access” to allow the transfer of data between ZenHR and Xero.
How to Use Xero Integration
Once Xero is successfully integrated with your ZenHR account, you will be able to:
Map GL accounts to ensure payroll and financial transactions align with your Xero chart of accounts.
Manage employee records by creating or updating them in ZenHR and syncing changes automatically to Xero.
Sync organizational levels by creating or updating them in ZenHR and syncing changes automatically to Xero.
-
Transfer journal entries for:
Salaries
Off-cycle financial transactions
Employee settlements
Company contributions
Expenses
Provisions
This ensures accurate and consistent financial data, employee information, and organizational structures across both ZenHR and Xero.
Mapping Xero GL Identifiers With ZenHR Financial Transactions
Once the integration with Xero is enabled, the chart of accounts will be accessed through the APIs. Consequently, the GL account will be displayed in the GL Accounts fields across all financial transaction types in the same page.
Add and Map GL Accounts
On ZenHR, click your user icon in the upper right corner and go to System Preferences → Marketplace Integrations → Xero Setup → GL Accounts.
Select the correct GL account for each salary transaction type from the dropdown list which will show the GL Accounts in your Xero Account.
Then click “Update”.
Add Financial Transactions GL Accounts
Navigate to Incomes & Deduction Tab in the same page above
Access the Financial Transaction Type by selecting “✎” icon on the Transaction Type entry.
Choose the GL Account Number and Clearance account Or Enter them Manually.
Finally, press Save
Add Loans GL Accounts
Navigate to Loans Tab in the same page above
Access the specific Loan Type by selecting “✎” icon on the corresponding record.
Choose the GL Identifier and the Clearance account.
Finally, press Save
Add Overtime GL Accounts
Access the Overtime Type by selecting “✎” icon on the corresponding record.
Choose the GL Identifier and Clearance account.
Finally, press Save
Add Leaves and Vacations GL account
Access the Leaves and Vacations Type by selecting “✎” icon on the corresponding record.
Select the GL Identifier and Clearance Account.
Finally, press Save
Syncing Employee Records
Once the integration is activated, employee records will automatically be created or updated in Xero whenever employee data is created or modified in ZenHR.
There are two supported scenarios:
Updating Existing Employees
If the employee already exists in both ZenHR and Xero, you must enter the employee’s Xero Internal ID in ZenHR under: --kareem?
Marketplace Integration → Xero Setup → Connected People.
This ensures that any updates made in ZenHR are correctly reflected in the corresponding Xero record.-
Creating New Employees
To create a new employee, simply add the employee record in ZenHR.
The employee will be automatically created in Xero , and the Internal ID generated by Xero will be stored in ZenHR to enable future synchronization.
Syncing Organizational Levels
The Org Levels that can be Updated or created:
- Department
- Work Location
- Section (Which is a Child of the Department)
- Class, Which is referred to Project in ZenHr
Scenarios
-
Updating Existing Org levels
If an organizational level already exists in both ZenHR and Xero:
1. Navigate to Marketplace Integration → Xero Setup → Org Levels in ZenHR.
2. Add the Internal ID of the corresponding organizational level in Xero.
3. Once linked, any updates made to the name of the organizational level in ZenHR will automatically sync with Xero, as shown below. - Creating New Org Levels:
- Navigate to System Preferences → Organizational Levels in ZenHR.
- Create the new organizational level directly in ZenHR.
- Once created, the organizational level is automatically pushed to Xero.
- The corresponding Internal ID is stored in ZenHR for future reference and updates.

Note: Xero allows a maximum of two active tracking categories at any time. If you use Detailed Journal Entries, you can map two Organizational Levels in ZenHR to the two tracking categories in Xero. However, if you use Summarized Journal Entries, you will only be able to map the single “Summarized by” Organizational Level defined in the Journal Entries Structure.
Posting Journal Entries
Upon activating the integration, you will be able to transfer journal entries for salaries, off-cycle financial transactions, employee settlements, company contributions, expenses, and provisions from ZenHR to your Xero account.
Set Up Journal Entries Structure
Before initiating the transmission of journal entries from ZenHR to Xero, it is essential to configure Journal Entries Structure. This setup enables you to specify the types of journal entries for transfer, whether they are detailed on an employee level or summarized by a specific cost center, and if they should be dispatched automatically or manually.
Steps to Configure Journal Entries Structure
- Navigate to System Preferences → Integration Setup → Journal Entries Structure.
- Select the journal entry types to transfer
-
Set up the way you would like your journal entries structured by completing the following fields, then click “Save”.
Posting salaries from ZenHR to Xero
On the left side of the page, go to Main Menu → Payroll → Manage Salaries.
Filter the desired Salary Year and Month for all employees, and click “Filter”.
Then click “Send to Xero”, and your salaries will be transferred as journals.
Posting Off-Cycle Payments and Vacation In-Advance Salaries From ZenHR to Xero
Auto-Generate separate journals for Off-Cycle payments and post them with your Payroll Journal Entries
- Click your user icon in the upper right corner and go to System Preferences → Journal Entries Structure.
Activate the Auto-generate separate journals for off-cycle checkboxes Below and click “Save”.

Note : Now whenever You post salaries from ZenHR to Xero, and Off-Cycle Payments and Vacation In-Advance Salaries will be sent as separate journals.
Manually Generate Off-Cycle Payments journal entries
Click your user icon in the upper right corner and go to System Preferences → Integration Setup → Journal Entries Structure.
-
Clear the Auto-generate separate journals for off-cycle payments checkbox and click “Save”.
To Send Off-Cycle Payments to Xero

Go to Main Menu → Payroll → Manage Financials → Manage Financial Transactions → Off-Cycle Payments
Use the “Date from” and “to” filters to filter out the duration of the transactions you wish to include in your journal entries, and click “Filter”.
In the Employee ID column, select the transactions you wish to include in your journal entries.
Then click “Send to Xero”, and your off-cycle payments will be transferred as journals.

Manually Generate Off-Cycle Vacation In-Advance journal entries
Click your user icon in the upper right corner and go to System Preferences → Integration Setup → Journal Entries Structure.
Clear the Auto-generate separate journals for off-cycle vacation in-advance checkbox.
Then click “Save”.

Go to Main Menu → Payroll → Manage Financials → Manage Vacation In-Advance Salary.
Filter out the vacation in-advance salaries that fall within a specific time period by using the “In-advance from date” and “In-advance to date” filters.
Select “Off-cycle” under Payroll status and click “Apply Filters”.
Then, under the Employee No. column, select the in-advance salaries you wish to include in your exported journal entries. Or you can select all the filtered salaries by clicking the “Select all” checkbox.
Then click “Send to Xero”, and your off-cycle vacation in-advance salaries will be transferred as journals.

Posting Provisions From ZenHR to Xero
Auto-generate Provision Journals
Click your user icon in the upper right corner and go to System Preferences → Integration Setup → Journal Entries Structure
Activate the Calculate employees' provisions toggle.
Activate the Auto-generate journal entries for employees' provisions toggle.
Then select the desired option under “How to generate provision journal entries”.
click “Save”.

Note : This way when You post salaries from ZenHR to Xero, A Separate Provision Journal will get sent also
.
Manually Generate Provision Journals
Click your user icon in the upper right corner and go to System Preferences → Integration Setup → Journal Entries Structure.
Activate the Calculate employees' provisions toggle.
Deactivate the Auto-generate journal entries for employees' provisions toggle.
Then select the desired option under select “How to generate provision journal entries”.
Click “Save”.

Then on the left side of the page, go to Main Menu → Payroll → Manage Monthly Provision.
Enter the desired salary Year and Month for all employees, and click “Filter”.
Then click the“Send to Xero” and your provisions will be transferred as journals.

Xero Event Viewer
As with any integration, monitoring is essential to track events and activities between systems. ZenHR provides the Xero Events Viewer, which allows you to monitor all integration activities, view their statuses (such as successful, failed, or pending), and identify any errors that occur during data transfer.
This tool also enables you to retry failed events without manually resending data, ensuring smooth and reliable synchronization between ZenHR and Xero.
To access the Xero Events Viewer:
1. Navigate to User Menu → System Preferences → Integration Setup → Financial Integrations → Xero Setup.
2. Select Retry to resend any failed events and complete the synchronization process.

Comments
0 comments
Please sign in to leave a comment.