Less noise, more data. Get the biggest data report on software developer careers in South Africa.

Dev Report mobile

Enabling the Finance Team to Track Team Card Spend at OfferZen

28 September 2020 , by Dan Davey

At OfferZen, every team member has the freedom to spend money. We have certain heuristics around how to spend, but the ultimate goal is that everyone is empowered to do their job better. However, for the last few years, we haven’t had a good system in place to track who spends what. This meant that our finance team had to spend hours every month trying to track and manage purchases.

Our tech team wanted to build a tool that could help solve this problem. We were able to use programmable banking to build an app that was both easy to develop, and truly useful. Here’s how we did it and the results we’ve seen so far.


When we sat down with the finance team to discuss the problems they were facing, we learned that the team was often bogged down by repetitive, manual admin tasks. These took up big chunks of time that they could ideally have spent on proactively innovating how OfferZen’s broader team thinks about, and spends, money.

One of their major administrative headaches was following up on team purchases every two weeks. This was difficult because every team member has free reign to spend, but no obvious place to report what they bought.

Over the years, the finance team had tried to manage this problem by:

  • Sharing a detailed Google Doc with instructions on how to spend money
  • Setting up ReceiptBank – an online tool where spenders could upload photos of their invoices

However, neither of these really took off, as the Google Doc soon got lost on Slack and team members would often forget to keep their receipts.

That’s why we wanted to build something that would make it possible for the finance team to easily access and manage all spend records in one place.

Building an automated spend tracking solution

At the end of 2019, Investec had heard about the programmable banking mission that we had started with Root, and because over 30 000 developers had previously shown interest in it, their team was eager to start building it out and adding value to the tech community.

Together with the Investec team, we spent many hours on the OfferZen beanbags talking about the impact that programmable banking could have on the tech community, and we realised that the APIs that Investec already had could potentially form the foundation of a programmable bank account.

To test if this could work, we decided to “eat our own dog food” and use programmable banking to build a tool that could help OfferZen.

We realised that we could use the finance team’s spend tracking problem to build out our first use-case.

With the knowledge that the team needed a tool that was easy to access and could integrate with the systems they were already using, we built Roz – a simple app affectionately named after the character from Monsters Inc – that works like this:

  1. All teams were given a programmable banking card to make purchases with.
  2. When a card is used and a transaction is detected using the Investec API, team members are prompted on team Slack channels to claim and categorise their purchase and upload their receipts.
  3. This information is then fed into the app that the finance team has administrative control over.
  4. The app auto-updates spend claims and allows for modified CSV exports to match the format required for Sage and internal cash reports.

If you’re interested in learning more about the tech behind the tool, two of our developers at OfferZen, Jethro and Markus, recently demoed how they built it at one of the Programmable Banking Community meetups:

The results we’ve seen so far

While the app is by no means perfect, and programmable banking itself is still developing new features and improvements, it was a relatively easy project that we enjoyed working on. So far, it’s proved to be useful for our finance team because it allows them to:

  • Empower the broader team to categorise their own spending, which was typically one of the finance team’s most time-consuming administrative tasks.
  • Automate categorisation of recurring expenses, such as subscriptions, to prevent having to look through records every month to confirm what purchases were made.
  • Download a CSV export to save them from having to manually compile spreadsheets every two weeks.

From our experience building this app, we’ve learned that figuring out how to make programmable banking an effective solution is a community effort. So, if your finance team is struggling with something similar, or you’re interested in exploring other financial solutions with programmable banking for your business, feel free to get in touch with us.

OfferZen is hiring!

Recent posts

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.