API podporuje čtyři metody autorizace. Vyberte tu, která nejlépe odpovídá vašemu integračnímu scénáři.
Nejlepší volba, pokud integrujete API přímo do své vlastní aplikace a jednáte jménem sebe. Neexistuje žádné přesměrování OAuth pro uživatele – svůj API klíč vyměníte za krátkodobý bearer token, který připojíte ke každé žádosti.
client_id and client_secret.POST /api/auth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials &client_id=YOUR_CLIENT_ID &client_secret=YOUR_CLIENT_SECRET &scope=send_documents receive_documents
access_token jako Bearer token v následujících požadavcích:Authorization: Bearer <access_token>
refresh_token ze stejné odpovědi k získání nového páru tokenů bez opětovného zadání přihlašovacích údajů:POST /api/auth/renew
Content-Type: application/json
{ "refresh_token": "YOUR_REFRESH_TOKEN" }Případně jednoduše požádejte o zcela nový token opakováním kroku 2 s vaším client_id a client_secret.Nejlepší volba, pokud integrujete do své vlastní aplikace, ale chcete použít standardní tok OAuth 2.0 Authorization Code. Uživatel (vy) bude přesměrován na obrazovku souhlasu a požádán o udělení požadovaných oprávnění. To je užitečné, pokud chcete, aby byl token vázán na interaktivní relaci.
client_id and client_secret. Nastavte tam URI přesměrování.GET /oauth/authorize ?response_type=code &client_id=YOUR_CLIENT_ID &redirect_uri=https://your-app.example.com/callback &scope=send_documents receive_documents &state=RANDOM_STATE
code za token:POST /api/auth/token Content-Type: application/x-www-form-urlencoded grant_type=authorization_code &code=RETURNED_CODE &redirect_uri=https://your-app.example.com/callback &client_id=YOUR_CLIENT_ID &client_secret=YOUR_CLIENT_SECRET
Nejlepší volba, pokud vytváříte multi-tenantní aplikaci která bude používána vašimi vlastními zákazníky. Každý zákazník se přihlásí se svým vlastním účtem a explicitně udělí vaší aplikaci přístup ke svým datům. Jednáte jejich jménem pomocí tokenu, který vydají.
client_id and client_secret pro tuto aplikaci.GET /oauth/authorize ?response_type=code &client_id=YOUR_DEVELOPER_APP_CLIENT_ID &redirect_uri=https://your-app.example.com/callback &scope=send_documents &state=RANDOM_STATE
Pokud již víte, kterou společnost chcete připojit, předejte jeden z následujících parametrů k předvýběru na obrazovce souhlasu – uživatel uvidí daného účastníka zvýrazněného/předvyplněného:
| Parametr(y) | Kdy použít | Příklad |
|---|---|---|
| vatId | Znáte DIČ společnosti. Kontroluje se jako první; rn/countryCode jsou ignorovány, pokud je nalezena shoda. | &vatId=CZ12345678 |
| rn + countryCode | Znáte registrační číslo a zemi společnosti. Oba parametry jsou vyžadovány společně. | &rn=12345678&countryCode=CZ |
Porovnávání je case-insensitive a normalizuje mezery. Pokud žádný účastník v uživatelově účtu neodpovídá, obrazovka souhlasu zobrazí všechny dostupné účastníky bez předvýběru.
Zjednodušené přihlašovací údaje určené pro veřejné vyhledávání jen pro čtení (např. kontrola, zda je účastník registrován v síti Peppol). affiliateId je UUID, které se může objevit v URL a referrer hlavičkách – je považováno za semi-veřejné. Jeho hlavním účelem je ochrana proti anonymnímu zneužití a DoS útokům, nikoli striktní autentizace.
Předejte jako query parametr k vyhledávacím endpointům:
GET /api/lookup?affiliateId=YOUR_AFFILIATE_UUID&...
affiliateId pro operace zápisu nebo pro přístup k soukromým datům účtu. Pro cokoliv nad rámec veřejného vyhledávání použijte jednu z výše uvedených metod založených na tokenech.Při žádosti o token zadáte jeden nebo více oborů. K dispozici jsou následující obory:
| Obor | Popis |
|---|---|
| admin | Plné úpravy všeho. |
| read_participant_info | Čtení informací o účastníkovi (e-mail, registrační číslo atd.). |
| send_documents | Vytváření a odesílání nových dokumentů. Aplikace může přistupovat pouze k dokumentům, které sama vytvořila. |
| receive_documents | Přístup k novým příchozím dokumentům, které ještě nebyly zpracovány. |
| receive_all_documents | Přístup ke všem příchozím dokumentům bez ohledu na jejich stav zpracování. |
| read_all_documents | Čtení všech dokumentů, včetně těch odeslaných jinými aplikacemi. |
Požadujte pouze obory, které vaše integrace skutečně potřebuje. Tokeny vydané prostřednictvím toku Developer Application jsou dále omezeny na obory, které zákazník schválil na obrazovce souhlasu.