TL;DR: we made a joke out of the Open Banking/Open Data APIs
If there was a time when the banking APIs for branches and ATMs would have been needed it was now, during lockdown. Before going into the details of why it is so, you have to know a few things:
- Open Banking, the much envied UK initiative to establish industry wide standards for the implementation of the PSD2, required the banks which were part of this entity/initiative, to define and publish a set of APIs, which were not part of the PSD2 regulation, namely: banking branches, ATMs, and products APIs.
- These APIs however are not mandatory for the whole industry and I have not seen any financial institution to adopt them voluntarily. As a consequence, they offer an incomplete view of the “physical infrastructure” of access to banking in the UK. See the this list for the existing API urls.
I have used these APIs extensively during my research on access to banking last year and I’ve got to learn how each bank implemented them, how rigorous were they, how welcoming they were to the developers who were meant to use them and more than anything, how much they treated this as a compliance exercise and not as meaningful way of interacting in a digital world.
As I was discovering things that didn’t work or data which did not make sense, I contacted the banks and let them know. Some APIs used methods which were not documented anywhere so you could not have guessed how to call them, others returned hundreds of duplicates. As a rule though, I have trusted that the banks give potential users a good quality output.
How wrong I was!!
What info an API for banking branches would offer that you need to trust? I would look at two basic things:
· Is this still a functional branch for the respective brand?
· Are the opening hours correct?
I noticed many problems with this basic info last year and this was particularly relevant for the “mobile branches” — the vans stopping here and there for 5 minutes every other week. These branches do exist and I wrote about them here and here.
If somebody would have integrated the banking branches API in their app in order to help their users figure out how to organise their trip to catch the mobile branch/van in the Co-op parking lot on a Tuesday between 15:00 and 15:05 they could not have it more wrong. The API would give you a completely different time than it was displayed on a pdf on the same bank’s website and I honestly still have no clue which was correct.
What the lockdown revealed to me though was that, for many banks out of these so technologically advanced as to have an API for branches, the information provided by these APIs has nothing to do with the reality. This was difficult to figure out during “normal times”. How would you know that a Santander Bank with a regular schedule between 9:00 and 16:30 is not in fact open between these hours? You would not know. However, during the lockdown, the discrepancy between what is open and what is close is so big that you cannot but notice that the source of these APIs is sadly a static database somewhere or even an excel file of sorts. The information on the banks’ websites is in stark contrasts with what their own APIs produce.
This is a shame and I cannot state this in strong enough terms. An industry with so many technologists produces their first APIs as a tick boxing exercise. No real time information and not even real information — a dead static file served through the appearance of an API.
To cut a long story short, out of all banks having branches APIs only Barclays, HSBC, Nationwide, RBS & Natwest produce an API output aligned with their website. All the other banks, big and small produce wildly different things.
If we look at very small banks like First Trust Bank or Danske Bank in Northern Ireland you would find excuses that First Bank’s API metadata run today still lists 23–08–2018 as a date and Danske’s API shows 44 open branches when their website shows 13.
If you look at Santander though I find it less acceptable that their APIs displays all their branches open as normal while their website shows very different hours and many branches closed. This is the same for all the other banks except the ones listed above.
You might think that some hours difference in opening hours for a bank in Central London is not a big thing. However, if you look at a mobile branch scheduled to open for an hour every two weeks, is important if in fact it is closed but you don’t know.
This is not a detail but a reflection that many banks did not understand or took seriously their part in a digital ecosystem where customer propositions are put together from meaningful data sources, usually accessible through APIs.
I know that banks need to maintain and deliver these APIs for free while this type of work obviously has a cost. However, think about the use of the data you deliver through these APIs. This might be essential information for someone, especially if going to a branch is not a five minutes or even a thirty minutes walk but a 30 minutes drive. In times of lockdown, when people need to minimise their trips, these APIs truly working would make a difference.
I have more examples if you wish but I am not here for shaming but rather to voice how amazed I am at this. If you want to check what I am saying, I’ll put some python scripts in my github account here: https://github.com/andrasonea/TFI_AccessToBanking
Be more considerate people. These are not truly APIs and your customers need this info.