3 min read

Developing with Open Banking APIs

A couple of months ago, I wrote the following post about Gocardless's free and accessible Open Banking APIs and that I wanted to do something with them.

UK open banking APIs for personal use
Back when the Open Banking initiative was announced in the UK, I was initially quite excited, I assumed this would mean that I as a regular consumer would be able to create applications that would interface across my bank and credit card accounts. But when it came about, it turned

I have started on a prototype consisting of:

  • An independent API (C# .NET 7 - reasons here and here)
  • An independent web front end (Nextjs, Typescript, Tailwind)

The features so far are:

  • Connected to multiple accounts (my Barclaycard and Monzo)
  • Request and aggregate money spent across both accounts in a single API request (ignoring money added to the accounts)
    • Unified view of all spending data across accounts in order (depending on your criteria: chronological, amount spent, etc)
  • Support loose filtering of transaction data
  • Restrict by date range
  • Graphs on the data to show:
    • Cumulative spend over time
    • Breakdown by retailer
    • Average spend over time
    • Total spend per day
  • Sortable table

Note: the pie chart on the breakdown by retailers is a bit misleading, the categories listed at the top aren't all of them and are visible regardless of how much spent at each. There's some in there which amount to one or two transactions, so I need to fix that.

The ability to filter on retailer info from the transactions that are currently loaded.

Or create your own, which may be used to catch multiple creditors/retailers.

Plans

The front end for this is mostly a way for me to develop the APIs - it's a hacked together prototype, I want this to hook into and feed other applications and provide notifications and other analysis. I want to be able to get a better handle on my spending.

The next piece of functionality I want to add to the prototype is to add the ability to register and connect new bank accounts.

Then I'll be focus on moving this towards a more solid solution that has functionality such as:

  • Storing transaction info, local caching and using this to build up a longer history than the one allowed by Open Banking (90 days).
  • Mutli-user support - local authentication and history storage/sync - I don't want to store or access the connections.
  • Export to excel/csv.

But perhaps most interestingly, one of the reasons I developed the API independently is that I think I may dabble in a bit of iOS development for the first time in a very long time. I've never written anything significant in Swift or SwiftUI and would like to give it a go.