Calculation as a Service (CaaS)

Allgemeines

Für einige Vergleichsrechner kann die Berechnung getrennt über eine API konsumiert werden. Erwartet man als Endergebnis einen Vergleichsrechner, muss man also alles außer der Berechnungen selbst kreieren.

Authing

Die Authentifizierung erfolgt mittels username&password.

Hierzu senden Sie einen POST-Request an /api/login mit ihren Zugangsdaten im Body.

Bei erfolgreicher Authentifizierung erhalten Sie eine Response mit einem Authentifizierungstoken.

Beispiel Request:

POST /api/login
{
  "username": "Bob",
  "password": "BobsPassword"
}

Beispiel Response:

Transfer-Encoding: chunked
Content-Type: application/json
Expires: Tue, 05 Dec 2017 15:17:17 GMT

{
"token": "eyJhbGciOiJSUzI1NiJ9.ey..."
}

Haben Sie ein Token erhalten, so muss dieses für weitere Anfragen im Request-Header „Authorisation“ mit dem Wert „Bearer X“, wobei X den Wert des erhaltenen Tokens („eyJhbGciOiJSUzI1NiJ9.ey…“) enthält, angegeben werden.

Bsp. für den Aufruf zur Berechnung einer Privathaftpflicht-Versicherung:

POST api/v1/calculate/private-liability
Authorisation: "Bearer eyJhbGciOiJSUzI1NiJ9.ey..."
Content-Type: "application/json"

{
  "policyholder":  {"birthdate":315529200,"sex":"female","name":"Kiefer"},
  "subject_matter": {
      "policyholder": {"civil_servant":false}
   }, 
  "previous_insurance_exists":false,
  "previous_damages_exist":false,
  "desired_payment_mode":"monatlich"
}

API

Die Definition der API ist nach den openapi 3.0 Spezifikationen dokumentiert und im json-Format unter https://calculation.dionera.com/api/doc/v1/swagger.json abrufbar.

Beispiel Privathaftpflicht

Der Request unterteilt sich in 3 Bereiche.

Allgemeine Angaben zum Versicherungsnehmer (Name, Vorname, Geschlecht und Geburtsdatum) erfolgen im Attribut „policyholder“. Hierbei ist die Angabe des Geburtsdatums Pflicht und es wird ein Fehler ausgegeben, wenn diese Angabe fehlt.

Angaben zu den versicherten Personen erfolgen im Attribut „subject_matter“. Hier werden auch tarifrelevante Angaben (z.B. im öffentlichen Dienst beschäftigt oder Einschluss einer Diensthaftpflicht gewünscht) zum Versicherungsnehmer, sowie zu weiteren zu versichernden Personen gemacht. Für den Versicherungsnehmer und ggf. dessen Partner ist die Angabe des Status „civil_servant“ Pflichtangabe. Sollte eine Diensthaftpflicht („include_civil_service_liability“) mit eingeschlossen werden, dann ist auch die Angabe der Tätigkeit („civil_service_occupation“) (zulässige Werte siehe components/schemas/CivilServiceOccuption aus der oben verlinkten json) auszufüllen.

Im 3. Teil befinden sich allgemeine Angaben wie die gewünschte Zahlweise.

Bsp.-Request für einen Versicherungsnehmer, der nicht im öffentl. Dienst beschäftigt ist und keine weiteren Personen mitversichert werden sollen.

POST /v1/calculate/private-liability
Authorization: "Bearer eyJhbGciOiJSUzI1NiJ9.ey..."
Content-Type: "application/json"

{
"policyholder": {"birthdate":315529200,"sex":"female","name":"Kiefer"},
"subject_matter": 
    {
        "policyholder": {
            "civil_servant":false
        },
    },
"previous_insurance_exists":false,
"previous_damages_exist":false,
"desired_payment_mode":"monatlich"
}

Bsp für eine Familie, bei der Versicherungsnehmer im öffentl. Dienst beschäftigt ist, und den Einschluss einer Diensthaftpflicht haben möchte.

POST /v1/calculate/private-liability
Authorization: "Bearer eyJhbGciOiJSUzI1NiJ9.ey..."
Content-Type: "application/json"

{
"policyholder": {"birthdate":315529200},
"subject_matter": 
    {
        "policyholder": {
           "civil_servant":true,
           "civil_service_occupation": "lehrer",
           "include_civil_service_liability": true
        },
        "partner": {
            "civil_servant": false
        },
        "include_children": true
    },
"previous_insurance_exists":false,
"previous_damages_exist":false,
"desired_payment_mode":"monatlich"
}