Page tree
Skip to end of metadata
Go to start of metadata

Thank you for purchasing our extension. If you have any questions that are beyond the scope of this document, do not hesitate to leave us an email via [email protected]

Last updated at 23/08/2018 | By: Magenest | Support Portal: 


Xero Integration extension for Magento 2 is a great tool that allows you to synchronize accounting data automatically from Magento 2 store to Xero Website.


  • Sync customer data from Magento 2 store to Xero both manually and automatically. 
  • Sync product data from Magento 2 store to Xero both manually and automatically. 
  • Sync order data from Magento 2 store to Xero both manually and automatically.
  • Sync invoice data from Magento 2 store to Xero both manually and automatically.
  • Sync Credit Memos from Magento 2 store to Xero both manually and automatically. 
  • Allow admin to view sync history log to see what is synchronized between two apps. 
  • Allow admin to manage the sync queue to see what will be synchronized next. 
  • Allow admin to request a report on the Backend of Magento 2. 
  • Support multiple-website
  • Add to queue mass action in customer listing, product listing, order/invoice listing, and credit memo listing
  • Sync to Xero mass action in customer listing, product listing, order/invoice listing, and credit memo listing

System Requirements

Your store should be running on Magento 2 Community Edition version  2.3.x and 2.4.x

How to create a new consumer key

Video Tutorial

First, you need to create a Xero consumer key to connect from Magento 2 to Xero if you haven't got one. Go to and register a Xero accounts (click on "Try Xero for free" or "Free Trial"). 

Fill in the required information click on "Get started". If everything goes right, Xero sends you an account activation email. 

When your account is activated, you can log in on the page

If you log in to the account for the first time, Xero will ask you to create an organization. Enter the details of your organization. Press on Start Trial, or Buy Now to continue. 

Now you can create a new consumer key for Xero account. There are two types of Application Mode you can choose: Private Application Mode or Public Application Mode  

For Private Application Mode

In order to create a new consumer key for private app mode, you need to have the public key first. There are two ways for you to get the public key: 

(plus) You can use the public key file attached to our extension.  

(plus) Or please follow the steps below to create a new one: 

Go to > Docs then search with Create a public/private key pair

Create a public/private key pair page appears as below. Follow the user guide of Xero to get 2 file: public key(.cer) and private key(.pem)

When you have file public key.cer, please go to to create the Application.

Choose Private application mode, application name (the name for the application is not very important), choose your organization (this is where the Magento 2 data will be synced into). You need to copy and paste the content or upload the file Public key.cer into X509 Public Key Certificate field. 

Check the information again then choose "I have read and agree to the Xero Developer Platform". After that click Save button. 

If everything goes right, you will see the following content. Click on the "Show" button to get the Consumer Key for Private App Mode.

For Public Application Mode

Navigate to to create the Application for Public Mode. You just need to enter Application Name, Url of your company or product and OAuth clallback domain. Then Save button to finish. 

Last, click on Show button to take Consumer Key and Consumer Secret for Public App Mode.


Set up Xero Account Informations 

Go to Store > Configuration or Xero Integration > Configuration

At My Applications tab

Taking Consumer Key that you have just created above and paste into Magento 2 backend configuration. Press Save Config after you've done (refresh the cache if needed). Then, click on Connect Private App Now button for private application mode or Connect Public App Now button for public application mode. 


You need to save config before connecting, this will help you avoid making errors.

Setting My Applications in Configuration of your Magento 2 store will base on their app mode types. 

Private App Mode:

If you choose Private mode, you will have to enter the content of Private Key(.pem) and Public Key(.cer) beside Consumer Key

Public App Mode:

If you choose Public mode, it will require both Consumer Secret and Consumer Key. The expiration for each connection time is 30 minutes. After that, you need to reconnect Magento 2 store to your Xero account.   

When Magento 2 store is connected with your Xero account successfully, connection status will be transferred from not connected to connected as below:   

At Configure the Accounts Types in Xero tab

The system will take four account types in the chart of account: Bank account, Sale account, Inventory account, Cost and Good Sold account from Xero account into Magento 2 store. Enter the name you would like to use for each account then click on Add all Data to Queue. The default Xero account name will be used if you do not change it. If there is no account on Xero site, the extension will automatically create a new one.   


(plus) Multiple Website: Enable multiple website synchronization. Note that data will be synced to separated Xero account corresponding to "Store Views - Websites" configuration.

You can check changes to accounts on Xero's website. 

Set up Synchronization 

Admins are able to choose which type of data to sync from Magento 2 to Xero: Customers, Products(Items in Xero), Orders, Invoices, Credit Memos. In addition, admins can choose the way to synchronize data Immediately use Cron Job. Admins can also Add All data To Queue or add individual data group queue for synchronizing. 

How to distinguish between Immediately mode and Cron Job mode.

  • Immediately mode: the data will be synced to Xero as soon as they're created or updated in Magento
  • Cron Job: the data will be put into a queue and will be synced together after some intervals
  • Some application mode like private mode only allows 1000 requests a day. Choosing Cron Job will guarantee all data will be synced. We recommend you use Cron Job mode to make sure that you don't run out of requests per day.

At the end of Configuration, admins can quickly navigate to the online documentation as well as support portal for Xero Integration extension:   

Payment Mapping

You can map the order payment method with the Xero bank account in Xero Integration > Payment Mapping

  1. Update Bank Accounts
  2. Choose the Xero bank account field to map
  3. Save Mapping

Tax Mapping

Go to Xero Integration > Taxes Mapping

  1. UpdateTax rates
  2. Choose the tax field in Xero Tax
  3. Save Mapping

Add Data to Queue/ Sync instantly to Xero

In customer listing, product listing, order/invoice listing and credit memo listing, you can add data to queue for later processing as mass action.

You can select the data you want to add to queue then choose Actions > Add to queue

You can also sync the selected data instantly to Xero by choosing Actions > Sync to Xero

Process Synchronization 

If the App mode is Cron Job, data will be added to the Queue List to be sync after a specific interval. On the Queue List tab, admin can preven any data from being synced by removing them from the Queue list. Admin can also use click on Sync Now to syncall data on the queue list immediately. 

Note that syncing time will vary, depending on the size of database. 

When the process is completed, go to Xero Integration > View Log to check what has been synced.

  • If the data has been synced successfully, the Status will be success and the Message will be "OK"
  • If there's a problem during the syncing process, the Status will be error and the Message tab will show the error message 

Admin can easily check the synchronization log for the day by clicking on View Request Daily or view individual sync log by clicking on View on Xero

Navigate to Xero Integration > Request Daily Report, admins can easily see their synchronization status.  

You can also view  the xml data that is synced to Xero. This helps you debug easily in case there is a bug.

Main Functions

Video Demonstration


When a new account is registered on the frontend of Magento 2, Xero Integration extension will automatically add a new record on Xero site. 

Or you can click on Sync Now button within each customer info dashboard to synchronize a specific customer data manually. 

  • Whenever admins create a new order, invoice, and product or edit them on Magento 2 store successfully, The data will be synced to Xero automatically. 

    • Orders

Admins can synchronize a specific order by manually by clicking on Sync Now button on each order.  

  • Products

   * Note: The products name must be less than or equal to 50 characters otherwhile it would be cut off to fit in since Xero only allows maximum 50 characters in product name.

                 In addition,  the products SKU must be less than or equal to 30 characters otherwhile it can't be synced to Xero since Xero only allows maximum 30 characters in product SKU.

For each product, this extension created Xero Integration tab that allows admins to synchronize a specific product to Xero. 

  • Invoices + Credit Memos: 

Synchronizing a specific data is the same with Invoice. 


- ERROR MESSAGE: A validation exception occurred; ERROR DETAIL: Item code 'shipping' is not valid

=> Please disconnect and re-connect your Xero account in Xero Integration -> Configuration.

- ERROR MESSAGE: A validation exception occurred; ERROR DETAIL: Item code 'demo-product' is not valid

=> Please sync related items first, then re-sync the order/invoice or turn on setting “Sync Needed Data”

- ERROR MESSAGE: A validation exception occurred; ERROR DETAIL: An existing contact could not be found using the specified contact details. The contact name field is required to create a new contact.

=> Please sync related customer first, then re-sync the order/invoice or turn on setting “Sync Needed Data”

- ERROR MESSAGE: A validation exception occurred; ERROR DETAIL: Organisation is not subscribed to currency

=> Please check your Xero currency and your order currency, make sure that your Xero account support the order currency

- ERROR MESSAGE: A validation exception occurred; ERROR DETAIL: The specified bank account details does not match a known bank account.

=> Please check your Xero bank account and make sure it is correctly configured in Xero integration configuration.

- ERROR MESSAGE: A validation exception occurred; ERROR DETAIL: Invoice could not be found

=> Please check invoice error with above errors and then re-sync the order/invoice first

- ERROR MESSAGE: A validation exception occurred; ERROR DETAIL: Invoice not of valid status for modification, This document cannot be edited as it has a payment or credit note allocated to it.

=> This invoice in Xero is already in the status that does not allow to modify anymore.


  • When a new update is available, we will provide you with a new package containing our updated extension.
  • You will have to delete the module directory and repeat the installing steps above.
  • Flush the config cache. Your store and newly installed module should be working as expected.


  • We will reply to support requests within 2 business days.
  • We will offer lifetime free update and 6 months free support for all of our paid products. Support includes answering questions related to our products, bug/error fixing to make sure our products fit well in your site exactly like our demo.
  • Support DOES NOT include other series such as customizing our products, installation and uninstallation service.

Once again, thank you for purchasing our extension. If you have any questions, please do not hesitate to contact us for support.