How to create an app for the Xero marketplace

By on
How to create an app for the Xero marketplace

Do you have an idea for an app or service that could benefit from integrating with Xero? Here are some tips for creating apps for the cloud accounting platform.

Cloud accounting platform Xero is making a concerted push to get more apps in its extension marketplace, and more integrations with third-party services. 

In July, it launched an app marketplace with 500 extensions, and then during its annual Xerocon South conference in Brisbane, announced a second marketplace as part of its Xero HQ tool for accountants

The effort is being spearheaded by Xero senior evangelist Steven Cooper, who is affectionately known to the company's partners as "Developer Steve". 

On the sidelines of the Xerocon South conference, BIT asked Cooper what the process was for startups and other businesses looking to become a Xero developer partner and get an extension in the marketplace. 

According to Cooper, there are two ways to initiate the process, depending on whether you want to build a new service from scratch, or integrate an existing service. 

"It could be through accessing our developer portal at [and] finding the APIs you need you need to access. Depending on the app functionality you want, there are various APIs that tie into that," Cooper said. 

"Or it could be something we help you integrate with. So you come to us with the idea, say: 'Hey, it would be great to do this, this and this. You can integrate this with payroll, you can integrate this with timesheets, you can integrate this with invoices.' 

"From there we'll work with you to get a beta release and then part of the partner program." 

What APIs can and can't do 

Xero's application programming interface (API) is now very extensive, although Cooper cautions that not all organisations can use all of Xero's features. 

For instance, if an organisation doesn't use Xero for payroll, they won't be able to take full advantage of apps that leverage that capability. 

Similarly, there are some limits around access to the reconciliations process. 

"The balancing and reconciliation process [can't be accessed through the APIs], mainly because there's some things you want to reconcile automatically and some things you may not," he said. 

Beyond that, it's a matter of choosing API capabilities that makes sense for the app you want to create. 

"There's reporting functions, being able to see some of the ledger reporting and stuff, there's time sheets – it really just ties back to what functionality the app has and what makes sense for the app itself." 

Approvals process 

Before an extension ends up in the marketplace, Xero has a beta testing and evaluation process it needs to go through. 

"What we look at as part of the partner program is everything from user feedback to more technical aspects of it, such as API logs," Cooper said. 

"We ask you to have a few different organisations using it to gain some user feedback around usability and functionality, to make sure there aren't many errors coming through and that it's a seamless process for the user. 

"Around user experience it's very important to us to make sure it's nice and seamless and easy to use for a user." 

Because of this process, Cooper said it's important for prospective developers to familiarise themselves with Xero's developer guide

"We have a guide that allows you to see the requirements we look for. And again, it comes down to great user experience, very few errors and great functionality," he said. 

Likening development to storytelling, Cooper said the integration needs to be seamless and make sense from the point of view of user experience. 

"I often think of user experience as being like a movie: You want a nice flowing storyline, a nice plot, and a nice ending," he said. 

"You want to make sure the end user is in a place in the app where the user can re-access functionality, including settings and user base features. 

"Then there's the functional side, making sure there aren't a lot of API errors. So we take a look at the API logs to make sure there's no consistent errors shown and things are handled nicely. It's about making a nice user journey." 

Two-way data flows, not one-way streets 

A big no-no for Xero is apps that suck information out of the cloud accounting system without contributing any data back in return. 

"One of the most important aspects of the functionality for API access is a two-way data access. So if you're taking data out, we want to see data coming back in as well," Cooper said. 

"If you're pulling out contact data and then using that to generate invoices, and someone can create a contact in your system, we want to see that data come back to Xero. 

"And from a user journey point of view, that just creates a really nice process and means you don't have to double-handle data." 


If you're looking for good startup apps that tick all the right boxes, Cooper cites Sydney-based startup AppsForOps as a good example of what Xero is looking for. 

The app adds a range of different features, including expense pre-approvals, timesheets and travel requests. 

"It's really, really cool. Basically, they're using every single one of our APIs, which is amazing to see," he said. 

"It has a lot of functionality all tied in to one tiny little application. And they've integrated amazingly well. 

"When we did the initial review for it, the process itself was seamless, a great user experience, it used APIs with no errors. It was one of our dream apps. And, functionality wise, they got so much in there." 

Three key tips from 'Developer Steve'

For startups and entrepreneurs looking to create an app, Cooper has three main tips: 

  • Make sure your integration is seamless for the end user 
  • Your app should provide users with great additional functionality 
  • There needs to be a two-way data flow between your app and Xero.
Copyright © BIT (Business IT). All rights reserved.

Most Read Articles


What would you like to see more of on BiT?
How To's
Photo Galleries
View poll archive

Log In

  |  Forgot your password?