Získať SAPI token
Secret nikdy neposielajte ako Bearer token priamo; najprv ho vymeňte cez client_credentials a výsledný access_token cacheujte do expirácie. Použiť môžete firemný sk_live_* alebo centrálny sk_int_* technického partnera či spravovaného integrátora. Pri partnerskom tokene vyberte autorizovanú firmu hlavičkou X-Peppol-Participant-Id.
Postup
- 01Použite vydané sandbox credentialy firmy alebo sk_int_* credential pridelený partnerovi v jeho sandboxe.
- 02Zavolajte POST /sapi/v1/auth/token s grant_type client_credentials.
- 03Cacheujte access_token 15 minút a refresh_token 30 dní.
- 04Pri prvej 401 alebo pred expiráciou zavolajte /auth/renew.
Endpoint
/sapi/v1/auth/tokenToken payload example
1{2"grant_type": "client_credentials",3"client_id": "487d008a-b3a5-49d0-be3e-ba45cc9c4ffe",4"client_secret": "sk_live_test_5e188b91708ca938e1ee50678b345a3c152b4d4a83d31eac",5"scope": "documents:send documents:read"6}
Token response
1{2"access_token": "eyJhbGc...",3"refresh_token": "rt_...",4"token_type": "Bearer",5"expires_in": 900,6"scope": "documents:send documents:read"7}
Povinné polia
| Názov | Typ | Povinné | Popis |
|---|---|---|---|
| grant_type | string | áno | Musí byť client_credentials. |
| client_id | string | áno | ID alebo prefix vydaného firemného či integrátorského API kľúča. |
| client_secret | string | áno | Celý tajný sk_live_* alebo sk_int_* credential; uložte ho v secret manageri. |
| scope | string | nie | Voliteľné zúženie oprávnení, napr. documents:send documents:read. |
Práca so stavmi
- expires_in=900
- Access token platí 15 minút; nemintujte ho pred každým volaním.
- refresh_token
- Refresh token rotuje pri /auth/renew a starý token sa invaliduje.
- 401
- Použite renew alebo token endpoint, nie retry rovnakého expirovaného tokenu.
Chyby
- 401 AUTH
- Credentialy nesedia, kľúč je vypnutý alebo demo kľúč používate na produkčnom hoste.
- 423 LOCKED
- Opakované neúspešné pokusy sú dočasne obmedzené; platný secret ostáva použiteľný aj pri blokovaní chybných pokusov.
Ďalšie kroky
- Po získaní tokenu zavolajte /auth/token/status ako health check.
- Pri document endpointoch vždy pridajte X-Peppol-Participant-Id.