Quickstart Guide

This document explains how to jump-start your integration with the Account Information API by using Postman.


Step 1: Get Access Token

First, you'll need to get your token from Nordigen's Open Banking Portal. It will be referred to as YOUR_TOKEN later in this guide.


Step 2: Import Swagger/OpenAPI schema

To import a collection, select Collections > Import > Link and enter the following link https://ob.nordigen.com/api/swagger.json.

When importing, set Schema for both Request parameter generation and Response parameter generation under Advanced Options.

After importing, you should have a new collection named "Nordigen Account Information Services API" and a new API defined.

Head to Collections, click "Nordigen Account Information Services API," and do the following:

  • Under Authorization, change the authorization value from true to Token YOUR_TOKEN. Since all requests inherit the security settings from the parent, they will use the token that you've configured here. Save the settings.
    An example value: Token 848774FFDEDFAKETOKEN88483AC12

Step 3: Choose a Bank

Use api > aspsps > GET retrieve all supported ASPSP(s) in a given country endpoint to get a list of all available ASPSPs (banks) in a given country.

You will need to provide a two-letter country code (ISO 3166) as a value for the key country under Params.

Note the ID of the selected bank and use it in the following steps (referenced as aspsp_id).

Response for the country code GB:

[
  {
    "id": "MONZO_MONZGB2L",
    "name": "Monzo Bank Limited",
    "bic": "MONZGB2L",
    "countries": [
      "GB"
    ]
  },
[...]
  {
    "id": "HSBC_HBUKGB4B",
    "name": "HSBC Personal",
    "bic": "HBUKGB4B",
    "countries": [
      "GB"
    ]
  }
]

Step 4: Create an end-user agreement

N.B. Use this step only if you want to specify the length of transaction history you want to retrieve. If you skip this step, by default 90 days of transaction history will be retrieved.

Use agreements / enduser / POST create EUA endpoint to create an EUA. To create an EUA, you should pass the following in the request Body:

  • max_historical_days as the length of the transaction history to be retrieved;
  • enduser_id - a unique end-user ID of someone who's using your services. It has to be unique within your solution. Usually, it's a UUID;
  • aspsp_id from Step 3.

Response:

{
  "id": "2dea1b84-97b0-4cb4-8805-302c227587c8",
  "created": "2020-11-21T07:28:59.065940Z",
  "accepted": null,
  "max_historical_days": 30,
  "access_valid_for_days": 90,
  "enduser_id": "8234e18b-f360-48cc-8bcf-c8625596d74a",
  "aspsp_id": "SWEDBANK",
  "agreement_version": "00000000-0000-0000-0000-000000000000"
}

Note the EUA id.

Step 5.1: Create a requisition

Use requisitions / POST create a new requisition endpoint to create a requisition, which is a collection of inputs for creating links and retrieving accounts.

To create a requisition, you'll need to provide the following keys in the Body:

  • enduser_id - a unique end-user ID of someone who's using your services. It has to be unique within your solution. Usually, it's a UUID. NB!If you didn't skip Step 3, the enduser_id has to match one provided in Step 3;
  • reference (additional layer of unique ID defined by you).
  • redirect link where the end user will be redirected after finishing authentication in ASPSP;
  • agreements as an array of ID(s) from Step 3 or delete this parameter, if you didn't create an EUA;
  • user_language (optional) to enforce a language for all end user steps hosted by Nordigen passed as a two-letter country code (ISO 3166). If user_language is not defined a language set in browser will be used to determine language.

Response:

{
  "id": "8126e9fb-93c9-4228-937c-68f0383c2df7",
  "redirect": "http://www.yourwebpage.com",
  "status": "CR",
  "agreements": ["2dea1b84-97b0-4cb4-8805-302c227587c8"],
  "accounts": [],
  "reference": "124151",
  "enduser_id": "8234e18b-f360-48cc-8bcf-c8625596d74a",
  "user_language": "LV"
}

Note the requisition id.

Step 5.2 Create a link

Second, userequisitions / id / POST create ASPSP authorization link endpoint to create a redirect link for the end user to the ASPSP.

In the Params > Path Variables you need to set the id to your requisition ID from step 5.1

In the Body you need to provide aspsp_id from Step 3 (it should match aspsp_id from Step 3 and Step 4 if you did not skip it). 

Response:

{
  "initiate": "https://ob.nordigen.com/psd2/start/8126e9fb-93c9-4228-937c-68f0383c2df7/SWEDBANK"
}

Follow the initiate link to start the end-user authentication process with the ASPSP.


Step 6: List accounts

Once a user is redirected back to the link provided in Step 5.2, use requisitions / id / GET requisition by id endpoint to list the user's bank accounts. Pass requisition ID in the request Params > Path Variables to view accounts.

Response:

{
  "id": "8126e9fb-93c9-4228-937c-68f0383c2df7",
  "status": "CR",
  "agreements": [
    "2dea1b84-97b0-4cb4-8805-302c227587c8"
  ],
  "accounts": [
    "065da497-e6af-4950-88ed-2edbc0577d20",
    "bc6d7bbb-a7d8-487e-876e-a887dcfeea3d"
  ],
  "reference": "124151-1",
  "enduser_id": "124151"
}

Step 7: Access accounts, balances and transactions

There are three separate endpoints for accessing account details, balances, and transactions. See accounts / {id}to view respective endpoints.

In this quickstart, we will showcase accounts / {id} / GET retrieve account transactions endpoint, where you need to pass the account ID (see "accounts" from output of Step 6) to access transaction information. Each account needs to be queried separately.

Response:

{
  "transactions": {
    "booked": [
      {
        "transactionId": "2020103000624289-1",
        "debtorName": "MON MOTHMA",
        "debtorAccount": {
          "iban": "GL53SAFI055151515"
        },
        "transactionAmount": {
          "currency": "EUR",
          "amount": "45.00"
        },
        "bankTransactionCode": "PMNT",
        "bookingDate": "2020-10-30",
        "valueDate": "2020-10-30",
        "remittanceInformationUnstructured": "For the support of Restoration of the Republic foundation"
      },
      {
        "transactionId": "2020111101899195-1",
        "transactionAmount": {
          "currency": "EUR",
          "amount": "-15.00"
        },
        "bankTransactionCode": "PMNT",
        "bookingDate": "2020-11-11",
        "valueDate": "2020-11-11",
        "remittanceInformationUnstructured": "PAYMENT Alderaan Coffe"
      }
    ],
    "pending": [
      {
        "transactionAmount": {
          "currency": "EUR",
          "amount": "10.00"
        },
        "valueDate": "2020-11-03",
        "remittanceInformationUnstructured": "Reserved PAYMENT Emperor's Burgers"
      }
    ]
  }
}

What's next.

Congratulations - you now can connect to end user bank accounts and access raw account and transaction data. To learn more about the output data structures and see more details behind the keys, please visit accounts and transactions.

Note: although the ASPSPs are supposed to follow the same recommendations in terms of data structures, this is not always the case. We're filling in the gaps as much as possible, but you should anticipate situations where the amount of data delivered differs between banks, e.g., some banks may include ownerName with the account details, some may opt not to do this. If you spot any specific issues, please don't hesitate to contact us!

Once you’re ready to extract more value from the raw account information, take a look at our premium products - Transaction Categorisation and Insights.