Xero

With Xero modules in {{Make}}, you can watch, create, update, retrieve, list, and/or delete accounts, bank transfers, bank transactions, change history, contacts, contact groups, credit notes, employees, files, invoices, items, journal manuals, notes, payments, purchase orders, and tax rates in your Xero account.

In order to use Xero with {{Make}}, it is necessary to have a Xero account. If you do not have an account, you can create one at xero.com/signup/.

[Note] Note

Refer to the Xero API documentation for the list of available endpoints.

Connect Xero to {{Make}}

To connect your Xero account to {{Make}}:

  1. Log in to your {{Make}} account and add a Xero module to a scenario.

  2. Click Create a connection.

    Note: If you add a module with an instant tag, click Create a webhook > Create a connection.

  3. Optional: In the Connection name field, enter a name for the connection.

  4. Optional: Click Show advanced settings and choose the Scopes for the connection. Each module's scopes can be found in the Build Xero Scenarios section below listed as Required Permissions. For more information regarding scopes, refer to the Xero API documentation.

  5. Grant access to {{Make}} in the popup window. If you are prompted to sign in to your Xero account, do so first and then grant access.

You have successfully established the connection. You can now edit your scenario and add more Xero modules. If your connection requires reauthorization at any point, follow the connection renewal steps here.

[Note] Note

If you receive an error while creating the connection, you must manually add the scopes. Go to step 4 and follow the instructions to do so.

When adding a new Xero module to a scenario using an existing connection, you may be prompted to update the connection permissions. Click Continue and Allow access to extend the permissions.

Set Up Xero Webhooks

This app uses webhooks to trigger a scenario when an event occurs instantly. Follow the steps below to set them up.

  1. Log in to your {{Make}} account and add the Xero Watch Events instant module to a scenario.

  2. Click Create a webhook, input a name in the Webhook name field, choose the associated Connection, and click Save.

    Note: When adding the module using an existing connection, you may be prompted to update the connection permissions. Click Continue and Allow access to extend the permissions.

  3. Click Copy address to clipboard > OK.

  4. Go to the My Apps page of your Xero Developer account and select the app in which you want to set up the webhook.

    Note: To create a new app, click New app, enter your Company or application URL, paste the following Redirect URI: https://www.integromat.com/oauth/cb/xero, and click Create app.

  5. Click the Webhooks tab on the left sidebar.

  6. Follow the steps listed in Xero's Creating a webhook page. Use the link you copied in step 3 as the Delivery URL.

You have successfully set up your webhook.

Build Xero Scenarios
Events
Watch Events

Triggers when a new event is created.

Required Permissions: offline_access, accounting.settings

Invoices
Watch Invoices

Triggers when an invoice is added or updated.

Required Permissions: accounting.transactions, accounting.settings

Create an Invoice

Creates a new invoice.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Update an Invoice

Updates an invoice by ID.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Get a Sales Invoice PDF

Retrieves a sale invoice PDF.

Required Permissions: accounting.transactions, accounting.settings

Get an Invoice

Returns information about an invoice with a given ID.

Required Permissions: accounting.transactions, accounting.settings

Get an Invoice URL

Retrieves a Xero online invoice URL.

Required Permissions: accounting.transactions, accounting.settings

Search for Invoices

Searches for an invoice.

Required Permissions: accounting.transactions, accounting.settings

Send an Invoice via Email

The email will be sent to the primary email address of the contact on the invoice. The invoice must be of Type ACCREC and have a valid Status for sending (SUBMITTED, AUTHORISED, or PAID).

Required Permissions: accounting.transactions, accounting.settings

Download an Invoice

Downloads an invoice.

Required Permissions: accounting.transactions, accounting.settings

Bank Transactions
Watch Bank Transactions

Triggers when bank transactions are added or updated.

Required Permissions: accounting.transactions, accounting.settings

Create a Bank Transaction

Creates a new bank transaction.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Get a Bank Transaction

Returns information about a transaction with a specified ID.

Required Permissions: accounting.transactions, accounting.settings

Bank Transfers
Watch Bank Transfers

Triggers when a new bank transfer is created.

Required Permissions: accounting.transactions, accounting.settings

Create a Bank Transfer

Transfers a specified amount from one account to another.

Required Permissions: accounting.transactions, accounting.settings

Contacts
Watch Contacts

Triggers when a contact is created or updated.

Required Permissions: accounting.contacts, accounting.settings

Create a Contact

Creates a new contact.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Update a Contact

Updates a contact by ID.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Get a Contact

Retrieves contact information by ID.

Required Permissions: accounting.contacts, accounting.settings

Search for Contacts

Searches for a contact by name or email.

Required Permissions: accounting.contacts, accounting.settings

Archive a Contact

Archive a contact with a given ID.

Required Permissions: accounting.contacts, accounting.settings

Credit Notes
Watch Credit Notes

Triggers when a credit note is added or updated.

Required Permissions: accounting.transactions, accounting.settings

Create a Credit Note

Creates a new credit note.

Required Permissions: accounting.transactions, accounting.settings

Get a Credit Note

Returns information about a credit note with a specified ID.

Required Permissions: accounting.transactions, accounting.settings

Manual Journals
Watch Manual Journals

Triggers when a manual journal is created or updated.

Required Permissions: accounting.transactions

Create a Manual Journal

Creates a manual journal.

Required Permissions: accounting.transactions, accounting.settings

Get a Manual Journal

Returns information about a manual journal.

Required Permissions: accounting.transactions, accounting.settings

Search for Manual Journals

Searches for a manual journal.

Required Permissions: accounting.transactions, accounting.settings

Quotes
Watch Quotes

Triggers when a quote is created.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Create a Quote

Creates a quote.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Items
Watch Items

Triggers when a new item is created.

Required Permissions: accounting.settings

Create an Item

Creates a new item.

Required Permissions: accounting.settings

Update an Item

Updates an item by ID.

Required Permissions: accounting.settings

Get an Item

Searches for an item by item ID or item code.

Required Permissions: accounting.settings

Search for Items

Returns a list of items.

Required Permissions: accounting.settings

 
Payments
Watch Payments

Triggers when a payment is created or updated.

Required Permissions: accounting.transactions, accounting.settings

Create a Batch Payment

Creates a new batch payment

Required Permissions: accounting.transactions, accounting.settings

Create a Payment

Use this method to apply payments to approved AR and AP invoices or refund AR or AP credit notes.

Required Permissions: accounting.transactions, accounting.settings

Get a Payment

Retrieves information about payment with a specified ID.

Required Permissions: accounting.transactions, accounting.settings

Search Payments

Searches for payments or lists them all.

Required Permissions: accounting.transactions, accounting.settings

Purchase Orders
Watch Purchase Orders

Triggers when an order is added or updated.

Required Permissions: accounting.transactions, accounting.settings

Create a Purchase Order

Creates a new purchase order.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Update a Purchase Order

Updates an existing purchase order.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Get a Purchase Order

Returns information about a purchase order with a specified ID.

Required Permissions: accounting.transactions, accounting.settings

Delete a Purchase Order

Deletes an existing purchase order.

Contact Groups
Create a Contact Group

Creates a contact group.

Required Permissions: accounting.contacts, accounting.settings

Add a Contact to a Contact Group

Adds a contact to a specified contact group.

Required Permissions: accounting.contacts, accounting.settings

Get a Contact Group

Returns information about a contact group.

Required Permissions: accounting.contacts, accounting.settings

Search for Contact Groups

Searches for a contact group.

Required Permissions: accounting.settings, accounting.contacts

Delete a Contact Group

Deletes all contacts from a contact group.

Required Permissions: accounting.contacts, accounting.settings

Remove a Contact from a Contact Group

Removes a contact from a contact group.

Required Permissions: accounting.contacts, accounting.settings

Employees
Watch Employee Leaves

Triggers when employee leave is approved.

Required Permissions: payroll.employees.read, payroll.settings.read

Create an Employee

Creates a new employee.

Required Permissions: accounting.settings

Update an Employee

Updates an employee by ID.

Required Permissions: accounting.settings

Reports
Get a Bank Summary

Returns the balance and cash movements for each bank account.

Required Permissions: accounting.reports.read, accounting.settings

Get a Bank Statements Report

Returns bank statements for a selected bank account.

Required Permissions: accounting.reports.read, accounting.settings

Accounts
Get an Account

Returns information about an account with a specified ID.

Required Permissions: accounting.settings

Search for Accounts

Finds an account by ID, name, or code.

Required Permissions: accounting.settings

Tax Rates
Search for Tax Rates

Finds a tax rate by name.

Required Permissions: accounting.settings

History of Changes
Create a History Note

Adds a note to a record.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Get History of Changes

Retrieves the changes made to a given object.

Required Permissions: accounting.transactions, accounting.contacts, accounting.settings

Attachments
List Attachments

Retrieves a list of attachments.

Required Permissions: accounting.attachments, accounting.settings, accounting.settings.read

Download an Attachment

Downloads an attachment.

Required Permissions: accounting.attachments

Files
Create a Folder

Creates a new folder.

Required Permissions: files, files.read

Upload a File (Files API)

Uploads a file using Files API.

Required Permissions: accounting.attachments, accounting.settings

Update a Folder

Updates an existing folder.

Required Permissions: files, files.read

Update a File

Updates an existing file.

Required Permissions: files, files.read

Get a Folder

Retrieves an existing folder.

Required Permissions: files.read

Get a File

Retrieves an existing file.

Required Permissions: files, files.read

List Folders

Lists all existing files.

Required Permissions: files.read

List Files

Lists all existing files.

Required Permissions: files, files.read

Delete a Folder

Deletes an existing folder.

Required Permissions: files, files.read

Delete a File

Deletes an existing file.

Required Permissions: files, files.read

Upload a File

Uploads a file to a selected object.

Required Permissions: accounting.attachments, accounting.settings

 
Asset Types
Create an Asset Type

Creates a new asset type.

Required Permissions: assets

Update an Asset Type

Updates an existing asset type.

Required Permissions: assets, assets.read

Get an Asset Type

Retrieves an existing asset type.

Required Permissions: assets.read

Search Assets

Searches for assets or lists them all.

Required Permissions: assets.read

Timesheets
Create a Timesheet

Creates a new timesheet.

Required Permissions: payroll.timesheets

Get a Timesheet

Retrieves an existing timesheet.

Required Permissions: payroll.timesheets.read

Search Timesheets

Searches for timesheets or lists them all.

Required Permissions: payroll.timesheets.read

Delete a Timesheet

Deletes an existing timesheet.

Required Permissions: payroll.timesheets

Tracking Categories
Create a Tracking Category

Creates a new tracking category.

Required Permissions: payroll.settings

Update a Tracking Category

Updates an existing tracking category.

Required Permissions: payroll.settings

Get a Tracking Category

Retrieves an existing tracking category.

Required Permissions: payroll.settings.read

Search Tracking Categories

Searches for tracking categories or lists them all.

Required Permissions: payroll.settings.read

Delete a Tracking Category

Deletes an existing tracking category.

Required Permissions: payroll.settings.read

Tenants
List Tenants

Lists all existing tenants.

Settings
Get a Setting Object

Retrieves a setting object.

Required Permissions: assets.read

Other
Make an API Call

Performs an arbitrary authorized API call.

Connection

Establish a connection to your Xero account.

Organization

Select the organization for which you are making the API call.

Base URL

Select the endpoint URL to connect to your Xero account.

URL

Enter a path relative to https://api.xero.com/api.xro/. For example, /2/Accounts.

For the list of available endpoints, refer to the Xero API Documentation.

Method

Select the HTTP method you want to use:

  • GET - to retrieve information for an entry.

  • POST - to create a new entry.

  • PUT - to update/replace an existing entry.

  • PATCH - to make a partial entry update.

  • DELETE - to delete an entry.

Headers

Enter the desired request headers. You don't have to add authorization headers; we already did that for you.

Query String

Enter the request query string.

Body

Enter the body content for your API call.

Example - List Invoices

The following API call returns all invoices:

61d6bea84da6d.png

Matches of the search can be found in the module's Output under Bundle > Body > Invoices.

In our example, 1 invoice was returned:

61d6bea9389ad.png