Xero and Perk data exchange

The Perk integration for Xero synchronizes key master data — users, tracking categories, accounts, and tax rates — from Xero. A synchronization job runs daily to check for changes and update the matching data objects in Perk. Expenses are exported to Xero in real time on a manual or automatic trigger.

Synchronize master data (employee and accounting)

Users

Perk users are synchronized with Xero Contacts. The user must be created in Perk before it can sync with Xero. The email address is the unique identifier for synchronization, so it must be identical in both systems. After the initial sync, if a Xero contact's email address changes, update the email in Perk so the user stays in sync.

Xero Contact data Perk User data Description
Email address Email address Email address of the user. Used as the unique identifier during synchronization.
Name First name First name of the user. The Xero Name is split at the first space to determine the first name.
Name Last name Last name of the user. The Xero Name is split at the last space to determine the last name.
Contact status Status Status of the user. If deleted or archived in Xero, takes inactive status in Perk.
Xero Contact data Perk User data Description

Tax rates

Perk tax rates are synchronized with Xero Tax Rates. For selected (auto-synced) rates, the daily sync updates the name, rate, and status on the next run.

Xero Tax Rate data Perk tax rate data Description
Name Name Name of the tax rate. Updated on the next sync if it changes in Xero.
Code ERP code Used as the unique identifier during synchronization.
Total Tax Rate, or Effective Tax Rate Tax rate The rate percentage. Updated on the next sync if it changes in Xero. Use the highest rate if both total and effective rates are used in Xero.
Status Status Status of the tax rate. Created as active on initial sync. If deleted, deactivated, or archived in Xero, takes inactive status in Perk (tax rate deletion is detected for Xero). Deselecting a rate in import settings also deactivates it in Perk.

Company cards

Perk company cards are synchronized with Xero Accounts of Type Bank and Account Type Credit Card. The company card must be created in Perk before it can sync with Xero. After setup, only status changes on the Xero Credit Card Account are updated in Perk.

Xero Credit Card data Perk company card data Description
Status Status Status of the company card. If deleted in Xero, takes inactive status in Perk.
Bank Account Code Creditor number Used as the unique identifier during synchronization.

Cost objects (tracking categories)

A Xero tracking category mapped as a cost object is synchronized to a cost object in Perk. Active tracking categories import as active cost objects; archived ones import as inactive. Each tracking category option imports as a cost object value, and new option values added under a mapped category import on the next daily sync.

Caution: A tracking category or option deleted or archived in Xero isn't detected (a limitation in how Xero data is synced), so the matching cost object stays active in Perk until you deactivate it manually.

Caution: Cost objects created manually in Perk have no corresponding Xero ID. The integration doesn't reverse-match manually created records, so import tracking categories from Xero to use them on exports.

Xero Tracking Category data Perk Cost Object data Description
Name Name Name of the tracking category.
Option name Cost object value Each tracking category option imports as a cost object value.
Status Status Status of the tracking category. Deletions and archivals in Xero aren't detected — see the caution above.

Custom fields (tracking categories)

A Xero tracking category mapped as a custom field is synchronized to a custom field in Perk. A new Perk custom field is created named after the tracking category, and each tracking category option imports as a value in that custom field. New option values added under a mapped category import on the next daily sync.

Caution: A tracking category or option deleted or archived in Xero isn't detected (a limitation in how Xero data is synced), so the matching custom field or value stays active in Perk until you deactivate it manually.

Xero Tracking Category data Perk Custom Field data Description
Name Custom field name The tracking category name. A new custom field is created named after the category.
Option name Custom field value Each tracking category option imports as a value in the custom field.
Status Status Status of the option. If the option is not active in Xero, it's inactive in Perk. Deletions and archivals in Xero aren't detected — see the caution above.

Expense categories (expense accounts)

Xero accounts are mapped to expense categories in Perk. You choose which accounts to import during setup — any account type can be imported, not only Expense or Bank. Only active accounts import on the initial sync. A renamed account updates its name on the next sync, and deselecting an account in import settings deactivates it in Perk. The integration uses an internal ID to export, not the ERP code, so editing the ERP code in Perk has no effect on export.

Caution: An account deleted or archived in Xero isn't detected (a limitation in how Xero data is synced), so the matching expense category stays active in Perk until you deactivate it manually.

Xero Account data Perk expense category data Description
Name Name The account name.
Code ERP code Customer-defined alphanumeric account code, e.g. 200 or SALES.
AccountID Internally used Used as the unique identifier during synchronization.
Status Status Status of the account. Deselecting it in import settings deactivates it in Perk. Deletions and archivals in Xero aren't detected — see the caution above.

Caution: Expense categories created manually in Perk have no corresponding Xero ID. The integration doesn't reverse-match manually created records, so import accounts from Xero to use them on exports.

Export transactional data

Privately paid expenses

Reimbursable expenses are exported to Xero as approved Bills. Credit notes are exported to Xero as approved Vendor Credits.

Note: Tax rates for privately paid expenses and credit notes. For privately paid expenses, the default tax rate set on the Account is overwritten in the Bill by the tax rate sent by Perk. For credit notes, the tax rate sent by Perk is ignored and the default tax rate set on the Xero Account is used instead.

Xero field Perk Expense data Description
Type n/a Sent to Xero as ACCPAY (expense) or ACCPAYCREDIT (credit note).
Total Expense total claim Calculated before export based on expense currency and export currency configuration.
Status n/a Sent to Xero as AUTHORISED. Credit notes are posted as approved Vendor Credits.
From (contact) Submitter Internal identifier used to map to the Xero user.
Amount (per line item) Amount per line item Calculated via the journal entry functionality within Perk.
Account (per line item) Category per line item  
Category (header) n/a Xero pulls this from the internal identifier stored on the cost object or custom field in Perk, depending on how the tracking category was mapped.
Value in Category column (per line item) Cost object name  
Tax Rate (per line item) Tax rate  
Total Tax (calculation done in Xero) n/a Calculated in Xero based on amount and TaxType sent (the TaxType is based on the tax rate in Perk).
Reference Expense ID Sent to Xero as the Perk expense ID.
Description (per line item) Merchant name Merchant name from the expense, populated as the line item description.
Date Posting date  
Amount Currency n/a Business logic applied via the journal entry functionality within Perk, based on expense currency and export currency configuration.
Due Date Expense date  

Card transactions

Perk company card transactions are exported to Xero as Spend Money bank transactions. Company card credit notes are exported to Xero as Receive Money bank transactions.

Xero data Perk expense data Description
Account (type: BANK, account type: CREDIT CARD) Company card Internal identifier used to map to the Xero Credit Card Account.
Date Expense date  
Spend vs Receive Money n/a Business logic based on whether the expense is a credit note results in SPEND (regular expense) or RECEIVE (credit note) being sent to Xero.
To Submitter Internal identifier used to map to the Xero user.
Amount (per line item) Amount per line item Calculated via the journal entry functionality within Perk.
Account (per line item) Category per line item  
Category (header) n/a Xero pulls this from the internal identifier stored on the cost object or custom field in Perk, depending on how the tracking category was mapped.
Value in Category column (per line item) Cost object name  
Tax rate (per line item) Tax rate  
Unit price (per line item) Net amount (per line item) Calculated via the journal entry functionality within Perk.
Total Tax (calculation done in Xero) n/a Calculated in Xero based on amount and TaxType sent (the TaxType is based on the tax rate in Perk).
Reference Expense ID Sent to Xero as the Perk expense ID.
Description (per line item) Merchant name Merchant name from the expense, populated as the line item description.
Amount Currency n/a Business logic applied via the journal entry functionality within Perk, based on expense currency and export currency configuration.

Travel expenses

Perk travel expenses are exported to Xero as Spend Money bank transactions. Travel credit notes are exported to Xero as Receive Money bank transactions.

Xero data Perk expense data Description
Account (type: BANK, account type: BANK) Transfer account (configured in the travel provider configuration) The value stored in Transfer account from the travel provider configuration maps to an expense category ERP code in Perk.
Date Expense date  
Spend vs Receive Money n/a Business logic based on whether the travel expense is a credit note results in SPEND (regular expense) or RECEIVE (credit note) being sent to Xero.
To Submitter Internal identifier used to map to the Xero user.
Amount (per line item) Amount per line item Calculated via the journal entry functionality within Perk.
Account (per line item) Category per line item  
Category (header) n/a Xero pulls this from the internal identifier stored on the cost object or custom field in Perk, depending on how the tracking category was mapped.
Value in Category column (per line item) Cost object name  
Tax rate (per line item) Tax rate  
Unit price (per line item) Net amount (per line item) Calculated via the journal entry functionality within Perk.
Total Tax (calculation done in Xero) n/a Calculated in Xero based on amount and TaxType sent (the TaxType is based on the tax rate in Perk).
Reference Expense ID Sent to Xero as the Perk expense ID.
Description (per line item) Merchant name Merchant name from the expense, populated as the line item description.
Amount Currency n/a Business logic applied via the journal entry functionality within Perk, based on expense currency and export currency configuration.

To learn more, see Xero integration for expenses. For setup-related questions, refer to Set up the Xero integration for Perk expenses.

Was this article helpful?