Sweden eKYC verification matches submitted individual data against Sweden's source of truth. See the eKYC API Reference for common response semantics that apply across all sources.
Available sources
| Source | API source string | Description |
|---|---|---|
| SE 1 | SE_1 |
Verifies submitted data against Sweden's source of truth. |
{/* TODO: Confirm with PM — the customer-facing source name for SE_1. Existing documentation refers to the source only as "Sweden's source of truth" without a specific name. */}
SE 1
Request parameters
| Parameter | Required | Description |
|---|---|---|
source |
Mandatory | Must be SE_1. |
country |
Mandatory | Must be SE. |
idNumber |
Mandatory | Swedish personnummer. Ten characters in the most common short format. |
firstName |
Mandatory | First name of the individual. |
surName |
Mandatory | Last name of the individual. |
street |
Mandatory | Street name and house number. |
city |
Mandatory | City of the individual's address (for example, Stockholm). |
postalCode |
Optional | Postal code. Always five digits, typically written with a space. |
dateOfBirth |
Optional | Format: yyyy-mm-dd. |
phone |
Optional | Phone number. |
Response fields
SE 1 anchors verification on the source-of-truth register. See the eKYC API Reference for common match field definitions and status values.
| Field | Statuses | Description |
|---|---|---|
firstNameMatch |
exact, fuzzy, nomatch |
Matches first name submitted against the value in the source of truth. |
lastNameMatch |
exact, fuzzy, nomatch |
Matches last name submitted against the value in the source of truth. |
fullNameMatch |
exact, fuzzy, nomatch |
Matches full name (first and last) submitted against the value in the source of truth. |
dobMatch |
exact, fuzzy, nomatch, nodata |
Matches date of birth submitted against the value in the source of truth. |
streetAddressMatch |
exact, fuzzy, nomatch, nodata |
Matches street and house number submitted against the value in the source of truth. |
cityMatch |
exact, fuzzy, nomatch, nodata |
Matches city submitted against the value in the source of truth. |
postalCodeMatch |
exact, fuzzy, nomatch, nodata |
Matches postal code submitted against the value in the source of truth. |
fullAddressMatch |
exact, fuzzy, nomatch, nodata |
Matches full address (street, city, postal code) submitted against the value in the source of truth. |
idNumMatch |
exact, fuzzy, nomatch, nodata |
Matches personnummer submitted against the value in the source of truth. |
phoneMatch |
exact, fuzzy, nomatch, nodata |
Matches phone submitted against the value in the source of truth. |
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 and personnummer:
lowwhenfullNameMatchandidNumMatchare bothexact.highwhenfullNameMatchandidNumMatchare bothnomatch.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": "fuzzy" },
{ "key": "fullNameMatch", "status": "fuzzy" },
{ "key": "dobMatch", "status": "exact" },
{ "key": "streetAddressMatch", "status": "exact" },
{ "key": "cityMatch", "status": "exact" },
{ "key": "postalCodeMatch", "status": "exact" },
{ "key": "fullAddressMatch", "status": "fuzzy" },
{ "key": "idNumMatch", "status": "exact" },
{ "key": "phoneMatch", "status": "exact" },
{ "key": "overallLevel", "status": "low" }
]
}