The API uses Oauth 2.0 spec, to authenticate requests an authorization bearer token is needed first. To get client id and client secret head to https://dash.nordigen.com/api-keys.
Fetch bearer authorization token.
POST https://api.nordigen.com/oauth/token
REQUEST BODY SCHEMA: application/json
Parameters:
audience
: string, requiredclient_id
: string, requiredclient_secret
: string, requiredgrant_type
: string, requiredRequest Example
curl -X POST \
https://api.nordigen.com/oauth/token \
-H 'Content-Type: application/json' \
-d '{
"grant_type": "client_credentials",
"client_id": "YOUR_ID",
"client_secret": "YOUR_SECRET",
"audience": "https://nordigen/api"
}'
Response Example
{
"audience": "https://nordigen/api",
"client_id": "YOUR_ID",
"client_secret": "YOUR_SECRET",
"grant_type": "client_credentials"
}
HTTP code 200
Nordigen API offers a variety of account statement analysis tools which can be applied
To process statement accounts they first need to be uploaded with file encoding utf-8. After upload processing record will be created, returning request id in the response. After this it needs to be passed to request operation endpoint in which necessary operations are specified. Multiple files can be passed at once, but the endpoint has 10mb size limit.
POST https://api.nordigen.com/v2/report
REQUEST BODY SCHEMA: multipart/form-data
Parameters:
input
: file(s) buffer, requiredRequest Example
curl -X POST \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-F input=@example.json \
https://api.nordigen.com/v2/report
Response Example
{
"data": {
"attributes": {
"available-operations": [
"categorisation"
],
"request-id": "162d7bb2-855c-477d-ad39-fd43fec5c44a",
"status": "completed"
},
"relationships": {
"operations": {
"links": {
"related": "https://api.nordigen.com/v2/report/process/162d7bb2-855c-477d-ad39-fd43fec5c44a",
"self": "https://api.nordigen.com/v2/report"
}
}
},
"type": "report pre-processing record"
}
}
HTTP code 200
PUT https://api.nordigen.com/v2/report/process/{request-id} Request samples
REQUEST BODY SCHEMA: application/json
Parameters:
country
: string, requiredoperations
: array of strings, required. Operation keyword is defined for each analysis product in their documentation.params
: object, optional. Specifies configuration for analysis products, details will be specified under the respective product documentationuse_webhook
: boolean, optional. Enables webhook after finishing processingRequest Example
curl -X PUT \
https://api.nordigen.com/v2/report/process/REQUEST_ID \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"operations": ["categorisation"],
"country": "uk"
}'
Response Example
{
"data": {
"attributes": {
"request-id": "162d7bb2-855c-477d-ad39-fd43fec5c44a",
"status": "queued"
},
"relationships": {
"result": {
"links": {
"related": "https://api.nordigen.com/v2/report/162d7bb2-855c-477d-ad39-fd43fec5c44a",
"self": "https://api.nordigen.com/v2/report/process/162d7bb2-855c-477d-ad39-fd43fec5c44a"
}
}
},
"type": "report processing record"
}
}
HTTP code 202
Retrieve requested analysis products result. If processing is not finished when this endpoint is called it will return status processing
and it should be requested again until status completed
is returned. Once it is completed this endpoint will also return requested products, their responses can be seen in respective product documentation pages.
GET https://api.nordigen.com/v2/report/{request-id}
Parameters:
request_id
: string, requiredRequest Example
curl -X GET \
https://api.nordigen.com/v2/report/REQUEST_ID \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Response Example
{
"data": {
"attributes": {
"request-id": "162d7bb2-855c-477d-ad39-fd43fec5c44a",
"status": "processing"
},
"type": "report processing result"
}
}
HTTP code 200
This is relevant for credit scoring product, use this request to see what scoring models are available for you.
GET https://api.nordigen.com/v2/available-models
Request Example
curl -X GET \
https://api.nordigen.com/v2/available-models \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Response Example
{
"data": {
"attributes": {
"available-models": [
"some_model_1.model",
"some_model_2.model"
]
},
"type": "models list"
}
}
HTTP code 200
GET https://api.nordigen.com/v2/category-tree/{country}
Parameters:
country
: string, required. Two letter country code filter for categoriesRequest Example
curl -X GET \
https://api.nordigen.com/v2/category-tree/COUNTRY_CODE \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
Response Example
{
"data": [
{
"attributes": {
"categories": [
{
"id": 1,
"level": 0,
"parent_id": 93,
"readable-title": "Food",
"type": "expense"
}
]
},
"type": "category tree"
}
]
}
HTTP code 200
Setting up webhooks allows receiving status update for processing records once they are completed.
POST https://api.nordigen.com/v2/webhook-settings
REQUEST BODY SCHEMA: application/json
Parameters:
auth_method
: string, optional. Authentication Method to use for webhook, possible options are OAuth2
and Basic Auth
auth_password
: string, optional. Used for Basic Auth as passwordauth_username
: string, optional. Used for Basic Auth as usernamecallback_url
: string, required. URL to which POST webhook request will be sentoauth_audience
: string, optional. Used for Oauth2 auth flow as audience when fetching tokenoauth_client_audience
: string. optional. Used for Oauth2 as scope when fetching tokenoauth_client_id
: string, optional. Used for Oauth2 as client id when fetching tokenoauth_client_secret
: string, optional. Used for Oauth2 as client secret when fetching tokenoauth_token_url
: string, optional. Used for Oauth2 as location from which to fetch tokenRequest Example
curl -X POST \
https://api.nordigen.com/v2/webhook-settings \
-H 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"callback_url": "https://your-domain"}'
Response Example
{
"data": {
"attributes": {
"success": true
},
"type": "report processing record"
}
}
HTTP code 202