Finland eKYC verification matches submitted individual data against Finland's source of truth using a sequenced search across multiple underlying data sources. See the eKYC API Reference for common response semantics that apply across all sources.
Available sources
| Source | API source string | Description |
|---|---|---|
| FI National ID | FI_NATIONAL_ID |
Runs a search across Finland's national ID database. |
| Finland Consumer + Pop Register + Telco | FI_CONSUMER_POP_REG_TELCO |
Verifies submitted data against Finland consumer records, the population register, and telco records. |
FI National ID
Request parameters
| Parameter | Required | Description |
|---|---|---|
source |
Mandatory | Must be FI_NATIONAL_ID. |
country |
Mandatory | Must be FI. |
firstName |
Mandatory | First name of the individual. Must not contain digits. |
surName |
Mandatory | Last name of the individual. Must not contain digits. |
dateOfBirth |
Mandatory | Format: yyyy-mm-dd. |
idNumber |
Mandatory | Finnish national identity number. |
street |
Optional | Street name and house number. |
city |
Optional | City of the individual's address (for example, Lappeenranta). |
state |
Optional | State or region. |
postalCode |
Optional | Finland postal code. See format note below. |
Info
postalCode must be exactly 5 digits, numeric only (no letters, spaces, or hyphens).
Sample request
{
"plugins": ["kyc"], //required field
"source": "FI_NATIONAL_ID", //required field
"firstName": "Matti", //required field
"surName": "Virtanen", //required field
"street": "Koivukuja 12 A 4",
"city": "Lappeenranta",
"state": "South Karelia",
"postalCode": "53100",
"country": "FI", //required field
"dateOfBirth": "1991-08-02", //required field
"idNumber": "010203A123X" //required field
}
Response fields
FI National ID anchors verification on the submitted national identity number, name, date of birth, and address elements. See the eKYC API Reference for common match field definitions and status values. Individual field matches for this source resolve to exact or nomatch only; fullAddressMatch additionally supports fuzzy.
| Field | Statuses | Description |
|---|---|---|
firstNameMatch |
exact, nomatch |
Matches first name submitted against the value in the source of truth. |
lastNameMatch |
exact, nomatch |
Matches last name submitted against the value in the source of truth. |
fullNameMatch |
exact, nomatch |
Matches full name submitted against the value in the source of truth. |
dobMatch |
exact, nomatch |
Matches date of birth submitted against the value in the source of truth. |
idNumMatch |
exact, nomatch |
Matches national identity number submitted against the value in the source of truth. |
streetMatch |
exact, nomatch |
Matches street submitted against the value in the source of truth. |
cityMatch |
exact, nomatch |
Matches city submitted against the value in the source of truth. |
stateMatch |
exact, nomatch |
Matches state submitted against the value in the source of truth. |
postalCodeMatch |
exact, nomatch |
Matches postal code submitted against the value in the source of truth. |
fullAddressMatch |
exact, fuzzy, nomatch |
Composite of streetMatch, cityMatch, stateMatch, and postalCodeMatch. See below for calculation logic. |
overallLevel |
low, medium, high |
Overall risk level. See below for calculation logic. |
overallLevel calculation
overallLevel is calculated based on the risk associated with the submitted full name, national identity number, and date of birth:
lowwhenfullNameMatch,idNumMatch, anddobMatchare allexact.highwhenfullNameMatch,idNumMatch, anddobMatchare allnomatch.mediumfor all other combinations.
Contact your Incode representative to customize the overallLevel calculation for your use case.
Sample response
{
"kyc": [
{ "key": "firstNameMatch", "status": "exact" },
{ "key": "lastNameMatch", "status": "exact" },
{ "key": "fullNameMatch", "status": "exact" },
{ "key": "dobMatch", "status": "exact" },
{ "key": "idNumMatch", "status": "exact" },
{ "key": "streetMatch", "status": "exact" },
{ "key": "cityMatch", "status": "exact" },
{ "key": "stateMatch", "status": "exact" },
{ "key": "postalCodeMatch", "status": "exact" },
{ "key": "fullAddressMatch", "status": "exact" },
{ "key": "overallLevel", "status": "low" }
]
}
Finland Consumer + Pop Register + Telco
Request parameters
| Parameter | Required | Description |
|---|---|---|
source |
Mandatory | Must be FI_CONSUMER_POP_REG_TELCO. |
country |
Mandatory | Must be FI. |
firstName |
Mandatory | First name of the individual. Letters, spaces, hyphens, and apostrophes only. |
surName |
Mandatory | Last name of the individual. Letters, spaces, hyphens, and apostrophes only. |
phone |
Mandatory | Finland phone number. Must be either 10 digits starting with a 0 in national format, or +358 followed by 9 digits, without the leading 0, in international format. For example, 0401234567 or +358401234567. |
street |
Optional | Street name. |
houseNo |
Optional | House or building number. |
city |
Optional | City of the individual's address (for example, Helsinki). |
postalCode |
Optional | Finland postal code. Five digits (for example, 00100). |
dateOfBirth |
Optional | Format: yyyy-mm-dd. |
gender |
Optional | Accepted values are m or f. |
email |
Optional | Email address of the individual. |
Sample request
{
"plugins": ["kyc"], //required field
"source": "FI_CONSUMER_POP_REG_TELCO", //required field
"firstName": "Mikko", //required field
"surName": "Virtanen", //required field
"phone": "+358401234567", //required field
"country": "FI", //required field
"street": "Mannerheimintie", //optional field
"houseNo": "45", //optional field
"city": "Helsinki", //optional field
"postalCode": "00100", //optional field
"dateOfBirth": "1991-08-02", //optional field
"gender": "m", //optional field
"email": "mikko.virtanen@example.com" //optional field
}
Response fields
Finland Consumer + Pop Register + Telco anchors verification on individual name and phone number. See the eKYC API Reference for common match field definitions and status values.
| Field | Statuses | Description |
|---|---|---|
firstNameMatch |
exact, fuzzy, nomatch |
Matches submitted first name against the source of truth. |
lastNameMatch |
exact, fuzzy, nomatch |
Matches submitted last name against the source of truth. |
fullNameMatch |
exact, fuzzy, nomatch |
Composite of firstNameMatch and lastNameMatch. exact if both match; nomatch if either does not match; otherwise, fuzzy. |
dobMatch |
exact, fuzzy, nomatch, nodata |
Matches submitted date of birth against the source of truth. |
genderMatch |
exact, fuzzy, nomatch, nodata |
Matches submitted gender against the source of truth. |
streetMatch |
exact, fuzzy, nomatch, nodata |
Matches submitted street against the source of truth. |
houseNoMatch |
exact, fuzzy, nomatch, nodata |
Matches submitted house number against the source of truth. Not used in the fullAddressMatch calculation. |
streetAddressMatch |
exact, fuzzy, nomatch, nodata |
Composite of streetMatch and houseNoMatch. exact if both match; nomatch if either does not match; nodata if both have no data; otherwise, fuzzy. |
cityMatch |
exact, fuzzy, nomatch, nodata |
Matches submitted city against the source of truth. |
postalCodeMatch |
exact, fuzzy, nomatch, nodata |
Matches submitted postal code against the source of truth. |
fullAddressMatch |
exact, fuzzy, nomatch, nodata |
Composite of streetMatch, cityMatch, and postalCodeMatch. exact if streetMatch is exact and cityMatch and postalCodeMatch are each exact or nodata; nomatch if all three are nomatch; nodata if all three are nodata; otherwise, fuzzy. |
phoneMatch |
exact, fuzzy, nomatch, nodata |
Matches submitted phone number against the source of truth. |
emailMatch |
exact, fuzzy, nomatch, nodata |
Matches submitted email address against the source of truth. |
overallLevel |
low, medium, high |
Overall risk level of the submitted attributes. See below for calculation logic. |
overallLevel calculation
overallLevel is calculated based on the risk associated with the submitted full name and phone number:
lowwhenfullNameMatchisexactANDphoneMatchisexact.highwhenfullNameMatchisnomatchORphoneMatchisnomatch.mediumfor all other combinations.
Contact your Incode representative to customize the overallLevel calculation for your use case.
Sample response
{
"kyc": [
{ "key": "firstNameMatch", "status": "exact" },
{ "key": "lastNameMatch", "status": "exact" },
{ "key": "fullNameMatch", "status": "exact" },
{ "key": "dobMatch", "status": "exact" },
{ "key": "genderMatch", "status": "exact" },
{ "key": "streetMatch", "status": "exact" },
{ "key": "houseNoMatch", "status": "exact" },
{ "key": "streetAddressMatch", "status": "exact" },
{ "key": "cityMatch", "status": "exact" },
{ "key": "postalCodeMatch", "status": "exact" },
{ "key": "fullAddressMatch", "status": "exact" },
{ "key": "phoneMatch", "status": "exact" },
{ "key": "emailMatch", "status": "exact" },
{ "key": "overallLevel", "status": "low" }
]
}