CPR data documentation
Information
This page is meant for documentation of CPR data on the CPR integration to Serviceplatformen
As determined on Integrations to Serviceplatformen we’ll be using SF1520 - CPR replika opslag | Digitaliseringskataloget . More specific the service 'PersonBaseDataExtendedService' making it possible to get CPR data from person based on their social security number.
Open source component
There’s a useful open source component written in .NET from OS2osfd: https://github.com/OS2sofd/middleware/tree/master/sofd-core-cpr-integration that we hopefully can use or find great inspiration in.
Available data
KOMBIT has supplied @Mogens Kjeldsen (Unlicensed) with an overview of the CPR data available in the different CPR integrations on Serviceplatformen:
We need the following data to create the validation in OS2valghalla:
Age
Home municipality
Citizenship
Deceased
Disenfranchised (umyndiggjort)
For communication we need to know if participant can receive Digital Post:
Registration status of Digital Post
Furthermore we want to get the following personal information:
First, middle and last name
Address
Postnummer
By/postdistrikt
Vej
Husnummer
Etage
Sidedør nummer
Bygningsnummer
C/O navn
Deceased
Based on the code used in the CPR integration on OS2sofd, we will use a lookup on status after result ‘70’ or ‘90’ to determine if a participant is deceased:
person.IsDead = false;
if (response.PersonLookupResponse1.persondata?.status?.status != null)
{
// 90 is "Død", 70 is "Bortkommet"
if (90 == response.PersonLookupResponse1.persondata.status.status ||
70 == response.PersonLookupResponse1.persondata.status.status) {
person.IsDead = true;
Disenfranchised
Based on the code used in the CPR integration on OS2sofd:
person.Disenfranchised = false;
if (response.PersonLookupResponse1.persondata?.umyndiggoerelse?.umyndiggjort == true)
{
person.Disenfranchised = true;
Test data
For a quick test use one of the following CPR numbers:
1012620000
1012620001
1012620002
1012620003
Full available test data set can be found here: