Uwierzytelnianie
Wszystkie firmy zarządzające muszą uwierzytelnić się za pomocą tokenu dostępu o ograniczonym czasie ważności (token oAuth Bearer). W tym celu za pośrednictwem portalu (w zakładce „Ustawienia importu danych”) otrzymujesz dane użytkownika serwisu (ID i sekret). Dzięki tym danym firma może za pośrednictwem interfejsu zażądać tokenu dostępu o ograniczonym czasie ważności. Token dostępu musi być następnie przekazany do interfejsu zdarzeń jako token nośnikowy w nagłówku uwierzytelniającym podczas komunikacji HTTP z interfejsem.
Jeśli firma zarządza kilkoma innymi firmami, token dostępu musi być utworzony wyłącznie dla identyfikatora CareFlex firmy zarządzającej. Wszystkie pozostałe zgłoszenia dotyczące różnych identyfikatorów CareFlex są zgłaszane przy użyciu tokenu dostępu firmy zarządzającej. W związku z tym do zarządzania wszystkimi firmami przypisanymi do głównego identyfikatora CareFlex potrzebna jest tylko jedna kombinacja użytkownika usługi/klucza tajnego użytkownika usługi.
Autoryzacja
Wszystkie przedsiębiorstwa muszą podczas zgłoszenia przekazać zarówno token API, jak i identyfikator CareFlex. Wraz ze
zgłoszeniem należy przesłać identyfikator CareFlex (przedsiębiorstwa uprawnionego do świadczeń) oraz token API (przedsiębiorstwa dokonującego zgłoszenia).
Token API można wygenerować w portalu przedsiębiorstwa w sekcji „CRM” / „Ustawienia importu danych”. Istnieje tylko jeden token API dla wszystkich podmiotów zarządzanych przez dane przedsiębiorstwo.
Poprawność identyfikatora CareFlex ID w połączeniu z tokenem API nie jest sprawdzana podczas wysyłania wiadomości, ale można ją zweryfikować po pomyślnym zaimportowaniu wysłanej wiadomości do portalu za pomocą funkcji informacji zwrotnej.
Zapytanie o token dostępu
POST EP1 (patrz wyżej)
z treścią JSON:
{
"grant_type":"password",
"username":"<user_id (użytkownik usługi)>",
"password":"<user_secret (użytkownik usługi)>"
}
oraz nagłówkami:
"Content-Type: application/json"
Odpowiedź zawiera token dostępu ważny przez 12 godzin
{
"access_token":"P7kmfo8HXItLLOReHq65o4%§ggg45dYhSm5ODc",
"token_type":"Bearer",
"expires_in":43200,
"created_at":1589887223
}
Token dostępu jest używany jako token na okaziciela podczas komunikacji z interfejsem
POST EP2 (patrz wyżej)
z nagłówkami SOAP:
„Authorization: Bearer
P7kmfo8HXItLLOReHq65o4%§ggg45dYhSm5ODc” „Content-Type: text/xml;charset=UTF-8”
Pusta wiadomość
REQUEST
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:car="http://n4.de/careflex">
<soapenv:Header/>
<soapenv:Body>
<car:NoIncidentRequest>
<careflexId>09ce3580d84bf090</careflexId>
<apitoken>maL0HMDszA2b9PKiqCAZRGh0ZDpVjmvc</apitoken>
<createdAt>2020-08-24</createdAt>
</car:NoIncidentRequest>
</soapenv:Body>
</soapenv:Envelope>
RESPONSE
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns3:NoIncidentResponse xmlns:ns3="http://n4.de/careflex"/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Przykłady ładowności
Powiadomienia z danymi podstawowymi i bez nich
REQUEST
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://n4.de/careflex/2.0">
<soapenv:Header/>
<soapenv:Body>
<ns:NewIncidentRequest>
<careflexId>09ce3580d84bf087</careflexId>
<apitoken>88ea9396-386f-4130-bd00-1dd34e5636bd</apitoken>
<incidentList>
<plainIncident>
<employeeId>4711</employeeId>
<validFrom>2020-04-24</validFrom>
<createdAt>2020-04-24</createdAt>
<type>RST</type>
</plainIncident>
<neuIncident>
<employeeId>4811</employeeId>
<validFrom>2020-04-24</validFrom>
<createdAt>2020-04-24</createdAt>
<type>NEU</type>
<employee>
<title>Prof. Dr.</title>
<firstName>Thomas</firstName>
<lastName>Mustermann</lastName>
<birthday>1979-01-15</birthday>
<sex>m</sex>
<address>
<street>Musterstraße</street>
<houseNumber>9</houseNumber>
<addressSuffix>c/o Max Hauptmieter</addressSuffix>
<zipCode>01234</zipCode>
<city>Musterstadt</city>
<country>DE</country>
</address>
<job>
<employmentSite>Oddział 1</employmentSite>
<employmentStatus>T</employmentStatus>
<startOfEmployment>2020-04-24</startOfEmployment>
<personnelNumber>123654789</personnelNumber>
<management>true</management>
</job>
<contact>
<emailBusiness>
thomas.mustermann@musterfirma.de
</emailBusiness>
<mobileBusiness>0123 12345678</mobileBusiness>
<landlineBusiness>030 12345678</numerStacjonarny>
</kontakt>
</pracownik>
</nowyZgłoszenie>
<zwykłeZgłoszenie>
<idZewnętrzny>IdentyfikatorKlienta-4711-2345</idZewnętrzny>
<idPracownika>35801170498</identyfikatorPracownika> <ważnyOd>2020-04-24</ważnyOd>
<utworzono>2020-04-24</utworzono> <typ>RST</typ>
</zwykłeZgłoszenie>
</listaZgłoszeń>
</ns:NowyŻądanieZgłoszenia>
</soapenv:Body>
</soapenv:Envelope>
RESPONSE
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<ns3:NewIncidentResponse xmlns:ns3="http://n4.de/careflex/2.0">
<importId>550a80b5-de70-4078-860e-c03d75b1dc49</importId>
<incidentResponseList>
<incident>
<rowNumber>0</rowNumber>
<incidentId>
3b2d4888-a25c-4c8b-9818-aa6b428bd2de
</incidentId>
<employeeId>4711</employeeId>
<type>RSTxxx</type>
</incident>
<incident>
<rowNumber>1</rowNumber>
<incidentId>
3615b6af-e2f2-4dcf-a945-d9ad8546228b
</incidentId>
<employeeId>4811</employeeId>
<type>NEU</type>
<incidentError>
<code>422</code>
<message>Weryfikacja nie powiodła się: Zawartość pola „type” jest nieprawidłowa z następującego powodu: nieprawidłowa wartość</message>
</incidentError>
</incident>
<incident>
<rowNumber>2</rowNumber>
<incidentId>
3b2d4888-a25c-4c8b-9818-aa6b428bd2df
</incidentId>
<externalId>Identyfikator klienta-4711-2345</externalId>
<employeeId>35801170498</employeeId>
<type>RST</type>
</incident>
</incidentResponseList>
</ns3:NewIncidentResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>