API pracuje s uživatelskými daty, proto jej nelze používat bez autentizace.

API mPOHODA podporuje dva způsoby autentizace, a to prostřednictvím:

  • API klíče

    Api klíč je unikátní identifikátor sloužící k identifikaci uživatele a firmy. Jedná se o tajnou informaci a je tedy nutné ho uchovat na bezpečném místě, podobně jako např. hesla.

  • přístupového tokenu (access tokenu)

    Přístupový token rovněž slouží k identifikaci uživatele a firmy, jeho platnost je však časově omezená. Klient obdrží přístupový token po úspěšné autentizaci na autentizačním serveru, s využitím OAuth2 a Client Credentials Grant Type. Token je poté zaslán klientem spolu s požadavkem na API.

    upozornění Z hlediska větší bezpečnosti doporučujeme použít přístup pomocí přístupového tokenu.

Autentizace se pro jednotlivé uživatele firmy v aplikaci mPOHODA spravuje v agendě API. Právo na vytvoření nového přístupového kódu má pouze administrátor firmy.

Vygenerovaný autentizační kód je svázán s firmou, ve které byl vygenerován, a uživatelem, který jej vytvořil. V požadavcích tedy není potřeba identifikaci uživatele či firmy žádným dalším způsobem specifikovat.

info Odchodem uživatele z firmy dojde k zneplatnění přístupových údajů a nelze je nadále používat. V případě odebrání administrátorských práv uživateli se uplatňují na API přístupová práva dle nastavení daného uživatele.

1. API klíč

Api klíč je nutné vložit do hlavičky každého požadavku. Tím se zároveň definuje, pro jakého uživatele a firmu se požadavek provádí.

Hlavička
expand_less
Název Typ Popis
Api-Key string API klíč vygenerovaný v agendě API
Ukázka hlavičky s API klíčem
expand_less
Api-Key: 4bef30e89dcd352e8371da053b16f0cf6faf27c31f780f52c3a3cb7604a81a85

Postup pro získání API klíče je popsán v následujícím textu.

Vygenerování API klíče

Nový API klíč vygenerujete v agendě API kliknutím na tlačítko Nový klíč v sekci Přístup pomocí API klíče, zadáním názvu klíče a potvrzením kliknutím na tlačítko Vytvořit.

Klíč se zobrazí v dialogovém okně. Jedná se o tajnou informaci, kterou je nutné uložit na bezpečném místě mimo aplikaci mPOHODA.

upozornění Po zavření dialogu nelze z bezpečnostních důvodů klíč znovu zobrazit.

2. Token

Token je nutné vložit do hlavičky každého požadavku. Tím se zároveň definuje, pro jakého uživatele a firmu se požadavek provádí.

Hlavička
expand_less
Název Typ Popis
Authorization string Token ve tvaru Bearer {token}
Ukázka hlavičky s tokenem
expand_less
Authorization: Bearer eyJhbGciOi...

Získání tokenu probíhá dle standardu OAuth2 s využitím Client Credentials Grant Type. Jiné Grant Type nejsou v současné době podporovány.

upozornění Tento typ je vhodný pouze pro aplikace, které umožňují bezpečné uložení autentizačních údajů Client Id a Client Secret, zejména serverové. Zároveň je vhodný pouze pro aplikace, kde uživatel (i firma) může být pevně specifikován (údaji Client Id a Client Secret) a není tak vyžadováno přihlášení různých uživatelů. Jedná se např. o různá automatizovaná zpracování dat, třeba z nějakého e-shopu.

Postup je popsán v následujícím textu.

Vygenerování klienta

Pro získání tokenu je třeba nejprve vygenerovat klienta, který je určen údaji ClientId a Client Secret.

Nového klienta vytvoříte v agendě API kliknutím na tlačítko Nový klient v sekci Přístup pomocí přístupového tokenu, zadáním názvu klienta a potvrzením kliknutím na tlačítko Vytvořit.

Pro přístup pomocí tokenu se vytvoří Client Id a Client Secret, které se zobrazí v dialogovém okně. Jedná se o tajné údaje (zejména Client Secret), které je nutné uložit na bezpečném místě mimo aplikaci mPOHODA.

upozornění Po zavření dialogu nelze z bezpečnostních důvodů Client Secret znovu zobrazit.

Získání tokenu

Token získáte posláním požadavku na token endpoint na autentizačním serveru, který běží na adrese https://ucet.pohoda.cz. Adresa endpointu je https://ucet.pohoda.cz/connect/token, lze ji zjistit i z konfigurace dostupné na https://ucet.pohoda.cz/.well-known/openid-configuration.

POST https://ucet.pohoda.cz/connect/token
Hlavička
expand_less
Název Typ Popis
Content-Type string Hodnota application/x-www-form-urlencoded
Parametry požadavku
expand_less
Název Typ Popis
grant_type string řetězec client_credentials
client_id string hodnota Client Id z administrace v agendě API
client_secret string hodnota Client Secret z administrace v agendě API
scope string řetězec Mph.OpenApi.Access.Cz
Ukázka těla požadavku
expand_less
grant_type=client_credentials&client_id=...&client_secret=...&scope=Mph.OpenApi.Access.Cz
Struktura těla odpovědi
expand_less
Pole Typ Popis
access_token
string vygenerovaný přístupový token
expires_in
int platnost tokenu (v sekundách)
token_type
string typ tokenu
scope
string specifikuje API scope (resource), pro který se přístupový token získá.
Ukázka těla odpovědi
expand_less

Platnost tokenu

Získaný token má časově omezenou platnost, dle hodnoty pole expires_in v odpovědi. Po vypršení platnosti nelze token žádným způsobem obnovit a je potřeba stejným způsobem získat nový token. Tzv. refresh token se v případě použitého Grant Type Client Credentials nepoužívá.

An unhandled error has occurred. Reload 🗙