﻿{
  "openapi": "3.0.1",
  "info": {
    "title": "VIRD Service für die Übertragung von Meldungen bzgl. dem Versicherungswechsel von Versicherten sowie dem Abruf von asynchronen Fehlern, die bei der Verarbeitung von Daten aufgetreten sind",
    "version": "v1",
	"description": "Stand entsprechend IRD_API_ Krankenversicherungstraeger_v1.0_technische_Spezifikation.pdf - Dokumentversion 1.4",
		"contact": {
			"name": "Robert Koch-Institut, Referat VIG - Vertrauensstellen, Nordufer 20, 13353 Berlin",
			"email": "Vertrauensstelle-IRD@rki.de"
		}
  },
  "paths": {
    "/api/v1/insuranceupdatenotification": {
      "post": {
        "summary": "Speichert eine Datenlieferung von Meldungen bzgl. dem Versicherungswechsel von Versicherten",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InsuranceUpdateNotificationBundle"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Die Operation wurde erfolgreich abgeschlossen"
          },
          "400": {
            "description": "Es wurde eine fehlerhafte Nachricht gesendet"
          },
          "401": {
            "description": "Die Authentifizierung an der Schnittstelle ist fehlgeschlagen"
          },
          "403": {
            "description": "Die Anfrage war nicht autorisiert"
          },
          "415": {
            "description": "Es wurde ein falscher Content-Type gesendet"
          },
          "500": {
            "description": "Es ist ein interner Fehler bei der Verarbeitung aufgetreten"
          }
        }
      }
    },
    "/api/v1/insuranceupdatenotification/errors": {
      "get": {
        "summary": "Gibt Fehler zurück, die bei der Verarbeitung von Meldungen bzgl. dem Versicherungswechsel von Versicherten auf Seiten der Vertrauensstelle aufgetreten sind",
        "responses": {
          "200": {
            "description": "Die Operation wurde erfolgreich abgeschlossen",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsuranceUpdateProcessingErrorsBundle"
                }
              }
            }
          },
          "204": {
            "description": "Es sind keine Daten vorhanden"
          },
          "401": {
            "description": "Die Authentifizierung an der Schnittstelle ist fehlgeschlagen"
          },
          "403": {
            "description": "Die Anfrage war nicht autorisiert"
          },
          "500": {
            "description": "Es ist ein interner Fehler bei der Verarbeitung aufgetreten"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "InsuranceUpdateNotification": {
        "required": [
          "IdDatensatz",
          "IdVersicherter",
          "IkAlt"
        ],
        "type": "object",
        "properties": {
          "IdDatensatz": {
            "type": "string",
			"maxLength": "40",
			"minLength": "3",
            "description": "Definiert die eindeutige Id eines Datensatzes innerhalb dieser Meldung."
          },
          "IdVersicherter": {
            "type": "string",
            "description": "Eindeutiger Identifikator des Versicherten bei dem meldenden Versicherungsträger. Dieser Wert ist für die VST verschlüsselt.",
            "format": "byte"
          },
          "IdVersicherterAlt": {
            "type": "string",
            "description": "Bisheriger eindeutiger Identifikator des Versicherten bei dem vorherigen Versicherungsträger. Dieser Wert ist für die VST verschlüsselt.",
            "format": "byte"
          },
          "IkAlt": {
            "type": "string",
            "description": "Haupt-IK des vorherigen Versicherungsträgers. Dieser Wert ist für die VST verschlüsselt.",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert einen Datensatz zu den Versicherungsdetails eines Versicherten"
      },
      "InsuranceUpdateNotificationBundle": {
        "required": [
          "IdDatenlieferung",
          "Meldungen",
          "Signatur"
        ],
        "type": "object",
        "properties": {
          "IdDatenlieferung": {
            "type": "string",
			"maxLength": "40",
			"minLength": "3",
            "description": "Definiert die eindeutige Id der Datenlieferung"
          },
          "Meldungen": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsuranceUpdateNotification"
            },
            "description": "Die Liste der Meldungen"
          },
          "Signatur": {
            "type": "string",
            "description": "Signatur über die Liste der Meldungen.",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert eine Datenlieferung von Meldungen bzgl. dem Versicherungswechsel von Versicherten"
      },
      "InsuranceUpdateProcessingErrorResult": {
        "required": [
          "Code",
          "IdDatensatz",
          "IdMeldung"
        ],
        "type": "object",
        "properties": {
          "IdMeldung": {
            "type": "string",
            "description": "Eindeutige Id der Datenlieferung zurück"
          },
          "IdDatensatz": {
            "type": "string",
			"maxLength": "40",
			"minLength": "3",
            "description": "Eindeutige Id des Datensatzes innerhalb einer Datenlieferung"
          },
          "Code": {
            "$ref": "#/components/schemas/InsuranceUpdateProcessingErrorResultCode"
          }
        },
        "additionalProperties": false,
        "description": "Definiert einen Fehler, der bei der Verarbeitung eines Datensatzes aufgetreten ist"
      },
      "InsuranceUpdateProcessingErrorResultCode": {
        "enum": [
          "DecryptionError",
          "WrongFormatIdVersicherter",
          "WrongFormatIdVersicherterAlt",
          "WrongFormatIkAlt",
          "DuplicateIdVersicherter"
        ],
        "type": "string",
        "description": "Definiert einen Fehlercode, der bei der Verarbeitung eines Datensatzes aufgetreten ist"
      },
      "InsuranceUpdateProcessingErrorsBundle": {
        "required": [
          "Fehler",
          "Signatur"
        ],
        "type": "object",
        "properties": {
          "Fehler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsuranceUpdateProcessingErrorResult"
            },
            "description": "Liste der Fehler"
          },
          "Signatur": {
            "type": "string",
            "description": "Signatur über die Daten",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert einen Fehler, der bei der Verarbeitung eines Datensatzes aufgetreten ist"
      }
    }
  }
}