OAuth 2.0
Jak propojíte aplikaci s invo.space přes OAuth 2.0: vytvoření OAuth aplikace, oprávnění, přístup server-server, povolení přístupu uživatelem a jeho odebrání.
OAuth 2.0 je vhodný pro aplikace, které chtějí přístup k účtům jiných uživatelů invo.space. Uživatel aplikaci sám povolí a vybere, ke kterému účtu (firmě) smí. Přístup může kdykoli odebrat.
Pro vlastní skripty ve svém účtu stačí API token.
Vytvoření OAuth aplikace
- Otevřete Nastavení > API a webhooky.
- V části OAuth aplikace klikněte na Nová aplikace.
- Vyplňte:
- Název: uživatelé ho uvidí při povolování přístupu.
- Adresy pro přesměrování: sem pošleme uživatele po povolení nebo zamítnutí přístupu. Povolené jsou jen adresy
https, nebohttpnalocalhosta127.0.0.1. - Oprávnění: oblasti, o které aplikace smí žádat, každá zvlášť pro čtení a zápis. O víc aplikace žádat nemůže.
- Přístup server-server: viz níže.
- Klikněte na Uložit.
- Zobrazí se Client ID a Client secret. Client secret se zobrazí jen jednou. Zkopírujte ho na bezpečné místo a potvrďte Uložil jsem si údaje.

Aplikaci můžete později upravit nebo smazat. Smazaná aplikace a všechny její tokeny přestanou fungovat okamžitě.

Oprávnění
Každá oblast má oprávnění pro čtení (:read) a zápis (:write). Čtení stačí pro požadavky GET, ostatní metody potřebují zápis.
| Oprávnění | Oblast |
|---|---|
invoices | Faktury |
orders | Výzvy k platbě |
expenses | Náklady |
contacts | Kontakty |
bank | Banka |
catalog | Katalog |
sales | Prodeje |
warehouse | Sklad |
cash-register | Pokladna |
delivery | Doprava |
Například invoices:read dovolí faktury číst, ale ne vytvářet. Nastavení účtu, uživatele, API tokeny a OAuth aplikace nejsou přes OAuth dostupné vůbec.
Když token oprávnění nemá, API vrátí 403 s kódem 40301. Role uživatele v účtu platí i pro OAuth: token nesmí víc než uživatel, který přístup povolil.
Povolení přístupu uživatelem
Adresy všech koncových bodů najdete v metadatech serveru: https://invo.space/.well-known/oauth-authorization-server.

- Pošlete uživatele na adresu
authorization_endpointz metadat s parametryresponse_type=code,client_id,redirect_uri,scope(oprávnění oddělená mezerou) astate. Doporučujeme i PKCE (code_challengeacode_challenge_method=S256). - Uživatel se přihlásí, uvidí název aplikace a požadovaná oprávnění a vybere účet, pokud jich má víc.
- Po kliknutí na Povolit ho pošleme na
redirect_uris parametrycodeastate. Po kliknutí na Zamítnout s parametremerror=access_denied. - Kód vyměňte za token na
POST https://invo.space/api/v2/oauth/token(grant_type=authorization_code, těloapplication/x-www-form-urlencoded).
curl https://invo.space/api/v2/oauth/token \
-u "CLIENT_ID:CLIENT_SECRET" \
-d grant_type=authorization_code \
-d code=KOD \
-d redirect_uri=https://example.com/oauth/callback \
-d code_verifier=VERIFIERAccess token posílejte v hlavičce Authorization: Bearer, stejně jako API token. Platí 1 hodinu. Nový získáte přes grant_type=refresh_token. Refresh token platí 30 dní a při každém použití se vymění za nový. Kód z přesměrování platí 10 minut.
Přístup server-server
Když zapnete Přístup server-server, aplikace získá token bez přihlášení uživatele, přes grant_type=client_credentials:
curl https://invo.space/api/v2/oauth/token \
-u "CLIENT_ID:CLIENT_SECRET" \
-d grant_type=client_credentials \
-d "scope=invoices:read"Token pak jedná za uživatele, který aplikaci vytvořil, v účtu, ve kterém ji vytvořil, a jen s oprávněními aplikace. Adresy pro přesměrování nejsou potřeba, když aplikace přihlášení uživatelů nepoužívá.
AI asistenti a MCP klienti
Klienti jako Claude nebo ChatGPT se zaregistrují sami přes POST https://invo.space/api/v2/oauth/register (RFC 7591). OAuth aplikaci pro ně vytvářet nemusíte. Uživatel jim jen povolí přístup stejně jako jiné aplikaci.
Odebrání přístupu
Aplikace, kterým jste povolili přístup, najdete v Nastavení > API a webhooky v části Povolené aplikace. Tlačítkem Odebrat přístup aplikace ztratí přístup ke všem vašim účtům. Pro nový přístup ji budete muset znovu povolit.