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;

https://github.com/OS2sofd/middleware/blob/212a48b34f59c8fb8d6718180cbad2994f0da448/sofd-core-cpr-integration/Controllers/PersonController.cs

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;

https://github.com/OS2sofd/middleware/blob/212a48b34f59c8fb8d6718180cbad2994f0da448/sofd-core-cpr-integration/Controllers/PersonController.cs

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: