Xero API Integration Case Study: Hub Australia

TL;DR

  • Hub Australia came to us with the requirement to enable accurate revenue/credit reporting across all of their Clubhouses.
  • Sydney Software Development built a custom Xero API integration to sync revenue/credit between Xero organisations, and between billing and consumption periods.
  • We also built a consolidated reporting API to provide a single endpoint for reporting of P&L and Budget data across all their Xero organisations.

Background

Hub Australia is a leading provider of office space, co-working spaces, and virtual office solutions. We were approached by Hub Australia to provide a solution to an accounting issue they were having.

Hub Customs House Sydney

(We recommend checking out some of their Clubhouses. They make great coffee!)

Each of Hub’s Clubhouses (locations) use a separate Xero organisation to track its operations. Due to the nature of Hub’s offering, members are billed via their ‘Home Clubhouse’ but may accrue charges at any of the other Hub locations. Their POS/Clubhouse management system created invoices/credit notes in the corresponding Xero organisation, but they needed to track all revenue/credit for a given customer against their Home Clubhouse to ensure accurate tracking of customer value.

Hub had worked out their desired solution which was to ‘move’ revenue/credit between clubhouses using manual journals, however the implementation of this was not proving simple.

The Solution

After an initial call, we went away and designed a periodic sync process which would meet their requirements. Over the next few weeks, we worked iteratively to build the Multi-site Sync application which achieved the above.

Hub Xero Integration Diagram

A few months after this application was tested and rolled out, Hub requested a way to ‘move’ pre/post-paid revenue/credit to the correct consumption month. The main purpose of this was for correct reporting. To reduce rework, we built this as an extension to the existing sync application as a supplementary process.

Both solutions have been in place for some time now and have saved the Hub Finance team hundreds, if not thousands, of hours in manual labour.

The next major piece of work we did for Hub Australia was a consolidated reporting API to provide a single endpoint for reporting of P&L and Budget data across all their Xero organisations. We implemented this on our data integration platform Easy Data Sync, which enabled us to build this quickly. It provides fast access to this data for consumption by their BI platform.

Result

The combination of the data manipulation application and the reporting API has made it easier for management to gain a high-level view of the financial performance of each Clubhouse against their respective budget. It has also reduced the amount of manual, repetitive work carried out the Finance team, allowing them to focus on more strategic tasks.

Technical Details

The solution was built with Python, due to familiarity within the Hub IT department, which would better facilitate ongoing maintenance and support.

The solution made use of Flask/Gunicorn to provide a simple administration interface for adding new clubhouses, as well as to host the OAuth2 authentication flow for authorising the application’s access to each of Hub’s Xero organisations.

The solution was hosted on AWS EC2 with an RDS MySQL database, again at request of the Hub IT department. The Flask application runs on its own EC2 instance, which is firewalled and sits in a public subnet. The sync application is running on a separate instance in a private subnet.

Application deployment is via git pull, given that updates are infrequent, and the size of the project did not warrant setting up private Github Actions runners within the VPC’s private subnet. Continuous integration and automated dependency updates are implemented using Github Actions.

We’ve built Xero integrations with Python, PHP, C# and NodeJS. We’re happy to work with any language that best suits a customer’s needs (although we do have our favourites!)

Sydney Software Development were very thorough and patient in working with us to find a great solution. They are responsive and no question is a silly question (believe me, I have a lot of questions as this is my first time using a Developer for Automation!) This allows us to reduce significant time and error in manual reconciliations across different Xero files and in turn, we can also provide a better customer experience for billing.

Janet Toh

National Reporting & Analysis Manager @ Hub Australia