Five Ways to Access European Bank Data in 2026 (And What Each Actually Costs)

The Five Paths to European Bank Data (And What Each One Actually Costs)

If you’re building a fintech app in Europe, you need bank transaction data. The PSD2 directive guarantees access — but how you get that access determines your cost, complexity, and time-to-market.

I’ve spent the last year navigating this landscape. Here’s an honest breakdown of every path available in 2026, with real numbers.

Path 1: Become a TPP yourself

You register as an Account Information Service Provider (AISP) with your national regulator, obtain an eIDAS Qualified Website Authentication Certificate (QWAC) and Qualified Electronic Seal (QSEAL), and call bank APIs directly.

What it costs:

Item Cost (EUR/year)
QWAC certificate 500 – 2,000
QSEAL certificate 500 – 2,000
Regulatory registration & legal 3,000 – 10,000
Per-bank API integration Engineering time × N banks
Certificate renewal (annual) 500 – 2,000

The hidden cost: every bank implements the Berlin Group NextGenPSD2 spec differently. LHV handles SCA one way. BNP Paribas another. Revolut’s consent flow is non-standard. You’ll spend weeks per bank debugging redirect loops, signature format mismatches, and undocumented error codes.

Verdict: Only makes sense if you’re a funded company with a dedicated compliance team and plan to operate at scale across many markets.

Path 2: Use a licensed aggregator (Plaid, TrueLayer, Yapily)

These companies hold the TPP licenses and certificates. You integrate their SDK, and they handle the regulatory burden.

What it costs:

  • Plaid: Usage-based, typically $0.50–$2.00 per connected account per month. Minimum commitments for production access.
  • TrueLayer: Pay-per-call or revenue-share models. Free tier for development.
  • Yapily: Per-call pricing with volume discounts.

The upside: Polished SDKs, good documentation, broad bank coverage. You’re up and running in days.

The downside: You’re paying a premium per-transaction. For a personal finance app with 1,000 users syncing monthly, that’s $500–$2,000/month just for data access. And you’re locked into their API surface — if they change pricing or deprecate endpoints, your users feel it.

Path 3: Nordigen / GoCardless Bank Account Data

Nordigen pioneered a generous free tier for bank data access. After the GoCardless acquisition, the free tier has been scaled back, and the long-term pricing direction is toward the GoCardless Open Banking product line.

What it costs: Free tier exists (limited), paid plans start around €100–€500/month depending on volume.

The risk: The acquisition means pricing and feature decisions are now made by a large payments company optimizing for enterprise accounts. If you’re an indie developer or small startup, you’re not the priority customer.

Path 4: Enable Banking

A Finnish aggregator with a developer-friendly API and transparent per-bank pricing. Good coverage of Nordic and Baltic banks.

What it costs: Per-API-call pricing. Roughly €0.05–€0.15 per call depending on volume.

The upside: Honest pricing, good docs, responsive support.
The downside: You still pay per-call, and costs scale linearly with user count.

Path 5: Cert-free proxy services

This is the model I work on — services that sit between you and the bank APIs, absorbing the eIDAS certificate requirement entirely. You get a simple REST API key and never touch a certificate.

import urllib.request
import json

# No certificate. No mTLS. Just an API key.
API_KEY = "your-api-key"

# Create a session
req = urllib.request.Request(
    "https://api.open-banking.io/v1/sessions",
    data=json.dumps({
        "bank": "REVOLUT",
        "redirect_url": "https://yourapp.com/callback"
    }).encode(),
    headers={
        "Authorization": f"Bearer {API_KEY}",
        "Content-Type": "application/json"
    }
)
response = urllib.request.urlopen(req)
session = json.loads(response.read())

# User completes SCA redirect, then:
# Fetch transactions
req = urllib.request.Request(
    f"https://api.open-banking.io/v1/sessions/{session['id']}/transactions",
    headers={"Authorization": f"Bearer {API_KEY}"}
)
transactions = json.loads(urllib.request.urlopen(req).read())

What it costs: Subscription-based, typically €2–€5/month per application regardless of call volume. No per-transaction fees.

The upside: Fixed cost means it scales with users without scaling your bill. No certificate management. Standard REST API — works with any HTTP client.
The downside: You’re trusting a third party with the TPP layer. Less granular control than direct bank API access.

How to choose

Your situation Recommended path
Funded company, multi-market, compliance team TPP license + direct APIs
Quick prototype, any budget Aggregator (Plaid/TrueLayer)
Cost-sensitive, per-call OK Enable Banking
Fixed budget, indie/small team Cert-free proxy
Enterprise, needs payment initiation too Yapily or TrueLayer

The key insight: the cheapest API call is the one where the certificate cost is amortized across thousands of users. If you’re below that scale, a cert-free proxy gives you the same data at a fraction of the cost.

Disclosure: I maintain open-banking.io, a cert-free open banking API service. This article reflects my experience building in this space — the cost figures come from public pricing pages and my own integration work. I’ve tried to be honest about the tradeoffs of every approach, including the one I work on.

Leave a Reply