Beda Publikt Meriter API version 2

Här ligger dokumentationen av det publika API:et. För att läsa mer om API specifikationen gå till Publikt Meriter API swagger ui

Övergripande beskrivning

Detta API tillhandahåller funktionalitet för inrapportering och utlämning av meriter, både gymnasiala- och folkhögskolemeriter.

Inrapportering sker med hjälp av synkrona anrop med en persons merit per anrop. Vilken resurs som ska användas beror på vilken typ av merit som ska inrapporteras. För mer detaljer se stycket om merittyp. Vid inrapportering så validerar Beda att meriten ser korrekt ut och uppfyller vissa krav genom att applicera ett omfattande regelverk baserat på lagar och förordningar.

Utlämning sker genom personresursen och angivet personnummer. Då returneras en lista av länkar till personens meriter om de existerar enligt ett definierat syfte. Dessa länkar har dessutom metadata i form av merittyp, och utfärdandedatum. Genom att följa dessa länkar så visas all data för den valda meriten

Termer och förkortningar

Ändringshistorik

För att se ändringar i API:et, se Ändringshistorik

Behörighetskontroller

Utgående från en enskild användare på en skola som vill rapportera in meriter till Beda, alternativt hämta ut meriter för en person från Beda behöver ett antal kontroller göras för att inblandade aktörer (Beda och PVL) ska kunna avgöra om begäran ska tillåtas eller inte:

Eftersom det inte skulle vara praktiskt möjligt för Beda att hålla ett fullständigt register med alla användare och dess rättigheter hos alla aktörer som anropar Beda behöver ansvaret för behörighetskontrollen delas mellan Beda och PVL.

Syften

För att uppnå uppgiftsminimering så filtreras sökresultatet med något som Beda valt att kalla Syfte, som kan likställas med syftet av uthämtningen av meriter. Ett syfte filtrerar främst på vilka merittyper som är aktuella. De kan även filtrera på visst ingående information. T.ex. om sekretessstatus från skatteverket ska skickas med eller inte. Det existerar syften som inte filtrerar information. PVL:ens behörighetssystem ska alltså inte tillåta användare att hämta meriter från Beda annat än vid nedan specificerade Syften. Vilka Syften som en API-anslutningspart får använda specificeras i avtal mellan API-anslutningspart och UHR.

Syfte Id Meriter som tillåts utlämnas
Antagning till kommunal vuxenutbildning 5 Samtliga merittyper lämnas ut
Antagning till folkhögskola 6 Samtliga merittyper lämnas ut
Antagning till yrkeshögskola 7 Samtliga merittyper lämnas ut
Handläggning kommunalt aktivitetsansvar 2 Samtliga examen, slutbetyg och studiebevis från GY11, VUX12 och GY25. Endast studiebevis får lämnas ut i sin helhet.
Utfärdande av komvuxexamen 11 Samtliga merittyper förutom behörighetsintyg från folkhögskola lämnas ut. Detta syfte gäller även utfärdande av slutbetyg från komvux. Slutbetyg får utfärdas till och med 30 juni 2025.
Studieplanering inom kommunal vuxenutbildning 12 Samtliga merittyper lämnas ut
Gymnasieantagning avseende byte av gymnasium 8 Utdrag ur betygskatalogen och Gymnasieintyg lämnas ut vid detta syfte.

I API:anrop ska Syfte anges med Id i tabellen ovan.

Vid oklarheter av hur Syftena ska tolkas, kontakta UHR.

Syfte används enbart vid utlämnande från Beda. Vid inrapportering är Syfte inte relevant och ska inte skickas med.

API-anslutningspart

För att ovanstående delning av ansvar ska kunna göras har Beda infört konceptet API-anslutningspart. En API-anslutningspart i Beda är en kommun, friskolekoncern eller liknande. Alltså en organisation som är huvudman för en eller flera skolenheter, och den organisation som UHR sluter avtal med för tillgång till Bedas API.

API-anslutningspart identifieras genom anslutningspartens organisationsnummer. UHR meddelar vilket organisationsnummer som ska användas för vilken kund. Anslutningspartens organisationsnummer är alltid 10 siffror utan bindestreck.

En API-anslutningspart har/kan ha:

Det innebär att Beda vid begäran om utlämnande kontrollerar enligt:

Motsvarande för inrapportering:

Ansvarsfördelning mellan Beda och PVL

PVL:s ansvar:

Bedas ansvar:

Exempel: Olika kommuners API-anslutningspart har olika Syften i sitt avtal

Stora kommunen har i sitt avtal med UHR ett Syfte: Antagning till kommunal vuxenutbildning. Lilla kommunen har istället Syftet Handläggning kommunalt aktivitetsansvar. Båda använder samma PVL:s IT-system SkolIT. Personal i Lilla kommunen som ska handlägga komvuxantagning ska då kunna använda SkolIT:s antagningsfunktionalitet, men inte få möjlighet att hämta meriter från Beda. När behörig handläggare i Stora kommunen handlägger komvuxantagning ska denne förutom att använda grundfunktionaliteten för antagning också kunna hämta meriter från Beda. SkolIT måste alltså hålla reda på vilka Syften som respektive kommun har, förutom att bara behörig personal inom kommunen ska kunna göra hämtning från Beda.

Exempel: Delar av en elevs meriter lämnas ut från Beda

Merittyp

Bakgrund

När en person genomfört en utbildning så utfärdas ett bevisdokument till personen som vi i denna kontext kallar för merit. Se definition av merit i avsnitt Termer och förkortningar ovan. Genom åren så har regelverk för utbildningar och dess utfärdade bevisdokument (meriter) förändrats kontinuerligt allt eftersom nya lagar och förordningar börjat gälla. Vissa förordningar har lett till helt nya typer av meriter, t.ex. i och med GY94 så kom de s.k. Slutbetygen och i och med GY11 kom Examensbevis (högskoleförberedande examen/yrkesexamen). Utöver dessa större lagändringar/förordningar så har det även tillkommit ett flertal som inte lett till nya typer av meriter utan bara förändrade regelverk kring existerande form av meriter. I och med att Beda validerar inskickade meriter mot det regelverk som existerar vid ett utfärdandedatum så är det en stor utmaning för Beda att veta vilket exakt regelverk som gäller. Existerande typer har inte varit finkorniga nog för att särskilja mellan t.ex. Slutbetyg från GY94 och GY00 så för att kunna veta vilka regler som ska appliceras så har det varit tvunget att analysera innehållet på meriten för att göra en bedömning. Detta har medfört problem vid validering av merit då det kan uppkomma fall där värden som analyseras för att välja regler råkar ha felaktigheter. För att adressera detta så har specifika begrepp för Beda skapats. Dessa är "Utbildningsversion" och "BedaMerittyp". Den senare benämns också vidare i detta dokument som "merittyp" men är en specifik typ som definieras av Beda.

Utbildningsversion

Det är skapat för att kunna hålla ihop regelverk och grunddata för utbildningar och dess utfärdade bevis på ett bättre sätt när lagar och förordningar ändras. Utbildningsversion är helt enkelt ett sätt att ge regelverk en kontext och livscykel att förhålla sig till. Utfärdandedatum är ett viktigt attribut gällande utbildningsversion. Det styr bland annat när utbildningsversion startar och slutar. En utbildningsversion innehåller också ett antal s.k. merittyper. När en förändring sker i regelverk, t.ex. i form av en ny förordning, stegas utbildningsversion upp och nya merittyper skapas. Det ska poängteras att det inte existerar någon skarp gräns när en utbildningsversion stegas upp och meriter får en ny typ. Det är helt enkelt subjektiv bedömning från Beda.

Exempel på utbildningsversioner kan hittas i tabellen nedan. GUV5 (Gymnasieutbildningsversion 5) är nuvarande utbildningsversion för gymnasiemeriter som i huvudsak utfärdas inom GY11. VUV2 (Vuxenutbildningsversion 2) är huvudsakligen meriter utfärdade inom VUX12. VUV3 är utbildningsversion för examensbevis högskoleförberedande examen komvux utfärdade fr.o.m. 2021-07-01. Anledningen till stegning från VUV2 -> VUV3 är att på examensbevis högskoleförberedande examen komvux så infördes studieområdeskod samt nya regler kring dessa fr.o.m. 2021-07-01. Så i VUV3 finns bara en enda merittyp, examensbevis högskoleförberedande examen komvux. Ändringar påverkade alltså inte yrkesexamen komvux så den behövde inte en ny typ.

Bedamerittyp

Från en utbildningsversion så skapas ett antal bedamerittyper. En inrapportering till Beda via API ska alltså göras på en av Beda definierad bedamerittyp. D.v.s. en inrapportering till Beda är ett påstående baserat på "Bedamerittyp" som gör att en klient till API måste veta exakt vilken "Bedamerittyp" den tänker sig rapportera in. Denna specifika bedamerittyp från en utbildningsversion styr vilket regelverk som ska appliceras vid validering. För att underlätta valet kommer nedan en tabell som listar typer med beskrivning och utfärdandedatum

Ämnesbetyg går att utfärda först 2025-07-01

Det kan vara värt att notera att GY-25 reformen började gälla först 2025-07-01 och därför kommer det inte gå att rapportera meriter med ett utfärdandedatum före det datumet. Det påverkar samtliga meriter som innehåller ämnesbetyg, så meriter med utbildningsversion GUV6, GUV7, VUV4, VUV5, FUV2, FUV3.

Listning av typer med beskrivning

Bedamerittyp Id Utbildningsversion Beskrivning Utfärdandedatum
1 GUVX Slutbetyg (GY94, GY00, rapporteras ej in längre) 1997-01-01 - 2015-07-01
2 GUVX Samlat betygsdokument (rapporteras ej in längre) 1997-01-01 - 2016-06-30
41 GUV5 Examensbevis högskoleförberedande examen (GY11) 2011-08-11 -
42 GUV5 Examensbevis yrkesexamen (GY11) 2011-08-11 -
43 GUV5 Studiebevis (GY11) 2014-01-01 -
45 GUV5 Gymnasieintyg (GY11) 2011-08-31 -
48 GUV5 Utdrag ur betygskatalogen (GY11) 2025-06-15 -
51 GUV6 Examensbevis högskoleförberedande examen (Blandbetyg GY11, GY25) 2025-07-01 -
52 GUV6 Examensbevis yrkesexamen (Blandbetyg GY11, GY25) 2025-07-01 -
53 GUV6 Studiebevis (Blandbetyg GY11, GY25) 2025-07-01 -
54 GUV6 Gymnasieintyg (Blandbetyg GY11, GY25) 2025-07-01 -
61 GUV7 Examensbevis högskoleförberedande examen (GY25) 2025-07-01 -
62 GUV7 Examensbevis yrkesexamen (GY25) 2025-07-01 -
63 GUV7 Studiebevis (GY25) 2025-07-01 -
64 GUV7 Gymnasieintyg (GY25) 2025-07-01 -
65 GUV7 Examenbevis gymnasieingenjörsexamen (GY25) 2026-04-01 -
66 GUV7 Studiebevis Vidareutbildning i form av ett fjärde tekniskt år (GY25) 2026-04-01 -
67 GUV7 Utdrag ur betygskatalogen (GY25) 2025-07-01 -
68 GUV7 Utdrag ur betygskatalogen fjärde tekniskt år (GY25) 2026-04-01 -
101 VUV1 Slutbetyg komvux 2301 poäng 2001-07-01 - 2025-07-01
102 VUV1 Slutbetyg komvux 2350 poäng 2001-07-01 - 2025-07-01
103 VUV1 Komvux kurs (GY00, GY11) 2011-07-01 -
104 VUV1 Komvux arbete (GY00, GY11, GUV25) 2011-07-01 -
111 VUV2 Examensbevis högskoleförberedande examen (VUX12) 2012-07-01 - 2021-06-30
112 VUV2 Examensbevis yrkesexamen (VUX12) 2012-07-01 -
121 VUV3 Examensbevis högskoleförberedande examen (VUX12)
f.r.om. 2021-07-01 nu med krav på studieområdeskod
2021-07-01 -
131 VUV4 Examensbevis högskoleförberedande examen (Blandbetyg VUX12, VUX25) 2025-07-01 -
132 VUV4 Examensbevis yrkesexamen (Blandbetyg VUX12, VUX25) 2025-07-01 -
141 VUV5 Examensbevis högskoleförberedande examen (VUX25) 2025-07-01 -
142 VUV5 Examensbevis yrkesexamen (VUX25) 2025-07-01 -
143 VUV5 Komvux ämnesnivå (VUX25) 2025-07-01 -
201 FUV1 Folkhögskola behörighetsintyg allmän kurs 2024-05-01 -
202 FUV1 Folkhögskola behörighetsintyg särskild kurs 2024-05-01 -
203 FUV1 Folkhögskola behörighetsintyg undersköterskeutbildning 2024-05-01 -
211 FUV2 Folkhögskola behörighetsintyg allmän kurs (Blandbetyg) 2025-07-01 -
212 FUV2 Folkhögskola behörighetsintyg särskild kurs (Blandbetyg) 2025-07-01 -
213 FUV2 Folkhögskola behörighetsintyg undersköterskeutbildning (Blandbetyg) 2025-07-01 -
221 FUV3 Folkhögskola behörighetsintyg allmän kurs (Endast ämnesnivåer) 2025-07-01 -
222 FUV3 Folkhögskola behörighetsintyg särskild kurs (Endast ämnesnivåer) 2025-07-01 -
223 FUV3 Folkhögskola behörighetsintyg undersköterskeutbildning (Endast ämnesnivåer) 2025-07-01 -

Identifikation av merit

En merit i Beda har alltid en syntetisk nyckel i form av ett MeritId som är implementerad som en UUID. För varje merittyp finns även en naturlig nyckel som består av den minsta mängden attribut som kan definiera unikhet.

För merittyper där en person bara får ha en merit av en merittyp så består den naturliga nyckeln av identifikationsnummer.

För merittyper där en person får ha flera meriter av samma merittyp består den naturliga nyckeln av de värden som kan skilja sig åt mellan dessa meriter.

Exempel Examensbevis högskoleförberedande examen GY11

En student kan endast få ett examensbevis utfärdat och följdaktligen består den naturliga nyckeln endast av identifikationsnummer.

Exempel Gymnasieintyg GY11

En student kan dels få utfärdat flera gymnasieintyg där studievägskoden skiljer, men även flera där studievägskoden är samma men utfärdandedatumet skiljer.

Listning av naturliga nycklar

Merittyp Naturlig nyckel
41 - Examensbevis högskoleförberedande examen (GY11) identifikationsnummer
42 - Examensbevis yrkesexamen (GY11) identifikationsnummer
43 - Studiebevis (GY11) identifikationsnummer
45 - Gymnasieintyg (GY11) identifikationsnummer, studievägskod, utfärdandedatum
48 - Utdrag ur betygskatalogen (GY11) identifikationsnummer, skolenhetskod
51 - Examensbevis högskoleförberedande examen (Blandbetyg GY11, GY25) identifikationsnummer
52 - Examensbevis yrkesexamen (Blandbetyg GY11, GY25) identifikationsnummer
53 - Studiebevis (Blandbetyg GY11, GY25) identifikationsnummer
54 - Gymnasieintyg (Blandbetyg GY11, GY25) identifikationsnummer, studievägskod, utfärdandedatum
61 - Examensbevis högskoleförberedande examen (GY25) identifikationsnummer
62 - Examensbevis yrkesexamen (GY25) identifikationsnummer
63 - Studiebevis (GY25) identifikationsnummer
64 - Gymnasieintyg (GY25) identifikationsnummer, studievägskod, utfärdandedatum
65 - Examenbevis gymnasieingenjörsexamen (GY25) identifikationsnummer
66 - Studiebevis Vidareutbildning i form av ett fjärde tekniskt år (GY25) identifikationsnummer
67 - Utdrag ur betygskatalogen (GY25) identifikationsnummer, skolenhetskod
68 - Utdrag ur betygskatalogen fjärde tekniskt år (GY25) identifikationsnummer, skolenhetskod
101 - Slutbetyg komvux 2301 poäng identifikationsnummer
102 - Slutbetyg komvux 2350 poäng identifikationsnummer
103 - Komvux kurs (GY00, GY11) identifikationsnummer, skolenhetskod, kurskod, utfärdandedatum
104 - Komvux arbete (GY00, GY11, GUV25) identifikationsnummer, skolenhetskod, arbetskod, utfärdandedatum
111 - Examensbevis högskoleförberedande examen (VUX12) identifikationsnummer
112 - Examensbevis yrkesexamen (VUX12) identifikationsnummer, utfärdandedatum
121 - Examensbevis högskoleförberedande examen (VUX12) identifikationsnummer
131 - Examensbevis högskoleförberedande examen (Blandbetyg VUX12, VUX25) identifikationsnummer
132 - Examensbevis yrkesexamen (Blandbetyg VUX12, VUX25) identifikationsnummer
141 - Examensbevis högskoleförberedande examen (VUX25) identifikationsnummer
142 - Examensbevis yrkesexamen (VUX25) identifikationsnummer, utfärdandedatum
143 - Komvux ämnenivå (VUX25) identifikationsnummer, skolenhetskod, ämnesnivåkod, utfärdandedatum
201 - Folkhögskola behörighetsintyg allmän kurs identifikationsnummer, utfärdandedatum
202 - Folkhögskola behörighetsintyg särskild kurs identifikationsnummer, utfärdandedatum
203 - Folkhögskola behörighetsintyg undersköterskeutbildning identifikationsnummer, utfärdandedatum
211 - Folkhögskola behörighetsintyg allmän kurs (Blandbetyg) identifikationsnummer, utfärdandedatum
212 - Folkhögskola behörighetsintyg särskild kurs (Blandbetyg) identifikationsnummer, utfärdandedatum
213 - Folkhögskola behörighetsintyg undersköterskeutbildning (Blandbetyg) identifikationsnummer, utfärdandedatum
221 - Folkhögskola behörighetsintyg allmän kurs (Endast ämnesnivåer) identifikationsnummer, utfärdandedatum
222 - Folkhögskola behörighetsintyg särskild kurs (Endast ämnesnivåer) identifikationsnummer, utfärdandedatum
223 - Folkhögskola behörighetsintyg undersköterskeutbildning (Endast ämnesnivåer) identifikationsnummer, utfärdandedatum

Inrapportering av meriter

Dels är inrapportering uppdelad i olika endpoints utifrån merittyp som nämnts ovan. Dels är det specifika endpoints för skapa och uppdatera som vi delat upp i separata underrubriker nedan.

Utdrag från betygskatalogen är till sin natur annorlunda än övriga meriter och avhandlas i en separat underrubrik nedan

Skapa

Skapa avser inrapportering av en ny merit som inte finns i Beda sedan tidigare. Med ny merit menas en merit vars naturliga nyckel (ett attribut/en kombination av flera attribut på en merit som unikt identifierar meriten i fråga i Beda), inte redan finns i Beda.

Endpointen har mönstret:

POST /meriter/v2/[gymnasie|komvux|folkhogskola]/"utbildningsversion"/"meritnamn"

t ex POST /meriter/v2/gymnasie/guv5/examensbevisyrkesexamen

MeritId efter inrapportering

När Beda sparat meriten returneras ett MeritId (en syntetisk nyckel i form av ett UUID) som måste sparas av PVL:en för att möjliggöra eventuell framtida rättning av den redan inskickade meriten i Beda.

Exempel: PVL skickar in en merit som ny

En kurs i biologi på Komvux ska rapporteras in till Beda från BetygIT. Läraren som satt betyget väljer att klicka på knappen för Bedaexport. Beda kontrollerar behörighet, att begäran uppfyller API-specifikationen, och kör ett paket med regelkontroller för att säkerställa att alla uppgifter är korrekta. Beda lagrar kursen och returnerar dess MeritID till BetygIT. BetygIT lagrar MeritID:t och presenterar för läraren att kursen exporterats till Beda.

Exempel: PVL skickar in en merit som ny, men som Beda redan har

En kurs på komvux för en elev rapporteras in till Beda enligt ovanstående exempel. Dagen efter skickas kursen igen, men med ett nytt betygsvärde. Då kommer den stoppas av Beda eftersom Beda anser att det är samma merit där bara innehållet ändrats. Om syftet var att rätta betygsvärdet, ska i stället endpoint för uppdatering användas, se nedan.

Exempel: PVL skickar in merit, men går mot fel endpoint

En skola utfärdar en Yrkesexamen från Bygg- och anläggningsprogrammet i GY11. Administratören på skolan väljer i BetygIT att exportera examen till Beda. PVL-en har kodat så att trots att det är en Yrkesexamen så skickas examen mot endpointen /meriter/v2/gymnasie/guv5/examensbevishogskoleforberedandeexamen. Beda svarar med felmeddelande om att studievägkoden inte är tillåten på merittypen.

Uppdatera

Uppdatera avser rättning av en till Beda redan inrapporterad merit. De flesta merittyper låses för uppdatering i Beda 14 dagar efter första inskick. Beda kommer att avvisa ändringen om försök till uppdatering av en låst merit görs. Skolan måste då kontakta UHR och begära upplåsning för att uppdatering ska kunna göras.

Endpointen har mönstret:

PUT /meriter/v2/[gymnasie|komvux|folkhogskola]/"utbildningsversion"/"meritnamn"/{meritId}

t ex PUT /meriter/v2/gymnasie/guv5/examensbevisyrkesexamen/af1287d0-50dc-3eea-9fbf-019b6fa24722

Meriten är skapad via API

Uppdatering (rättning) av innehåll i en merit som skickats in sedan tidigare till Beda görs genom att anropa uppdaterings-endpoint för den aktuella merittypen med det MeritId som Beda svarade med när meriten skapades. Visst innehåll i meriterna tillåter Beda inte att det ändras. Det är merittypsberoende, men kan till exempel vara personnummer, skolenhetskod och utfärdandedatum. Skulle ett sådant innehåll behöva uppdateras (rättas) måste skolan kontakta UHR som beroende på merittyp antingen plockar bort den redan inrapporterade meriten för att lämna plats för den nya eller så uppdaterar UHR den redan inrapporterade meriten manuellt.

Meriten är skapad via filinskick

Om meriten skapades före övergång till API-inskick har PVL:en inget MeritId sparat, och kan därför inte anropa en uppdaterings-endpoint med MeritId. Här beskrivs hur PVL:en kan göra för att få tag på det aktuella MeritId och i övrigt gäller allt som står under rubriken Meriten är skapad via API ovan.

För att få tag på MeritId för en merit i Beda finns endpoints med mönstret:

POST /meriter/v2/[gymnasie|komvux|folkhogskola]/"utbildningsversion"/"meritnamn"/motsvarande

t ex POST /meriter/v2/gymnasie/guv5/examensbevisyrkesexamen/motsvarande

Till denna endpoint ska bifogas en NaturligNyckelRequest vars innehåll varierar från merittyp till merittyp. Se stycket Identifiering av merit.

Beda kommer bara att svara med ett MeritId i de fall där API-anslutningsparten har behörighet att uppdatera meriten.

Notera att Beda inte gör någon kontroll av innehållet i meriten annat än den naturliga nyckeln och merittyp för att avgöra om det finns en motsvarande sparad i Beda. Innehållet i meriten som är sparad i Beda kan därför skilja sig betydligt från den som ligger hos PVL:en och som Beda kommer att uppdatera till när MeritId:t som hämtats via "motsvarande" sen används för att begära uppdatering av meriten.

Observera att denna funktion endast får användas i samband med uppdateringar av meriter som skickats in via filinskick. I annat fall måste det av PVL:en tidigare sparade MeritId:t användas vid uppdatering.

Exempel: Beda hittar en motsvarande merit
Exempel: Beda hittar en motsvarande merit, men returnerar inget MeritId

Utdrag från betygskatalogen

Utdrag från betygskatalogen skiljer sig från övriga meriter i Beda. De representerar en ögonblicksbild av en students samlade delmeriter inom en utbildningsversion vid ett givet datum för en specifik skola. Med delmeriter avses kurser, arbeten, ämnesnivåer, dvs det som när studenten läst klart används för att utfärda en examen/studiebevis/gymnasieintyg.

Varje sådan delmerit har ett datum för betygssättning. Själva utdraget har ett utfärdandedatum som representerar när ögonblicksbilden togs.

Då utdraget representerar en ögonblicksbild så har vi inte som för övriga meriter separata endpoints för skapa och uppdatera/rätta. Istället har vi en enda endpoint som sparar utdraget och skriver över eventuellt existerande utdrag för samma person och skola.

Det kan noteras att endpointen inte returnerar något MeritId då det inte finns något behov av det. Däremot kan det vara klokt för anroparen att vid ett lyckat anrop spara undan personnummer, skolenhetskod, utfärdandedatum och merittyp för att kunna se när det senast skickades in ett utdrag av viss merittyp för en person och skola.

Beda lagrar alltså det senaste inskickade utdraget för en person och skola inom en utbildningsversion. Utdragen får således aldrig någon senast ändrad tidpunkt i Beda utan registreringsdatum representerar när det nu aktuella utdraget sparades i beda.

Felhantering och felmeddelanden

Vid anrop mot det publika api:t kan åtta typer av fel uppkomma:

HTTP statuskod Beskrivning
400 Anropande system bryter mot API-specifikationen. Kan till exempel vara utelämnande av obligatoriska värden, eller att "Q" skickas om betygsvärde.
401 Anropande system har inte rätt att göra anrop. Det kan bero på felaktigt certifikat och/eller felaktig kombination av certifikat, aktiv anslutningspart och syfte.
403 Anropande system har inte tillgång till data, t ex kan inte rapportera för specificerad skolenhet.
404 Persons identitet har inga meriter som får hämtas med aktuellt syfte eller MeritId refererar inte till en existerande merit.
410 MeritId refererar till en borttagen merit.
422 Bedas valideringsramverk har hittat något fel på merit som rapporteras in. Exempelvis ämnesnivåkoder som inte finns bland Skolverkets definierade koder. Beda returnerar en lista av felmeddelanden som säger vad som är fel, samt i vissa fall tillhörande metadata som specificerar vilken del av meriten som felet hittats i.
429 Anropande system har gjort för många anrop på kort tid och måste vänta innan det kan göra fler anrop. Se servicenivå för mer information.
500 Ett oväntat fel uppstår i Beda.
503 Systemet är nere för underhåll. Se servicenivå. Detta förekommer även när systemet inte kan kontrollera sekretessen mot Navet vid ett utlämnande.

Vi använder oss av RFC:n problem.json vid fel som uppkommer vid anrop till API:et som beskriver ett standardiserat sätt att visa felmeddelanden. Den sista delen är konfigurerbar och här har vi valt en lista med valideringsproblem som innehåller två uppgifter.

Regler per merittyp

I tabellen nedan finns länkar till de kontroller som sker vid behörighetsprövning och inrapportering för respektive merittyp. Detta för att möjliggöra för klienten att kunna göra rätt kontroller och ge rätt förutsättningar i sin klientprogramvara för att inrapporteringen inte ska leda till onödiga valideringsproblem.

Merittyp Regler
41 - Examensbevis högskoleförberedande examen (GY11) Regler för examensbevis högskoleförberedande examen
42 - Examensbevis yrkesexamen (GY11) Regler för examensbevis yrkesexamen
43 - Studiebevis (GY11) Regler för studiebevis
45 - Gymnasieintyg (GY11) Regler för gymnasieintyg
48 - Utdrag ur betygskatalogen (GY11) Regler för utdrag ur betygskatalogen
51 - Examensbevis högskoleförberedande examen (Blandbetyg GY11, GY25) Regler för examensbevis högskoleförberedande examen
52 - Examensbevis yrkesexamen (Blandbetyg GY11, GY25) Regler för examensbevis yrkesexamen
53 - Studiebevis (Blandbetyg GY11, GY25) Regler för studiebevis
54 - Gymnasieintyg (Blandbetyg GY11, GY25) Regler för gymnasieintyg
61 - Examensbevis högskoleförberedande examen (GY25) Regler för examensbevis högskoleförberedande examen
62 - Examensbevis yrkesexamen (GY25) Regler för examensbevis yrkesexamen
63 - Studiebevis (GY25) Regler för studiebevis
64 - Gymnasieintyg (GY25) Regler för gymnasieintyg
65 - Examenbevis gymnasieingenjörsexamen (GY25) Regler för examenbevis gymnasieingenjörsexamen
66 - Studiebevis Vidareutbildning i form av ett fjärde tekniskt år (GY25) Regler för studiebevis Vidareutbildning i form av ett fjärde tekniskt år
67 - Utdrag ur betygskatalogen (GY25) Regler för utdrag ur betygskatalogen
68 - Utdrag ur betygskatalogen fjärde tekniskt år (GY25) Regler för utdrag ur betygskatalogen fjärde tekniskt år
101 - Slutbetyg komvux 2301 poäng Regler för slutbetyg komvux 2301 poäng
102 - Slutbetyg komvux 2350 poäng Regler för slutbetyg komvux 2350 poäng
103 - Komvux kurs (GY00, GY11) Regler för komvux kurs
104 - Komvux arbete (GY00, GY11, GY25) Regler för komvux arbete
111 - Examensbevis högskoleförberedande examen (VUX12) Regler för komvux examensbevis högskoleförberedande examen
112 - Examensbevis yrkesexamen (VUX12) Regler för komvux examensbevis yrkesexamen
121 - Examensbevis högskoleförberedande examen (VUX12) Regler för komvux examensbevis högskoleförberedande examen
131 - Examensbevis högskoleförberedande examen (Blandbetyg VUX12, VUX25) Regler för komvux examensbevis högskoleförberedande examen
132 - Examensbevis yrkesexamen (Blandbetyg VUX12, VUX25) Regler för komvux examensbevis högskoleförberedande examen
141 - Examensbevis högskoleförberedande examen (VUX25) Regler för komvux examensbevis högskoleförberedande examen
142 - Examensbevis yrkesexamen (VUX25) Regler för komvux examensbevis yrkesexamen
143 - Komvux ämnesnivå (VUX25) Regler för komvux ämnesnivå
201 - Folkhögskola behörighetsintyg allmän kurs Regler för folkhögskola behörighetsintyg allmän kurs
202 - Folkhögskola behörighetsintyg särskild kurs Regler för folkhögskola behörighetsintyg särskild kurs
203 - Folkhögskola behörighetsintyg undersköterskeutbildning Regler för folkhögskola behörighetsintyg undersköterskeutbildning
211 - Folkhögskola behörighetsintyg allmän kurs (Blandbetyg) Regler för folkhögskola behörighetsintyg allmän kurs
212 - Folkhögskola behörighetsintyg särskild kurs (Blandbetyg) Regler för folkhögskola behörighetsintyg särskild kurs
213 - Folkhögskola behörighetsintyg undersköterskeutbildning (Blandbetyg) Regler för folkhögskola behörighetsintyg undersköterskeutbildning
221 - Folkhögskola behörighetsintyg allmän kurs (Endast ämnesnivåer) Regler för folkhögskola behörighetsintyg allmän kurs
222 - Folkhögskola behörighetsintyg särskild kurs (Endast ämnesnivåer) Regler för folkhögskola behörighetsintyg särskild kurs
223 - Folkhögskola behörighetsintyg undersköterskeutbildning (Endast ämnesnivåer) Regler för folkhögskola behörighetsintyg undersköterskeutbildning

Exempel: Regel för skapa Examensbevis högskoleförberedande examen GY11

I tabellen visas i kolumnerna Beskrivning respektive Felmeddelande: "Kurskoder måste vara unika i en gymnasieexamen. D.v.s. inga duplicerade kurskoder tillåts." och "Kurskoder existerar mer än en gång på gymnasieexamen" För att få bättre kontroll över feedback till användaren i klientens egna system så görs lämpligen denna kontroll på klientsidan så att det kan fångas redan innan en inrapportering sker mot Beda.

Hantering av personer med skyddade personuppgifter

I Beda finns meriter tillhörande personer som har skyddade personuppgifter hos Skatteverket. De kan antingen ha skyddsnivån Sekretessmarkering eller Skyddad folkbokföring. Mer information om de olika typerna av skydd finns hos Skatteverket, på https://skatteverket.se/privat/folkbokforing/skyddadepersonuppgifter.4.18e1b10334ebe8bc80001711.html

Inrapportering av merit tillhörande person med skyddade personuppgifter

Meriter tillhörande personer med skyddade personuppgifter ska rapporteras in på samma sätt som för övriga elever. Elevens namn och personnummer ska anges, dvs. inget fiktivt namn eller personnummer får användas vid inrapportering.

Utlämnande av meriter tillhörande person med skyddade personuppgifter

Vid varje utlämnande av meriter från Beda görs en slagning mot Skatteverket för att hämta aktuell skyddsstatus. I de fall personen har skyddade personuppgifter lämnas meriterna i regel ut och i svaret från endpointen ”personer” levereras information om personens skydd, se PersonMetadataRepresentation i Swaggerdokumentationen.

Personnummer och samordningsnummer

Beda hanterar enbart meriter tillhörande personer med svenska personnummer eller samordningsnummer. Observera att det alltså inte går att rapportera in meriter från personer med s.k. tillfälliga personnummer. Information om samordningsnummer finns på https://skatteverket.se/privat/folkbokforing/samordningsnummer.4.5c281c7015abecc2e201130b.html

Allmänna villkor

I UHR:s allmänna villkor Allmänna villkor för bedas api för API-tjänsten finns bland annat vissa krav på loggning hos PVL och information om hur förändringar i API:et kan komma att göras osv. De allmänna villkoren är därför ett viktigt komplement till denna introduktion, Swaggerdokumentationen mm.

Juridiska krav som ställs på API-anslutningsparten

Inför och vid användning av Bedas API-tjänst ställer UHR ett antal krav på API-anslutningsparten (AAP). Till följd av dessa krav begränsas i praktiken programvaruleverantörernas (PVL) möjlighet att behandla uppgifter som hämtas från Beda eftersom kraven tvingar AAP att reglera PVL:ens hantering.

Inför anslutning

I samband med att AAP ansöker om anslutning för att lämna in och/eller hämta ut uppgifter ska de ange om de använder sig av PVL. Om så är fallet ska de intyga att de har personuppgiftsbiträdesavtal samt att de har reglerat tystnadsplikt/sekretess i avtal om PVL:en i fråga inte omfattas av offentlighets- och sekretesslagen (2009:400).

Ett personuppgiftsbiträdesavtal ska innehålla en instruktion från den personuppgiftsansvarige till biträdet (i detta fall PVL:en). Instruktionen ska följa villkoren för nyttjande av tjänsten (vilket bl.a. innefattar efterlevnad till GDPR) samt ange hur aktuella personuppgifter får behandlas och för vilka ändamål. Det är inte tillåtet för biträdet att behandla personuppgifter på ett sätt som strider mot, eller går utöver, vad som anges i instruktionen. I personuppgiftsbiträdesavtalet sätter AAP/PUA gränser för PVL:s/PUB möjligheter att behandla personuppgifter, detta för att säkerställa att dess underbiträde lever upp till samma krav som ställs på PUA i villkor för tjänsten/dataskyddslagstiftning.

Den reglerade tystnadsplikten ska medföra att PVL:en inte får röja uppgifter som hämtas från Beda för någon annan än AAP:n vid tillhandahållandet av sin tjänst. Detta innebär att PVL:en inte får dela eller tillgängliggöra uppgifterna från Beda i samband med att de hämtas via API:et till annan än den bestämda slutmottagaren, dvs. AAP. Det är därmed inte tillåtet för en PVL att skicka/visa uppgifter från Beda för utomstående parter eller den enskilde själv innan AAP:en har gjort en sekretessprövning.

Vid användning av Bedas API

Möjligheten att hämta uppgifter om gymnasiala meriter via Bedas API-tjänst bygger på att AAP hanterar uppgifterna i enlighet med gällande dataskydds- och sekretessreglering. För det fall AAP använder sig av en PVL gäller kraven på lagenlighet även denne. Om regelefterlevnad inte upprätthålls riskerar AAP:n att tillfälligt eller permanent, stängas av från eller begränsas i sin åtkomst till Bedas API. Det är därför nödvändigt att den personuppgiftsansvarige (AAP) gör en bedömning av lagligheten i varje tilltänkt personuppgiftsbehandling som denne och dess biträden (PVL) vill genomföra.

Versionshantering

Vi använder oss av semantisk versionshantering.

Vi använder oss även av MAJOR version i URL i form av v2

Servicenivå

Denna sektion beskriver Bedas servicenivå.

Beda är normalt tillgänglig dygnet runt, bortsett från ett servicefönster, se Systemtillgänglighet. Beda kan begränsa tillgängligheten till API:et i enlighet med vad som framgår av detta dokument samt de Allmänna villkoren.

Testmiljö

Programvaruleverantörer har tillgång till en anonymiserad miljö för att testa integration mot Bedas publika API. Den miljön omfattas inte av angivna servicenivåer.

Undantag

Följande situationer undantar de garanterade servicenivåerna.

Force majeure

Om händelser utanför rimlig kontroll som omöjliggör eller väsentligt försvårar fullgörandet av servicenivån uppstår gäller inte angivna servicenivåer. Detta inkluderar men är inte begränsat till, krig, terroristattacker eller militära konflikter, naturkatastrofer såsom översvämningar, jordbävningar eller stormar, pandemi eller nationella hälsokriser, strejk eller arbetskonflikt som påverkar Bedas verksamhet, strömavbrott i samhällskritisk infrastruktur utanför Bedas kontroll.

Fel orsakade av avtalsparten eller avtalsbrott

Situationer där avtalsparternas egna handlingar eller underlåtenhet orsakat fel eller avbrott:

Tredjepartssystem utanför leverantörens kontroll

Fel eller avbrott som uppstår i Beda eller infrastruktur som Beda inte rår över kan påverka servicenivån. Ex. oförutsedda händelser hos driftleverantör eller Navets tillgänglighet.

Systemtillgänglighet

API:et är normalt tillgängligt veckans alla dagar, exklusive planerade avbrott. Planerade avbrott är möjliga varje morgon mellan 06:30 och 07:30. Under den tiden kan API:et vara nere p.g.a. uppdateringar, när det bedöms nödvändigt.

Sällsynta oplanerade avbrott kan uppstå om akut patchning behövs, utan möjlighet till förvarning. Det kan röra sig om, men inte begränsat till, akuta säkerhetsuppdateringar.

"Rate limit"

För att skydda Beda från överbelastning är "rate limiting" konfigurerad. Det innebär att det finns en gräns för hur många anrop en programvaruleverantör kan göra under en viss tidsperiod. Om gränsen överskrids kommer API:et att returnera en HTTP statuskod "429 Too Many Requests" och programvaruleverantören måste vänta innan den kan göra fler anrop. Gränserna för rate limiting kan komma att justeras över tid.

Beda följer Dataportalens riktlinjer för REST API:er för rate limiting.

Beda retunerar därmed följande headrar i varje svar:

Header Beskrivning
X-RateLimit-Limit Max antal meddelanden för en specifik tidsperiod (exempelvis, 30 meddelanden).
X-RateLimit-Remaining Antal återstående meddelanden återstår innan max begränsningen är nådd.
X-RateLimit-Reset Återstående tid innan antal nyttjade meddelanden återställs.

Om ni slår i rate limit kommer ni att få en HTTP statuskod 429 Too Many Requests, och ni måste vänta tills rate limit återställs innan ni kan göra fler anrop. Svaret kommer även att innehålla en Retry-After header som anger hur många sekunder ni måste vänta innan ni kan göra fler anrop.

Kontakt

Frågor om denna dokumentation eller andra frågor om Bedas API, inklusive felanmälan, skickas till beda@uhr.se.