aio* is a new way to manage company expenses. aio* offers upfront budget control, instant fund transfer, and full business spending visibility. Managing team expenses can be tricky. Whether it’s monitoring budgets, keeping track of spend, or chasing expense reports and querying reclaim - your time could be much better spent.

aio* brings peace of mind while supporting your team’s success. Approve budget requests or transfer funds instantly anytime, anywhere. Track real time spending by project or team, while keeping full control of cash flow.


  1. Delegate purchasing – quickly transfer funds to the right person at the right time
  2. Upfront budgeting – stay in control with upfront budgeting and real time oversight of spend
  3. No more manual expense reports – means no more chasing receipts or nasty month-end surprises
  4. Simplify management for distributed teams – help them do their jobs while keeping control - wherever they are in the world
  5. Smart data insight – use historic data from other projects to improve estimates and budget smarter


  1. Your own individual card – no more waiting for approval before making a purchase
  2. Your spending approved upfront – gain confidence from clear expectations and knowing you’re within budget
  3. No more manual data entry – capture real time transactions from the bank. Never submit an expense report again
  4. No more lost receipts – snap an image on the go, then bin the paper
  5. Never be out of pocket again – no need to wait for, or chase any more reimbursements

What it does

Individual payment cards for all employees mean no more waiting to borrow the company card, or worry about risks of sharing cards. The integration with Xero allows to export transactions made with aio* pre-paid cards directly into Xero as bank transactions. Xero's account codes can be used to tag transactions with the appropriate category, so some of the accounting efforts can be handled by employees tagging their own transactions. aio* makes it possible to take pictures of receipts and attach them to card transactions right away. These receipts will be uploaded through Xero's API as file attachments as well.

How I built it

We were mainly using the Java API provided by Xero, although we partly had to write our own integration to allow the upload of file attachments (receipts) to bank transactions. Since we are developing in Scala, it was convenient to be able to use the Java API directly and make use of Akka HTTP to establish an easy connection to Xero's REST API for additional services.

Challenges I ran into

Creating many bank transactions through Xero's Java API was a problem at the time, since we encountered SocketTimeoutExceptions. I raised this issue on Xero's Java API GitHub-repo ( The introduction of a timeout-value in the JsonConfig made it possible to increase the timeout in order to upload more transactions at once through the API.

Accomplishments that I'm proud of

Using Wiremock to simulate Xero's API XML-responses greatly helped to run test scripts and automatically test the integration with Xero without the need of valid OAuth-tokens. Since the Java Xero API didn't provide an endpoint for file attachments, we needed to write our own integration for this part of the API in Scala and Akka HTTP.

What I learned

I learned a lot about OAuth v1 and how to encrypt requests and set the correct headers for API calls to succeed. The different types of Xero accounts and the best way to sync transactions from our system into Xero.

What's next for aio*

aio* wants to help making budget and expense management easier for companies. Being targeted at managers and accountants, the integration with Xero makes our product far more attractive for them.

Share this project: