Zonky - API a 2FA

Dobrý den,

rád bych se zeptal na API po zavedení PSD2. Mám jednoduchou webovou aplikaci pro vlastní potřeby na automatiké investování.

Po zavedení 2FA logicky přestala fungovat. Co jsem se díval do API dokumentace už úplně zmizela možnost autorizace v API přes už. jméno a heslo a jediná možnost je autorizace aplikace, ale nikde není uvedeno jak získat client_id.

Plánujete nějak obnovit možnost investovat přes API pro běžné investory jen pomocí už. jména a hesla, třeba s nějakým povolením jen určitých IP nebo nějakého jiného dodatečného zabezpečení?

Děkuji

Krásný den, @klasp1,

veřejně více nebudeme komentovat záležistosti týkající se zabezpečení, prosím, napište mi na iva@zonky.cz a domluvíme se dále :slight_smile:

Děkuji a s pozdravem,

Zebra-Iva

Dobrý den Ivo,

děkuji. Moc nevím, proč se to musí řešit soukromě. API dokumentace byla a je veřejná (jen z ni zmizela možnost přihlásit se jménem a heslem) a nikde nejsou citlivé informace. Ale OK, můj dotaz znáte, budu rád za odpověď.

Hezký den.

---------- Původní e-mail ----------

Od: Zebra-Iva via Zonky Forum zonky@discoursemail.com

Komu: klasp1@seznam.cz

Předmět: [Zonky Forum] Zonky - API a 2FA

Hezký den, @klasp1,

API je veřejné, ano, nicméně pokud zde, https://zonky.cz/aplikace-tretich-stran#vyvoj, nenajdete odpověď na svůj dotaz, je lepší už věc řešit přímo s vývojáři, než zprostředkovaně. Informace jste zde tedy, prosím, nenašel?

S pozdravem

Zebra-Iva

Nenašel, resp. vidím, že jste API dokumentaci upravovali, ale stále tam není to co potřebuji.

Předtím moje aplikace fungovala takto:

  • Zavolala si metodu oauth/token kde jsem zaslal svůj username, password a scope: SCOPE_APP_WEB (toto již není možné)
  • Získala si aktuální stav mé peněženky (users/me/wallet) - toto již viditelně také není možné. Tato metoda byla odebrána z API dokumentace
  • Získala seznam dostupných půjček (GET loans/marketplace)
  • Zainvestovala půjčky dle dostupných prostředků (POST marketplace/investment)

Díval jsem se na nové API, zkoušel autorizaci pomocí sdíleného ClientID a Secret. Tam se sice přihlásím, ale nedostanu potřebná práva na čtení peněženky (nemáte definovaný SCOPE, který by to umožňoval). Navíc chci, aby vše probíhalo automaticky, nikoliv abych musel každý den musel získávat autorizační kód.

Jestli dobře chápu, asi byste byli schopni vytvořit mi vlastní ClientId a ClientSecret, pak by platnost autorizačního kódu měla být neomezená. Nicméně si nejsem jistý, jestli lze ještě číst přes API stav peněženky. Pokud ne, tak mohu naslepo zkoušet investovat a čekat, kdy mi dojdou prostředky, ale to úplně nechci.

Pokud to co jsem dělal už není možné vůbec (a neexistuje alternativní nástroj na automatickou investici), tak pro mě Zonky pozbývá smyslu. Nechci se hlásit do appky a ztrácet čas investováním a k smrti mě to nudí.

Budu rád pokud tedy předáte programátorům nebo někomu, kdo mi dokáže pomoci nebo alespoň říct, že to co chci je úplně nereálné a já budu muset zamáčknout slzu a zahodit, co jsem si naprogramoval

Hezký večer a PSD2 zdar.

PS: bylo by fajn aktualizovat changelog v APIary. Celé API jste překopali, ale v seznamu změn o tom není ani zmíňka…

---------- Původní e-mail ----------

Od: Zebra-Iva via Zonky Forum zonky@discoursemail.com

Komu: klasp1@seznam.cz

Předmět: [Zonky Forum] Zonky - API a 2FA

Dobrý den, @klasp1,

z legislativních důvodů jsme museli ukončit podporu password grant přístupu přes oauth. Nově je pro přihlášení nutné využít authorization code grant flow. Zároveň přestal fungovat přístup přes oauth clienta web, který jste pravděpodobně využíval.

Pro registraci vlastního klienta postupujte podle návodu na https://zonky.docs.apiary.io/#introduction/oauth-2-authentication/authorization-code-grant-flow. Pokud si nechcete registrovat vlastního klienta je nově možné využít klienta mujrobot, který authorization code zobrazí v prohlížeči.

Pro přístup můžete použít následující credentials:
clientId: mujrobot
clientSecret: mujrobot
redirect_url: https://app.zonky.cz/api/oauth/code

Postup přihlášení na zonky je následující:

  1. přes prohlížeč přistupte na url např. https://app.zonky.cz/api/oauth/authorize?client_id=mujrobot&redirect_uri=https://app.zonky.cz/api/oauth/code&response_type=code&scope=SCOPE_APP_BASIC_INFO+SCOPE_INVESTMENT_READ+SCOPE_INVESTMENT_WRITE&state=dffdgdfg
    Podle potřeby je možné vyplnit různé scopes, ostatní parametry odpovídají klientovi mujrobot

  2. authorization code předáte jako vstupní parametr (konfiguraci,atd.) vaší aplikaci nebo skriptu.

  3. aplikace následně získá access a refresh token voláním endpointu https://api.zonky.cz/oauth/token viz. https://zonky.docs.apiary.io/#reference/oauth/token/get-access-token

  4. aplikace používá access token pro přístup k zabezpečeným endpointům na zonky api.

  5. access token je možné obnovit pomocí refresh tokenu, který dostanete zároveň s access tokenem.

Změny v dokumentaci API uričtě doplníme.

Co se údajů o peněžence týká, z legislativních důvodů je nemůžeme poskytovat, pokud nemáte odpovídající licenci ČNB.

Mějte krásný den,

Iva ze Zonky

Dobrý den,
na toto vlákno jsem narazil ve stavu naprosté frustrace jednoduše se přihlásit přes API ke svému Zonky účtu.
Vše co tady píšete jsem se už dočetl jinde a vyzkoušel. A nepochodil jsem.

Tady je to co posílám a co dostávám za response


Tam kam dohlédnu dělám všechno podle návodu. Ale zjevně to není dost.
Jestli máte nějaké nápady, co bych mohl dělat špatně, jsem jedno velké ucho (oko)

Díky
Honza

Přišel jsem na to že v požadavku nemám v headerech položku Authorisation.
Chápu správně, že hodnota téhle hlavičky má být: bXVqcm9ib3Q6bXVqcm9ib3Q=
?

@skurt hezký den,

prosím, napište mi na iva@zonky.cz jméno Vašeho robota, kterého vkládáte do autorizace.

Moc děkuji,

Zebra-Iva

Tak jo :slight_smile: Jeden milý člověk mi to pomohl vyřešit.
Problém je v tom, že Zonky API reference říká toto:
clienID:clientSecret | base64
co je ale neúplné, ono to má být spíš:
"Basic " + (clienID:clientSecret | base64)
Čímž myslím “Basic X” kde X je do base64 zakódované “mujrobot:mujrobot”
A tedy toto: “Basic bXVqcm9ib3Q6bXVqcm9ib3Q=”

1 Like

@skurt hezký den, to je dobře :slight_smile:

A kolega Vám již napsal?

Zebra-Iva

Dobrý den,
ano, kolega mi psal hned v pátek a napsal mi v podstatě to samé :slight_smile:

Díky moc za pomoc!
Honza

1 Like