1. Získať SAPI token
SAPI token je viazaný na konkrétne credentialy a firmu. Secret nikdy neposielajte ako Bearer token priamo; najprv ho vymeňte cez client_credentials a výsledný access_token cacheujte do expirácie.
Postup
- 1Použite sandbox credentialy firmy A alebo B z demo účtov.
- 2Zavolajte POST /sapi/v1/auth/token s grant_type client_credentials.
- 3Cacheujte access_token 15 minút a refresh_token 30 dní.
- 4Pri 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 | uuid | áno | UUID vydané pre konkrétnu firmu/Peppol ID. |
| client_secret | string | áno | Tajný sk_live_* 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
Access token platí 15 minút; nemintujte ho pred každým volaním.
Refresh token rotuje pri /auth/renew a starý token sa invaliduje.
Použite renew alebo token endpoint, nie retry rovnakého expirovaného tokenu.
Chyby
Credentialy nesedia, kľúč je vypnutý alebo demo kľúč používate na produkčnom hoste.
Po opakovaných chybných pokusoch je účet dočasne zablokovaný.
Ďalšie kroky
- Po získaní tokenu zavolajte /auth/token/status ako health check.
- Pri document endpointoch vždy pridajte X-Peppol-Participant-Id.