---
openapi: 3.0.1
info:
  title: Eindtoetsketen
  description: Dit is de definitie van de diensten in de Eindtoetsketen voor schooljaar 2022-2023.
  contact:
    name: Jos van der Arend (Kennisnet)
    email: J.vanderArend@kennisnet.nl
    url: https://raw.githubusercontent.com/JosVanderArend/eindtoets/main/eindtoetsketen-openapi.yaml
  version: "20220701"
servers:
- url: https://eindtoets.edustandaard.nl/v2022-2023
tags:
- name: Eindtoetsdeelnemers
  description: Dienst over de uitwisseling van de eindtoetsdeelnemers
- name: Eindtoetsresultaten
  description: Diensten over de uitwisseling van de eindtoetsresultaten
paths:
  /registreren:
    post:
      tags:
      - Eindtoetsdeelnemers
      summary: Registreren eindtoetsdeelnemers
      description: Registreren van alle deelnemers aan de eindtoets volgens standlevering van de deelnemerslijst aan de toetsleverancier. Iedere laatste aanlevering van de school is de meest actuele en volledige verzameling van deelnemergegevens. Deze registratie kan nieuw zijn (eerste aanlevering) of een update (alle vervolgleveringen). Het gedeelte '/toetsleverancier-endpoint' uit het pad moet worden vervangen door het endpoint van de betreffende toetsleverancier.
      operationId: registrerenEindtoetsdeelnemers
      parameters:
      - name: edu-to
        in: query
        description: Dit geeft aan namens welke school de toetsleverancier het bericht ontvangt. De waarde is het 20 karakters lange School OIN (omdat het routeringskenmerk voor de toetsleverancier in het OSR vooralsnog niet bestaat). Deze parameter is verplicht volgens de Edukoppeling REST/SaaS-profiel.
        required: true
        style: form
        explode: false
        schema:
          pattern: (\d|\D){20}
          type: string
        example: 0000000700011BB00000
      - name: edu-from
        in: query
        description: Dit geeft aan namens welke school de LAS-leverancier het bericht verzendt. De waarde is het 20 karakters lange routeringskenmerk van de betreffende schooladministratie. Deze parameter is verplicht volgens de Edukoppeling REST/SaaS-profiel. Let op, de waarde van deze parameter wordt door de ontvangende toetsleverancier opgeslagen om te worden gebruikt bij de aanlevering van de eindtoetsresultaten.
        required: true
        style: form
        explode: false
        schema:
          pattern: (\d|\D){20}
          type: string
        example: 0000000700011BB00530
      requestBody:
        description: Deelnemerslijst
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Deelnemerslijst'
            examples:
              example:
                value:
                  datumtijd: 2022-03-16T14:44:00Z
                  auteur: Applicatie xyz
                  versie: Eindtoetsketen_v3
                  profiel: Eindtoetsdeelnemers
                  schooljaar: 2022-2023
                  deelnemersgroep:
                    instellingscode: 99XX
                    vestigingscode: "00"
                    onderwijsaanbiedercode: 123A123
                    onderwijslocatiecode: 123X123
                    administratienr: "99"
                  groepen:
                  - label: Stamgroep
                    id: groep-abc123
                    omschrijving: 8A
                    niveau:
                      label: Jaargroep
                      niveau: "8"
                  deelnemers:
                  - label: Leerling
                    deelnemerref:
                    - label: ECK-iD
                      onderwijsdeelnemerID: leerling-abc123
                    achternaam: Achternaam
                    voorvoegsel: van der
                    roepnaam: Aatje
                    groep: groep-abc123
                    niveau:
                      label: Jaargroep
                      niveau: "8"
                    extensie:
                      label: Demografisch
                      voorletters: ABC
                      geboortedatum: 2008-05-12
                      geslacht: 1
        required: true
      responses:
        "202":
          description: Bericht succesvol ontvangen en wordt asynchroon verwerkt.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
        "401":
          description: Verzender van bericht is niet geautoriseerd door de betreffende school.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
        "403":
          description: Inschrijving is gesloten.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
        "405":
          description: School is (nog) niet aangemeld bij de toetsleverancier. Wanneer de school al wel aangemeld is ga dan na of er sprake is van een geregistreerde vestigingscode; de toetsleverancier heeft een door DUO geregistreerde vestigingscode nodig om de aangemelde leerlingen correct te kunnen verwerken.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
        "422":
          description: Bericht ontvangen maar heeft ongeldige berichtinhoud.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
      x-codegen-request-body-name: body
  /leerlingresultaat:
    post:
      tags:
      - Eindtoetsresultaten
      summary: Overdragen leerlingresultaat
      description: Aanlevering van score- en resultaatgegevens van een leerling op de eindtoets volgens standlevering, d.w.z. iedere laatste aanlevering van de leerling is de meest actuele en volledige verzameling leerlingresultaatgegevens, exclusief het leerlingrapport. Deze overdracht kan nieuw zijn (eerste aanlevering) of een update (alle vervolgleveringen). Het gedeelte '/las-leverancier-endpoint' uit het pad moet worden vervangen door het endpoint van de betreffende LAS-leverancier.
      operationId: overdragenLeerlingresultaat
      parameters:
      - name: edu-to
        in: query
        description: Dit geeft aan namens welke school de LAS-leverancier het bericht ontvangt. De waarde is het 20 karakters lange routeringskenmerk van de betreffende schooladministratie. Deze parameter is verplicht volgens de Edukoppeling REST/SaaS-profiel. Let op, de waarde komt uit de "edu-from" query parameter zoals meegezonden in de aanlevering van eindtoetsdeelnemers.
        required: true
        style: form
        explode: false
        schema:
          pattern: (\d|\D){20}
          type: string
        example: 0000000700011BB00530
      - name: edu-from
        in: query
        description: Dit geeft aan namens welke school de toetsleverancier het bericht verzendt. De waarde is het 20 karakters lange School OIN (omdat het routeringskenmerk voor de toetsleverancier in het OSR vooralsnog niet bestaat). Deze parameter is verplicht volgens de Edukoppeling REST/SaaS-profiel.
        required: true
        style: form
        explode: false
        schema:
          pattern: (\d|\D){20}
          type: string
        example: 0000000700011BB00000
      requestBody:
        description: Leerlingresultaat met score- en resultaatgegevens van een leerling op de eindtoets.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Leerlingresultaat'
        required: true
      responses:
        "202":
          description: Bericht succesvol ontvangen en wordt asynchroon verwerkt.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
        "401":
          description: Verzender van bericht is niet geautoriseerd door de betreffende school.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
        "405":
          description: School is niet bekend bij ontvanger.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
        "422":
          description: Bericht ontvangen maar heeft ongeldige berichtinhoud.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
      x-codegen-request-body-name: body
  /leerlingrapport/{rapportid}:
    get:
      tags:
      - Eindtoetsresultaten
      summary: Opvragen leerlingrapport
      description: Opvragen van het leerlingrapport van een specifieke leerling als resultaat op de eindtoets. Het gedeelte '/toetsleverancier-endpoint' uit het pad moet worden vervangen door het endpoint van de betreffende toetsleverancier.
      operationId: verkrijgenLeerlingrapport
      parameters:
      - name: rapportid
        in: path
        description: Het id van het leerlingrapport
        required: true
        style: simple
        explode: false
        schema:
          type: string
        example: fceea73b-4aab-48fc-9f92-52f8b9230ca8
      - name: edu-to
        in: query
        description: Dit geeft aan namens welke school de toetsleverancier het bericht ontvangt. De waarde is het 20 karakters lange School OIN (omdat het routeringskenmerk voor de toetsleverancier in het OSR vooralsnog niet bestaat). Deze parameter is verplicht volgens de Edukoppeling REST/SaaS-profiel.
        required: true
        style: form
        explode: false
        schema:
          pattern: (\d|\D){20}
          type: string
        example: 0000000700011BB00000
      - name: edu-from
        in: query
        description: Dit geeft aan namens welke school de LAS-leverancier het bericht verzendt. De waarde is het 20 karakters lange routeringskenmerk van de betreffende schooladministratie. Deze parameter is verplicht volgens de Edukoppeling REST/SaaS-profiel.
        required: true
        style: form
        explode: false
        schema:
          pattern: (\d|\D){20}
          type: string
        example: 0000000700011BB00530
      responses:
        "200":
          description: Operatie succesvol, leerlingrapport in PDF-formaat.
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        "204":
          description: Operatie succesvol, geen leerlingrapport beschikbaar.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
        "404":
          description: Leerlingrapport niet bekend.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Ontvangstmelding'
      x-codegen-request-body-name: body
components:
  schemas:
    Onderwijsdeelnemer:
      required:
      - achternaam
      - deelnemerref
      - extensie
      - groep
      - label
      - niveau
      - roepnaam
      type: object
      properties:
        label:
          type: string
          description: Typering van de onderwijsdeelnemer; waarde hier altijd "Leerling".
          example: Leerling
          enum:
          - Leerling
        deelnemerref:
          type: array
          description: Verwijzing naar de leerling waarop de gegevens betrekking hebben middels een identifier. Let op, bij dubbele leerlingidentiteiten is het ECK-iD leidend. Dit gegeven is verplicht en komt 1 of 2 keren voor volgens volgende werkingsregel Indien de leerling een ECK-iD heeft moet het "ECK-iD" als LeerlingIdentiteit worden gebruikt, eventueel aangevuld met het "LAS-key" als aanvullende LeerlingIdentiteit. Als de leerling geen ECK-iD heeft, moet het LAS-key als LeerlingIdentiteit worden gebruikt..
          items:
            $ref: '#/components/schemas/DeelnemerIdentiteitRef'
        achternaam:
          type: string
          description: Achternaam van de eindtoetsdeelnemer. Waarde is het significante deel van de achternaam, zonder voorvoegsel en zonder de scheidingsspatie volgend op het voorvoegsel [NEN 1888]. De waarde is maximaal 70 karakters.
          maxLength : 70
          example: Achternaam01
        voorvoegsel:
          type: string
          description: Voorvoegsel van de leerling.Waarde is de verzameling van een of meer voorzetsels en/of lidwoorden die aan het significante deel van de achternaam vooraf gaat en daarmee gezamenlijk de achternaam vormt [NEN 1888]. De waarde is maximaal 10 karakters.
          maxLength : 10
          example: van der
        roepnaam:
          type: string
          description: Roepnaam van de leerling. De waarde is maximaal 64 karakters.
          maxLength : 64
          example: Aatje
        groep:
          type: string
          description: Verwijzing naar de stamgroep van de leerling; waarde is Id van een Stamgroep.
          example: groep-abc123
        niveau:
          $ref: '#/components/schemas/Leerlingniveau'
        extensie:
          $ref: '#/components/schemas/Demografisch'
    DeelnemerIdentiteitRef:
      required:
      - label
      - onderwijsdeelnemerID
      type: object
      properties:
        label:
          type: string
          description: |
            Typering van het gebruikte OnderwijsdeelnemerID binnen dit blok: ECK-iD, LAS-key of een bepaalde domeinspecifieke context. De type ID van de leerling in de keten:
              * ECK-iD - Het ECK-iD id de ID van de leerling in de leermiddelenketen en per definitie persistent over meerdere uitwisselingen heen. Het ECK-iD is een versleutelde versie van het persoonsgebonden nummer (PGN) en daarmee uniek en sterk beveiligd. Gebruik van het ECK-iD is wettelijk bedoeld voor de Educatieve ContentKeten (zie: https://www.eck-id.nl/).
              * LAS-key - De LAS-key is de betekenisloze identifier van de leerling (onderwijsdeelnemer), minimaal uniek binnen de scope van deze ketensamenwerking. LAS zorgt voor uniciteit binnen de gegevensuitwisselingen m.b.t. deze keten. Deze identifier wordt daarom ook wel LAS-key genoemd. De LAS-key is maximaal 256 karakters.
          example: ECK-iD
          enum:
          - ECK-iD
          - LAS-key
        onderwijsdeelnemerID:
          type: string
          description: Betekenisvolle identifier binnen de door het label aangegeven aanduiding van identifiers.
          example: leerling-abc123
    Leerlingniveau:
      required:
      - label
      - niveau
      type: object
      properties:
        label:
          type: string
          description: Aanduiding van het type onderwijsniveau; waarde hier altijd "Jaargroep".
          example: Jaargroep
          enum:
          - Jaargroep
        niveau:
          type: string
          description: |
            Het onderwijsniveau (jaargroep/niveau/leerjaar) van de leerling. Het jaargroep-niveau van de leerling:
              * 7 - PO Jaargroep 7 en/of Leerjaar 7 van de leerling
              * 8 - PO Jaargroep 8 en/of Leerjaar 8 of hoger van de leerling (in SO)
          example: "8"
          enum:
          - "7"
          - "8"
    Demografisch:
      required:
      - geboortedatum
      - geslacht
      - label
      - voorletters
      type: object
      properties:
        label:
          type: string
          description: Aanduiding van het type uitbreidingsblok (extensie); waarde hier altijd "Demografisch".
          example: Demografisch
          enum:
          - Demografisch
        voorletters:
          type: string
          description: De voorletters van de leerling. Waarde is verzameling letters die wordt gevormd door de eerste letter van alle in volgorde voorkomende voornamen [NEN 1888]; dus geen spaties en geen punten, maximaal 6 posities.
          example: ABC
        geboortedatum:
          type: string
          description: Datum van geboorte van de leerling; waarde volgens formaat EEYY-MM-DD. Dit gegeven is noodzakelijk voor vermelding op het leerlingrapport.
          format: date
        geslacht:
          type: integer
          description: |
            Sekse van een persoon, zoals bij geboorte formeel vastgesteld of nadien formeel gewijzigd [NEN 1888]. Waarde en betekenis in onderstaande tabel "Waardelijst bij Geslacht". Geslacht is nodig om discriminerende vragen te kunnen ontdekken (en neutraliseren). Het geslacht van de leerling:
              * `1` - Mannelijk
              * `2` - Vrouwelijk
              * `9` - Niet gespecificeerd
          example: 1
          enum:
          - 1
          - 2
          - 9
    Groep:
      required:
      - id
      - label
      - niveau
      - omschrijving
      type: object
      properties:
        label:
          type: string
          description: Typering van de groep; waarde hier altijd "Stamgroep".
          example: Stamgroep
          enum:
          - Stamgroep
        id:
          type: string
          description: Betekenisloze identifier van de groep, minimaal uniek binnen de scope van de eindtoets. Deze identifier wordt middels verwijzing gebruikt bij Onderwijsdeelnemer. LAS zorgt voor uniciteit binnen de gegevensuitwisselingen m.b.t. de eindtoets. De waarde is maximaal 256 karakters.
          maxLength : 256
          example: groep-abc123
        omschrijving:
          type: string
          description: Omschrijving, naam of aanduiding van de groep, bijvoorbeeld "8c" of "Dolfijnen". De waarde is maximaal 64 karakters.
          maxLength : 64
          example: 8A
        niveau:
          $ref: '#/components/schemas/Groepsniveau'
    Groepsniveau:
      required:
      - label
      - niveau
      type: object
      properties:
        label:
          type: string
          description: Aanduiding van het type onderwijsniveau; waarde hier altijd "Jaargroep".
          example: Jaargroep
          enum:
          - Jaargroep
        niveau:
          type: string
          description: |
            Een stamgroep is in principe gekoppeld aan één niveau, maar de groep kan eventueel ook een combinatiegroep cq heterogene groep zijn. Bij een homogene stamgroep wordt het niveau onder andere gebruikt bij referentienormering van de toetsresultaten. Het jaargroep-niveau van de groep:
              * "7" - Groep met Jaargroep 7 en/of Leerjaar 7 leerlingen
              * "8" - Groep met Jaargroep 8 en/of Leerjaar 8 leerlingen
              * "C" - Combinatiegroep
              * "S" - SO
          example: "8"
          enum:
          - "7"
          - "8"
          - C
          - S
    Deelnemersgroep:
      required:
      - instellingscode
      - vestigingscode
      - administratienr
      type: object
      description: Gegevens over de groep leerlingen van de Deelnemerslijst waarop de leerlinggegevens betrekking hebben. Dit blok is verplicht en komt exact 1 keer voor.
      properties:
        instellingscode:
          type: string
          description: Identificatie van de deelnemersgroep als de code van de instellingserkenning binnen RIO. Waarde altijd tekst van 4 karakters (2 cijfers en 2 letters).
          example: 99XX
        vestigingscode:
          type: string
          description: De code van de vestigingserkenning binnen RIO behorende bij de deelnemersgroep. Waarde altijd tekst van 2 karakters (2 cijfers).
          example: 00
        onderwijsaanbiedercode:
          type: string
          description: De code van de onderwijsaanbieder binnen RIO behorende bij de deelnemersgroep. Waarde altijd tekst van 7 karakters (3 cijfers, letter A, 3 cijfers).
          example: 123A123
        onderwijslocatiecode:
          type: string
          description: De code van de onderwijslocatie binnen RIO behorende bij de deelnemersgroep. Waarde altijd tekst van 7 karakters (3 cijfers, letter X, 3 cijfers).
          example: 123X123
        administratienr:
          type: string
          description: Identificatie van de deelnemersgroep m.b.t. een door de onderwijsaanbieder in het LAS ingevoerd nummer. Het is de formele Vestigingscode of een vestigingsvolgnummer dat buiten deze uitwisseling geen betekenis heeft (dus geen formele Vestigingscode). Het dient vooral om verschillende administraties binnen de context van de dezelfde overige codes binnen dit gegevensblok te kunnen onderscheiden. Waarde altijd tekst van 2 karakters (2 cijfers).
          example: "99"
    Deelnemerslijst:
      required:
      - auteur
      - datumtijd
      - deelnemers
      - deelnemersgroep
      - groepen
      - profiel
      - schooljaar
      - versie
      type: object
      properties:
        datumtijd:
          type: string
          description: Datum en tijdstip van aanmaken van de Deelnemerslijst.
          format: date-time
          example: 2020-06-16T14:44:00Z
        auteur:
          type: string
          description: De persoon, applicatie en/of organisatie die de Deelnemerslijst heeft gemaakt.
          example: Applicatie xyz
        versie:
          type: string
          description: De versie van de afspraak volgens welke de Deelnemerslijst is opgemaakt; waarde is voor de huidige specs altijd "Eindtoetsketen_v3".
          example: Eindtoetsketen_v3
          enum:
          - Eindtoetsketen_v3
        profiel:
          type: string
          description: Het profiel volgens welke de Deelnemerslijst is opgemaakt; waarde is altijd "Eindtoetsdeelnemers".
          example: Eindtoetsdeelnemers
          enum:
          - Eindtoetsdeelnemers
        schooljaar:
          type: string
          description: Aanduiding van het schooljaar waarop de gegevens in de Deelnemerslijst betrekking hebben; waarde is altijd volgens patroon "EEJJ-EEJJ", zoals bijvoorbeeld "2022-2023".
          example: 2022-2023
        deelnemersgroep:
          $ref: '#/components/schemas/Deelnemersgroep'
        groepen:
          type: array
          description: Gegevenslijst van de stamgroepen van de Deelnemerslijst waarop de leerlinggegevens betrekking hebben. Minimaal 1 Stamgroep is verplicht en er kunnen meerdere Stamgroepen voorkomen.
          items:
            $ref: '#/components/schemas/Groep'
        deelnemers:
          type: array
          description: Gegevenslijst van de leerlingen in de Deelnemerslijst. Minimaal 1 Leerling is verplicht en er kunnen meerdere leerlingen voorkomen.
          items:
            $ref: '#/components/schemas/Onderwijsdeelnemer'
    Eindtoets:
      required:
      - id
      - label
      - naam
      - versie
      type: object
      description: Gegevens van de eindtoets, inclusief onderdelen, domeinen en subdomeinen waarop de scores en resultaten betrekking hebben.
      properties:
        label:
          type: string
          description: Typering van de toets; waarde hier altijd "Eindtoets".
          example: Eindtoets
          enum:
          - Eindtoets
        id:
          type: string
          description: |
            Identifier van de eindtoets. Deze identifier wordt middels verwijzing gebruikt bij de scores en resultaten. Gebruik hier als waarde de code uit de DUO codelijst, zie waardelijst Toetssoort hieronder. Het soort eindtoets:
              * "0011" - CET
              * "0012" - Route 8
              * "0013" - IEP
              * "0014" - Dia-eindtoets
              * "0016" - AMN Eindtoets
          example: "0011"
          enum:
          - "0011"
          - "0012"
          - "0013"
          - "0014"
          - "0016"
        naam:
          type: string
          description: Naam of aanduiding van de eindtoets.
          example: CET
        versie:
          type: string
          description: |
            Versie-aanduiding van de eindtoets. De versie van de eindtoets:
              * "01" - CET papier zonder wereldoriëntatie
              * "02" - CET papier met wereldoriëntatie
              * "03" - CET digitaal zonder wereldoriëntatie
              * "04" - CET digitaal zonder wereldoriëntatie
              * "11" - Route-8 digitaal zonder functioneren
              * "12" - Route-8 digitaal met functioneren
              * "21" - IEP papier
              * "31" - Dia-eindtoets digitaal
              * "51" - AMN Eindtoets digitaal
          example: "01"
          enum:
          - "01"
          - "02"
          - "03"
          - "04"
          - "11"
          - "12"
          - "21"
          - "31"
          - "51"
        url:
          type: string
          description: URL naar verdere informatie over de eindtoets.
          example: https://www.eindtoetsxyz.nl
        omschrijving:
          type: string
          description: Omschrijving van de toets.
          example: CET papier zonder wereldoriëntatie
        toetsonderdelen:
          type: array
          description: Gegevenslijst van de toetsonderdelen van de eindtoets.
          items:
            $ref: '#/components/schemas/Onderdeel'
    Onderdeel:
      required:
      - id
      - label
      type: object
      properties:
        label:
          type: string
          description: Typering van het toetsonderdeel; waarde hier altijd "Onderdeel".
          example: Onderdeel
          enum:
          - Onderdeel
        id:
          type: string
          description: |
            Identifier van het onderdeel van de eindtoets. Deze identifier wordt middels verwijzing gebruikt bij de scores en resultaten. Het soort onderdeel:
              * "8000" - Nederlandse taal
              * "8001" - Rekenen
              * "8002" - Wereldoriëntatie
              * "8003" - Functioneren
          example: "8000"
          enum:
          - "8000"
          - "8001"
          - "8002"
          - "8003"
        omschrijving:
          type: string
          description: Naam of aanduiding van het onderdeel, bijvoorbeeld "Nederlandse taal" of "Rekenen".
          example: Nederlandse taal
        toetsonderdelen:
          type: array
          description: Gegevenslijst van de domeinen van een onderdeel van de eindtoets.
          items:
            $ref: '#/components/schemas/Domein'
    Domein:
      required:
      - id
      - label
      type: object
      properties:
        label:
          type: string
          description: Typering van het toetsonderdeel; waarde hier altijd "Domein".
          example: Domein
          enum:
          - Domein
        id:
          type: string
          description: |
            Identifier van het domein van de eindtoets. Deze identifier wordt middels verwijzing gebruikt bij de scores en resultaten. Het soort domein:
              * "8050" - Nederlandse taal – Lezen
              * "8051" - Nederlandse taal - Taalverzorging
              * "8052" - Nederlandse taal - Woordenschat
              * "8053" - Nederlandse taal - Schrijven
              * "8054" - Nederlandse taal - Begrippenlijst
              * "8055" - Nederlandse taal - Luistervaardigheid
              * "8060" - Rekenen - Getallen
              * "8061" - Rekenen - Verhoudingen
              * "8062" - Rekenen - Meten en meetkunde
              * "8063" - Rekenen - Verbanden
              * "8064" - Rekenen - Begrip
              * "8065" - Rekenen - Bewerkingen
              * "8080" - Zelfconcept
              * "8081" - Werkhouding
          example: "8050"
          enum:
          - "8050"
          - "8051"
          - "8052"
          - "8053"
          - "8054"
          - "8055"
          - "8060"
          - "8061"
          - "8062"
          - "8063"
          - "8064"
          - "8065"
          - "8080"
          - "8081"
        omschrijving:
          type: string
          description: Naam of aanduiding van het onderdeel, bijvoorbeeld "Nederlandse taal - Lezen".
          example: Nederlandse taal - Lezen
        toetsonderdelen:
          type: array
          description: Gegevenslijst van de subdomeinen van een domein binnen de eindtoets.
          items:
            $ref: '#/components/schemas/Subdomein'
    Subdomein:
      required:
      - id
      - label
      type: object
      properties:
        label:
          type: string
          description: Typering van het toetsonderdeel; waarde hier altijd "Subdomein".
          example: Subdomein
          enum:
          - Subdomein
        id:
          type: string
          description: |
            Identifier van het subdomein van de eindtoets. Deze identifier wordt middels verwijzing gebruikt bij de scores en resultaten. Het soort subdomein:
              * "9000" - Taalverzorging - Spelling werkwoorden
              * "9001" - Taalverzorging - Spelling niet-werkwoorden
              * "9003" - Taalverzorging - Interpunctie
              * "9010" - Lezen - Begrijpend leze
              * "9011" - Lezen - Opzoeken
              * "9013" - Lezen - Techniek en woordenschat
              * "9014" - Lezen - Interpreteren, evalueren en samenvatten
          example: "9010"
          enum:
          - "9000"
          - "9001"
          - "9003"
          - "9010"
          - "9011"
          - "9013"
          - "9014"
        omschrijving:
          type: string
          description: Naam of aanduiding van het subdomein.
          example: Lezen - Begrijpend lezen
    Scores:
      required:
      - id
      - scores
      type: object
      properties:
        id:
          type: string
          example: scores-abc123
        scores:
          type: array
          items:
            $ref: '#/components/schemas/Score'
    Score:
      required:
      - id
      - label
      - waarde
      type: object
      properties:
        label:
          type: string
          description: |
            Typering van deze score:
              * Aantal opgaven - Het aantal gemaakte opgaven
              * Aantal goed - Het aantal goed gemaakte opgaven
              * Detailscore - Score van aantal behaalde punten op specifiek toetseenheid (Onderdeel, Domein of Subdomein) van de Eindtoets PO.
              * Eindtoetsscore - Score van het totaal aantal behaalde punten op de Eindtoets PO.
          example: Aantal opgaven
          enum:
          - Aantal opgaven
          - Aantal goed
          - Detailscore
          - Eindtoetsscore
        id:
          type: string
          description: Identificatie van deze score.
          example: score-abc123
        toetseenheid:
          type: string
          description: Verwijzing naar het toetsonderdeel binnen de eindtoets (Onderdeel, Domein of Subdomein) waarop de score betrekking heeft. De waarde is de id van het betreffende toetsonderdeel. Indien het een score voor de gehele eindtoets betreft dan ontbreekt dit veld.
          example: "0011"
        waarde:
          type: string
          description: Waarde van de score. Let op, deze totaalscore is als "Score" van Verplichte Eindtoets verplicht volgens PvE ROD-po.
          example: "510"
    Resultaten:
      required:
      - resultaten
      type: object
      properties:
        aanvullendeinfo:
          type: string
          example: toetsleverancier-endpoint/eindtoets/leerlingrapport/{rapportid}
        resultaten:
          type: array
          items:
            $ref: '#/components/schemas/Resultaat'
    Resultaat:
      required:
      - label
      - waarde
      type: object
      description: Gegevens van de resultaten van een leerling.
      properties:
        label:
          type: string
          description: "Typering van dit resultaat. Het type Resultaat:\n  * Referentieniveau - Resultaat is het referentieniveau voor Rekenen en Taal (Lezen en Taalverzorging). \n  * Toetsadvies - Resultaat is het Toetsadvies op basis van de Eindtoetsscore.\n  * Percentielscore - Resultaat is de percentielscore van een specifieke toetseenheid.\n"
          example: Toetsadvies
          enum:
          - Referentieniveau
          - Toetsadvies
          - Percentielscore
        toetseenheid:
          type: string
          description: Verwijzing naar het toetsonderdeel binnen de eindtoets (Onderdeel, Domein of Subdomein) waarop het resultaat betrekking heeft. De waarde is de id van het betreffende toetsonderdeel. Indien het een resultaat voor de gehele eindtoets betreft dan ontbreekt dit veld!.
          example: "0011"
        waarde:
          type: string
          description: Waarde van dit resultaat.
          example: vwo
    Afnamecontext:
      required:
      - afname
      type: object
      properties:
        afname:
          $ref: '#/components/schemas/Afname'
    Afname:
      required:
      - afnametijdstip
      - id
      type: object
      properties:
        id:
          type: string
          description: Identifier van deze afnamegegevens, minimaal uniek binnen de scope van de eindtoets.
          example: afname-abc123
        afnametijdstip:
          type: string
          description: De datum en tijdstip van start van de afname. Indien alleen datum bekend is, hier als tijdstip 00:00:00 invullen, bijvoorbeeld "2020-06-15T00:00:00Z". Let op, gegeven "Datum afname" van Verplichte Eindtoets is verplicht volgens PvE ROD-po.
          format: date-time
    LeerlingResultatenScores:
      required:
      - afnamecontext
      - deelnemerref
      - id
      - resultaten
      - toetsdefinitie
      - versie
      type: object
      description: Gegevens van de scores en resultaten van de leerlingen.
      properties:
        id:
          type: string
          example: resultatenscores-abc123
        deelnemerref:
          type: array
          description: Verwijzing naar betreffende leerling die de scores en resultaten heeft behaald middels een identifier in het blok LeerlingIdentiteit, zie LeerlingIdentiteit (DeelnemerIdentiteitRef) in paragraaf 3.1.2. Let op, bij dubbele LeerlingIdentiteiten is het ECK-iD leidend.
          items:
            $ref: '#/components/schemas/DeelnemerIdentiteitRef'
        versie:
          type: string
          description: Versie van de verzameling scores en resultaten.
          example: Definitief
        datumtijd:
          type: string
          description: Datum en tijdstip waarop de verzameling resultaten en scores is samengesteld.
          format: date-time
        toetsdefinitie:
          type: string
          description: Verwijzing naar de toetsdefinitie waarop de scores en resultaten betrekking hebben. Waarde hier altijd verwijzing naar de eindtoets. Let op, gegeven "Code toets" van Verplichte Eindtoets is verplicht.
          example: "0011"
        afnamecontext:
          $ref: '#/components/schemas/Afnamecontext'
        scores:
          $ref: '#/components/schemas/Scores'
        resultaten:
          $ref: '#/components/schemas/Resultaten'
    Leerlingresultaat:
      required:
      - auteur
      - datumtijd
      - profiel
      - resultatenscores
      - schooljaar
      - toets
      - versie
      type: object
      properties:
        datumtijd:
          type: string
          description: Datum en tijdstip van aanmaken van het Leerlingresultaat.
          format: date-time
        auteur:
          type: string
          description: De persoon, applicatie en/of organisatie die het Leerlingresultaat heeft gemaakt.
          example: Applicatie xyz
        versie:
          type: string
          description: De versie van de afspraak volgens welke het Leerlingresultaat is opgemaakt; waarde is voor de huidige specs altijd "Eindtoetsketen_v3".
          example: Eindtoetsketen_v3
          enum:
          - Eindtoetsketen_v3
        profiel:
          type: string
          description: Het profiel volgens welke de gegevens opgemaakt; waarde is altijd "Leerlingeindtoetsresultaat".
          example: Leerlingeindtoetsresultaat
        schooljaar:
          type: string
          description: Aanduiding van het schooljaar waarop de gegevens in het Leerlingresultaat betrekking hebben; waarde is altijd volgens patroon "EEJJ-EEJJ", zoals bijvoorbeeld "2022-2023".
          example: 2022-2023
        resultatenscores:
          $ref: '#/components/schemas/LeerlingResultatenScores'
        toets:
          $ref: '#/components/schemas/Eindtoets'
      externalDocs:
        description: Meer info hierover
        url: http://www.edustandaard.nl
    Ontvangstmelding:
      type: object
      properties:
        melding:
          type: string
          example: Tekstuele toelichting waarom het verzoek wel of niet geslaagd is. Deze toelichting zou moeten corresponderen met de meldingstekst uit de specs bij de betreffende statuscode.
