CPR Direkte ADRM - Match (Address Match)
Table of Contents
1. Introduction
This document describes the CPR Direkte service interface for the service "ADRM - Match".
1.1. Purpose
The purpose of the service is to provide person data to CPR’s customers based on name and address searches. The service delivers data in the same record format as the batch product U08080P "Adressematch Person Ændringsudtræk", so batch customers can use the service to supplement or refresh data in their own systems between CPR batch runs.
2. Access
The following sections describe the access requirements for users of the service.
2.1. Customer Focus
Use of this service is aimed at private customers.
2.2. Access Control
Users must be authenticated by the CPR security system to use the service. In addition, users must be assigned a CPR Direkte security profile that grants access to the service.
3. Parameters
The service supports the following parameters:
Parameter: Addressing name format
You can choose whether addressing names are printed in either First name(s) Last name or Last name,First name(s) format.
Default value: Last name,First name(s)
Parameter: Exclude name and address protection
Indicates whether name and address data on persons with active name and address protection registered in CPR should be omitted.
Parameter values: Yes
or No
Default value: Yes
Parameter: CPR-nr. subscription customer number
Indicates the customer number where the customer’s CPR-nr. subscriptions are registered.
Default value: (none)
Parameter: Last known address of deceased persons
You can choose whether the service delivers the last known address of deceased (CPR status code 90
) persons in records containing address data.
Parameter values: Yes
or No
Default value: No
If you wish to change the task’s parameters, you must contact CPR Customer Center.
4. Communication Protocol
Communication with the service takes place over a standard socket connection. Messages between the client application and the service are sent in fixed-length record format according to record descriptions in this document.
To perform match lookups, users must first be authenticated by the CPR security system, after which it is possible to send the search criteria. The following steps are performed on the same socket connection:
- Connect to CPR Direkte
- Send Login request
- Read authentication token from Login response (or handle any errors indicated in the response)
- Send Match request
- Read data from Match response (or handle any errors indicated in the response)
Note that the CPR Direkte service will close the connection in the following cases:
- The login request fails, e.g., due to incorrect username/password
- More than 5 seconds pass between sending the Login response and the Match request
- After the client has received the Match response
Authentication token values cannot be reused in the CPR Direkte ADRM
service. This means that users must log in before each match lookup.
5. Input data
This section describes the record types used to authenticate the user and perform match lookups.
5.1. Login request
Record sent to retrieve a token value from the CPR security system. Authentication is required to obtain a token value, which is necessary to perform lookups in CPR.
Record Field Name | Format | Length | Position | Description |
---|---|---|---|---|
CPRTRANS | A | 4 | 1 | Service transaction code: ADRM |
CONSTANT | A | 1 | 5 | Constant value (, ) |
KUNDENR | N | 4 | 6 | User’s customer number |
CONSTANT | N | 1 | 10 | Constant value (9 ) |
CONSTANT | N | 1 | 11 | Constant value (0 ) |
USER-ID | A | 8 | 12 | CPR Direkte username |
PASSWORD | A | 8 | 20 | CPR Direkte password |
NEW PASSWORD | A | 8 | 28 | New password (only if password change is desired) |
Record length: 35
Example:
ADRM,111190USER Password
5.2. Login response
Record returned to the user in connection with a login request.
If ERROR NO
is 00
, the user can retrieve a token value from the TOKEN
record field.
Record Field Name | Format | Length | Position | Description |
---|---|---|---|---|
KUNDENR | N | 4 | 1 | User’s customer number |
CONSTANT | N | 1 | 5 | Constant value (9 ) |
CONSTANT | N | 1 | 6 | Constant value (0 ) |
TOKEN | A | 8 | 7 | Authentication token value |
USER-ID | A | 8 | 15 | CPR Direkte username |
FEJLNR | N | 2 | 23 | Error number. See Error numbers and error texts |
LENGTH | N | 4 | 25 | Response length |
Record length: 28
Example (token value is KETDqhzM
):
111190KETDqhzMUSER 000028
5.3. Match request
Record containing the search criteria related to the person to be looked up.
Matching rules are described below in the section Match rules.
Record field name | Format | Length | Position | Description |
---|---|---|---|---|
KUNDENR | N | 4 | 1 | User’s customer number |
ABON_TYPE | N | 1 | 5 | Subscription set/delete. See Subscription types |
DATA_TYPE | N | 1 | 6 | DATA record field format (0=No data wanted, 6=Data wanted) |
TOKEN | A | 8 | 7 | Authentication token value |
USER-ID | A | 8 | 15 | CPR Direkte username |
FEJLNR | N | 2 | 23 | Error number. See Error numbers and error texts |
KUNDEREFNR | N | 15 | 25 | Customer reference number (optional) |
KOEN | N | 1 | 40 | Gender |
NAVN | N | 66 | 41 | Name |
FOEDDTO | N | 8 | 107 | Date of birth in DDMMYYYY format |
POSTDISTRIKT | N | 20 | 115 | Postal code e.g. 3450 or postal district e.g. Allerød |
KOMMUNE | N | 20 | 135 | Municipality code e.g. 201 or municipality name e.g. Allerød |
VEJ | N | 40 | 155 | Street code e.g. 1250 or street name e.g. Allerødvej |
HUSNR | N | 4 | 195 | House number (or possibly building number if Greenlandic address) |
ETAGE | N | 2 | 199 | Floor |
SIDEDOER | N | 4 | 201 | Side door |
Record length: 204
From 2025-09-09 gender (content of KOEN
field) will no longer be used in matches for private companies. Any value provided in
the KOEN
field will not be used when attempting to match persons registered in CPR. The KOEN
field and its position in the
match request record are retained in the current record structure to ensure backward compatibility.
The KOEN
field will be phased out entirely at a later date.
If a CPR-nr. (PNR) is known, this can be used to look up the person instead of name and address search criteria.
The CPR-nr. is specified in the KUNDEREFNR
record field. Please see the example below.
Match lookup examples:
Name and address:
111106KETDqhzMBRUGER 00ref-123456789 Per Andersen 01011970
CPR-nr. (PNR is 1212123333
):
111106KETDqhzMBRUGER 00PNR=1212123333
All search criteria:
111106KETDqhzMBRUGER 00ref-123456789 MPer Andersen 010119703450 Allerød Allerødvej 1 02th
Note that only one of the POSTDISTRIKT
or KOMMUNE
fields should be filled in for address searches. The example shows both fields filled in.
5.4. Match response
Record containing the response for a match lookup.
If a person was found for the specified search criteria in CPR, data related to the person is returned in the DATA
record field. Which records are returned in the DATA
field is controlled by the customer’s task settings.
Record field name | Format | Length | Position | Description |
---|---|---|---|---|
KUNDENR | N | 4 | 1 | User’s customer number |
ABON_TYPE | N | 1 | 5 | Subscription set/delete. See Subscription types |
DATA_TYPE | N | 1 | 6 | DATA record field format (0=No Output data wanted, 6=Output data wanted) |
TOKEN | A | 8 | 7 | Authentication token value |
BRUGER-ID | A | 8 | 15 | User’s CPR Direkte person code |
FEJLNR | N | 2 | 23 | Error number. See Error numbers and error texts |
LENGTH | N | 4 | 25 | Response length |
DATA | A | * | 29 | See Output data |
Record length: 28 + DATA LENGTH
(total length provided in LENGTH
record field)
5.5. Match rules
The following rules apply to Match request lookups:
KUNDEREFNR
must be specified if subscription set or delete is desired, asKUNDEREFNR
is the key to the connection between the CPR register and the customer’s administrative system- A specific
KUNDEREFNR
can only be used for one person - The same person can, however, be subscribed with several different customer reference numbers
NAVN
for the person must always be specified. The detailed rules are:- there must be at least 2 full name parts
- the name parts must be written in the correct order (first names middle names last names)
- In addition,
FOEDDTO
(date of birth) and/or address must be specified for identification of the person. If an address is provided then it must be correct. This means that persons can be looked up with the following combinations of search criteria:- Name and date of birth
- Note that the date of birth must be correct when address is omitted
- Name and address
- Name, date of birth, and address
- When name and address are specified, the date of birth is only used when there are several people having the same name at the same address. It is therefore possible to match a person even if the date of birth is incorrect, provided that the person’s name and address result in a unique match. If date of birth is provided then it must be formatted correctly (
DDMMYYYY
) KOEN
(gender) does not need to be specified, but if specified, one of the legal values must be used (K
for female,M
for male)
- When name and address are specified, the date of birth is only used when there are several people having the same name at the same address. It is therefore possible to match a person even if the date of birth is incorrect, provided that the person’s name and address result in a unique match. If date of birth is provided then it must be formatted correctly (
- Name and date of birth
- When the address is used, the following detailed rules apply to the address fields:
- Either
POSTDISTRIKT
orKOMMUNE
must be specified, but not both - For both the
POSTDISTRIKT
andKOMMUNE
fields, they can be filled in with either plain text e.g. "Allerød" or with code (postal code or municipality code e.g.3450
and201
)- To increase the likelihood of a unique match, it is recommended to use postal code and municipality code instead of plain text
- Likewise, the
VEJ
field can be filled in with CPR’s street code e.g. "199" or with plain text e.g. "Allerødvej"- To increase the likelihood of a unique match, it is recommended to use street code instead of plain text
HUSNR
must be filled in- Not all Greenlandic addresses have a house number. In such cases, the HUSNR field must be filled in with the address’s building number (BNR)
ETAGE
does not need to be correct if provided. The provided value is only used when there are several people having the same name at the same address. It is therefore possible to match a person even if theETAGE
value is incorrect, provided that the person’s name and other address search criteria result in a unique match.SIDEDOER
does not need to be correct if provided. The provided value is only used when there are several people having the same name at the same address. It is therefore possible to match a person even if theSIDEDOER
value is incorrect, provided that the person’s name and other address search criteria result in a unique match.
- Either
Note the following exceptions to the above rules:
- If
KUNDEREFNR
starts withPNR=
, the following 10 positions are interpreted as a PNR and all other identification fields are ignored (name, date of birth, gender, address) - If
KUNDEREFNR
is filled in, does not start withPNR=
, and all other identification fields are blank (gender, date of birth, name, address), the request is considered a requisition to extract data for the person who has the specifiedKUNDEREFNR
- If a transaction has
ABON_TYPE
4
(deletion of address match subscription), onlyKUNDEREFNR
is used for identification of the person/subscription. Any data in the other identification fields is ignored - Persons with CPR status
50
(deleted CPR-nr.) or60
(changed CPR-nr.) will never result in a match and will therefore never be subscribed. The valid CPR-nr. has taken over the changed/deleted CPR-nr. subscriptions
6. Output data
The service returns data in the form of fixed-length records. Which records are delivered in the response from the service depends on the customer’s task configuration. The following sections describe the data format for the records that can be delivered in the response.
The following descriptions of record structures are provided in Danish.
6.1. Recordtyper (DATA)
Oversigten viser, hvilke records der kan forekomme i DATA recordfeltet.
Recordtype | Recordnavn |
---|---|
000 | STARTRECORD |
001 | AKTUELLE DATA |
001B | AKTUELLE DATA MED ADRESSE UUID |
002 | UDLANDSADRESSER |
003 | KONTAKTADRESSER |
004 | CIVILSTAND |
005 | VÆRGE MED TEXT FELTER |
006 | ÆGTEFÆLLE OPLYSNINGER |
011 | FLERE KUNDEREFNR |
012 | PERSONNUMMER ABONNEMENT |
013 | PNR OPLYSNINGER |
050 | KREDITADVARSEL |
052 | VÆRGE MED TEXT FELTER OG VÆRGEMÅLSTYPE |
999 | SLUTRECORD |
6.1.1. 000 Startrecord
Start record.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
SORTFELT | A | 23 | 4 | Sorteringsfelt |
OPGAVENR | N | 6 | 27 | |
PRODDTO | N | 8 | 33 | Produktionsdato ÅÅÅÅMMDD |
PRODDTOFORRIG | N | 8 | 41 | Forrige produktionsdato ÅÅÅÅMMDD |
Recordlængde: 48
6.1.2. 001 Aktuelle data
Aktuelle data record.
Format:
Recordfeltnavn | Format | Længde | Position | Beskyttet | Beskrivelse |
---|---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype | |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer | |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD | |
PNRSENRMRK | A | 1 | 27 | Altid konstant P | |
MATCHTYP | A | 1 | 28 | ||
STATUSHAENSTART | N | 12 | 29 | Statusdato ÅÅÅÅMMDDTTMM - TTMM leveres altid som 0000 | |
STATUS | N | 2 | 41 | Status | |
NVNADRBESKHAENSTART | N | 12 | 43 | X | Navneadressebeskyttelse |
ADRNVN | A | 34 | 55 | X | Adresseringsnavn |
TILFLYDTO | N | 12 | 89 | X | Tilflytningsdato ÅÅÅÅMMDDTTMM - TTMM leveres altid som 0000 |
CONVN | A | 34 | 101 | X | C/O navn |
LOKALITET | A | 34 | 135 | X | Lokalitet - altid blank |
STANDARDADR | A | 34 | 169 | X | Vejadrnvn,husnr,etage,sidedoer bnr. Etiketteadresse |
BYNVN | A | 34 | 203 | X | Bynavn |
POSTNR | N | 4 | 237 | X | Postnummer |
POSTDISTTXT | A | 20 | 241 | X | Postdistrikt tekst |
KOMKOD | N | 4 | 261 | X | Kommunekode |
VEJKOD | N | 4 | 265 | X | Vejkode |
HUSNR | A | 4 | 269 | X | Husnummer (inkl. foranstillede nuller) |
ETAGE | A | 2 | 273 | X | Etage |
SIDEDOER | A | 4 | 275 | X | Sidedør nummer |
BNR | A | 4 | 279 | X | Bygningsnummer |
FORMELNVN | A | 50 | 283 | X | Fornavn og mellemnavn |
EFTERNVN | A | 40 | 333 | X | Efternavn |
VEJADRNVN | A | 20 | 373 | X | Vejadresseringsnavn |
REKBESKHAENSTART | N | 12 | 393 | Beskyttelse mod markedsføring dato |
Recordlængde: 404
Feltet ADRNVN kan leveres i formatet Fornavn(e) Efternavn eller Efternavn,Fornavn(e).
På inaktive personer (status 70
, 80
, eller 90
) og personer med vejkode 9900 (status 3
eller 7
)
leveres ingen aktuel indenlandsk adresse.
Hvis personer har navne- og adressebeskyttelse leveres der ingen data i recordfelter markeret "beskyttet" medmindre det er aftalt med CPR-kontoret.
MATCHTYP
overføres uændret fra input-filen.
001B Aktuelle data med adresse UUID
6.1.3. 001B Aktuelle data med adresse UUID
Aktuelle data record med adresse UUID.
Format:
Recordfeltnavn | Format | Længde | Position | Beskyttet | Beskrivelse |
---|---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype | |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer | |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD | |
MATCHTYP | A | 1 | 27 | ||
STATUSHAENSTART | N | 12 | 28 | Statusdato ÅÅÅÅMMDDTTMM - TTMM leveres altid som 0000 | |
STATUS | N | 2 | 40 | Status | |
NVNADRBESKHAENSTART | N | 12 | 42 | Navneadressebeskyttelse | |
ADRNVN | A | 34 | 54 | X | Adresseringsnavn |
TILFLYDTO | N | 12 | 88 | X | Tilflytningsdato ÅÅÅÅMMDDTTMM - TTMM leveres altid som 0000 |
CONVN | A | 34 | 100 | X | C/O navn |
STANDARDADR | A | 34 | 134 | X | Vejadrnvn,husnr,etage,sidedoer bnr. Etiketteadresse |
BYNVN | A | 34 | 168 | X | Bynavn |
POSTNR | N | 4 | 202 | X | Postnummer |
POSTDISTTXT | A | 20 | 206 | X | Postdistrikt tekst |
KOMKOD | N | 4 | 226 | X | Kommunekode |
VEJKOD | N | 4 | 230 | X | Vejkode |
HUSNR | A | 4 | 234 | X | Husnummer (inkl. foranstillede nuller) |
ETAGE | A | 2 | 238 | X | Etage |
SIDEDOER | A | 4 | 240 | X | Sidedør nummer |
BNR | A | 4 | 244 | X | Bygningsnummer |
FORMELNVN | A | 50 | 248 | X | Fornavn og mellemnavn |
EFTERNVN | A | 40 | 298 | X | Efternavn |
VEJNVN | A | 40 | 338 | X | Vejnavn |
VEJADRNVN | A | 20 | 378 | X | Vejadresseringsnavn |
REKBESKHAENSTART | N | 12 | 398 | Beskyttelse mod markedsføring dato | |
ADRESSE_UUID | A | 36 | 410 | X | Adresse UUID svarende til Adresseelement.id i Grunddatamodellen for Danmarks adresser |
Recordlængde: 445
Feltet ADRNVN kan leveres i formatet Fornavn(e) Efternavn eller Efternavn,Fornavn(e).
På inaktive personer (status 70
, 80
, eller 90
) og personer med vejkode 9900 (status 3
eller 7
)
leveres ingen aktuel indenlandsk adresse.
Hvis personer har navne- og adressebeskyttelse leveres der ingen data i recordfelter markeret "beskyttet" medmindre det er aftalt med CPR-kontoret.
MATCHTYP
overføres uændret fra input-filen.
6.1.4. 002 Udlandsadresser
Udrejse record.
For personer med status 80
- udrejste. På personer med navneadressebeskyttelse leveres ingen
udenlandske adresse oplysninger.
Format:
Recordfeltnavn | Format | Længde | Position | Beskyttet | Beskrivelse |
---|---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype | |
KUNDEREFNR | A | 15 | 4 | Kunde ref. nr. | |
PRODDTO | N | 8 | 19 | Produktionsdato | |
PNRSENMRK | A | 1 | 27 | Altid konstant P | |
UDLANDADR1 | A | 34 | 28 | X | Udlandsadresse 1 |
UDLANDADR2 | A | 34 | 62 | X | Udlandsadresse 2 |
UDLANDADR3 | A | 34 | 96 | X | Udlandsadresse 3 |
UDLANDADR4 | A | 34 | 130 | X | Udlandsadresse 4 |
UDLANDADR5 | A | 34 | 164 | X | Udlandsadresse 5 |
UDLANDADRDTO | N | 12 | 198 | Udlandsadresse dato |
Recordlængde: 209
Hvis personer har navne- og adressebeskyttelse leveres der ingen data i recordfelter markeret "beskyttet" medmindre det er aftalt med CPR-kontoret.
6.1.5. 003 Kontaktadresser
Kontaktadresse record.
For personer med status 20
, 70
, 80
eller 90
.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
KUNDEREFNR | A | 15 | 4 | Kunde ref. nr. |
PRODDTO | N | 8 | 19 | Produktionsdato |
PNRSENMRK | A | 1 | 27 | Altid konstant P |
KONTAKTADR1 | A | 34 | 28 | Kontaktadresse 1 |
KONTAKTADR2 | A | 34 | 62 | Kontaktadresse 2 |
KONTAKTADR3 | A | 34 | 96 | Kontaktadresse 3 |
KONTAKTADR4 | A | 34 | 130 | Kontaktadresse 4 |
KONTAKTADR5 | A | 34 | 164 | Kontaktadresse 5 |
HAENSTART-KONTAKTADR | N | 12 | 198 | Startdato |
Recordlængde: 209
6.1.6. 004 Civilstand
Civilstand record.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD |
PNRSENRMRK | A | 1 | 27 | Altid konstant P |
CIVST | A | 1 | 28 | Civilstand |
HAENSTART-CTCIV | N | 12 | 29 | Civilstand startdato ÅÅÅÅMMDDTTMM - TTMM leveres altid som 0000 |
Recordlængde: 40
Leveres kun til brug vedrørende pension. Det forudsættes, at alle personer under det pågældende kundenummer er pensionskunder.
6.1.7. 005 Værge med text felter
Værge med text felter record.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD |
PNRSENRMRK | A | 1 | 27 | Altid konstant P |
UMYNMYNHAENSTART | N | 12 | 28 | Under værgemål dato i formattet ÅÅÅÅMMDDTTMM - TTMM leveres altid som 0000 |
VÆRGE-ADRNVN/ADRESSAT | A | 34 | 40 | Værge adresseringsnavn |
VÆRGE-ADRESSETXT-LINIE1 | A | 34 | 74 | Værge adresse 1 |
VÆRGE-ADRESSETXT-LINIE2 | A | 34 | 108 | Værge adresse 2 |
VÆRGE-ADRESSETXT-LINIE3 | A | 34 | 142 | Værge adresse 3 |
VÆRGE-ADRESSETXT-LINIE4 | A | 34 | 176 | Værge adresse 4 |
VÆRGE-ADRESSETXT-LINIE5 | A | 34 | 210 | Værge adresse 5 |
Recordlængde: 243
6.1.8. 006 Ægtefælle oplysninger
Ægtefælle oplysninger record.
Format:
Recordfeltnavn | Format | Længde | Position | Beskyttelse | Beskrivelse |
---|---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype | |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer | |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD | |
FORMELNVN | A | 50 | 27 | X | Fornavn og mellemnavn |
EFTERNVN | A | 40 | 77 | X | Efternavn |
ADRNVN | A | 34 | 117 | X | Adresseringsnavn |
CONVN | A | 34 | 151 | X | C/O navn |
LOKALITET | A | 34 | 185 | X | Lokalitet |
STANDARDADR | A | 34 | 219 | X | Vejadrnvn,husnr,etage,sidedoer bnr. Etiketteadresse |
BYNVN | A | 34 | 253 | X | Bynavn |
POSTNR | N | 4 | 287 | X | Postnummer |
POSTDISTTXT | A | 20 | 291 | X | Postdistrikt tekst |
KOMKOD | N | 4 | 311 | X | Kommunekode |
VEJKOD | N | 4 | 315 | X | Vejkode |
HUSNR | A | 4 | 319 | X | Husnummer (inkl. foranstillede nuller) |
ETAGE | A | 2 | 323 | X | Etage |
SIDEDOER | A | 4 | 325 | X | Sidedør nummer |
BNR | A | 4 | 329 | X | Bygningsnummer |
VEJADRNVN | A | 20 | 333 | X | Vejadresseringsnavn |
UDLANDADR1 | A | 34 | 353 | X | Udlandsadresse 1 |
UDLANDADR2 | A | 34 | 387 | X | Udlandsadresse 2 |
UDLANDADR3 | A | 34 | 421 | X | Udlandsadresse 3 |
UDLANDADR4 | A | 34 | 455 | X | Udlandsadresse 4 |
UDLANDADR5 | A | 34 | 489 | X | Udlandsadresse 5 |
UDR_LANDEKOD | N | 4 | 523 | X | Udrejse landekode |
NVNADRBESKHAENSTART | N | 12 | 527 | Navneadressebeskyttelse |
Recordlængde: 538
Kan kun vælges til brug vedrørende pension. Leveres kun for afdøde personer.
Hvis ægtefællen har navne- og adressebeskyttelse leveres der ingen data i recordfelter markeret "beskyttet" jvf. CPR-loven § 38, stk 3.
6.1.9. 011 Flere kunderefnr
Flere kundereferencer record.
Leveres kun, hvis MATCHTYP = T
eller R
, og den indsendte person allerede findes i abonnement med et eller
flere forskellige kundereferencenr.
Personens nye kundereferencenr. bliver vist i feltet KUNDEREFNR, og det/de allerede eksisterende kundereferencenr.
bliver vist i feltet KUNDEREFNR-ANDET-1. Det vil sige, at der bliver leveret en record 011 for hvert kundereferencenr.
der allerede er i abonnement på samme person.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD |
PNRSENRMRK | A | 1 | 27 | Altid konstant P |
KUNDEREFNR-ANDET-1 | A | 15 | 28 | Kundereferencenummer 1 |
KUNDEREFNR-ANDET-2 | A | 15 | 43 | Anvendes ikke længere |
KUNDEREFNR-ANDET-3 | A | 15 | 58 | Anvendes ikke længere |
KUNDEREFNR-ANDET-4 | A | 15 | 73 | Anvendes ikke længere |
KUNDEREFNR-ANDET-5 | A | 15 | 88 | Anvendes ikke længere |
Recordlængde: 102
6.1.10. 012 Personnummer abonnement
Personnummer abonnement på andet kundenummer record.
Leveres kun, hvis MATCHTYP = E
, T
eller R
. Offentlige kunder kan få udtrukket personnummer på alle udtrukne personer.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD |
PNRSENRMRK | A | 1 | 27 | Altid konstant P |
PNR | A | 10 | 28 | Personnummer |
Recordlængde: 37
6.1.11. 013 PNR Oplysninger
Personnummeroplysninger record.
Hvis personen er udtrukket som følge af personnummer.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD |
PNRSENRMRK | A | 1 | 27 | Altid konstant P |
PNR | A | 10 | 28 | Personnummer |
FOEDDTO | N | 8 | 38 | Fødselsdato i format ÅÅÅÅMMDD |
KOEN | A | 1 | 46 | Køn Værdisæt: M = mænd K = kvinder |
PNRGAELD | A | 10 | 47 | Gældende personnummer |
Recordlængde: 56
6.1.12. 050 Kreditadvarsel
Kreditadvarsel record
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD |
PNRSENMRK | A | 1 | 27 | Altid konstant P |
BESKYTTYPE | N | 4 | 28 | Beskyttelsestype |
KREDADVHAENSTART | N | 12 | 32 | Kreditadvarsels startdato i format ÅÅÅÅMMDDTTMM |
Recordlængde: 43
6.1.13. 052 Værge med text felter og værgemålstype
Værge med text felter record.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
KUNDEREFNR | A | 15 | 4 | Kundereferencenummer |
PRODDTO | N | 8 | 19 | Produktionsdato ÅÅÅÅMMDD |
PNRSENRMRK | A | 1 | 27 | Altid konstant P |
UMYNMYNHAENSTART | N | 12 | 28 | Under værgemål dato i formattet ÅÅÅÅMMDDTTMM - TTMM leveres altid som 0000 |
VÆRGE-ADRNVN/ADRESSAT | A | 34 | 40 | Værge adresseringsnavn |
VÆRGE-ADRESSETXT-LINIE1 | A | 34 | 74 | Værge adresse 1 |
VÆRGE-ADRESSETXT-LINIE2 | A | 34 | 108 | Værge adresse 2 |
VÆRGE-ADRESSETXT-LINIE3 | A | 34 | 142 | Værge adresse 3 |
VÆRGE-ADRESSETXT-LINIE4 | A | 34 | 176 | Værge adresse 4 |
VÆRGE-ADRESSETXT-LINIE5 | A | 34 | 210 | Værge adresse 5 |
VAERGEMAALS_TYPE | A | 15 | 244 | FULD eller DELVIS |
Recordlængde: 258
6.1.14. 999 Slutrecord
Slut record i et andet format.
Format:
Recordfeltnavn | Format | Længde | Position | Beskrivelse |
---|---|---|---|---|
RECORDTYPE | N | 3 | 1 | Lig tre sidste cifre i recordtype |
SORTFELT | A | 23 | 4 | Sorteringsfelt |
TAELLER | N | 8 | 27 | Tæller |
Recordlængde: 34
7. Help
The following resources can be used if errors or problems are experienced when calling the service:
8. Appendix - Subscriptions, password requirements, and error codes
8.1. Subscription types
The service supports the creation and deletion of both address match and CPR-nr. subscriptions in connection with match lookups. Subscriptions make it possible for CPR batch customers to receive ongoing updates on the persons for whom subscriptions exist. Read more about subscriptions on the CPR website.
The following subscription type values may be specified in the ABON_TYPE
record field in Match request.
0
: No subscription action1
: Create CPR-nr. subscription2
: Create address match subscription3
: Delete CPR-nr. subscription4
: Delete address match subscription
Note that subscription types 1
and 3
may only be used in connection with PNR (CPR-nr.) subscriptions, i.e., in cases where KUNDEREFNR
in Match request is a PNR (begins with PNR=
). Likewise, subscription types 2
and 4
may only be used in connection with match lookups (KUNDEREFNR
in Match request is not a PNR).
8.2. Password requirements
The password must be 8 characters.
- At least 1 lowercase letter (a-z)
- At least 1 uppercase letter (A-Z)
- At least 1 digit (0-9)
- At least one special character:
~
`
!
@
#
$
%
^
*
(
)
_
-
+
=
,
.
/
\
{
}
[
]
;
:
- There is a check for uppercase and lowercase letters
- The characters
<
>
&
?
'
æ
ø
andå
cannot be used - The password can only be changed once per day
- It is not allowed to change to a password that has been used previously
8.3. Error numbers and error texts
This section describes the possible error numbers that may occur in the FEJLNR
field in the response from the service, e.g., 00
("No error").
Errors from the CPR security system during authentication:
01
: USER-ID/PASSWORD not correct02
: PASSWORD expired, NEW PASSWORD required03
: NEW PASSWORD does not meet requirements16
: IP address incorrect
Errors from the service due to incorrect data in the request:
04
: No access to CPR (CTSERVICE is temporarily closed)05
: PNR unknown in CPR06
: Unknown KUNDENR07
: Timeout / new LOGON required08
: No access to CPR (CTSERVICE is not active)10
: ABON_TYPE unknown11
: DATA_TYPE unknown12
: KUNDEREFNR. MUST BE FILLED IN13
: KUNDEREFNR. IS IN USE FOR ANOTHER PERSON14
: USER-ID does not have access to the transaction (CTPROFIL is temporarily closed)- or Setting subscription is not allowed
15
: Not found in CTADRAB table17
: "PNR=" is not specified18
: USER-ID does not have access to the transaction (CTPROFIL is not active)19
: "PNR=" must not be specified for subscription type 2 and 424
: USER-ID does not have access to the transaction (CTPERSKOD_PROFIL is temporarily closed)28
: USER-ID does not have access to the transaction (CTPERSKOD_PROFIL is not active)29
: KUNDEREFNR starts with a date, which is not allowed for subscription type 2 and 4115
: Floor contains incorrect letters, characters, or numbers126
: House number/letter contains incorrect letters, characters, numbers143
: Side-door number contains incorrect letters, characters, or numbers7015
: Postal code/district does not exist in CPR7016
: Postal district exists multiple times. Enter postal code7056
: The street does not exist in CPR7100
: There must be blanks after the entered street code7102
: Enter gender. M for male or K for female7144
: Enter a name7168
: Date must be correct and less than or equal to today’s date7251
: Either CPR-nr., date of birth, or address must be filled in7252
: Either CPR-nr., date of birth, or address must be filled in7255
: No persons met the search criteria. Narrow down differently7256
: The search returns more than one person. Narrow down differently.7257
: Municipality or postal district must be filled in7259
: House number must be filled in when street is filled in7578
: Municipality does not exist in CPR7579
: Municipality is not a valid municipality7677
: Fill in either municipality or postal district7713
: There must be at least two unabbreviated names8971
: KUNDEREFNR starts with a date. This is not allowed
Errors from the service where it is recommended to contact CPR if the error occurs repeatedly:
40
: Task does not exist41
: Task configuration missing42
: Task batch relation missing or inactive43
: Task version missing or inactive44
: No tasks found for the specified transaction code99
: Server error. See log