- Created by Lisa Moser, last updated on May 02, 2023 8 minute read
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 22 Next »
You have English selected as language but this page has not been translated yet. Translate the page or view the content in the default space language below.
Display default1 Der VeKa-Abfrage-Webservice
1.1 Vorwort
Das VeKa-Center stellt ein Abfragemodul in Form eines Webservice bereit.
Dieses Abfragemodul beinhaltet Daten der Versicherer, die die Zustimmung zu der Abfrage gegeben haben.
Die vertraglichen Vereinbarungen sind im Lizenzvertrag und den Richtlinien vorhanden. Dieses Dokument soll vor allem die technische Sicht des Webservice wiedergeben.
Der Webservice hat eine einzige Methode „Query“. Der Inhalt des Inputparameters beinhaltet die Felder, aufgeschlüsselt in XML, die im Vertrag definiert sind. Die Methode liefert wiederum die Felder zurück, die im Vertrag als Rückgabewerte definiert sind. Dort ist auch der fachliche Beschrieb als Anhang definiert. Der eigentliche Datenaustausch wird im SOAP-Body durchgeführt. Dort werden die Daten zum VeKa-Center übermittelt und in der Antwort Struktur zurückgeliefert. Dabei werden die Anfragewerte teilweise kopiert und mit Werten aus dem VeKa-Center ergänzt.
Der Zugriff auf den Webserver wird mit SSL abgesichert. Dabei verlangt der Web-Server nach einem Clientzertifikat. Wird dieses nicht mit der Anfrage übermittelt, so kann keine Abfrage stattfinden.
Weiter verlangt der Webservice eine Benutzer-Passwort Kombination. Nur, wenn das Subject des Zertifikats mit dem Benutzer übereinstimmt und die Benutzer-Passwort Kombination korrekt ist wird die Anfrage behandelt.
Der Webservice ist im WSDL beschrieben:
https://www.versichertenkarte.ch/queryws_1_0/VeKa_Query_1_0.asmx?wsdl
Die korrekten Verbindungsparameter und das Zertifikat werden Ihnen separat mitgeteilt.
Bei der Implementierung ist darauf zu achten, dass keine Kürzel für die Namespaces im Body akzeptiert werden. Der Webservice kann die Inputparameter nicht verarbeiten und somit kommen Fehlermeldungen zurück, dass nicht alle Parameter gefüllt sind.
In der Version 1.2 hat sich geändert, dass neu das Feld basic_insurance_military_delay (Militärversicherung) entfernt wurde, da es von den Versicherern als unnötig deklariert wurde.
Ebenfalls wurden die Stammtabellen im Kapitel 2.5, das Kapitel 2.2 und die Fehlermeldungen
mit den Rückmeldecodes 15/16 ergänzt.
In der Version 1.3 hat sich geändert, dass offizielle Angaben der Zentralen Ausgleichsstelle ZAS zurückgeliefert werden. Dabei handelt es sich um Vornamen, Nachnamen, Geburtsdatum und Geschlecht.
Die ZAS-Attribute sind in einen eigenen Knoten verschoben worden, da die Datenquelle das ZAS ist und nicht das VeKa. Um einen Parallelbetrieb aufrecht zu erhalten werden die Attribute noch bis 31.12.2015 am alten Platz geliefert.
Weiterhin kommt in der Version 2.0 die Blacklist des Kantons hinzu. Die Quelle der Daten an dieser Stelle ist das herausgebende Kanton. Sie werden auch nur angezeigt, wenn der abfragende Leistungserbringer bei LSP der SASIS AG angemeldet ist.
Nähere Informationen finden Sie unter https://www.lsp-online.ch.
Die Blacklist wird immer zum aktuellen Stand abgefragt. Es findet keine Historisierung statt.
In der Version 2.1 wurden im Kapitel 2.4.5 die zusätzliche Felder zum erweiterten Deckungsrecord hinzugefügt und beschrieben.
1.2 Endpoint
Der VeKa-Webservice Endpoint lautet:
https://www.versichertenkarte.ch/queryws_1_0/VeKa_Query_1_0.asmx
1.3.3 Beispiel einer kompletten SOAP Anfrage
Anfragestruktur | Rückgabestruktur |
|---|---|
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:veka="http://www.vekacenter.ch/veka_query/"> <soap:Header/> <soap:Body> <veka:VeKa_Request> <veka:requestDate>2013-08-13T00:00:00</veka:requestDate> <veka:questioners> <veka:questioners>Abfragedienst-Name</veka:questioners> <veka:user>User-Name</veka:user> <veka:password>********</veka:password> <veka:language>D</veka:language> </veka:questioners> <veka:provider> <veka:ZSR>T000001</veka:ZSR> </veka:provider> <veka:insurance/> <veka:patient> <veka:card_id>80756012340000000527</veka:card_id> <!--Behandlungsdatum (Schadensdatum):--> <veka:treatment_date>2013-08-13</veka:treatment_date> </veka:patient> </veka:VeKa_Request> </soap:Body> </soap:Envelope> | <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body> <VeKa_Response xmlns="http://www.vekacenter.ch/veka_query/"> <returnCode>0</returnCode> <returnMessage/> <requestDate>2013-08-13T17:19:48.5267901+02:00</requestDate> <request_ID>109783678</request_ID> <version> <version_no>1.3.0.2</version_no> <version_date>2013-03-26T18:15:00+01:00</version_date> </version> <biller/> <provider> <ZSR>T000001</ZSR> </provider> <patient> <validFrom>2009-01-01T00:00:00</validFrom> <validUntil>2014-06-30T00:00:00</validUntil> <cardValidFrom>2009-01-01T00:00:00</cardValidFrom> <cardValidUntil>2014-06-30T00:00:00</cardValidUntil> <language>D</language> <insurance> <ean_party>7600000000000</ean_party> <BAG_insurance_id>1234</BAG_insurance_id> <name>sanacur (Testversicherer)</name> <description>Servicecenter</description> <phone>012 345 67 89</phone> <e_mail>info@sanacur.ch</e_mail> <name1>Irgendeine Versicherung</name1> <name2/> <address> <street>Strasse 1</street> <postbox>Postfach. 1234</postbox> <zip>8099</zip> <city>Zürich</city> <countrycode>CH</countrycode> </address> <dateofimport>2010-03-03T18:29:59.783</dateofimport> </insurance> <basicData> <card_id>80756012340000000527</card_id> <assured_id>52</assured_id> <unique_id>7569999999472</unique_id> <familyname>Devon</familyname> <givenname>Ann</givenname> <birthdate>1987-02-14T00:00:00</birthdate> <gender>female</gender> <address> <street>Sonnenpark 20b</street> <postbox/> <zip>8051</zip> <city>Zürich</city> <countrycode>CH</countrycode> </address> </basicData> <KVG> <basic_insurance> <Code>1</Code> <Text>Deckung OKP gems KVG</Text> </basic_insurance> <basic_insurance_model> <Code>1</Code> <Text>Standard-Modell gemäss KVG</Text> </basic_insurance_model> <basic_insurance_description/> <basic_insurance_region>ZH</basic_insurance_region> <basic_insurance_accident> <Code>0</Code> <Text>Keine Unfalldeckung gemäss KVG</Text> </basic_insurance_accident> <basic_insurance_data_locked_insured>false </basic_insurance_data_locked_insured> <basic_insurance_benefit_delay>false</basic_insurance_benefit_delay> <basic_insurance_product> <Code>1</Code> <Text>Testprodukt OKP 1</Text> </basic_insurance_product> </KVG> <drugs> <drugs_Hors_Liste> <Code>0</Code> <Text>Keine Deckung für Medikamente gemäss Hors Liste</Text> </drugs_Hors_Liste> <drugs_Hors_Liste_accident> <Code>1</Code> <Text>Unfalldeckung für Medikamente gemäss Hors Liste</Text> </drugs_Hors_Liste_accident> <drugs_complementary> <Code>0</Code> <Text>Keine Deckung für Medikamente Komplementärmedizin</Text> </drugs_complementary> <drugs_complementary_accident> <Code>0</Code> <Text>Keine Unfalldeckung für Medikamente Komplementärmedizin</Text> </drugs_complementary_accident> <drugs_benefit_delay>false</drugs_benefit_delay> </drugs> <hospital> <hospital_unit> <Code>3</Code> <Text>Private Spitalabteilung VVG</Text> </hospital_unit> <hospital_model> <Code>30</Code> <Text>Einzelzimmer mit freier Arztwahl</Text> </hospital_model> <hospital_accident> <Code>0</Code> <Text>Keine Unfalldeckung für Spitalversicherung gemäss VVG</Text> </hospital_accident> <hospital_benefit_delay>false</hospital_benefit_delay> </hospital> <vvg_product> <Code>1</Code> <Text>Prod VVG 1</Text> </vvg_product> <treatment_date>2013-08-13T00:00:00</treatment_date> </patient> <ZAS> <official_familynames>Devon-Miller</official_familynames> <official_givennames>Annemaria</official_givennames > <official_birthdate>1987-02-14T00:00:00</official_birthdate> <official_gender>female</official_gender> </ZAS> <canton> <isZsrInBlacklistActive>true</isZsrInBlacklistActive> <blacklist> <canton_name>SH</canton_name> <validFrom>2014-01-01T00:00:00</validFrom> <validUntil>2014-01-20T00:00:00</validUntil> </blacklist > <blacklist> <canton_name>TI</canton_name> <validFrom>2014-01-05T00:00:00</validFrom> </blacklist > </canton> </VeKa_Response> </soap:Body> </soap:Envelope> |
1.4 Rückmeldungen (ReturnValue) des Webservice
Im Moment werden folgende Rückmeldungen generiert. Diese Meldungen sind nicht fix und werden bei Bedarf ausgebaut.
Ok = 0 | Abfrage konnte korrekt durchgeführt werden |
NoMatch = 1 | Keine Treffer |
ToMuchMatches = 2 | Zuviele Treffer (evtl. auch Fehllieferungen der Versicherer) |
NoEnoughInformationForQuery = 4 | Die Abfragestruktur wurde nicht korrekt gefüllt (Mussfelder sind leer, Felder nicht korrekt gefüllt) |
UserDoesntMatchCertificate = 5 | Der User passt nicht zum Zertifikat |
UserPasswordNotFound = 6 | User/Passwort-Kombination falsch |
NoCertificate = 7 | Der Zugriff erfolgt ohne gültiges Zertifikat (Wird schon vom Internetserver abgefangen) |
UserLocked = 8 | Der User ist gesperrt |
ZSRNotForProvider = 9 | Die Anfragende Zahlstelle wurde für das Zertifikat nicht freigeschaltet |
BAGNrLocked = 10 | Es konnte ein Treffer gelandet werden, die ZSR oder der Provider hat jedoch keine Freischaltung des Versicherers |
NoFurtherRightsForQuery= 11 | Es wurde mit den eingestellten Rechten kein Treffer gelandet |
WrongCity= 12 | Es konnte ein Treffer gelandet werden, der übergebene Ort stimmt jedoch nicht mit dem Ort im VeKa-Center überein |
ZSRNotForUser = 13 | Die übergebene ZSR-Nummer (Provider) ist nicht für den übergebenen User freigeschaltet |
CardNotValid = 14 | Die übergebene Kartennummer konnte zwar gefunden werden, jedoch ist die Karte nicht mehr gültig (wg. Neuer Karte, Sperrung, Austritt) |
NewCardInInsurance = 15 | Die mitgelieferte Kartenummer ist nicht mehr aktiv, es wurde eine aktive Kartennummer innerhalb des gleichen Versicherers gefundent. |
OtherInsurance = 16 | Die mitgelieferte Kartenummer ist nicht mehr aktiv, es wurde eine aktive Kartennummer innerhalb eines anderen Versicherers gefundent. |
UnknownError = 999 | Unbekannter Fehler, ReturnMessage beachten (Normalerweise ein Programmfehler) |
2 Detaillierte Beschreibung der Knoten
2.1 Einleitung
Da jeder Versicherer selbst über seine Daten bestimmt ist es möglich, dass bestimmte Informationen bei bestimmten Leistungserbringern nicht freigeschaltet sind oder dass die Versicherung die Daten nicht liefert. Dies kann dazu führen, dass einzelne Knoten ausgeblendet werden und als Serverrückmeldung eine entsprechende Meldung kommt.
2.2 Allgemeine Datentypen
Beschreibung | Einschränkung |
Beinhaltet die eine EAN-Nummer. | String: (20[0-9]{11}|76[0-9]{11}) |
Beschreibung | Einschränkung |
Beinhaltet die eine BAG-Nummer. | Integer von 1 bis 9999 |
Beschreibung | Einschränkung |
Beinhaltet die eine Karten-Nummer. | String, (80756[0-9]{15}|80438[0-9]{15}) |
Beschreibung | Einschränkung |
Beinhaltet eine Zeichenkette. | String maximale Länge 2 Zeichen |
Beschreibung | Einschränkung |
Beinhaltet eine Zeichenkette. | String maximale Länge 20 Zeichen |
Beschreibung | Einschränkung |
Beinhaltet eine Zeichenkette. | String maximale Länge 40 Zeichen |
Beschreibung | Einschränkung |
Beinhaltet eine Zeichenkette. | String maximale Länge 100 Zeichen |
Beschreibung | Einschränkung |
Beinhaltet eine Sozialversicherungsnummer. | String, (756[0-9]{10}) |
Beschreibung | Einschränkung |
Beinhaltet eine Zahlstellenregister Nummer. | String, ([A-Z][0-9]{6}) |
Beschreibung | Einschränkung |
Beinhaltet die Abfragesprache. | String(1), (D/F/I) |
Beschreibung | Einschränkung |
Beinhaltet das Geschlecht. | String, Enumeration (male/female) |
2. 3 Abfrage beim VeKa (Request)
2.3.1 Abfragestruktur «VeKa Request»

Beschreibung
Element | Beschreibung |
requestDate | In diesem Tag wird das Abfragedatum des Clients übergeben. |
questioners | Siehe "Das Element «questioners» (typeQRY_questioners)" |
biller | Siehe "Das Element «biller» (typeQRY_biller)" |
provider | Siehe "Das Element «provider» (typeQRY_provider)" |
insurance | Siehe "Das Element «insurance» (typeQRY_insurance)" |
patient | Siehe "Das Element «patient» (typeQRY_patient)" |

Beschreibung
Element | Beschreibung |
questioners | Abfragestelle: Wird vom VeKa-Center vergeben |
user | User: Wird vom VeKa-Center vergeben |
password | Passwort: Wird vom VeKa-Center vergeben |
language | Sprache der Antwort (D, F, I) |

Beschreibung
Element | Beschreibung |
ean_party | EAN |
ZSR | ZSR |
invoice_id | RechnungsNr |
invoice_date | RechnungsDatum |

Beschreibung
Element | Beschreibung |
ean_party | EAN |
ZSR | ZSR |

Beschreibung
Element | Beschreibung |
ean_party | EAN |
BAG_insurance_id | BAGNr |
name | Bezeichnung |
2. 3 Abfrage beim VeKa (Request)
2.3.1 Abfragestruktur «VeKa Request»

Beschreibung
Element | Beschreibung |
requestDate | In diesem Tag wird das Abfragedatum des Clients übergeben. |
questioners | Siehe "Das Element «questioners» (typeQRY_questioners)" |
biller | Siehe "Das Element «biller» (typeQRY_biller)" |
provider | Siehe "Das Element «provider» (typeQRY_provider)" |
insurance | Siehe "Das Element «insurance» (typeQRY_insurance)" |
patient | Siehe "Das Element «patient» (typeQRY_patient)" |

Beschreibung
Element | Beschreibung |
questioners | Abfragestelle: Wird vom VeKa-Center vergeben |
user | User: Wird vom VeKa-Center vergeben |
password | Passwort: Wird vom VeKa-Center vergeben |
language | Sprache der Antwort (D, F, I) |

Beschreibung
Element | Beschreibung |
ean_party | EAN |
ZSR | ZSR |
invoice_id | RechnungsNr |
invoice_date | RechnungsDatum |

Beschreibung
Element | Beschreibung |
ean_party | EAN |
ZSR | ZSR |

Beschreibung
Element | Beschreibung |
ean_party | EAN |
BAG_insurance_id | BAGNr |
name | Bezeichnung |

Beschreibung
Element | Beschreibung |
card_id | Kartennummer von VeKa-Center |
assured_id | VersichertenNummer |
unique_id | Sozialversicherungsnummer |
familyname | Hauptname |
givenname | Vorname |
birthdate | Geburtsdatum |
gender | Geschlecht |
zip | Postleitzahl des Wohnorts des Patienten |
treatment_date | Behandlungsbeginn |
2. 4 Rückmeldung beim VeKa (Response)
2.3.1 Abfragestruktur «VeKa Response»
Beschreibung
Element | Beschreibung |
returnCode | Siehe "Beispiel einer kompletten SOAP Anfrage - Rückgabestruktur" |
returnMessage | Siehe "Beispiel einer kompletten SOAP Anfrage - Rückgabestruktur" |
requestDate | Datum der Anfrage vom Server |
request_ID | Eindeutige Anfragenummer |
version | Versionsnummer des Abfragemoduls |
biller | Siehe 2.4.2 |
provider | Siehe 2.4.4 |
patient | Siehe 2.4.5 |
ZAS | Offizielle Attribute der zurückgelieferten AHV-Nummer. Siehe 2.4.10 Einschränkungen: · Sollte vertraglich keine Vereinbarung über diese Attribute bestehen so werden sie nicht mit ausgeliefert. · Bei Roaming anfragen werden diese Daten nicht gefüllt. |
canton | Meldungen des Kantons zu der AHV-Nummer. Siehe 2.4.8 Einschränkungen: · Dieser Knoten wird nur ausgeliefert, wenn der Leistungserbringer dem ordentlichen Meldeverfahren von LSP beigetreten ist. Nähere Informationen siehe https://www.lsp-online.ch oder unter https://www.sasis.ch. |

Beschreibung
Element | Beschreibung |
ean_party | EAN |
ZSR | ZSR |
invoice_id | RechnungsNr |
invoice_date | RechnungsDatum |
- No labels