Connect to Open Banking Integration

Overview

Norman enables seamless import of user transactions directly from popular bank accounts through its Open Banking integration. By providing your API keys, Norman will associate them with your Institution, allowing you to leverage Open Banking services effortlessly.

What is Open Banking?

Open Banking is a financial service framework that permits third-party providers to access users’ banking data, such as transaction history and balances, via APIs.

Norman partners with two leading Open Banking providers:

Through these integrations, Norman pulls user transactions into the platform as soon as they become available, leveraging AI to categorize them based on cashflow type, VAT calculations, supplier country, reverse charge rules, and more.

Once the data is imported, you can immediately use it across Norman’s API for tax preparation, pre-accounting, and other purposes.

📌 After the initial connection, Norman retrieves transactions from the last 90 days. The connection remains active for up to 90 days, after which the user will need to reconnect to continue syncing transactions. Norman automatically syncs transactions daily, pulling only those with a “booked” status.


Step-by-Step Process

1. Setting Up Your API Keys

1.1. Create an account with either GoCardless or FinAPI and obtain your client_id and client_secret keys.

1.2. Contact Norman support at [email protected] to securely share your keys. We will associate them with your Institution account on Norman.

1.3. Ensure you generate separate keys for both production and sandbox environments.


2. Connecting Users to Open Banking

2.1. List Available Banks
Allow users to choose a bank by calling the following API to fetch a list of available banks:

curl -X 'GET'  
  '<https://sandbox.norman.finance/api/v1/accounting/institutions/'>  
  -H 'accept: application/json'  
  -H 'Authorization: Bearer <accessToken>'

2.2 Create a Link for Open Banking Connection
After the user selects a bank, generate a connection flow link and redirect them:

curl -X 'POST'  
  '<https://sandbox.norman.finance/api/v1/accounting/bank-accounts/'>  
  -H 'accept: application/json'  
  -H 'Authorization: Bearer <accessToken>'  
  -H 'Content-Type: application/json'  
  -d '{  
      "institution": "4395ba68-c746-46e7-b657-aea356b6b8e9",  
      "company": "qedb94f1-b922-4215-a6c7-99a0db7b43d5",  
      "redirectUrl": "<https://thrird-party.com/success">  
    }'

2.3 Sync Transactions
Once the user completes the Open Banking authentication, Norman will start pulling transactions automatically. You can also trigger manual syncing using this endpoint:

curl -X 'POST'  
  '<https://sandbox.norman.finance/api/v1/companies/qedb94f1-b922-4215-a6c7-99a0db7b43d5/update-transactions/'>  
  -H 'accept: _/_'  
  -H 'Authorization: Bearer <accessToken>'  
  -d ''

2.4 Retrieve Transactions
After syncing, retrieve your transactions via the following endpoint:

curl -X 'GET'  
  '<https://sandbox.norman.finance/api/v1/accounting/transactions/'>  
  -H 'accept: application/json'  
  -H 'Authorization: Bearer <accessToken>'

📌 Currently, Norman supports only one bank connection per unique user. To request multiple bank connections for a single user, contact our support team.


3. Managing Bank Account Connections

To manage the connection and maintain the sync, use the relevant API endpoints. For example, to reconnect an expired bank account, trigger the following endpoint:

curl -X 'POST'  
  '<https://sandbox.norman.finance/api/v1/accounting/bank-accounts/{bankAccountId}/reconnect/'>  
  -H 'accept: application/json'  
  -H 'Authorization: Bearer <accessToken>'  
  -H 'Content-Type: application/json'  
  -d '{  
      "redirectUrl": "<https://thrird-party.com/success">  
    }'

4. Finalizing

Once the connection is established, your users will have access to their bank account transactions, ⚠️ which will sync automatically each day for up to 90 days. Norman’s automated system categorizes these transactions, detects supplier countries, handles currency exchanges (e.g., converting foreign transactions to EUR), calculates VAT percentages and amounts, reconciles invoices, and more.

If you need any additional assistance or have questions, feel free to reach out to our support team.