๐Ÿ“‹ Overview
๐Ÿงช Testing
โœ… Validation
๐Ÿ“Š Results
๐Ÿ”Œ Integration

Open Banking API Overview

What is Open Banking?

Open Banking allows third-party providers to access financial data and initiate payments with customer consent, following PSD2 and other regulatory frameworks.

Key APIs

๐Ÿ“Š Account Information (AISP)

Access account balances, transactions, and details with customer consent.

Endpoints:
GET /accounts
GET /accounts/{id}/balance
GET /accounts/{id}/transactions

๐Ÿ’ธ Payment Initiation (PISP)

Initiate payments directly from customer bank accounts.

Endpoints:
POST /payments
GET /payments/{id}
POST /payments/{id}/authorize

โœ“ Confirmation of Funds (CBPII)

Check if sufficient funds are available for a transaction.

Endpoints:
POST /funds-confirmations
GET /funds-confirmations/{id}

๐Ÿ” Variable Recurring Payments

Set up flexible recurring payments with variable amounts.

Endpoints:
POST /vrp/consents
POST /vrp/payments
GET /vrp/payments/{id}

OAuth 2.0 Authorization Flow

1๏ธโƒฃ
Authorization Request

TPP redirects user to bank

2๏ธโƒฃ
User Authentication

Customer logs in to bank

3๏ธโƒฃ
Consent Grant

User approves access

4๏ธโƒฃ
Authorization Code

Bank returns code to TPP

5๏ธโƒฃ
Access Token

TPP exchanges code for token

API Testing Sandbox

Account Information Request

Security & Compliance Validation

OAuth 2.0 Token Validation

PSD2 Compliance Check

Strong Customer Authentication (SCA) Requirements:

โœ“ Two-factor authentication required

โœ“ Dynamic linking for payments (amount + payee)

โœ“ 90-day consent renewal

โœ“ Transaction monitoring and limits

๐Ÿ” Certificate Validation

eIDAS Certificate Status:

Valid

CN: FinTech App Ltd
OU: Payment Services
Expires: 2026-12-31

๐Ÿ”’ TLS Validation

TLS Configuration:

TLS 1.3

Cipher: TLS_AES_256_GCM_SHA384
Perfect Forward Secrecy: โœ“
Certificate Pinning: โœ“

API Signature Validation

API Performance Metrics

99.98%
API Uptime
142ms
Avg Response Time
15,247
API Calls (Today)
0.02%
Error Rate

Recent Transactions

Payment to Coffee Shop Ltd
2025-12-25 14:23:45 UTC
-โ‚ฌ25.50
Completed
Salary Deposit
2025-12-25 09:00:00 UTC
+โ‚ฌ3,500.00
Completed
Rent Payment
2025-12-24 10:15:30 UTC
-โ‚ฌ1,200.00
Completed
Online Shopping - Amazon
2025-12-23 16:42:18 UTC
-โ‚ฌ87.99
Completed
VRP - Utility Bill
2025-12-22 08:00:00 UTC
-โ‚ฌ145.67
Completed

Account Balances

TPP Activity Summary

Registered Third-Party Providers: 127

Active Consents: 1,543

API Calls (24h): 15,247

Successful Payments (24h): 2,891

Average Payment Value: โ‚ฌ87.45

Integration Guide

Quick Start

Prerequisites:

1. Register as a TPP with your national regulator

2. Obtain eIDAS qualified certificate

3. Register with the bank's developer portal

4. Configure OAuth 2.0 client credentials

Installation

npm install @wia/open-banking-sdk # or with yarn yarn add @wia/open-banking-sdk

Basic Usage - Account Information

import { OpenBankingClient } from '@wia/open-banking-sdk'; // Initialize client const client = new OpenBankingClient({ clientId: 'your-client-id', clientSecret: 'your-client-secret', certificatePath: './certs/tpp-certificate.pem', baseUrl: 'https://api.bank.example.com' }); // Request account access consent const consent = await client.consents.create({ permissions: ['ReadAccountsBasic', 'ReadAccountsDetail', 'ReadTransactionsDetail'], expirationDateTime: '2026-12-31T23:59:59Z' }); // Redirect user to authorize const authUrl = client.auth.getAuthorizationUrl({ consentId: consent.consentId, redirectUri: 'https://yourapp.com/callback', scope: 'accounts' }); // After user authorizes, exchange code for token const tokens = await client.auth.exchangeCode({ code: authorizationCode, redirectUri: 'https://yourapp.com/callback' }); // Get accounts const accounts = await client.accounts.list({ accessToken: tokens.access_token }); console.log('Accounts:', accounts.data);

Payment Initiation Example

// Create payment consent const paymentConsent = await client.payments.createConsent({ amount: { amount: '100.00', currency: 'EUR' }, creditor: { name: 'Coffee Shop Ltd', account: { iban: 'GB29NWBK60161331926819' } }, remittanceInformation: { unstructured: 'Payment for coffee' } }); // Redirect user to authenticate and authorize const paymentAuthUrl = client.auth.getAuthorizationUrl({ consentId: paymentConsent.consentId, redirectUri: 'https://yourapp.com/payment-callback', scope: 'payments' }); // After authorization, submit payment const payment = await client.payments.submit({ consentId: paymentConsent.consentId, accessToken: tokens.access_token }); console.log('Payment Status:', payment.status);

Webhook Integration

// Set up webhook endpoint const express = require('express'); const app = express(); app.post('/webhooks/open-banking', async (req, res) => { const event = req.body; // Verify webhook signature const isValid = client.webhooks.verify( req.headers['x-signature'], req.body ); if (!isValid) { return res.status(401).send('Invalid signature'); } // Handle different event types switch (event.type) { case 'payment.completed': console.log('Payment completed:', event.data); break; case 'payment.failed': console.log('Payment failed:', event.data); break; case 'consent.revoked': console.log('Consent revoked:', event.data); break; } res.status(200).send('OK'); }); app.listen(3000);

Best Practices

๐Ÿ” Security

  • Always use HTTPS/TLS 1.2+
  • Validate JWT signatures
  • Implement certificate pinning
  • Use PKCE for OAuth flows
  • Store credentials securely

โšก Performance

  • Cache access tokens
  • Use refresh tokens
  • Implement retry logic
  • Monitor rate limits
  • Use webhooks for async updates

โœ… Compliance

  • Implement SCA for payments
  • Respect consent expiration
  • Log all API interactions
  • Follow GDPR guidelines
  • Regular security audits

๐Ÿ“Š Monitoring

  • Track API response times
  • Monitor error rates
  • Set up alerting
  • Analyze user consent patterns
  • Review webhook delivery