The Xero Plugin enables authenticated access to Xero’s APIs so you can perform supported operations across areas like accounting, payroll, projects, assets, and files from within ToolJet.
The Xero Plugin uses OAuth 2.0 authentication and allows you to interact with multiple Xero service domains through a single data source configuration.
Generating Client ID and Client Secret
- Go to the Xero Developer Portal and sign in.
- Create a New App.
- Choose Web App as the application type.
- Copy the generated Client ID and Client Secret.
- In your Xero app settings, add the Redirect URI provided by ToolJet.
Connection
To connect to Xero, the following credentials are required:
-
Client ID: Enter your Client ID. This identifies your ToolJet application to Xero.
-
Client Secret: Enter your Client Secret. Click 'Edit' in ToolJet and enter the value. This secret will be stored in the encrypted form.
-
Scope(s): Scope defines the permissions your ToolJet app will have in Xero. This field is pre-filled with commonly used scopes such as:
"openid, profile, email, accounting.transactions, accounting.reports.read, accounting.reports.tenninetynine.read"
You can modify the scopes based on your use case.
⚠️ Ensure the scopes entered here exactly match the scopes configured in your Xero app.
- Redirect URI: ToolJet automatically generates a Redirect URI.
{
http://localhost:8082/oauth2/authorize
}
This redirect URI is required for completing the OAuth authentication flow.
Selecting Tenant ID
The Xero Plugin in ToolJet provides a Tenant selection mechanism within the query builder to identify the Xero organization against which API operations are executed.
Each Xero API request must be associated with a Tenant ID, which represents a specific Xero organization (tenant) that the authenticated user has access to.
Get Tenants
The Get Tenants option allows ToolJet to dynamically fetch available Xero tenants after a successful and secure OAuth connection.
Manual Tenant ID Entry
ToolJet also supports manual Tenant ID input for advanced use cases using the fx Expression Editor
Supported Operations
Xero in ToolJet supports the following operations:
- Accounts
- Finance
- Identity
- Bank Feeds
- App Store
- Assets
- Payroll AU
- Payroll UK
- Payroll NZ
- Projects
- Files
Accounts
Manage and retrieve the chart of accounts used for categorizing financial transactions in Xero.
| Method | API Endpoint | Description |
|---|
| GET | / Accounts | Retrieves the full chart of accounts. |
| PUT | / Accounts | Creates a new charts of accounts. |
| GET | /BatchPayments | Retrieves either one or many batch payments for invoices. |
| PUT | /BatchPayments | Creates one or many batch payments for invoices. |
| POST | /BatchPayments | Updates a specific batch payment for invoices and credit notes. |
| GET | /BankTransactions | Retrieves any spent or received money transactions. |
| PUT | /BankTransactions | Creates one or more spent or received money transactions. |
| POST | /BankTransactions | Updates or creates one or more spent or received money transactions. |
| GET | /BankTransfers | Retrieves all bank transfers. |
| PUT | /BankTransfers | Creates a bank transfer. |
| GET | /BrandingThemes | Retrieves all the branding themes. |
| GET | /Budgets | Retrieves a list of budgets. |
| GET | /Contacts | Retrieves all contacts in a Xero organisation. |
| PUT | /Contacts | Creates multiple contacts (bulk) in a Xero organisation. |
| POST | /Contacts | Updates or creates one or more contacts in a Xero organisation. |
| GET | /ContactGroups | Retrieves the contact ID and name of each contact group. |
| PUT | /ContactGroups | Creates a contact group. |
| GET | /CreditNotes | Retrieves any credit notes. |
| PUT | /CreditNotes | Creates a new credit note. |
| POST | /CreditNotes | Updates or creates one or more credit notes. |
| GET | /Currencies | Retrieves currencies for your Xero organisation. |
| PUT | /Currencies | Creates a new currency for a Xero organisation. |
| GET | /Employees | Retrieves employees used in Xero payroll. |
| PUT | /Employees | Creates new employees used in Xero payroll. |
| POST | /Employees | Updates or creates a single new employee used in Xero payroll. |
| GET | /ExpenseClaims | Retrieves expense claims. |
| PUT | /ExpenseClaims | Creates expense claims. |
| GET | /Invoices | Retrieves sales invoices or purchase bills. |
| PUT | /Invoices | Creates one or more sales invoices or purchase bills. |
| POST | /Invoices | Updates or creates one or more sales invoices or purchase bills. |
| GET | /Items | Retrieves items. |
| PUT | /Items | Creates one or more items. |
| POST | /Items | Updates or creates one or more items. |
| GET | /Journals | Retrieves journals. |
| GET | /LinkedTransactions | Retrieves linked transactions (billable expenses). |
| PUT | /LinkedTransactions | Creates linked transactions (billable expenses). |
| GET | /ManualJournals | Retrieves manual journals. |
| PUT | /ManualJournals | Creates one or more manual journals. |
| POST | /ManualJournals | Updates or creates a single manual journal. |
| GET | /Organisation | Retrieves Xero organisation details. |
| GET | /Overpayments | Retrieves overpayments. |
| GET | /Payments | Retrieves payments for invoices and credit notes. |
| PUT | /Payments | Creates multiple payments for invoices or credit notes. |
| POST | /Payments | Creates a single payment for an invoice or credit note. |
| GET | /PaymentServices | Retrieves payment services. |
| PUT | /PaymentServices | Creates a payment service. |
| GET | /Prepayments | Retrieves prepayments. |
| GET | /PurchaseOrders | Retrieves purchase orders. |
| PUT | /PurchaseOrders | Creates one or more purchase orders. |
| POST | /PurchaseOrders | Updates or creates one or more purchase orders. |
| GET | /Quotes | Retrieves sales quotes. |
| PUT | /Quotes | Creates one or more quotes. |
| POST | /Quotes | Updates or creates one or more quotes. |
| GET | /Receipts | Retrieves draft expense claim receipts for any user. |
| PUT | /Receipts | Creates draft expense claim receipts for any user. |
| GET | /RepeatingInvoices | Retrieves repeating invoices. |
| PUT | /RepeatingInvoices | Creates one or more repeating invoice templates. |
| POST | /RepeatingInvoices | Updates or deletes one or more repeating invoice templates. |
| GET | /Reports | Retrieves the organisation’s unique reports that require a GUID to fetch. |
| POST | /Setup | Sets the chart of accounts, conversion date, and conversion balances. |
| GET | /TaxRates | Retrieves tax rates. |
| PUT | /TaxRates | Creates one or more tax rates. |
| POST | /TaxRates | Updates tax rates. |
| GET | /TrackingCategories | Retrieves tracking categories and options. |
| PUT | /TrackingCategories | Creates tracking categories. |
| GET | /Users | Retrieves users. |
Account ID
| Method | API Endpoint | Description |
|---|
| GET | /Accounts/{AccountID} | Retrieves a single chart of accounts using a unique account ID . |
| POST | /Accounts/{AccountID} | Updates a chart of accounts. |
| DELETE | /Accounts/{AccountID} | Deletes a chart of accounts. |
| GET | /Accounts/{AccountID}/Attachments | Retrieves attachments for a specific account. |
| GET | /Accounts/{AccountID}/Attachments/{AttachmentID} | Retrieves a specific attachment using a unique attachment ID. |
| GET | /Accounts/{AccountID}/Attachments/{FileName} | Retrieves an attachment by filename. |
| POST | /Accounts/{AccountID}/Attachments/{FileName} | Updates an attachment by filename. |
| PUT | /Accounts/{AccountID}/Attachments/{FileName} | Creates an attachment on a specific account. |
Batch Payment ID
| Method | API Endpoint | Description |
|---|
| GET | /BatchPayments/{BatchPaymentID} | Retrieves a specific batch payment using a unique batch payment ID. |
| POST | /BatchPayments/{BatchPaymentID} | Updates a specific batch payment for invoices and credit notes. |
| GET | /BatchPayments/{BatchPaymentID}/History | Retrieves history from a specific batch payment. |
| PUT | /BatchPayments/{BatchPaymentID}/History | Creates a history record for a specific batch payment. |
Bank Transaction ID
| Method | API Endpoint | Description |
|---|
| GET | /BankTransactions/{BankTransactionID} | Retrieves a single spent or received money transaction using a unique bank transaction ID. |
| POST | /BankTransactions/{BankTransactionID} | Updates a single spent or received money transaction. |
| GET | /BankTransactions/{BankTransactionID}/Attachments | Retrieves any attachments from a specific bank transaction. |
| GET | /BankTransactions/{BankTransactionID}/Attachments/{AttachmentID} | Retrieves a specific attachment from a bank transaction using a unique attachment ID. |
| GET | /BankTransactions/{BankTransactionID}/Attachments/{FileName} | Retrieves a specific attachment from a bank transaction by filename. |
| POST | /BankTransactions/{BankTransactionID}/Attachments/{FileName} | Updates a specific attachment from a bank transaction by filename. |
| PUT | /BankTransactions/{BankTransactionID}/Attachments/{FileName} | Creates an attachment for a specific bank transaction by filename. |
| GET | /BankTransactions/{BankTransactionID}/History | Retrieves history from a specific bank transaction using a unique bank transaction ID. |
| PUT | /BankTransactions/{BankTransactionID}/History | Creates a history record for a specific bank transaction. |
Bank Transfer ID
| Method | API Endpoint | Description |
|---|
| GET | /BankTransfers/{BankTransferID} | Retrieves a specific bank transfer using a unique bank transfer ID. |
| GET | /BankTransfers/{BankTransferID}/Attachments | Retrieves attachments from a specific bank transfer. |
| GET | /BankTransfers/{BankTransferID}/Attachments/{AttachmentID} | Retrieves a specific attachment from a bank transfer using a unique attachment ID. |
| GET | /BankTransfers/{BankTransferID}/Attachments/{FileName} | Retrieves a specific attachment on a bank transfer by file name. |
| POST | /BankTransfers/{BankTransferID}/Attachments/{FileName} | Updates a specific attachment on a bank transfer by file name. |
| PUT | /BankTransfers/{BankTransferID}/Attachments/{FileName} | Creates an attachment for a specific bank transfer by file name. |
| GET | /BankTransfers/{BankTransferID}/History | Retrieves history from a specific bank transfer using a unique bank transfer ID. |
| PUT | /BankTransfers/{BankTransferID}/History | Creates a history record for a specific bank transfer. |
Branding Theme ID
| Method | API Endpoint | Description |
|---|
| GET | /BrandingThemes/{BrandingThemeID} | Retrieves a specific branding theme using a unique branding theme ID. |
| GET | /BrandingThemes/{BrandingThemeID}/PaymentServices | Retrieves payment services for a specific branding theme. |
| POST | /BrandingThemes/{BrandingThemeID}/PaymentServices | Creates a new custom payment service for a specific branding theme. |
Budget ID
| Method | API Endpoint | Description |
|---|
| GET | /Budgets/{BudgetID} | Retrieves a specific budget, including budget lines. |
| Method | API Endpoint | Description |
|---|
| GET | /Contacts/{ContactNumber} | Retrieves a specific contact by contact number in a Xero organisation. |
| Method | API Endpoint | Description |
|---|
| GET | /Contacts/{ContactID} | Retrieves a specific contact in a Xero organisation using a unique contact ID. |
| POST | /Contacts/{ContactID} | Updates a specific contact in a Xero organisation. |
| GET | /Contacts/{ContactID}/Attachments | Retrieves attachments for a specific contact in a Xero organisation. |
| GET | /Contacts/{ContactID}/Attachments/{AttachmentID} | Retrieves a specific attachment from a contact using a unique attachment ID. |
| GET | /Contacts/{ContactID}/Attachments/{FileName} | Retrieves a specific attachment from a contact by file name. |
| POST | /Contacts/{ContactID}/Attachments/{FileName} | Updates a specific attachment from a contact by file name. |
| PUT | /Contacts/{ContactID}/Attachments/{FileName} | Creates an attachment for a specific contact by file name. |
| GET | /Contacts/{ContactID}/CISSettings | Retrieves CIS settings for a specific contact in a Xero organisation. |
| GET | /Contacts/{ContactID}/History | Retrieves history records for a specific contact. |
| PUT | /Contacts/{ContactID}/History | Creates a new history record for a specific contact. |
| Method | API Endpoint | Description |
|---|
| GET | /ContactGroups/{ContactGroupID} | Retrieves a specific contact group using a unique contact group ID. |
| POST | /ContactGroups/{ContactGroupID} | Updates a specific contact group. |
| PUT | /ContactGroups/{ContactGroupID}/Contacts | Creates contacts for a specific contact group. |
| DELETE | /ContactGroups/{ContactGroupID}/Contacts | Deletes all contacts from a specific contact group. |
| DELETE | /ContactGroups/{ContactGroupID}/Contacts/{ContactID} | Deletes a specific contac |
Accounts Entity supports more operations. You can find them all in the query panel.
Finance
Access financial insights and accounting activity metrics for analytics and BI use cases.
| Method | API Endpoint | Description |
|---|
| GET | /CashValidation | Retrieves cash validation details |
Account Usage
| Method | API Endpoint | Description |
|---|
| GET | /AccountingActivities/AccountUsage | Retrieves account usage details |
Lock History
| Method | API Endpoint | Description |
|---|
| GET | /AccountingActivities/LockHistory | Retrieves lock history details |
Report History
| Method | API Endpoint | Description |
|---|
| GET | /AccountingActivities/ReportHistory | Retrieves report history details |
User Activities
| Method | API Endpoint | Description |
|---|
| GET | /AccountingActivities/UserActivities | Retrieves user activity details |
Balance Sheet
| Method | API Endpoint | Description |
|---|
| GET | /FinancialStatements/BalanceSheet | Retrieves the Balance Sheet report |
Cashflow
| Method | API Endpoint | Description |
|---|
| GET | /FinancialStatements/Cashflow | Retrieves the Cash Flow report |
Profit and Loss
| Method | API Endpoint | Description |
|---|
| GET | /FinancialStatements/ProfitAndLoss | Retrieves the Profit and Loss report |
Trail Balance
| Method | API Endpoint | Description |
|---|
| GET | /FinancialStatements/TrialBalance | Retrieves the Trial Balance report |
| Method | API Endpoint | Description |
|---|
| GET | /FinancialStatements/contacts/revenue | Retrieves revenue by contacts report |
| GET | /FinancialStatements/contacts/expense | Retrieves expense by contacts report |
Statements
| Method | API Endpoint | Description |
|---|
| GET | /BankStatementsPlus/statements | Retrieves bank statement accounting details |
Identity
Handle authentication and identity management using Xero’s OAuth 2.0 identity service. (Used for app sign-in and securing API access.)
| Method | API Endpoint | Description |
|---|
| GET | /Connections | Retrieves the connections for this user. |
| Method | API Endpoint | Description |
|---|
| DELETE | /Connections/{id} | Deletes connections for this user. (i.e.,disconnect a Tenant) |
Bank Feeds
Provide transaction feeds and bank connection data for supported financial institutions.
| Method | API Endpoint | Description |
|---|
| GET | /FeedConnections | Searches for feed connections. |
| POST | /FeedConnections | Creates one or more new feed connection. |
| GET | /Statements | Retrieves all statements. |
| POST | /Statements | Creates one or more new statements. |
| Method | API Endpoint | Description |
|---|
| GET | /FeedConnections/{id} | Retrieves single feed connection based on an unique id provided. |
Delete Requests
| Method | API Endpoint | Description |
|---|
| POST | /FeedConnections/DeleteRequests | Deletes an existing feed connection. |
Statement ID
| Method | API Endpoint | Description |
|---|
| GET | /Statements/{StatmentId} | Retrieves single statement based on an unique id provided. |
App Store
Browse and manage third-party apps and integrations available in the Xero marketplace.
Subscription ID
| Method | API Endpoint | Description |
|---|
| GET | /Subscriptions/{SubscriptionId} | Retrieves a subscription for a given subscriptionId. |
| POST | /Subscriptions/{SubscriptionId}/items//{SubscriptionItemId}/usage-records | Send metered usage belonging to this subscription and subscription item. |
| PUT | /Subscriptions/{SubscriptionId}/items//{SubscriptionItemId}/usage-records/{usageRecordId} | Update and existing metered usage belonging to this subscription and subscription item. |
| GET | /Subscriptions/{SubscriptionId}/usage-records | Gets all usage records related to the subscription. |
Assets
Manage fixed assets, including creation, depreciation tracking, and disposals.
| Method | API Endpoint | Description |
|---|
| GET | /Assets | Searches fixed asset. |
| POST | /Assets | Adds a fixed asset. |
| GET | /AssetTypes | Searches fixed asset types. |
| POST | /AssetTypes | Adds a fixed asset type. |
| GET | /Settings | Searches for fixed asset settings. |
| Method | API Endpoint | Description |
|---|
| GET | /Assets/{id} | Retrieves fixed asset by id. |
Payroll AU
Access payroll features for Australian businesses, like syncing employees and pay details.
| Method | API Endpoint | Description |
|---|
| GET | /Employees | Searches payroll employees. |
| POST | /Employees | Creates payroll employees. |
| GET | /LeaveApplications | Retrieves leave applications. |
| POST | /LeaveApplications | Creates a leave application. |
| GET | /PayItems | Retrieves pay items. |
| POST | /PayItems | Creates a pay item. |
| GET | /PayrollCalendars | Retrieves payroll calendar. |
| POST | /PayrollCalendars | Creates a payroll calendar. |
| GET | /PayRuns | Retrieves pay runs. |
| POST | /PayRuns | Creates a pay run. |
| GET | /Settings | Retrieves payroll settings. |
| GET | /Superfunds | Retrieves superfunds. |
| POST | /Superfunds | Creates superfunds. |
| GET | /SuperfundProducts | Retrieves superfund products. |
| GET | /Timesheets | Retrieves timesheets. |
| POST | /Timesheets | Creates timesheets. |
Employee ID
| Method | API Endpoint | Description |
|---|
| GET | /Employees/{EmployeeID} | Retrieves an employee's detail by unique employee id. |
| POST | /Employees/{EmployeeID} | Updates an employee's detail. |
| Method | API Endpoint | Description |
|---|
| GET | /LeaveApplications/v2 | Retrieves leave applications including leave requests. |
Leave Application ID
| Method | API Endpoint | Description |
|---|
| GET | /LeaveApplications/{LeaveApplicationID} | Retrieves leave application by an unique leave application id . |
| PUT | /LeaveApplications/{LeaveApplicationID} | Updates specific leave application. |
| POST | /LeaveApplications/{LeaveApplicationID}/approve | Approves a requested leave application by an unique leave application id. |
| POST | /LeaveApplications/{LeaveApplicationID}/reject | Rejects a leave application by an unique leave application id. |
Payroll Calendar ID
| Method | API Endpoint | Description |
|---|
| GET | /PayrollCalendars/{PayrollCalendarID} | Retrieves payroll calendar by using an unique payroll calendar id. |
Payrun ID
| Method | API Endpoint | Description |
|---|
| GET | /PayRuns/{PayRunID} | Retrieves pay run by using an unique pay run id. |
| POST | /PayRuns/{PayRunID} | Updates a pay run. |
Payslip ID