Grensesnittbeskrivelse

Tjenesten tilgjengeliggjør endringer i registeret. Den tilbyr en feed med hendelser. Det er konsumentene som selv styrer sekvens på lesing og hvor mange hendelser man skal lese. Samme hendelser kan leses av flere systemer hos konsumentene og man kan lese hendelser så mange ganger man ønsker. Hendelseslista tilbyr en løs kobling mellom produsent og konsument. Målet er å ha et fleksibelt API for konsumentenebrukerne av Folkeregisterets opplysninger. Konsumentene selv MÅ holde orden på en intern feed-peker som viser hvor langt man har lest i feeden.

I rettighetspakken "offentlig med hjemmel" kan man i tillegg til å lese feeden, også lese innhold i en enkelt hendelse.

Hendelseslisten kan navigeres gjennom sekvensnummer. Sidestørrelsen som returneres er fast satt til 1000.

Tjenesten er naturlig å se i sammenheng med tjenesten oppslag. I feeden gis en peker til et persondokument. Dette er en nøkkel man kan bruke til å slå opp personen slik han så ut etter at hendelsen inntraff. Man kan også slå opp personen basert på fødsels- eller d-nummer. I enkelte rettighetspakker vil hendelsen kun inneholde en folkeregisteridentifikator.

De ulike tjenestene er dokumentert på swaggerhub.

Feed er i henhold til Atom spesifikasjonen.

Endepunkter

For oppbygging av endepunkter se her.

Eksempler

Oppslag i hendelsesliste:
https://folkeregisteret-api-ekstern.sits.no/folkeregisteret/offentlig-med-hjemmel/api/v1/hendelser/feed/?seq=1

Oppslag på en hendelse:
https://folkeregisteret-api-ekstern.sits.no/folkeregisteret/offentlig-med-hjemmel/api/v1/hendelser/7d9c19b1-4125-4968-b4dc-09cbaf3ac11f

Oppslag på xsd:
https://folkeregisteret-api-ekstern.sits.no/folkeregisteret/offentlig-med-hjemmel/api/v1/hendelser/xsd

Eksempel på curl-kommando som kan benyttes for å teste tjenesten:
curl -v -k -X HEAD 'https://folkeregisteret-api-konsument.sits.no/folkeregisteret/api/privat/v1/hendelser/feed' -H 'accept: application/json' -H 'Content-Type: application/json' -H "Authorization: Bearer $(ditt_token)"

Eksempel på bulkoppslag på hendelsesdokumenter: $ curl -k -v -X POST -d '{"dokumentidentifikator": ["f5446d4445738d5a3dad02276daf8a1f","f5446d4445738d5a3dad02276daf8a1f"]}' -H "Content-Type: application/json" "https://folkeregisteret-api-konsument.sits.no/folkeregisteret/offentlig-med-hjemmel/api/v1/hendelser/bulkoppslag/" -H "Authorization: Bearer $(ditt_token)"

Headere

Accept

Verdien i denne headeren angir ønsket dataformat. Det er støtte for application/json (default) og application/xml

Content-Type

For bulkoppslag gjøres det POST-requester, disse forventer at headeren Content-Type er satt. Det er støtte for application/json og application/xml (default).

If-None-Match

Denne verdien skal settes lik ETag-header fra siste respons fra tjenesten. Se ETag for mer informasjon om bruk av ETag.

Eksempler på respons fra tjenesten

Hendelsesliste - format JSON


    [
      {
        "sekvensnummer": 1,
        "hendelse": {
          "folkeregisteridentifikator": "69028400470",
          "hendelsetype": "endringIIdentitetsgrunnlag",
          "hendelsesdokument": "55591b51b20518f4f22bf1edd6aa9f25",
          "persondokument": "8f475708c3d855defca884f4af6e49ae",
          "ajourholdstidspunkt": "2017-06-20T09:26:03.689+02:00"
        }
      },
      {
        "sekvensnummer": 2,
        "hendelse": {
          "folkeregisteridentifikator": "69028400470",
          "hendelsetype": "endringIAnnenIdentifikasjon",
          "hendelsesdokument": "1120bea688fb14a292c244592a1aed76",
          "persondokument": "5c3afb4f5afd2fcfbe2f90a6560903a0",
          "ajourholdstidspunkt": "2017-06-20T09:26:03.689+02:00"
        }
      }
    ]
    
    

Hendelsesliste - format ATOM/XML


    <?xml version='1.0' encoding='UTF-8'?>
    <feed xmlns="http://www.w3.org/2005/Atom">
      <id>http://folkeregisteret.api.skatteetaten.no/folkeregisteret/offentlig-med-hjemmel/api/v1/hendelser/feed</id>
      <title>Offentlig hendelsesliste</title>
      <author>
        <name>Skatteetaten</name>
      </author>
      <link rel='self' type='application/atom+xml' 
         href='http://folkeregisteret.api.skatteetaten.no/folkeregisteret/offentlig-med-hjemmel/api/v1/hendelser/feed?seq=1'/>
      <link rel='first' type='application/atom+xml' 
         href='http://folkeregisteret.api.skatteetaten.no/folkeregisteret/offentlig-med-hjemmel/api/v1/hendelser/feed?seq=0'/>
      <link rel='next' type='application/atom+xml' 
         href='http://folkeregisteret.api.skatteetaten.no/folkeregisteret/offentlig-med-hjemmel/api/v1/hendelser/feed?seq=1001'/>
      <updated>2017-11-13T13:40:08.485Z</updated>
      <entry xmlns:ns2="folkeregisteret:tilgjengeliggjoering:hendelse:v1">
            <title>Hendelse</title>
            <id>tag:skatteetaten.no,2017-10-10:folkeregisteret:tilgjengeliggjoering:hendelse:v1:1</id>
            <updated>2017-10-10T14:06:57.59Z</updated>
            <content>
                  <ns2:lagretHendelse>
                        <ns2:sekvensnummer>1</ns2:sekvensnummer>
                        <ns2:hendelse>
                              <ns2:folkeregisteridentifikator>69028400470</ns2:folkeregisteridentifikator>
                              <ns2:hendelsetype>endringIIdentitetsgrunnlag</ns2:hendelsetype>
                              <ns2:hendelsesdokument>55591b51b20518f4f22bf1edd6aa9f25</ns2:hendelsesdokument>
                              <ns2:persondokument>8f475708c3d855defca884f4af6e49ae</ns2:persondokument>
                              <ns2:ajourholdstidspunkt>2017-06-20T09:26:03.689+02:00</ns2:ajourholdstidspunkt>
                        </ns2:hendelse>
                  </ns2:lagretHendelse>
            </content>
      </entry>
    
      <entry xmlns:ns2="folkeregisteret:tilgjengeliggjoering:hendelse:v1">
            <title>Hendelse</title>
            <id>tag:skatteetaten.no,2017-10-10:folkeregisteret:tilgjengeliggjoering:hendelse:v1:2</id>
            <updated>2017-10-10T14:06:57.612Z</updated>
            <content>
                  <ns2:lagretHendelse>
                        <ns2:sekvensnummer>2</ns2:sekvensnummer>
                        <ns2:hendelse>
                              <ns2:folkeregisteridentifikator>69028400470</ns2:folkeregisteridentifikator>
                              <ns2:hendelsetype>endringIAnnenIdentifikasjon</ns2:hendelsetype>
                              <ns2:hendelsesdokument>1120bea688fb14a292c244592a1aed76</ns2:hendelsesdokument>
                              <ns2:persondokument>5c3afb4f5afd2fcfbe2f90a6560903a0</ns2:persondokument>
                              <ns2:ajourholdstidspunkt>2017-06-20T09:26:03.689+02:00</ns2:ajourholdstidspunkt>
                        </ns2:hendelse>
                  </ns2:lagretHendelse>
            </content>
      </entry>
    </feed>
    
    

Hendelsesdokument for en endring - format JSON


    {
      "dokumentidentifikator": "1120bea688fb14a292c244592a1aed76",
      "skjemaversjon": "1.0",
      "hendelse": {
        "folkeregisteridentifikator": "16117548867",
        "hendelsestype": "endringIAnnenIdentifikasjon",
        "ajourholdstidspunkt": "2014-01-02T00:00:00Z",
        "egenskapshendelse": [
          {
            "annenIdentifikasjon": {
              "gyldighetstidspunkt": "2017-04-18T10:32:18.312+02:00",
              "kilde": "kilde",
              "aarsak": "kontroll",
              "identifikasjonsnummer": "1234567890",
              "identifikasjonsnummertype": "utenlandskIdentifikasjonsnummer",
              "utstederland": "SWE"
            },
            "entitet": "annenIdentifikasjon",
            "entitetsendring": "registrereNy"
          }
        ]
      }
    }
    

Hendelsesdokument for en korrigering - format JSON


    {
      "dokumentidentifikator": "eb73af9403b0f5702e802ad4f9b8ca4e",
      "skjemaversjon": "1.0",
      "hendelse": {
        "folkeregisteridentifikator": "16117548867",
        "hendelsestype": "endringIIdentitetsgrunnlag",
        "ajourholdstidspunkt": "2014-01-04T00:00:00Z",
        "egenskapshendelse": [
          {
            "identitetsgrunnlag": {
              "gyldighetstidspunkt": "2017-04-19T10:32:18.294+02:00",
              "kilde": "korrigert-gjeldende-kilde",
              "identitetsgrunnlagstatus": "kontrollert",
              "dokumentgrunnlag": []
            },
            "entitet": "identitetsgrunnlag",
            "entitetsendring": "korrigere"
          }
        ]
      }
    }
    

Hendelsesdokument for en annullering - format JSON


    {
      "dokumentidentifikator": "c0e054f025e56d63b14f91fbb5abcb95",
      "skjemaversjon": "1.0",
      "hendelse": {
        "folkeregisteridentifikator": "16117548867",
        "hendelsestype": "endringIAnnenIdentifikasjon",
        "ajourholdstidspunkt": "2014-01-05T00:00:00Z",
        "egenskapshendelse": [
          {
            "entitet": "annenIdentifikasjon",
            "entitetsendring": "annullere"
          }
        ]
      }
    }
    

Hendelsesdokument for en korrigering av historisk informasjon - format JSON

NB: Denne entitetsendringen er ikke benyttet. Det er pt ikke støtte for å sette en entitetsendring til "korrigereHistorisk".


    {
      "dokumentidentifikator": "d1428661e6f2c5c158bf954facdd3ba2",
      "skjemaversjon": "1.0",
      "hendelse": {
        "folkeregisteridentifikator": "16117548867",
        "hendelsestype": "endringIIdentitetsgrunnlag",
        "ajourholdstidspunkt": "2014-01-04T00:00:00Z",
        "egenskapshendelse": [
          {
            "entitet": "identitetsgrunnlag",
            "entitetsendring": "korrigereHistorisk"
          }
        ]
      }
    }
    

Statuskode 304

Statuskode 304 (not modified) returneres hvis kallet til tjenesten inkluderte headeren If-None-Match og denne er lik den aktuelle ETag for etterspurte ressurs. Det betyr at det ikke er kommet noen nye innslag på feeden siden forrige kall.

Feilkoder

Hvis statuskode hverken er 200 eller 304, men man får svar fra applikasjonen, så returneres en datastruktur som ser slik ut


    {
      "kode": "FREG-001",
      "melding": "Feil i tjenesten. Vennligst prøv igjen seinere."
    }
    
HTTP Statuskode Forklaring
400 Feil i mottatte data - spesifiseres i retur.
401 Autentiseringsinformasjon mangler
403 Virksomheten er autentisert men mangler autorisasjon for den angitte tjenesten
404 Feil uri brukt.
406 Oppgitt Accept-header inneholder ikke 'application/atom+xml', 'application/xml' eller 'application/json', dersom Content-Type er satt ved bulkoppslag så vil returen være lik Content-Type dersom Accept-headeren er tom.
429 For mange kall er gjort på for kort tid. Vent i minimum antall ms. angitt i Retry-After-header før neste request utføres
500 Feil i tjenesten. Vennligst prøv igjen seinere.