Skip to content

Importing Subjects

This guide shows how to quickly import all your business's subjects into the RiskQuest Navigator and what information is required to perform this action.

Requirements

Attribute Description
name Display name for the subject
email Email address used for communication with the subject
analytics_type (optional) Default value for an analysis if set
kvk_number (optional) Default value for an analysis if set (corporate)
sbi_code (optional) Default value for an analysis if set (corporate)

Optional fields such as analytics_type or kvk_number only necessary when performing many analyses for a single subject, as they are used as a default when creating an analysis for the subject.

Creation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import requests

data = [
    {"name":"foo","email":"[email protected]"},
    {"name":"bar","email":"[email protected]"},
]

headers = {
    "Authorization": f"Bearer <token>", # Replace <token> with your JWT
    "Content-Type": "application/json"
}

for s in data:
    response = requests.request("POST", "navigator.riskquest.com/api/v1/subjects/create", 
        headers=headers, data=data)

    if response.status_code != 201:
        print(f"Failed to create subject : {s["email"]}")
        continue

    subject = response.json()

    # Analysis continued below
    ... 

Subject onboarding

The previously shown code makes the subjects automatically which saves time compared to doing it manually. If you want to also automatically make an analysis for every subject, so that they can already go through the consent flow, then there are some additional required attributes.

PSD2

Analysis Fields

Attribute Description
name (optional) Name of the analysis
subject_id The uuid of the subject
analytics_type A retail or corporate analysis
individual_fields A list of objects of attributes for individual PSD2 consents of the analysis
shared_fields A object of attributes shared for all PSD2 consents of the analysis
renew_in_seconds The time in secondsto create a new analysis automatically. (Nullable)
kvk_number (corporate) Default value for an analysis if set (corporate)
sbi_code (corporate optional) Default value for an analysis if set (corporate)

Configuration

Make sure that your organisation has configured the PSD2 provider settings in the RiskQuest Navigator dashboard. This is required for the creation of consent links and for the potential required attributes needed for the analysis creation. These attributes are for individual_fields or shared_fields. They specify the informatiom required for a PSD2 consent. Individual fields are for each seperate PSD2 consent and the shared fields attributes are used for all PSD2 consents of the analysis.

PSD2 Provider Specific Fields

The fields required for the PSD2 provider that you configured can be queried. See for more details the Endpoints page (section "Provider").

E.g., for Tink, each PSD2 consent needs a market attribute. This is a country code and currently the only supported value for this field is NL. For the shared_fields, the API optionally requests the display language for the PSD2 consent flow. Supported values are nl_NL and en_US.

So for Tink, we will now create an analysis for each subject.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Unchanged code omitted

data = [
    {"name":"foo","email":"[email protected]","accounts":1},
    {"name":"bar","email":"[email protected]","accounts":2},
]

for s in data:
    # Unchanged code omitted
    subject = response.json()

    payload = {
        "analytics_type": "retail",
        "subject_id": subject["id"],
        "name":"analysis",
        "individual_fields":[{"market":"NL"} for acc in range(0,s["accounts"])],
        "shared_fields":{}, # Default is nl_NL
        "renew_in_seconds":null
    }
    response = requests.request("POST", "navigator.riskquest.com/api/v1/analyses/create", 
        headers=headers, data=payload)

    if response.status_code != 201:
        print(f"Failed to create analysis for subject : {s["email"]}")
        continue

    analysis = response.json()

Now each subject should have a pending analysis. They will receive an email requesting them to go through the PSD2 consent flow and the analysis will run whenever that succeeds.