OTP-API
API utviklet for å gi pensjonsinnretninger tilgang til informasjon i AA-registeret.
Generell informasjon om onboarding er tilgjengelig her: DSOP dokumentasjon
Testdata
Testdata fra Aa-registeret kan nå søkes opp i Tenor. Les mer om Tenor på Skatteetatens github-sider her
Miljøer
MERK: Dersom dere tidligere kontaktet oss via vår API-Portal, se Migreringsguide for API-Portalen.
APIet er tilgjengelig på følgende adresser:
Test: https://arbeidsforhold-gw.ekstern.dev.nav.no/aareg/v1/arbeidsforhold/otp/graphql
Produksjon: https://arbeidsforhold-gw.nav.no/aareg/v1/arbeidsforhold/otp/graphql
MERK: Testmiljøet kan periodevis være utilgjengelig grunnet kodeendringer og testing. Vi prøver å begrense dette til et minimum.
Skjema
GraphQL-skjema er tilgengelig for nedlasting her.
Det kan også inspiseres ved bruk av Introspection.
Tilgang
For å benytte API’et må konsumenten være registrert hos Maskinporten.
Maskinporten-scope: nav:aareg/v1/arbeidsforhold/otp
Vi sjekker også avtalen i Tjenestepensjonsavtale API’et
Se for øvrig egen side på nav.no for søknad om tilgang til Aa-registeret.
Tjenester
Ping og helsesjekk
Etter utfasing av API-Portalen er helsesjekk dessverre utilgjengelig. Vi jobber med ny løsning for dette.
Arbeidsforholdoversikter pr opplysningspliktig
Tjeneste for å hente arbeidsforholdoversikter tilhørende en gitt opplysningspliktig og periode.
Denne returnerer et minimum av opplysninger tilknyttet et arbeidsforhold:
- Arbeidsforholdets ID
- Arbeidstakers ID
- Yrke (gjeldende)
- Hisoriske IDer for arbeidsforholdet
- Når arbeidsforholdet sist ble endret
Spørring (request)
query($opplysningspliktigId: ID!, $ansattFraMaaned: String!, $ansattTilMaaned: String) {
finnArbeidsforholdoversikterPrOpplysningspliktig(opplysningspliktigId: $opplysningspliktigId, ansattFraMaaned: $ansattFraMaaned, ansattTilMaaned: $ansattTilMaaned) {
arbeidsforholdoversikter {
id
arbeidstaker {
ident
}
yrke {
kode
beskrivelse
}
idHistorikk {
id
}
sistEndret
sjekksum
}
}
}
Variabler
Navn | Beskrivelse | Type | Valgfri | Eksempelverdi |
---|---|---|---|---|
opplysningspliktigId | Organisasjonsnummeret til den opplysningspliktige (hovedenheten) | String | Nei | 81549300 |
ansattFraMaaned | Angir tidligste dato hvor det foreligger et ansettelsesforhold | String | Nei | 2020-01 |
ansattTilMaaned | Angir seneste dato hvor det foreligger et ansettelsesforhold | String | Ja | 2020-01 |
Eksempel (request: spørring med variabler)
Merk:
- opplysningspliktigId er maskert.
- JSON støtter ikke en streng over flere linjer og query feltet må derfor ligge i en linje.
{
"query": "query($opplysningspliktigId: ID!, $ansattFraMaaned: String!, $ansattTilMaaned: String) {finnArbeidsforholdoversikterPrOpplysningspliktig(opplysningspliktigId: $opplysningspliktigId, ansattFraMaaned: $ansattFraMaaned, ansattTilMaaned: $ansattTilMaaned){arbeidsforholdoversikter{id arbeidstaker{ident} idHistorikk{id} sistEndret}}}",
"variables": {
"opplysningspliktigId": "123456789",
"ansattFraMaaned": "2020-01",
"ansattTilMaaned": "2020-02"
}
}
Eksempler (response)
Eksempel #1
- arbeidstaker (1)
- arbeidsforholdoversikt (2)
- arbeidssted (2) - implisitt
{
"data": {
"finnArbeidsforholdoversikterPrOpplysningspliktig": {
"arbeidsforholdoversikter": [
{
"id": "ARBEIDSFORHOLD_ID_1",
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"yrke": {
"kode": "5221126",
"beskrivelse": "BUTIKKMEDARBEIDER"
},
"idHistorikk": [],
"sistEndret": "2020-01-06T08:58:21",
"sjekksum": "DMS+X8mCVqHHWsIN50BMWQ=="
},
{
"id": "ARBEIDSFORHOLD_ID_3",
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"yrke": {
"kode": "5221126",
"beskrivelse": "BUTIKKMEDARBEIDER"
},
"idHistorikk": [
{
"id": "ARBEIDSFORHOLD_ID_2"
}
],
"sistEndret": "2020-01-06T08:57:27",
"sjekksum": "HmWIKuHAdKmRmPeAiAm5dA=="
}
]
}
}
}
Eksempel #2
- arbeidstaker (1)
- arbeidsforholdoversikt (2)
- arbeidssted (1) - implisitt
- ansettelsesperiode (2, ikke-overlappende) - implisitt
{
"data": {
"finnArbeidsforholdoversikterPrOpplysningspliktig": {
"arbeidsforholdoversikter": [
{
"id": "ARBEIDSFORHOLD_ID_1",
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"yrke": {
"kode": "5221126",
"beskrivelse": "BUTIKKMEDARBEIDER"
},
"idHistorikk": [],
"sistEndret": "2020-04-17T16:36:32",
"sjekksum": "MkPDiQKf4ODksDGQCRhJ1A=="
},
{
"id": "ARBEIDSFORHOLD_ID_3",
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"yrke": {
"kode": "5221126",
"beskrivelse": "BUTIKKMEDARBEIDER"
},
"idHistorikk": [
{
"id": "ARBEIDSFORHOLD_ID_2"
}
],
"sistEndret": "2020-04-17T16:36:32",
"sjekksum": "gLqIo1lg5PYXSHHE03OjEw=="
}
]
}
}
}
Arbeidsforhold pr Arbeidstaker
Tjeneste for å hente detaljer for arbeidsforholdene til en gitt arbeidstaker, opplysningspliktig og periode.
Spørring (request)
query($opplysningspliktigId: ID!, $arbeidstakerId: ID!, $ansattFraMaaned: String!, $ansattTilMaaned: String) {
finnArbeidsforholdPrArbeidstaker(opplysningspliktigId: $opplysningspliktigId, arbeidstakerId: $arbeidstakerId, ansattFraMaaned: $ansattFraMaaned, ansattTilMaaned: $ansattTilMaaned) {
arbeidsforhold {
id
type {
kode
beskrivelse
}
arbeidstaker {
ident
}
arbeidssted {
type
ident
}
opplysningspliktig {
type
ident
}
ansettelsesperiode {
startdato
sluttdato
sluttaarsak {
kode
beskrivelse
}
varsling {
kode
beskrivelse
}
}
ansettelsesdetaljer {
type
arbeidstidsordning {
kode
beskrivelse
}
ansettelsesform {
kode
beskrivelse
}
yrke {
kode
beskrivelse
}
antallTimerPrUke
avtaltStillingsprosent
sisteStillingsprosentendring
sisteLoennsendring
rapporteringsmaaneder {
fra
til
}
}
permisjoner {
id
type {
kode
beskrivelse
}
startdato
sluttdato
prosent
varsling {
kode
beskrivelse
}
}
permitteringer {
id
type {
kode
beskrivelse
}
startdato
sluttdato
prosent
varsling {
kode
beskrivelse
}
}
timerMedTimeloenn {
antall
startdato
sluttdato
rapporteringsmaaned
}
idHistorikk {
id
}
varsler {
entitet
varsling {
kode
beskrivelse
}
}
uuid
opprettet
sistBekreftet
sistEndret
sjekksum
}
}
}
Eksempler (response)
Eksempel #1
- ordinært arbeidsforhold
- ansettelsesperiode uten varsling
- ansettelsesdetaljer (1)
- permisjoner (0)
- permitteringer (0)
- timer-med-timelønn (0)
- arbeidsforhold-id-historikk (0)
- varsler (0)
{
"data": {
"finnArbeidsforholdPrArbeidstaker": {
"arbeidsforhold": [
{
"id": "ARBEIDSFORHOLD_ID",
"type": {
"kode": "ordinaertArbeidsforhold",
"beskrivelse": "Ordinært arbeidsforhold"
},
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"arbeidssted": {
"type": "Underenhet",
"ident": "UNDERENHET_ORG_NR"
},
"opplysningspliktig": {
"type": "Hovedenhet",
"ident": "HOVEDENHET_ORG_NR"
},
"ansettelsesperiode": {
"startdato": "2019-03-01",
"sluttdato": null,
"sluttaarsak": null,
"varsling": null
},
"ansettelsesdetaljer": [
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": null,
"yrke": {
"kode": "5221126",
"beskrivelse": "BUTIKKMEDARBEIDER"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 15.0,
"sisteStillingsprosentendring": null,
"sisteLoennsendring": "2019-03-01",
"rapporteringsmaaneder": {
"fra": "2019-04",
"til": null
}
}
],
"permisjoner": [],
"permitteringer": [],
"timerMedTimeloenn": [],
"idHistorikk": [],
"varsler": [],
"uuid": "37317576-979a-406b-9127-2c53b0111d1a",
"opprettet": "2019-04-09T11:03:28.690",
"sistBekreftet": "2019-04-09T11:03:28",
"sistEndret": "2020-04-17T16:36:33",
"sjekksum": "Cnh87i4hMmaAz8IoXirRGQ=="
}
]
}
}
}
Eksempel #2
- ordinært arbeidsforhold
- ansettelsesperiode med sluttårsak
- ansettelsesdetaljer (2)
- permisjoner (0)
- permitteringer (0)
- timer-med-timelønn (0)
- arbeidsforhold-id-historikk (0)
- varsler (0)
{
"data": {
"finnArbeidsforholdPrArbeidstaker": {
"arbeidsforhold": [
{
"id": "ARBEIDSFORHOLD_ID",
"type": {
"kode": "ordinaertArbeidsforhold",
"beskrivelse": "Ordinært arbeidsforhold"
},
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"arbeidssted": {
"type": "Underenhet",
"ident": "UNDERENHET_ORG_NR"
},
"opplysningspliktig": {
"type": "Hovedenhet",
"ident": "HOVEDENHET_ORG_NR"
},
"ansettelsesperiode": {
"startdato": "2019-03-14",
"sluttdato": "2019-04-07",
"sluttaarsak": {
"kode": "arbeidstakerHarSagtOppSelv",
"beskrivelse": "Fant ingen beskrivelse som var gyldig 01.09.2017"
},
"varsling": null
},
"ansettelsesdetaljer": [
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": null,
"yrke": {
"kode": "3493104",
"beskrivelse": "SKOLEBIBLIOTEKAR"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 45.33,
"sisteStillingsprosentendring": "2019-03-21",
"sisteLoennsendring": "2019-03-14",
"rapporteringsmaaneder": {
"fra": "2019-03",
"til": null
}
},
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": null,
"yrke": {
"kode": "3493104",
"beskrivelse": "SKOLEBIBLIOTEKAR"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 40.0,
"sisteStillingsprosentendring": "2019-03-14",
"sisteLoennsendring": "2019-03-14",
"rapporteringsmaaneder": {
"fra": "2019-01",
"til": "2019-02"
}
}
],
"permisjoner": [],
"permitteringer": [],
"timerMedTimeloenn": [],
"idHistorikk": [],
"varsler": [],
"uuid": "2e3038bf-442a-479f-9649-b0abfd17a410",
"opprettet": "2019-04-05T08:44:53.807",
"sistBekreftet": "2019-04-05T14:57:44",
"sistEndret": "2019-10-14T13:10:57",
"sjekksum": "JJuXtWYFviY1QakuXGtt2w=="
}
]
}
}
}
Eksempel #3
- ordinært arbeidsforhold
- ansettelsesperiode uten varsling
- ansettelsesdetaljer (1)
- permisjoner (1)
- permitteringer (1)
- timer-med-timelønn (0)
- arbeidsforhold-id-historikk (0)
- varsler (0)
{
"data": {
"finnArbeidsforholdPrArbeidstaker": {
"arbeidsforhold": [
{
"id": "ARBEIDSFORHOLD_ID",
"type": {
"kode": "ordinaertArbeidsforhold",
"beskrivelse": "Ordinært arbeidsforhold"
},
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"arbeidssted": {
"type": "Underenhet",
"ident": "UNDERENHET_ORG_NR"
},
"opplysningspliktig": {
"type": "Hovedenhet",
"ident": "HOVEDENHET_ORG_NR"
},
"ansettelsesperiode": {
"startdato": "2018-11-01",
"sluttdato": null,
"sluttaarsak": null,
"varsling": null
},
"ansettelsesdetaljer": [
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": null,
"yrke": {
"kode": "1319123",
"beskrivelse": "DAGLIG LEDER (FÆRRE ENN 10 ANSATTE - REHABILITERING)"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 100.0,
"sisteStillingsprosentendring": null,
"sisteLoennsendring": "2018-11-01",
"rapporteringsmaaneder": {
"fra": "2019-03",
"til": null
}
}
],
"permisjoner": [
{
"id": "PERMISJON_ID",
"type": {
"kode": "permisjonMedForeldrepenger",
"beskrivelse": "Permisjon med foreldrepenger"
},
"startdato": "2018-11-01",
"sluttdato": "2019-03-14",
"prosent": 100.0,
"varsling": null
}
],
"permitteringer": [
{
"id": "PERMITTERING_ID",
"type": {
"kode": "permittering",
"beskrivelse": "Permittering"
},
"startdato": "2019-03-15",
"sluttdato": null,
"prosent": 100.0,
"varsling": null
}
],
"timerMedTimeloenn": [],
"idHistorikk": [],
"varsler": [],
"uuid": "3a80935e-97d7-4d69-bfb8-f7c1185c121a",
"opprettet": "2019-03-14T13:57:05.180",
"sistBekreftet": "2019-04-04T13:19:31",
"sistEndret": "2019-10-10T10:52:46",
"sjekksum": "3ttAs54geMOCmhJOZcmbHA=="
}
]
}
}
}
Eksempel #4
- ordinært arbeidsforhold
- ansettelsesperiode med varsling
- ansettelsesdetaljer (1)
- permisjoner (0)
- permitteringer (0)
- timer-med-timelønn (0)
- arbeidsforhold-id-historikk (1)
- varsler (2)
{
"data": {
"finnArbeidsforholdPrArbeidstaker": {
"arbeidsforhold": [
{
"id": "ARBEIDSFORHOLD_ID",
"type": {
"kode": "ordinaertArbeidsforhold",
"beskrivelse": "Ordinært arbeidsforhold"
},
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"arbeidssted": {
"type": "Underenhet",
"ident": "UNDERENHET_ORG_NR"
},
"opplysningspliktig": {
"type": "Hovedenhet",
"ident": "HOVEDENHET_ORG_NR"
},
"ansettelsesperiode": {
"startdato": "2018-01-01",
"sluttdato": "2018-11-30",
"sluttaarsak": null,
"varsling": {
"kode": "IBARBG",
"beskrivelse": "Sluttdato satt av NAV. Arbeidsforholdet har ikke blitt bekreftet. Sluttdato er siste dato i kalendermåneden som arbeidsforholdet er bekreftet."
}
},
"ansettelsesdetaljer": [
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": null,
"yrke": {
"kode": "1210160",
"beskrivelse": "STYREMEDLEM"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 100.0,
"sisteStillingsprosentendring": "2018-01-01",
"sisteLoennsendring": "2018-01-01",
"rapporteringsmaaneder": {
"fra": "2018-01",
"til": null
}
}
],
"permisjoner": [],
"permitteringer": [],
"timerMedTimeloenn": [],
"idHistorikk": [
{
"id": "HISTORISK_ARBEIDSFORHOLD_ID"
}
],
"varsler": [
{
"entitet": "Arbeidsforhold",
"varsling": {
"kode": "MATCH",
"beskrivelse": "Arbeidsforholdet er matchet av NAV og har en historikk for arbeidsforhold-id"
}
},
{
"entitet": "Ansettelsesperiode",
"varsling": {
"kode": "IBARBG",
"beskrivelse": "Sluttdato satt av NAV. Arbeidsforholdet har ikke blitt bekreftet. Sluttdato er siste dato i kalendermåneden som arbeidsforholdet er bekreftet."
}
}
],
"uuid": "a1c61883-bfb9-4cc8-a875-398402317da6",
"opprettet": "2019-02-27T13:02:30.970",
"sistBekreftet": "2019-03-06T14:56:29",
"sistEndret": "2019-03-09T18:12:06",
"sjekksum": "2sabymIPZNa7oHOPySbRyQ=="
}
]
}
}
}
Eksempel #5
- maritimt arbeidsforhold
- ansettelsesperiode uten varsling
- ansettelsesdetaljer (1)
- permisjoner (0)
- permitteringer (0)
- timer-med-timelønn (3)
- arbeidsforhold-id-historikk (0)
- varsler (0)
{
"data": {
"finnArbeidsforholdPrArbeidstaker": {
"arbeidsforhold": [
{
"id": "ARBEIDSFORHOLD_ID",
"type": {
"kode": "maritimtArbeidsforhold",
"beskrivelse": "Maritimt arbeidsforhold"
},
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"arbeidssted": {
"type": "Underenhet",
"ident": "UNDERENHET_ORG_NR"
},
"opplysningspliktig": {
"type": "Hovedenhet",
"ident": "HOVEDENHET_ORG_NR"
},
"ansettelsesperiode": {
"startdato": "2007-03-01",
"sluttdato": null,
"sluttaarsak": null,
"varsling": null
},
"ansettelsesdetaljer": [
{
"type": "Maritim",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": null,
"yrke": {
"kode": "3141113",
"beskrivelse": "MASKINSJEF"
},
"antallTimerPrUke": 37.0,
"avtaltStillingsprosent": 100.0,
"sisteStillingsprosentendring": "2019-01-01",
"sisteLoennsendring": "2019-01-01",
"rapporteringsmaaneder": {
"fra": "2019-01",
"til": null
}
}
],
"permisjoner": [],
"permitteringer": [],
"timerMedTimeloenn": [
{
"antall": 45.0,
"startdato": null,
"sluttdato": null,
"rapporteringsmaaned": "2019-01"
},
{
"antall": 27.0,
"startdato": null,
"sluttdato": null,
"rapporteringsmaaned": "2019-02"
},
{
"antall": 15.0,
"startdato": null,
"sluttdato": null,
"rapporteringsmaaned": "2019-03"
}
],
"idHistorikk": [],
"varsler": [],
"uuid": "b383adab-114a-46a5-b192-8689e7902c37",
"opprettet": "2019-02-08T12:29:55.673",
"sistBekreftet": "2019-04-03T14:36:04",
"sistEndret": "2019-09-03T15:38:07",
"sjekksum": "PHkXIAvma7CA+LcagSbPRg=="
}
]
}
}
}
Filtrering
For å ikke utlevere data som er utenfor perioden det spørres på utfører vi filtrering på resultatsettet.
Vi benytter ansattFraMaaned og ansattTilMaaned i GraphQL-spørringen som grunnlag for filtreringen. Egne regler gjelder for filtrering av Ansettelsesdetaljer, se detaljer nedenfor.
Dersom ansattTilMaaned ikke er oppgitt settes denne til nåværende måned.
Arbeidsforhold
For at et arbeidsforhold skal være en del av resultatsettet må det være overlapp mellom søkeperioden og ansettelsesperiodens start- og sluttdato.
Dersom sluttdato for ansettelsesperioden ikke er satt er arbeidsforholdet aktivt og alle spørringer som har intervall etter ansettelsesperiodens startdato inkluderes.
Ansettelsesdetaljer
Et arbeidsforhold kan bestå av en rekke ansettelsesdetaljer.
Eksempelvis vil det legges til nytt objekt dersom stillingsprosenten endres.
Tjenesten returnerer alle ansettelsesdetaljer som er rapportert fra og med ansattFraMaaned. Ansettelseasdetaljer for rapporteringsmåneder forut for ansattFraMaaned returneres ikke (se eksempel i tabell).
Det kan oppstå situasjoner hvor ansettelsesperioden har startdato før rapporteringsmånedenes fra-dato. I disse situasjonene returnerer vi de tidligste rapporterte ansettelsesdetaljene.
Permisjoner og Permitteringer
Filtreres basert på start- og sluttdato.
Dersom sluttdato er null er permisjonen/permitteringen aktiv og vil inkluderes i alle spørringer som har intervall etter startdato for permisjonen/permitteringen.
Timer med timelønn
Siden start- og sluttdato er ikke pålagt å oppgi ved rapportering utføres filtrering basert på rapporteringsmåned.
Eksempler
Eksempel 1
Datagrunnlag
I AA-registeret har vi registrert følgende opplysninger om et arbeidsforhold:
{
"id": "ARBEIDSFORHOLD_ID",
"type": {
"kode": "ordinaertArbeidsforhold",
"beskrivelse": "Ordinært arbeidsforhold"
},
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"arbeidssted": {
"type": "Underenhet",
"ident": "UNDERENHET_ORG_NR"
},
"opplysningspliktig": {
"type": "Hovedenhet",
"ident": "HOVEDENHET_ORG_NR"
},
"ansettelsesperiode": {
"startdato": "2019-11-01",
"sluttdato": null,
"sluttaarsak": null,
"varsling": null
},
"ansettelsesdetaljer": [
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": {
"kode": "fast",
"beskrivelse": "Fast ansettelse"
},
"yrke": {
"kode": "1228103",
"beskrivelse": "SJEFSYKEPLEIER"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 100.0,
"sisteStillingsprosentendring": "2020-01-01",
"sisteLoennsendring": "2019-11-01",
"rapporteringsmaaneder": {
"fra": "2020-02",
"til": null
}
},
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": {
"kode": "fast",
"beskrivelse": "Fast ansettelse"
},
"yrke": {
"kode": "1228103",
"beskrivelse": "SJEFSYKEPLEIER"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 50.0,
"sisteStillingsprosentendring": null,
"sisteLoennsendring": "2019-11-01",
"rapporteringsmaaneder": {
"fra": "2019-11",
"til": "2020-01"
}
}
],
"permisjoner": [
{
"id": "PERMISJON_ID",
"type": {
"kode": "permisjonMedForeldrepenger",
"beskrivelse": "Permisjon med foreldrepenger"
},
"startdato": "2020-01-20",
"sluttdato": "2020-01-31",
"prosent": 100.0,
"varsling": null
},
{
"id": "PERMISJON_ID",
"type": {
"kode": "velferdspermisjon",
"beskrivelse": "Velferdspermisjon"
},
"startdato": "2020-02-20",
"sluttdato": "2020-03-01",
"prosent": 100.0,
"varsling": null
}
],
"permitteringer": [
{
"id": "PERMITTERING_ID",
"type": {
"kode": "permittering",
"beskrivelse": "Permittering"
},
"startdato": "2020-03-15",
"sluttdato": null,
"prosent": 100.0,
"varsling": null
}
],
"timerMedTimeloenn": [
{
"antall": 35.0,
"startdato": null,
"sluttdato": null,
"rapporteringsmaaned": "2019-11"
},
{
"antall": 40.0,
"startdato": null,
"sluttdato": null,
"rapporteringsmaaned": "2019-12"
}
],
"idHistorikk": [],
"varsler": [],
"opprettet": "2019-11-16T16:21:27.213",
"sistBekreftet": "2020-09-22T16:22",
"sistEndret": "2020-04-02T16:34:58"
}
For å enklere illustrere eksemplene viser tabellen under elementene som inngår i arbeidsforholdet.
Objekt | Startdato | Sluttdato | Rapporteringsmåned | Rapportert-fra | Rapportert-til |
---|---|---|---|---|---|
Ansettelsesperiode | 01.11.2019 | null | - | - | - |
Ansettelsesdetaljer (1) | - | - | - | 2019-11 | 2020-01 |
Ansettelsesdetaljer (2) | - | - | - | 2020-02 | null |
Permisjon (1) | 10.01.2020 | 20.01.2020 | - | - | - |
Permisjon (2) | 20.02.2020 | 01.03.2020 | - | - | - |
Permittering (1) | 15.03.2020 | null | - | - | - |
Timer-med-timelønn (1) | null | null | 2019-11 | - | - |
Timer-med-timelønn (2) | null | null | 2019-12 | - | - |
Scenario 1
Formål
Ønsker å hente data fra første måned.
Parametre i query
ansattFraMaaned (yyyy-MM) | ansattTilMaaned (yyyy-MM) |
---|---|
2019-11 | 2019-11 |
Svar fra tjenesten
Objekt | Inkluderes | Forklaring |
---|---|---|
Ansettelsesperiode | Ja | startdato er før ansattTilMaaned og sluttdato er null og dermed etter ansattFraMaaned |
Ansettelsesdetaljer (1) | Ja | rapportert-fra er lik ansattTilMaaned og rapportert-til er null og dermed etter ansattFraMaaned |
Ansettelsesdetaljer (2) | Nei | rapportert-fra er etter ansattTilMaaned |
Permisjon (1) | Nei | startdato er etter ansattTilMaaned |
Permisjon (2) | Nei | startdato er etter ansattTilMaaned |
Permittering (1) | Nei | startdato er etter ansattTilMaaned |
Timer-med-timelønn (1) | Ja | rapporteringsmåned er lik ansattTilMaaned og ansattFraMaaned |
Timer-med-timelønn (2) | Nei | rapporteringsmåned er etter ansattTilMaaned |
Scenario 2
Formål
Ønsker å hente data fra nåværende måned.
Parametre i query
ansattFraMaaned | ansattTilMaaned |
---|---|
2020-10 | 2020-10 |
Svar fra tjenesten
Objekt | Inkluderes | Forklaring |
---|---|---|
Ansettelsesperiode | Ja | startdato er før ansattTilMaaned og sluttdato er null og dermed etter ansattFraMaaned |
Ansettelsesdetaljer (1) | Nei | rapportert-til er før ansattFraMaaned |
Ansettelsesdetaljer (2) | Ja | rapportert-fra er før ansattFraMaaned og rapportert-til er null og dermed etter ansattFraMaaned |
Permisjon (1) | Nei | sluttdato er før ansattFraMaaned |
Permisjon (2) | Nei | sluttdato er før ansattFraMaaned |
Permittering (1) | Ja | startdato er før ansattTilMaaned og sluttdato er null og dermed etter ansattFraMaaned |
Timer-med-timelønn (1) | Nei | rapporteringsmåned er før ansattFraMaaned |
Timer-med-timelønn (2) | Nei | rapporteringsmåned er før ansattFraMaaned |
Scenario 3
Formål
Ønsker å hente all informasjon etter stillingsprosenten ble endret
Siden ansattTilMaaned er null blir den satt til nåværende måned (2020-10 i dette scenarioet)
Parametre i query
ansattFraMaaned | ansattTilMaaned |
---|---|
2020-01 | null |
Svar fra tjenesten
Objekt | Inkluderes | Forklaring |
---|---|---|
Ansettelsesperiode | Ja | startdato er før ansattTilMaaned og sluttdato er null og dermed etter ansattFraMaaned |
Ansettelsesdetaljer (1) | Ja | rapportert-fra er før ansattTilMaaned og rapportert-til er lik ansattFraMaaned |
Ansettelsesdetaljer (2) | Ja | rapportert-fra er før ansattTilMaaned og rapportert-til er null og dermed etter ansattFraMaaned |
Permisjon (1) | Ja | startdato er før ansattTilMaaned og sluttdato er etter ansattFraMaaned |
Permisjon (2) | Ja | startdato er før ansattTilMaaned og sluttdato er etter ansattFraMaaned |
Permittering (1) | Ja | startdato er før ansattTilMaaned og sluttdato er null og dermed etter ansattFraMaaned |
Timer-med-timelønn (1) | Nei | rapporteringsmaaned er før ansattFraMaaned |
Timer-med-timelønn (2) | Nei | rapporteringsmaaned er før ansattFraMaaned |
Eksempel 2
Datagrunnlag
I AA-registeret har vi registrert følgende opplysninger om et arbeidsforhold:
{
"id": "ARBEIDSFORHOLD_ID",
"type": {
"kode": "ordinaertArbeidsforhold",
"beskrivelse": "Ordinært arbeidsforhold"
},
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"arbeidssted": {
"type": "Underenhet",
"ident": "UNDERENHET_ORG_NR"
},
"opplysningspliktig": {
"type": "Hovedenhet",
"ident": "HOVEDENHET_ORG_NR"
},
"ansettelsesperiode": {
"startdato": "2016-08-01",
"sluttdato": "2016-10-31",
"sluttaarsak": null,
"varsling": null
},
"ansettelsesdetaljer": [
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": {
"kode": "fast",
"beskrivelse": "Fast ansettelse"
},
"yrke": {
"kode": "1228103",
"beskrivelse": "SJEFSYKEPLEIER"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 100.0,
"sisteStillingsprosentendring": null,
"sisteLoennsendring": "2016-08-01",
"rapporteringsmaaneder": {
"fra": "2016-09",
"til": null
}
}
],
"permisjoner": [],
"permitteringer": [],
"timerMedTimeloenn": [
{
"antall": 35.0,
"startdato": "2016-08-01",
"sluttdato": "2016-08-31",
"rapporteringsmaaned": "2016-09"
},
{
"antall": 35.0,
"startdato": "2016-09-01",
"sluttdato": "2016-09-30",
"rapporteringsmaaned": "2016-10"
},
{
"antall": 35.0,
"startdato": "2016-10-01",
"sluttdato": "2016-10-31",
"rapporteringsmaaned": "2016-11"
}
],
"idHistorikk": [],
"varsler": [],
"opprettet": "2016-09-06T16:21:27.213",
"sistBekreftet": "2016-11-02T16:34:58",
"sistEndret": "2016-11-02T16:34:58"
}
For å enklere illustrere eksemplene viser tabellen under elementene som inngår i arbeidsforholdet.
Objekt | Startdato | Sluttdato | Rapporteringsmåned | Rapportert-fra | Rapportert-til |
---|---|---|---|---|---|
Ansettelsesperiode | 2016-08-01 | 2016-10-31 | - | - | - |
Ansettelsesdetaljer (1) | - | - | - | 2016-09 | null |
Timer-med-timelønn (1) | 2016-08-01 | 2016-08-31 | 2016-09 | - | - |
Timer-med-timelønn (2) | 2016-09-01 | 2016-09-30 | 2016-10 | - | - |
Timer-med-timelønn (3) | 2016-10-01 | 2016-10-31 | 2016-11 | - | - |
Scenario 1
Formål
Ønsker å hente data fra første måned.
Parametre i query
ansattFraMaaned (yyyy-MM) | ansattTilMaaned (yyyy-MM) |
---|---|
2016-08 | 2016-08 |
Svar fra tjenesten
Objekt | Inkluderes | Forklaring |
---|---|---|
Ansettelsesperiode | Ja | startdato er før ansattTilMaaned og sluttdato er etter ansattFraMaaned |
Ansettelsesdetaljer (1) | Ja | UNNTAK: rapportert-fra er etter ansattTilMaaned, og resulterer i ingen overlapp. Siden dette resulterer i ingen ansettelsesdetaljer så returnerer vi første rapporterte ansettelsesdetaljer. |
Timer-med-timelønn (1) | Nei | rapporteringsmåned er etter ansattTilMaaned NB: Selv om start- og sluttdato for timene er innenfor søkeperioden baserer ikke filtreringen seg på disse. |
Timer-med-timelønn (2) | Nei | rapporteringsmåned er etter ansattTilMaaned |
Timer-med-timelønn (3) | Nei | rapporteringsmåned er etter ansattTilMaaned |
Eksempel 3
Datagrunnlag
I AA-registeret har vi registrert følgende opplysninger om et arbeidsforhold:
{
"id": "ARBEIDSFORHOLD_ID",
"type": {
"kode": "ordinaertArbeidsforhold",
"beskrivelse": "Ordinært arbeidsforhold"
},
"arbeidstaker": {
"ident": "ARBEIDSTAKER_FNR"
},
"arbeidssted": {
"type": "Underenhet",
"ident": "UNDERENHET_ORG_NR"
},
"opplysningspliktig": {
"type": "Hovedenhet",
"ident": "HOVEDENHET_ORG_NR"
},
"ansettelsesperiode": {
"startdato": "2016-08-01",
"sluttdato": "2016-10-31",
"sluttaarsak": null,
"varsling": null
},
"ansettelsesdetaljer": [
{
"type": "Ordinaer",
"arbeidstidsordning": {
"kode": "ikkeSkift",
"beskrivelse": "Ikke skift"
},
"ansettelsesform": {
"kode": "fast",
"beskrivelse": "Fast ansettelse"
},
"yrke": {
"kode": "1228103",
"beskrivelse": "SJEFSYKEPLEIER"
},
"antallTimerPrUke": 37.5,
"avtaltStillingsprosent": 100.0,
"sisteStillingsprosentendring": null,
"sisteLoennsendring": "2016-08-01",
"rapporteringsmaaneder": {
"fra": "2016-09",
"til": null
}
}
],
"permisjoner": [],
"permitteringer": [],
"timerMedTimeloenn": [
{
"antall": 35.0,
"startdato": "2016-08-01",
"sluttdato": "2016-08-31",
"rapporteringsmaaned": "2016-09"
},
{
"antall": 35.0,
"startdato": "2016-09-01",
"sluttdato": "2016-09-30",
"rapporteringsmaaned": "2016-10"
},
{
"antall": 35.0,
"startdato": "2016-10-01",
"sluttdato": "2016-10-31",
"rapporteringsmaaned": "2016-11"
}
],
"idHistorikk": [],
"varsler": [],
"opprettet": "2016-09-06T16:21:27.213",
"sistBekreftet": "2016-11-02T16:34:58",
"sistEndret": "2016-11-02T16:34:58"
}
For å enklere illustrere eksemplene viser tabellen under elementene som inngår i arbeidsforholdet.
Objekt | Startdato | Sluttdato | Rapporteringsmåned | Rapportert-fra | Rapportert-til |
---|---|---|---|---|---|
Ansettelsesperiode | 2016-08-01 | 2016-10-31 | - | - | - |
Ansettelsesdetaljer (1) | - | - | - | 2016-09 | null |
Timer-med-timelønn (1) | 2016-08-01 | 2016-08-31 | 2016-09 | - | - |
Timer-med-timelønn (2) | 2016-09-01 | 2016-09-30 | 2016-10 | - | - |
Timer-med-timelønn (3) | 2016-10-01 | 2016-10-31 | 2016-11 | - | - |
Scenario 1
Formål
Ønsker å hente data fra første måned.
Parametre i query
ansattFraMaaned (yyyy-MM) | ansattTilMaaned (yyyy-MM) |
---|---|
2016-08 | 2016-08 |
Svar fra tjenesten
Objekt | Inkluderes | Forklaring |
---|---|---|
Ansettelsesperiode | Ja | startdato er før ansattTilMaaned og sluttdato er etter ansattFraMaaned |
Ansettelsesdetaljer (1) | Ja | UNNTAK: rapportert-fra er etter ansattTilMaaned å resulterer i ingen overlapp. Men siden dette resulterer i ingen ansettelsesdetaljer returnerer vi første rapporterte ansettelsesdetaljer. |
Timer-med-timelønn (1) | Nei | rapporteringsmåned er etter ansattTilMaaned NB: Selv om start- og sluttdato for timene er innenfor søkeperioden baserer ikke filtreringen seg på disse. |
Timer-med-timelønn (2) | Nei | rapporteringsmåned er etter ansattTilMaaned |
Timer-med-timelønn (3) | Nei | rapporteringsmåned er etter ansattTilMaaned |
Scenario 2
Formål
Ønsker å hente data fra nåværende måned.
Parametre i query
ansattFraMaaned (yyyy-MM) | ansattTilMaaned (yyyy-MM) |
---|---|
2020-10 | 2020-10 |
Svar fra tjenesten
Objekt | Inkluderes | Forklaring |
---|---|---|
Arbeidsforhold | Nei | sluttdato er før ansattFraMaaned og arbeidsforholdet og alle underelementer ekskluderes fra resultatsettet |
Korrelasjon-id’er
Forespørsel
Alle forespørsler som blir behandlet i tjenesten får sin egen unike ID (UUID) - korrelasjon-id - som blir returnert til konsumenten. Korrelasjon-id’en settes i HTTP-response-header’en (correlation-id) for alle HTTP-response 200 OK ( inkl. responser med feil).
Korrelasjon-id har også vært angitt i response-objektet som en del av extensions, men dette er deprekert og vil bli fjernet (etter nærmere avtale med eksisterende konsumenter).
Hvis ønskelig kan konsumenter benytte sin egen korrelasjon-id ved å spesifisere correlation-id i HTTP-request-header’en.
Konsumenter står fritt til å sende inn hva de vil, men vi anbefaler at det genereres en unik ID (UUID).
Ved henvendelser bør korrelasjon-id’en oppgis - det letter behandling av henvendelsen.
Arbeidsforhold
Alle arbeidsforhold har sin egen unike ID - uuid.
Dersom det er behov for å se nærmere på et bestemt arbeidsforhold, enten det er spørsmål om data eller rapportering av feil er det ønskelig at feltet uuid benyttes i kommunikasjonen for å identifisere arbeidsforholdet.
Denne ID’en returneres dersom konsumenten ber feltet uuid i tjenesten finnArbeidsforholdPrArbeidstaker
{
"data": {
"finnArbeidsforholdPrArbeidstaker": {
"arbeidsforhold": [
{
"uuid": "unik-arbeidsforhold-uuid"
}
]
}
}
}
Feilmeldinger
Spørringer som feiler vil respondere med en 200 HTTP-status og en json-body med en errors-liste, samt et felt som angir typen feil under “classification”.
Feilkoder og forklaring
Feilkode | Forklaring | Classification |
---|---|---|
AA-051 | Ugyldig verdi for “opplysningspliktidId” | ValidationError |
AA-052 | Ugyldig verdi for “arbeidstakerId” | ValidationError |
AA-053 | Ugyldig verdi for “ansattFraMaaned” | ValidationError |
AA-054 | Ugyldig verdi for “ansattTilMaaned” | ValidationError |
AA-055 | “ansattTilMaaned” er før “ansattFraMaaned” | ValidationError |
AA-056 | Ugyldig verdi for “rapporteringFraMaaned” | ValidationError |
AA-057 | Ugyldig verdi for “rapporteringTilMaaned” | ValidationError |
AA-058 | “rapporteringTilMaaned” er før “rapporteringFraMaaned” | ValidationError |
AA-060 | Ugyldig verdi for “rapporteringFraMaaned” - Oppgitt dato er frem i tid | ValidationError |
AA-061 | Ugyldig verdi for “rapporteringTilMaaned” - Oppgitt dato er frem i tid | ValidationError |
AA-101 | Mangler tilgang for en eller flere perioder | ExecutionAborted |
AA-102 | Ingen tilgang grunnet skjerming | ExecutionAborted |
AA-201 | En ukjent feil oppstod | ExecutionAborted |
Eksempler (feilmeldinger)
Tilgang(er) mangler for periode(r)
{
"errors": [
{
"message": "Tilgang(er) mangler",
"extensions": {
"errormessages": [
{
"code": "AA-101",
"message": "Ingen tilgang for periode",
"details": "2016-11"
},
{
"code": "AA-101",
"message": "Ingen tilgang for periode",
"details": "2016-12"
}
],
"classification": "ExecutionAborted"
}
}
]
}
Valideringsfeil for variabelverdi(er)
{
"errors": [
{
"message": "Ugyldig input",
"extensions": {
"errormessages": [
{
"code": "AA-051",
"message": "Validering av parameter feilet",
"details": "opplysningspliktidId"
},
{
"code": "AA-053",
"message": "Validering av parameter feilet",
"details": "ansattFraMaaned"
}
],
"classification": "ValidationError"
}
}
]
}
Valideringsfeil for variabelnavn
{
"errors": [
{
"message": "Variable 'opplysningspliktigId' has coerced Null value for NonNull type 'ID!'",
"locations": [
{
"line": 1,
"column": 7
}
],
"extensions": {
"classification": "ValidationError"
}
}
]
}
Ingen tilgang grunnet skjerming
{
"errors": [
{
"message": "Ingen tilgang",
"extensions": {
"errormessages": [
{
"code": "AA-102",
"message": "Skjerming",
"details": null
}
],
"classification": "ExecutionAborted"
}
}
]
}