...
Det krävs att LPU kan ta emot och behandla svaren från NPU som anges i exemplen nedan. Se Tjänstekontraktsbeskrivningen (TKB:n) för fullständig information och strukturen för de anrop och typer som returneras.
Relaterad dokumentation
Konnektivitet
SOAP-tjänst för att generera filer med sökta personposter och lista tillgängliga filer är tillgängliga via Nationell Tjänsteplattform (NTjP). NTjP saknar dock stöd för REST-baserade tjänster vilket medför att REST-tjänst för att hämta filer (ladda upp/ta bort) enbart är tillgänglig genom direktaccess mot tjänsteproducent.
...
Info |
---|
Dela upp sökningen av stora länIfall grundladdning ska ske av något av de större länen är det vist att dela upp frågan per kommun istället för att ta hem hela länet i en enda sökning. Vid uppdelning av en fråga måste man dock tänka på vilken tidsstämpel man använder vid nästa hämtningstillfälle så att man inte missar tiden mellan första och sista frågan i en serie av frågor. |
Exempelanrop
Kodblock |
---|
breakoutMode | wide |
---|
language | xml |
---|
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:riv:itintegration:registry:1"
xmlns:urn1="urn:riv:strategicresourcemanagement:persons:person:SearchPersonsForProfileByOrderUnrestrictedResponder:3">
<soapenv:Header>
<urn:LogicalAddress>SE165565594230-1000</urn:LogicalAddress>
</soapenv:Header>
<soapenv:Body>
<urn1:SearchPersonsForProfileByOrderUnrestricted>
<urn1:query>FROM PersonRecord.PopulationRegistrationLocality WHERE (CountyCode IN ("05","06","07") OR (CountyCode = "12" AND MunicipalityCode = "87"));</urn1:query>
<urn1:queryLanguage>SimpleQL</urn1:queryLanguage>
<urn1:profile>P5</urn1:profile>
</urn1:SearchPersonsForProfileByOrderUnrestricted>
</soapenv:Body>
</soapenv:Envelope> |
...
Har er LPU behov av att hämta persondata om reservnummer så kan ni i denna query även skicka in dessa nummer. Då reservidentiteter inte kan identitetsskyddas så vet vi säkert att fullständig data returneras fast än vi inte använder oss av metoden med postfix Unrestricted.
Exempelanrop Kodblock |
---|
| <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:riv:itintegration:registry:1"
xmlns:urn1="urn:riv:strategicresourcemanagement:persons:person:SearchPersonsForProfileByOrderResponder:3">
<soapenv:Header>
<urn:LogicalAddress>?</urn:LogicalAddress>
</soapenv:Header>
<soapenv:Body>
<urn1:SearchPersonsForProfileByOrder>
<urn1:query>FROM PersonRecord.PersonalIdentity WHERE Extension IN ("191212121212","201212121212","199801012392");</urn1:query>
<urn1:queryLanguage>SimpleQL</urn1:queryLanguage>
<urn1:profile>P5</urn1:profile>
</urn1:SearchPersonsForProfileByOrder>
</soapenv:Body>
</soapenv:Envelope> |
| Exempelsvar Kodblock |
---|
| <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<SearchPersonsForProfileByOrderResponse
xmlns="urn:riv:strategicresourcemanagement:persons:person:SearchPersonsForProfileByOrderResponder:3"
xmlns:ns2="urn:riv:strategicresourcemanagement:persons:person:3"
xmlns:ns3="urn:riv:strategicresourcemanagement:persons:person:3.1"
xmlns:ns4="urn:riv:itintegration:registry:1">
<orderId>0118-TO64-12381890</orderId>
</SearchPersonsForProfileByOrderResponse>
</soap:Body>
</soap:Envelope> |
|
---|
Exemplet ovan där SearchPersonsForProfileByOrder anropas returneras ett id på max 36 tecken.
...
GetFilesForOrderId returnerar en url som ska användas för att hämta svarsfilen.
Exempelanrop Kodblock |
---|
| <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:riv:itintegration:registry:1"
xmlns:urn1="urn:riv:strategicresourcemanagement:persons:person:GetFilesForOrderIdResponder:3">
<soapenv:Header>
<urn:LogicalAddress>?</urn:LogicalAddress>
</soapenv:Header>
<soapenv:Body>
<urn1:GetFilesForOrderId>
<urn1:orderId>0313-TO69-13130398</urn1:orderId>
</urn1:GetFilesForOrderId>
</soapenv:Body>
</soapenv:Envelope> |
| Exempelsvar Kodblock |
---|
| <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GetFilesForOrderIdResponse xmlns="urn:riv:strategicresourcemanagement:persons:person:GetFilesForOrderIdResponder:3"
xmlns:ns2="urn:riv:strategicresourcemanagement:persons:person:3"
xmlns:ns3="urn:riv:strategicresourcemanagement:persons:person:3.1"
xmlns:ns4="urn:riv:itintegration:registry:1">
<multimedia>
<ns2:id>5c41baaa42d8a229f8bf5989</ns2:id>
<ns2:mediaType>application/zip</ns2:mediaType>
<ns2:reference>https://nationellaPU/api/pu/orderedFile/5c41baaa42d8a229f8bf5989</ns2:reference>
</multimedia>
</GetFilesForOrderIdResponse>
</soap:Body>
</soap:Envelope> |
|
---|
REST
Request | Response |
---|
https://nationellaPU/api/pu/orderedFile/5c41baaa42d8a229f8bf5989 | Statuskod: 200 OK Content-Type: application/zip Content-Disposition: attachment; filename="<filnamn>" Transfer-Encoding: chunked Content: fil (zippat xmldata enligt strategicresourcemanagement:persons:person) Struktur för filnamn (både ZIP och XML): <orderId>_<datum>_<löpnummer>.zip (samt .xml) Exempel: 0622-TO17-09215997_20170622_1.zip Statuskod: 400 BAD_REQUEST Statuskod: 401 UNAUTHORIZED Statuskod: 404 NOT FOUND Statuskod: 500 INTERNAL SERVER ERROR |
Filens innehåll ser ut på samma vis som ett svar från ett vanligt anrop mot SearchPersonsForProfile, specifikationer finns som vanligt i TKB:n.
Exempel på filinnehåll
Expandera |
---|
|
Kodblock |
---|
| <?xml version='1.0' encoding='UTF-8'?>
<ns2:SearchPersonsForProfileResponse xmlns:ns2="urn:riv:strategicresourcemanagement:persons:person:SearchPersonsForProfileResponder:3"
xmlns:ns3="urn:riv:strategicresourcemanagement:persons:person:3"
xmlns:ns4="urn:riv:itintegration:registry:1">
<ns2:personRecord>
<ns3:personalIdentity>
<ns3:root>1.2.752.129.2.1.3.1</ns3:root>
<ns3:extension>198602212394</ns3:extension>
</ns3:personalIdentity>
<ns3:gender>1</ns3:gender>
<ns3:protectedPersonIndicator>false</ns3:protectedPersonIndicator>
<ns3:testIndicator>false</ns3:testIndicator>
<ns3:primaryIdentity>true</ns3:primaryIdentity>
<ns3:version>20190117180851</ns3:version>
<ns3:name>
<ns3:givenNameIndicator>10</ns3:givenNameIndicator>
<ns3:givenName>
<ns3:name>Moltas</ns3:name>
</ns3:givenName>
<ns3:surname>
<ns3:name>Lundgren</ns3:name>
</ns3:surname>
</ns3:name>
<ns3:birth>
<ns3:dateOfBirth>
<ns3:format>YYYY-MM-DD</ns3:format>
<ns3:value>1986-02-21</ns3:value>
</ns3:dateOfBirth>
<ns3:birthAbroad>
<ns3:placeOfBirthAbroad>
<ns3:placeOfBirthAbroad>QUEBEC</ns3:placeOfBirthAbroad>
</ns3:placeOfBirthAbroad>
<ns3:countryOfBirth>KANADA</ns3:countryOfBirth>
</ns3:birthAbroad>
</ns3:birth>
<ns3:populationRegistrationLocality>
<ns3:populationRegistrationDate>
<ns3:format>YYYY-MM-DD</ns3:format>
<ns3:value>2007-08-10</ns3:value>
</ns3:populationRegistrationDate>
<ns3:countyCode>01</ns3:countyCode>
<ns3:municipalityCode>80</ns3:municipalityCode>
<ns3:propertyDesignation>BLÅKLINTEN 3</ns3:propertyDesignation>
<ns3:fictitiousPropertyNumber>0</ns3:fictitiousPropertyNumber>
</ns3:populationRegistrationLocality>
<ns3:populationRegistrationRecord>
<ns3:syncronizationTime>2019-01-17T18:08:51.000+01:00</ns3:syncronizationTime>
<ns3:notificationCase>
<ns3:modificationTime>2007-09-04T01:21:11.000+02:00</ns3:modificationTime>
</ns3:notificationCase>
<ns3:historicalRecords>
<ns3:populationRegistrationLocality>
<ns3:populationRegistrationDate>
<ns3:format>YYYY-MM-DD</ns3:format>
<ns3:value>2007-08-10</ns3:value>
</ns3:populationRegistrationDate>
<ns3:countyCode>01</ns3:countyCode>
<ns3:municipalityCode>80</ns3:municipalityCode>
<ns3:propertyDesignation>BLÅKLINTEN 3</ns3:propertyDesignation>
<ns3:populationRegistrationType>FB</ns3:populationRegistrationType>
</ns3:populationRegistrationLocality>
</ns3:historicalRecords>
</ns3:populationRegistrationRecord>
<ns3:addressInformation>
<ns3:residentialAddress>
<ns3:postalAddress2>KAMMAKARGATAN 3</ns3:postalAddress2>
<ns3:postalCode>11140</ns3:postalCode>
<ns3:city>STOCKHOLM</ns3:city>
</ns3:residentialAddress>
<ns3:nationalKeys>
<ns3:propertyId>100014022</ns3:propertyId>
<ns3:addressPlaceId>491</ns3:addressPlaceId>
<ns3:apartmentId>25605931</ns3:apartmentId>
</ns3:nationalKeys>
</ns3:addressInformation>
<ns3:maritalStatus>
<ns3:maritalStatusCode>OG</ns3:maritalStatusCode>
</ns3:maritalStatus>
<ns3:immigration>
<ns3:immigrationDate>
<ns3:format>YYYY-MM-DD</ns3:format>
<ns3:value>2007-08-10</ns3:value>
</ns3:immigrationDate>
</ns3:immigration>
<ns3:citizenship>
<ns3:citizenshipCountryCode>
<ns3:countryCode>SE</ns3:countryCode>
</ns3:citizenshipCountryCode>
</ns3:citizenship>
</ns2:personRecord>
<ns2:personRecord>
<ns3:personalIdentity>
<ns3:root>1.2.752.129.2.1.3.1</ns3:root>
<ns3:extension>198602072392</ns3:extension>
</ns3:personalIdentity>
<ns3:gender>1</ns3:gender>
<ns3:protectedPersonIndicator>false</ns3:protectedPersonIndicator>
<ns3:testIndicator>false</ns3:testIndicator>
<ns3:primaryIdentity>true</ns3:primaryIdentity>
<ns3:version>20190108110923</ns3:version>
<ns3:name>
<ns3:givenNameIndicator>10</ns3:givenNameIndicator>
<ns3:givenName>
<ns3:name>Jens</ns3:name>
</ns3:givenName>
<ns3:surname>
<ns3:name>Lööf</ns3:name>
</ns3:surname>
</ns3:name>
<ns3:birth>
<ns3:dateOfBirth>
<ns3:format>YYYY-MM-DD</ns3:format>
<ns3:value>1986-02-07</ns3:value>
</ns3:dateOfBirth>
<ns3:birthAbroad>
<ns3:placeOfBirthAbroad>
<ns3:placeOfBirthAbroad>GDANSK</ns3:placeOfBirthAbroad>
</ns3:placeOfBirthAbroad>
<ns3:countryOfBirth>POLEN</ns3:countryOfBirth>
</ns3:birthAbroad>
</ns3:birth>
<ns3:populationRegistrationLocality>
<ns3:populationRegistrationDate>
<ns3:format>YYYY-MM-DD</ns3:format>
<ns3:value>2007-08-22</ns3:value>
</ns3:populationRegistrationDate>
<ns3:countyCode>01</ns3:countyCode>
<ns3:municipalityCode>82</ns3:municipalityCode>
<ns3:propertyDesignation>SLUT 1:10</ns3:propertyDesignation>
<ns3:fictitiousPropertyNumber>0</ns3:fictitiousPropertyNumber>
</ns3:populationRegistrationLocality>
<ns3:populationRegistrationRecord>
<ns3:syncronizationTime>2019-01-08T11:09:23.000+01:00</ns3:syncronizationTime>
<ns3:notificationCase>
<ns3:modificationTime>2007-09-11T10:53:18.000+02:00</ns3:modificationTime>
</ns3:notificationCase>
<ns3:historicalRecords>
<ns3:populationRegistrationLocality>
<ns3:populationRegistrationDate>
<ns3:format>YYYY-MM-DD</ns3:format>
<ns3:value>2007-08-22</ns3:value>
</ns3:populationRegistrationDate>
<ns3:countyCode>01</ns3:countyCode>
<ns3:municipalityCode>82</ns3:municipalityCode>
<ns3:propertyDesignation>SLUT 1:10</ns3:propertyDesignation>
<ns3:populationRegistrationType>FB</ns3:populationRegistrationType>
</ns3:populationRegistrationLocality>
</ns3:historicalRecords>
</ns3:populationRegistrationRecord>
<ns3:addressInformation>
<ns3:residentialAddress>
<ns3:postalAddress2>FINNBODAVÄGEN 2</ns3:postalAddress2>
<ns3:postalCode>13131</ns3:postalCode>
<ns3:city>NACKA</ns3:city>
</ns3:residentialAddress>
<ns3:nationalKeys>
<ns3:propertyId>100294037</ns3:propertyId>
<ns3:addressPlaceId>1259</ns3:addressPlaceId>
<ns3:apartmentId>25717466</ns3:apartmentId>
</ns3:nationalKeys>
<ns3:district>
<ns3:districtCode>101259</ns3:districtCode>
</ns3:district>
</ns3:addressInformation>
<ns3:maritalStatus>
<ns3:maritalStatusCode>OG</ns3:maritalStatusCode>
</ns3:maritalStatus>
<ns3:immigration>
<ns3:immigrationDate>
<ns3:format>YYYY-MM-DD</ns3:format>
<ns3:value>2007-08-22</ns3:value>
</ns3:immigrationDate>
</ns3:immigration>
<ns3:citizenship>
<ns3:citizenshipCountryCode>
<ns3:countryCode>SE</ns3:countryCode>
</ns3:citizenshipCountryCode>
</ns3:citizenship>
</ns2:personRecord>
</ns2:SearchPersonsForProfileResponse> |
|
Hämta uppdateringar
Avsnittet beskriver hur en hämtning görs av alla personposter som förändrats sedan en angiven tidigare tidpunkt.
...
En personpost får ny version inte bara när Skatteverket gör förändringar utan även när andra förändringar sker som t.ex. förändring av kontaktuppgifter via 1177.
Exempelanrop
Kodblock |
---|
breakoutMode | wide |
---|
language | xml |
---|
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:riv:itintegration:registry:1"
xmlns:urn1="urn:riv:strategicresourcemanagement:persons:person:SearchPersonsForProfileByOrderUnrestrictedResponder:3">
<soapenv:Header>
<urn:LogicalAddress>SE165565594230-1000</urn:LogicalAddress>
</soapenv:Header>
<soapenv:Body>
<urn1:SearchPersonsForProfileByOrderUnrestricted>
<urn1:query>FROM PersonRecord WHERE (PopulationRegistrationLocality.CountyCode IN ("05","06","07") OR (PopulationRegistrationLocality.CountyCode = "12" AND PopulationRegistrationLocality.MunicipalityCode = "87")) AND Version >= "20190220095204";</urn1:query>
<urn1:queryLanguage>SimpleQL</urn1:queryLanguage>
<urn1:profile>P5</urn1:profile>
</urn1:SearchPersonsForProfileByOrderUnrestricted>
</soapenv:Body>
</soapenv:Envelope> |
...
Exempel på frågan "ge mig alla personposter av typen personnummer som inte bor i län 23 och som är förändrade sedan sist jag frågade 2022-01-26 kl. 00:00:00 men som också har en historisk post i län 23 som är avslutad sedan sist jag frågade 2022-01-26 kl. 00:00:00".
Exempelanrop
Kodblock |
---|
breakoutMode | wide |
---|
language | xml |
---|
|
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:urn="urn:riv:itintegration:registry:1"
xmlns:urn1="urn:riv:strategicresourcemanagement:persons:person:SearchPersonsForProfileByOrderResponder:3">
<soapenv:Header>
<urn:LogicalAddress>SE165565594230-1000</urn:LogicalAddress>
</soapenv:Header>
<soapenv:Body>
<urn1:SearchPersonsForProfileByOrder>
<urn1:query>FROM PersonRecord WHERE (PopulationRegistrationLocality.CountyCode NOT IN ("23") AND personalidentity.root = "PNR" AND Version > "20220126000000") AND (PopulationRegistrationRecord.HistoricalRecords.HistoricalRegistrations.CountyCode = "23" AND personalidentity.root = "PNR" AND PopulationRegistrationRecord.HistoricalRecords.HistoricalRegistrations.LocalRegistrationEndTime > "20220126000000");</urn1:query>
<urn1:queryLanguage>SimpleQL</urn1:queryLanguage>
<urn1:profile>P5</urn1:profile>
</urn1:SearchPersonsForProfileByOrder>
</soapenv:Body>
</soapenv:Envelope> |
...
I exemplet nedan behöver {versionsnummer} sättas till en version/tidpunkt. I exemplet söks personer med länskod antingen 01 eller 09.
Kodblock |
---|
|
FROM PersonRecord WHERE
Version >= '{versionsnummer}'
AND deregistration.deregistrationreasoncode IS NOT NULL
AND
(populationregistrationlocality.countycode IN ('01', '09')
OR
(PopulationRegistrationRecord.HistoricalRecords.HistoricalRegistrations.countycode IN ('01', '09')
AND
PopulationRegistrationRecord.HistoricalRecords.HistoricalRegistrations.localRegistrationEndTime >= '{versionsnummer}'
)
) |
...