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.

Screenshot from GoCardless. 1. Test with your own data. See how the product flow would look like for your users and what data is available. 2. Set up the API. Follow our documentation to set up the API and start collecting bank account data. 3. Customise the user interface.Pay as you go. Make the user agreement flow for your customers to match your brand. 4. Ready to go live? Need help and advice to set up faster?

You'll get back a JSON file from each of your banks and credit cards with information like this in it:

JSON 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 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 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!


Share this post on…

  • Mastodon
  • Facebook
  • LinkedIn
  • BlueSky
  • Threads
  • Reddit
  • HackerNews
  • Lobsters
  • WhatsApp
  • Telegram

4 thoughts on “Free Open Banking API using Nordigen / GoCardless”

  1. 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?

    Reply

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">