openapi: 3.0.1
info:
  title: CRUKS raadpleegservice voor spelaanbieders
  version: '1.1.0'
  contact:
     url: http://kansspelautoriteit.nl
     email: cruks@kansspelautoriteit.nl
  description: 'Een aanbieder van kansspelen moet binnenkomst van een speler controleren of hij/zij geregistreerd staat in het Centraal Register Uitsluiting Kans Spelen (CRUKS). Een speler die is geregistreerd mag niet spelen. Hiervoor dient de aanbieder de digitale raadpleegservice van CRUKS gebruiken.'
paths:
  /v1/raadplegen/bsn:
    post:
      summary: 'Raadplegen CRUKS om te controleren of een speler is ingeschreven, op basis van een BSN identificatie'
      description: 'De eerste keer dat CRUKS geraadpleegd wordt om te controleren of een speler is geregistreerd moeten identiteitsgegevens opgegeven worden.
      
        
        De spelaanbieder zorgt ervoor dat de identiteit van de persoon wordt gecontroleerd aan de hand van een identiteitsdocument. Als de speler een Nederlands identiteitsdocument heeft dan moet de eerste raadpleging van CRUKS uitgevoerd worden op basis van de gegevens van het Nederlands identiteitsdocument.
        
        
        CRUKS geeft aan of de speler is ingeschreven en dus niet mag spelen. Daarnaast wordt er een CRUKS-code teruggegeven Bij een vervolg raadpleging dient deze CRUKS-code te worden gebruikt voor de speler.


Deze service is voor de eerste raadpleging met een Nederlands identiteitsdocument.'
      operationId: postV1RaadplegenBsn
      requestBody:
        description: Bij het raadplegen van CRUKS moeten deze gegevens meegestuurd worden. Deze gegevens worden gebruikt om te controleren of deze speler is ingeschreven. Deze gegevens worden niet bewaard.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CRUKS.Raadplegen.Models.BsnRaadplegenRequest'
        required: true
      responses:
        '200':
          description: Het resultaat van de bevraging.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CRUKS.Raadplegen.Models.RaadplegenResult'
        '400':
          description: Het bericht kan niet worden gevalideerd.
        '401':
          description: Geen toegang tot het systeem.
        '404':
          description: De gegevens hebben geen resultaat opgeleverd.
        '500':
          description: Er is een onverwachte fout opgetreden.
  /v1/raadplegen/document:
    post:
      summary: 'Raadplegen CRUKS om te controleren of een speler is ingeschreven, op basis van een buitenlands identificatiedocument'
      description: 'De eerste keer dat CRUKS geraadpleegd wordt om te controleren of een speler is geregistreerd moeten identiteitsgegevens opgegeven worden. 
      
      
      De spelaanbieder zorgt ervoor dat de identiteit van de persoon wordt gecontroleerd aan de hand van een identiteitsdocument. Als de speler een buitenlands identiteitsdocument heeft dan moet de eerste raadpleging van CRUKS uitgevoerd worden op basis van de gegevens van het buitenlandse identiteitsdocument.


CRUKS geeft aan of de speler is ingeschreven en dus niet mag spelen. Daarnaast wordt er een CRUKS-code teruggegeven Bij een vervolg raadpleging dient deze CRUKS-code te worden gebruikt voor de speler.


Deze service is voor de eerste raadpleging met een buitenlands identiteitsdocument.'
      operationId: postV1RaadplegenDocument
      requestBody:
        description: 'Bij het raadplegen van CRUKS moeten deze gegevens meegestuurd worden. Deze gegevens worden gebruikt om te controleren of deze speler is ingeschreven. Deze gegevens worden niet bewaard.'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CRUKS.Raadplegen.Models.BuitenlandsDocumentRaadplegenRequest'
        required: true
      responses:
        '200':
          description: Het resultaat van de bevraging.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CRUKS.Raadplegen.Models.RaadplegenResult'
        '400':
          description: Het bericht kan niet worden gevalideerd.
        '401':
          description: Geen toegang tot het systeem.
        '500':
          description: Er is een onverwachte fout opgetreden.
  /v1/raadplegen/crukscode:
    post:
      summary: 'Raadplegen CRUKS om te controleren of een speler is ingeschreven, op basis van een eerder verkregen CRUKS-code.'
      description: 'Als de spelaanbieder al een CRUKS-code heeft voor de speler dan dient de vervolg raadpleging uitgevoerd te worden op basis van deze CRUKS-code.
      
      Deze service is voor de vervolg raadpleging met een CRUKS-code.'
      operationId: postV1RaadplegenCrukscode
      requestBody:
        description: 'Bij het raadplegen van CRUKS moeten dit gegevens meegestuurd worden. Dit gegeven word gebruikt om te controleren of deze speler is ingeschreven. Dit gegeven worden niet bewaard.'
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CRUKS.Raadplegen.Models.CrukscodeRaadplegenRequest'
        required: true
      responses:
        '200':
          description: Het resultaat van de bevraging.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CRUKS.Raadplegen.Models.RaadplegenResult'
        '400':
          description: De crukscode is ongeldig.
        '401':
          description: Geen toegang tot het systeem.
        '403':
          description: De crukscode is afgegeven aan een andere vergunde aanbieder.
        '500':
          description: Er is een onverwachte fout opgetreden.
components:
  schemas:
    CRUKS.Raadplegen.Models.BsnRaadplegenRequest:
      type: object
      properties:
        bsn:
          type: integer
          description: 'Het burgerservicenummer (BSN) van de speler'
          format: int64
        geboortedatum:
          type: string
          description: 'De geboortedatum van de speler'
          format: date
        naam:
          type: string
          description: 'De achternaam van de speler'
        tussenvoegsels:
          type: string
          description: 'De tussenvoegsels, zoals van de, van der, de, etc. Deze mogen niet bij de achternaam worden ingevuld.'
    CRUKS.Raadplegen.Models.RaadplegenResult:
      type: object
      properties:
        crukscode:
          type: string
          description: De crukscode die gebruikt dient te worden voor vervolg raadplegingen. Het kan zijn dat bij een raadpleging met CRUKS-code een andere CRUKS-code wordt teruggegeven. Bij voorkeur deze ontvangen CRUKS-code gebruiken voor vervolg raadplegingen.
        isGeregistreerd:
          type: boolean
          description: Geeft aan of de speler is geregistreerd. Een geregistreerde speler heeft GEEN toegang om te spelen.
    CRUKS.Raadplegen.Models.BuitenlandsDocumentRaadplegenRequest:
      type: object
      properties:
        voornamen:
          type: string
          description: 'De voornaam van de speler, zoals weergegeven op het gegevensblad in het identiteitsbewijs'
        geboorteplaats:
          type: string
          description: 'De geboorteplaats van de speler, zoals weergegeven op het gegevensblad in het identiteitsbewijs'
        geboortedatum:
          type: string
          description: 'De geboortedatum van de speler, zoals weergegeven op het gegevensblad in het identiteitsbewijs'
          format: date
        naam:
          type: string
          description: 'De achternaam van de speler, zoals weergegeven op het gegevensblad in het identiteitsbewijs'
        tussenvoegsels:
          type: string
          description: 'De tussenvoegsels, zoals van de, van der, de, etc., zoals weergegeven op het gegevensblad in het identiteitsbewijs'
    CRUKS.Raadplegen.Models.CrukscodeRaadplegenRequest:
      type: object
      properties:
        crukscode:
          type: string
          description: De CRUKS-code van de speler die bij een eerdere raadpleging is ontvangen