Free Open Banking API using Nordigen / GoCardless
A few weeks ago I was moaning about there being no OpenBanking API for personal use. Thankfully, I was wrong!
As pointed out by Dave a company called Nordigen was set up to provide a free Open Banking service. It was quickly bought by GoCardless who said:
We believe access to open banking data should be free. We can now offer it at scale to anyone - developers, partners and Fintechs - looking to solve customer problems.
And, I'm delighted to report, it works! As a solo developer you can get access to your own data for free via the GoCardless APIs.
You'll get back a JSON file from each of your banks and credit cards with information like this in it:
JSON{
"bookingDate": "2023-07-11",
"bookingDateTime": "2023-07-11T20:52:05Z",
"transactionAmount": {
"amount": "-2.35",
"currency": "GBP"
},
"creditorName": "GREGGS PLC",
"remittanceInformationUnstructured": "Greggs PLC, London se1",
"merchantCategoryCode": "5812",
"internalTransactionId": "123456789"
}
For foreign exchange, transactions look like this:
JSON{
"bookingDate": "2023-10-01",
"bookingDateTime": "2023-10-01T21:41:40Z",
"transactionAmount": {
"amount": "-0.82",
"currency": "GBP"
},
"currencyExchange": {
"instructedAmount": {
"amount": "1.00",
"currency": "USD"
},
"sourceCurrency": "USD",
"exchangeRate": "1.2195",
"targetCurrency": "GBP"
},
"creditorName": "KICKSTARTER.COM",
"remittanceInformationUnstructured": "Kickstarter.com, Httpswww.kick, 1.0 U.S. DOLLAR USA",
"merchantCategoryCode": "5815",
"internalTransactionId": "987654321"
}
Depending on your card and the transaction type, you might also get a few more bits of metadata.
Get started at https://gocardless.com/bank-account-data/. From there, it's a case of following the quickstart guide.
A few niggles
There's a bit of bouncing around. You've got to get an API key, get the institution ID, sign in, get redirected, get an ID from the callback, then get the bank account details. And then you can get the transactions!
Oh, and the access token only lasts a short while, so you'll need to either re-auth or use a refresh token.
Bank authorisation only lasts 90 days, so you'll have to refresh your details every 3 months. That's standard across all opening banking, but a bit of a pain.
GoCardless have pretty comprehensive bank coverage but they are missing a few which you might find useful.
Because there are so many financial institution in there, you might find it difficult to work out which one you need to log in to. For example, if you have a Barclays Credit Card, which of these is the right one for you?
JSON{
"id": "BARCLAYCARD_COMMERCIAL_BUKBGB22",
"name": "Barclaycard Commercial Payments",
"bic": "BUKBGB22",
"transaction_total_days": "730",
"countries": [
"GB"
],
"logo": "https://cdn.nordigen.com/ais/BARCLAYCARD_COMMERCIAL_BUKBGB22.png"
},
{
"id": "BARCLAYCARD_BUKBGB22",
"name": "Barclaycard UK",
"bic": "BUKBGB22",
"transaction_total_days": "730",
"countries": [
"GB"
],
"logo": "https://cdn.nordigen.com/ais/BARCLAYCARD_COMMERCIAL_BUKBGB22.png"
},
{
"id": "BARCLAYS_BUSINESS_BUKBGB22",
"name": "Barclays Business",
"bic": "BUKBGB22",
"transaction_total_days": "730",
"countries": [
"GB"
],
"logo": "https://cdn.nordigen.com/ais/BARCLAYS_WEALTH_BUKBGB22.png"
},
{
"id": "BARCLAYS_CORPORATE_BUKBGB22",
"name": "Barclays Corporate",
"bic": "BUKBGB22",
"transaction_total_days": "730",
"countries": [
"GB"
],
"logo": "https://cdn.nordigen.com/ais/BARCLAYS_WEALTH_BUKBGB22.png"
},
{
"id": "BARCLAYS_BUKBGB22",
"name": "Barclays Personal",
"bic": "BUKBGB22",
"transaction_total_days": "730",
"countries": [
"GB"
],
"logo": "https://cdn.nordigen.com/ais/BARCLAYS_WEALTH_BUKBGB22.png"
},
{
"id": "BARCLAYS_WEALTH_BUKBGB22",
"name": "Barclays Wealth",
"bic": "BUKBGB22",
"transaction_total_days": "730",
"countries": [
"GB"
],
"logo": "https://cdn.nordigen.com/ais/BARCLAYS_WEALTH_BUKBGB22.png"
},
But, overall, it's an excellent service. Now I just need to find / write something to ingest the data and do something with it!
Phil Ashby: :marmite:, UBI now said on mastodon.me.uk:
@Edent
Ooh! Might give this a go.. shame there is no payment initiation support though - it could have fixed my bugbear with paying my Mastodon instance regularly without human (unreliable - it's me after all!) intervention..
qassim said on md.qassim.uk:
@Edent nice, I’ve been looking for this for a while - just had a play around with the API & linking my accounts - bit of a back-and-forth as you say but overall it works well!
Qassim Farid said on blog.qassim.uk:
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.
Read More...
Snazzles says:
I implemented this using GoCardless, but within a few weeks I had my GoCardless account access suspended by the bank (Barclays in my case) with a reason of "This Account or its Requisition was suspended due to numerous errors that occurred while accessing it". So I am unable to set up new requisitions unless I start a new account. Has anyone else encountered this? No idea what these "numerous errors" might be, I wonder if I need to be a registered company, and they suspend anonymous accounts eventually?
More comments on Mastodon.