Instead of connecting to us multiple times for each step, our AML5 solution enables one click to connect, and then automates everything else from start to finish.

API Calls

  1. Start AML process: POST to https://env.zignsec.com/v2/aml
      • env is API or test.
  2. Complete all browser steps
  3. Get result

Nordic AML flow

You can run AML for Sweden, Finland, Denmark and Norway countries.

Example Norway: New AML session

POST https://test.zignsec.com/v2/aml HTTP/1.1
Authorization: YOUR-KEY....

{
	"Query": {
		"countryCode": "no",
		"FirstName": "Ole",
		"LastName": "Bramserud",
		"DateOfBirth": "1959-11-23"
	},
	"Target": "https://webhook.site/...",
	"TargetError": "https://webhook.site/...",
	"RelayState": "..."
}

Example Norway: New AML session response

{
  "id": "dbcb37d9-68e4-4c5d-8fb0-47fb698ce4c2",
  "redirect_url": "https://test.zignsec.com/v2/aml/2TfL2-RoXUyPsEf7aYzkwg/steps/DlopEoUrpkStGG9GzecROg"
}

Example Norway: AML session result

{
  "id": "946d2c71-5f5d-493e-8819-5346aa33a158",
  "errors": [
    
  ],
  "warnings": [
    
  ],
  "aml_risk": "Low",
  "identity": {
    "person_status": "",
    "gender": "",
    "main_first_name": null,
    "first_name": "Ole",
    "last_name": "Bramserud",
    "date_of_birth": "1959-11-23",
    "birth_year": 1959,
    "birth_month": 11,
    "birth_day_of_month": 23,
    "age": 60,
    "personal_number": "23115994336",
    "address": "Pilestredet 35",
    "address2": null,
    "postal_code": "0166",
    "location": "Oslo",
    "city": null,
    "municipality": null,
    "province": null,
    "country_code": null,
    "phone": null,
    "email": null,
    "phone_numbers": [
      "92044852"
    ],
    "_data_source": null,
    "url": null,
    "full_name": "Ole Bramserud"
  },
  "sub_calls": [
    {
      "parent_request_id": "946d2c71-5f5d-493e-8819-5346aa33a158",
      "start_time": "2020-04-03T13:21:55.64",
      "end_time": "2020-04-03T13:22:25.51",
      "state": "Completed",
      "status_code": "Success",
      "errors": null,
      "response": {
        "id": "12547106-1fcf-400e-afd8-021949cbf8fc",
        "errors": [
          
        ],
        "identity": {
          "CountryCode": "NO",
          "FirstName": "Ole",
          "LastName": "Bramserud",
          "FullName": "Ole Bramserud",
          "PersonalNumber": "23115994336",
          "DateOfBirth": "1959-11-23",
          "Age": 60,
          "Gender": "",
          "IdProviderName": "BankIDNO",
          "IdentificationDate": "2020-04-03T13:22:25.3392693Z",
          "IdProviderRequestId": "",
          "IdProviderPersonId": "9578-6000-4-365917",
          "CustomerPersonId": ""
        },
        "BANKIdNO_OIDC": {
          "access_token": "eyJhbGciOiJSUzIrQ...",
          "not-before-policy": 0,
          "session_state": "5e490e18-8be5-48cd-b546-20dbd19ebcef",
          "scope": "openidnnin_altsubprofile"
        },
        "method": "nbid_oidc",
        "result": {
          "identity": {
            "state": "FINISHED"
          }
        }
      },
      "request_id": "12547106-1fcf-400e-afd8-021949cbf8fc",
      "prod_id": "NBID",
      "product_id": 6,
      "is_browser_flow": true,
      "product_option": null,
      "start_parameters": {
        "PersonalNumber": null,
        "Phone": null,
        "Additional_identity_info": false,
        "login_hint": "BID",
        "target": "https://test.zignsec.com/v2/aml/cSxtlF1fPkmIGVNGqjOhWA/steps/uRmAkU8PzkeEMo4naQNm0g",
        "targetError": "https://test.zignsec.com/v2/aml//cSxtlF1fPkmIGVNGqjOhWA/steps/uRmAkU8PzkeEMo4naQNm0g",
        "relaystate": null,
        "Environment": null,
        "Webhook": null,
        "Webhook_Email": null
      }
    },
    {
      "parent_request_id": "946d2c71-5f5d-493e-8819-5346aa33a158",
      "start_time": null,
      "end_time": "2020-04-03T13:22:26.403",
      "state": "Not Started",
      "status_code": "Success",
      "errors": null,
      "response": {
        "id": "67196129-6685-4438-8895-f53f508899d7",
        "errors": [
          
        ],
        "ResultCount": 1,
        "MatchLevelScoringExpression": "85%/60% | FullName;1;ld | Address;0.6;ld | Address2;0.4;ldx | Location;0.4;ldx | PostalCode;0.6;ld | City;0.8;ld | DateOfBirth;5;eqx",
        "PersonsFound": [
          {
            "GetFullDetailsUrl": "https://test.zignsec.com/v2/ekyc/searchperson/no/23115994336",
            "_MatchLevel": "MEDIUM 75% | FullName 100%;1;ld_0 | Address 0%;0,6;ld_nodata | PostalCode 0%;0,6;ld_nodata | City 0%;0,8;ld_nodata | DateOfBirth 100%;5;eqx_True",
            "_SortIndexAtSource": 0,
            "PersonStatus": "",
            "Gender": null,
            "MainFirstName": null,
            "FirstName": "Ole",
            "LastName": "Bramserud",
            "DateOfBirth": "1959-11-23",
            "BirthYear": 1959,
            "BirthMonth": 11,
            "BirthDayOfMonth": 23,
            "Age": 60,
            "PersonalNumber": "23115994336",
            "Address": "Pilestredet 35",
            "Address2": null,
            "PostalCode": "0166",
            "Location": "Oslo",
            "City": null,
            "Municipality": null,
            "Province": null,
            "CountryCode": "no",
            "Phone": null,
            "Email": null,
            "PhoneNumbers": [
              "92044852"
            ],
            "_DataSource": null,
            "Url": null,
            "FullName": "Ole Bramserud"
          }
        ]
      },
      "request_id": "67196129-6685-4438-8895-f53f508899d7",
      "prod_id": "SEARCHP",
      "product_id": 4004,
      "is_browser_flow": false,
      "product_option": null,
      "start_parameters": {
        "Query": {
          "PersonStatus": "",
          "Gender": null,
          "MainFirstName": null,
          "FirstName": "Ole",
          "LastName": "Bramserud",
          "DateOfBirth": "1959-11-23",
          "BirthYear": 1959,
          "BirthMonth": 11,
          "BirthDayOfMonth": 23,
          "Age": 60,
          "PersonalNumber": null,
          "Address": null,
          "Address2": null,
          "PostalCode": null,
          "Location": null,
          "City": null,
          "Municipality": null,
          "Province": null,
          "CountryCode": "no",
          "Phone": null,
          "Email": null,
          "PhoneNumbers": null,
          "_DataSource": null,
          "Url": null,
          "FullName": "Ole Bramserud"
        },
        "Environment": null,
        "PostScoringExpression": null
      }
    },
    {
      "parent_request_id": "946d2c71-5f5d-493e-8819-5346aa33a158",
      "start_time": null,
      "end_time": "2020-04-03T13:22:27.027",
      "state": "Not Started",
      "status_code": "Success",
      "errors": null,
      "response": {
        "id": "27ab4a68-379e-4773-ba85-b9595b900cff",
        "errors": [
          
        ],
        "HitCountTotal": 0,
        "HitCountPEP": 0,
        "HitCountSanctions": 0,
        "_DataSource": "DP07",
        "Name": "No hits"
      },
      "request_id": "27ab4a68-379e-4773-ba85-b9595b900cff",
      "prod_id": "WATCHLST",
      "product_id": 4009,
      "is_browser_flow": false,
      "product_option": null,
      "start_parameters": {
        "Query": {
          "PersonStatus": "",
          "Gender": null,
          "MainFirstName": null,
          "FirstName": "Ole",
          "LastName": "Bramserud",
          "DateOfBirth": "1959-11-23",
          "BirthYear": 1959,
          "BirthMonth": 11,
          "BirthDayOfMonth": 23,
          "Age": 60,
          "PersonalNumber": null,
          "Address": null,
          "Address2": null,
          "PostalCode": null,
          "Location": null,
          "City": null,
          "Municipality": null,
          "Province": null,
          "CountryCode": "no",
          "Phone": null,
          "Email": null,
          "PhoneNumbers": null,
          "_DataSource": null,
          "Url": null,
          "FullName": "Ole Bramserud"
        },
        "MatchRate": null,
        "ListType": null,
        "IncludedLists": null,
        "ExcludedLists": null,
        "Environment": null,
        "DataSource": null,
        "MaxResultCount": null
      }
    }
  ]
}

Scanning AML flow

You can Scanning product as AML step. See AML Flow Configuration

Continue verification on your mobile (optional)

Select document type

Upload images

Waiting result

 

AML Request Parameters

FieldDescription
QuerySee table below
Target

If this parameter is supplied the browser session will finally be redirected to this URL-value. The URL-parameter value must be URL-encoded.

TargetError

TargetError works as target except it is navigated on user cancel or error situations.

RelayState

This semi-optional parameter will be returned to you at the redirect back to your server. Use it to link an unique ID of your choice that you can parse. If not relaystate is specified, ZignSec will automatically set the ZignSec’s unique session identifier, the RequestID token here.

Examplerelaystate=zignsec_eid_1234

Query Parameters

FieldDescription
CountryCodeMandatory parameter. Sets the country to query in.
PersonalNumber

Set up of identity number. This optional parameter has somewhat different meanings for each country:

SE: Means that for Sweden only this specific person can be identified; No need to fill in personal number; The BankID app starts up for this person only.

DK: Danish NemID does not return personal number (CPR), instead a technical substitute key called PID. However, if the PersonalNumber parameter is present then a background matchPidCpr call is run that verifies that given PersonalNumber matches the logged-in PID, hereafter the PersonalNumber is set in response symbolizing the PersonalNumber is verified by a NemID login.

NO: If PersonalNumber is sent in only that person can login, because the first page for entering PersonalNumber is skipped entirely. This is a convenient way to verify a specific PersonalNumber. Another alternative is the field Additional_identity_info that lets you include the PersonalNumber in the results provided the BankID merchant certificate used is allowed for fetching extra info.

The PersonalNumber formats per country: 

SE: personalnumber=195206040759 (YYYYMMDDCCCC)

DK: personalnumber=1210312133 (DDMMYYCCCC)

NO: personalnumber=01129955131 (DDMMYYXXXCC)

DateOfBirth
In the form YYYYMMDD or YYYY-MM-DD
Phone
Enables search by phone number where service is available.
FirstName
 
LastName
 

 

AML Response

FieldDescription
idA unique session identifier generated for each workflow instance.
errors
List of errors.
warnings
List of warnings.
aml_risk
Can be High, Medium or Low 
identity

This is a verified identity of the customer. The following parameters can be found in this object.

CountryCodeRepresents the ID providers country belonging. And consequentially the identified persons nationality.
FirstNameCan be an extraction from a full name depending on the ID provider.
LastNameCan be an extraction from a full name depending on the ID provider.
PersonalNumberSweden: This is always returned for Swedish BankID. BankID in Norway only returns PersonalNumber if that is configured on the BankID certificate with the Bank for an extra call charge. Denmark: does not per default give back the personal number, but needs extra set ups to do this. General Rule: If a non-empty PersonalNumber is returned from an identification you can always be sure that it is has been validated on the backend.
DateOfBirthAlways present. All Nordic eID (i.e., Sweden, Norway, Denmark) providers sends back the date of birth.
AgeNormally computed from the DateOfBirth and the current date at the time of identification.
PhoneNumberNormally not set. May be set by Banking API authentications. From BankID on Mobile in Norway phone number will be set.
EmailNormally not set. May be set by Banking API authentications.
IdProviderNameZignSec’s name for the Identity provider, for example BankIDSE, BankIDNO, NemId or BankingAPI.
IdentificationDateThe time the identification was performed.
IdProviderRequestIdNot always set. The identity provider’s unique id for the identification request. For easier tracking.
IdProviderPersonIdAlways set in NemID, BankIdNO and BankingAPI responses, but not in Swedish BankID. A persistent value, a technical key that uniquely identifies the person authenticated taken from the BankID id-provider. It is over time a as uniquely identifying of the person as the public personal number, so it is a non-public substitute for the personalNumber, and can be stored away for later comparison for next BankID logins – this is useful when the identity provider does not deliver the personalNumber in the response per default, such as the case with Danish NemID and Norwegian BankID. For NemID and Norway´s BankID the certificate serial number is stored here. The serial number is guaranteed to be the same, no matter the device and method being use for login/authentication, for example the same key is used in Norway for both BankID for mobile and BankID for web. In Norwegian BankID this key has this format (an example): 9578-5997-4-3154736.
CustomerPersonIdThe eID product has the possibility to save a customer specific reference for the person, to enable simplified login processes. If such a number was sent in, it will be shown here for completeness sake.

AML Flow Configuration

You can configure AML depend on your needs. There are 2 types of product provided by ZignSec browser products and background products. Please contact us [email protected] to setup your own flow.

Browser products: 

Background products: