We care a great deal about bank feeds. They provide the essential link between our users’ FreeAgent accounts and their bank accounts, automatically importing transactions each day. From our customers’ point of view they’re probably the most valuable and most used feature of the software, so they’re really important to us too. For many of our customers, the main purpose of using accounting software like FreeAgent is so they don’t have to manually input their banking data. This important relationship between a FreeAgent customer and their bank feed can be encapsulated in the following simple equation:
I’m an engineer on the Banking Team, and it may come as little surprise that bank feeds are responsible for a significant majority of my working life. They’re pretty complicated, and are comprised of some of the most executed code in the entire application, so they inevitably come with a not-insignificant maintenance burden. The task of making sure these feeds are importing transactions for our customers smoothly and reliably every day is expensive – us Banking Engineers spend a lot of time on this – but because the feeds are so vitally important to our customers, it’s definitely time well spent.
We have two main types of bank feed: Yodlee feeds, provided by a third party, and Open Banking feeds, which we have implemented ourselves and are generally more reliable than the former. We’re currently in the process of upgrading as many of our customers’ Yodlee feeds as possible to Open Banking feeds.
What is Yodlee?
Yodlee is our long-time third-party provider of bank feeds. Before Open Banking came along, we had two options for bank feeds: develop a bespoke, direct integration with the bank, or use a Yodlee feed. For the bespoke option, we need a lot more resources (ie: developer time) and the integration only works for one bank. The Yodlee option is therefore preferable to building a bespoke feed in most cases; we just pay Yodlee a monthly fee to provide the feed for us.
The problem with Yodlee feeds is that they’re brittle. They use screen-scraping technology to securely aggregate bank transactions from the customer’s online banking. This technique is inherently unreliable because any small change to the structure of the online banking webpage will break the feed. The banks won’t inform Yodlee when they’re about to upgrade the user-interface of the online banking website, so the feeds tend to break suddenly, causing a huge support burden for us.
What is Open Banking?
Open Banking is a movement, introduced by the U.K. Competition and Markets Authority (CMA), to enforce greater regulation over banks. New EU legislation, known as the Payment Services Directive 2 (PSD2), is central to this and is intended to improve competition and innovation in the payment services sector of the EU market. In addition to this, thanks to a hefty new set of data protection laws called the General Data Protection Regulation (GDPR), Open Banking has consumer-protection and ownership of data at its heart.
Because of Open Banking, banks are now obliged to allow their customers’ data to be accessible by third-parties (eg: FreeAgent) via a public API. As an accounting software company, we’re really excited about this as it allows us to build bank feeds for our customers that communicate directly and securely to their bank without having to use any external services such as Yodlee.
Here’s how it works:
- All the banks implement a public API that conforms to the Open Banking standard.
- My colleagues and I on the Banking Team write some one-size-fits-all code that exactly follows the blueprint of the standard.
- The bank feed code can be plugged in to any bank’s API and will just work.
Okay, so I know what some of you are thinking – it’s never going to be that simple. And you’d be partly right; the banks don’t always adhere perfectly to the standard and the “one-size-fits-all” code sometimes requires a bit of extension or modification in order to work around the various nuances of each bank’s API, but by-and-large it works pretty well for most of the banks.
Why we’re switching from Yodlee to Open Banking
The new PSD2 regulations require banks to introduce additional security steps to the login process for online banking, and this effectively prohibits screen scraping – the technology that forms the backbone of Yodlee. From the 14th of March 2020 the majority of our Yodlee feeds will no longer be in line with the new regulations and will be unavailable, so we’re in a race against time to get them switched over to Open Banking feeds as soon as possible.
The switching process can get a bit confusing because non-EU banks are unaffected by these regulations, and not all of the EU banks have implemented Open Banking, but we have various support articles to help our users through the switching process, including a list of banks we support and those that are a work-in-progress.
The future is bright
The banks’ Open Banking APIs are still new technology, as is our code to connect to them, so it’s true (and unsurprising) that there have been some “teething” issues – a few wrinkles to be ironed out – both at our end and the banks’. However, we expect this to improve fairly naturally as the technology matures. Over three-quarters of our customers have successfully switched their feeds to Open Banking so far, and 95.5% of these feeds are happily importing transactions every day, so the future looks bright indeed.