E-shopy a fakturační systémy rozbity jednou změnou API

V polovině toho týdne jsem programoval, jak tomu bývá, nějaké ty nové funkce do našeho volně dostupného on-line fakturačního systému Doklad24.cz. UnitTesty prošly, testy v AngularJS taky, říkám si, že tedy udělám release verzi. No, ale jak tomu tak většinou bývá, radši jsem si chtěl vše ještě jednou vyzkoušet.

Tedy zkusil jsem se registrovat na staging verzi. Proces registrace jsme zjednodušili tak, že v podstatě stačí zadat při registraci do systému minimum informací. Ty, které se nezadaly se pak následně při vytváření účtu načtou ze systému ARES. Pro jistotu, kdyby se to náhodou nepovedlo, tak uživatel po prvním přihlášení je nucen zadat data o firmě ručně. Takže jsem si prošel registrací, počkal až se mi worker postará o založení účtu a přešel na první přihlášení. A ouha, ukázala se mě obrazovka pro upřesnění a doplnění informací o firmě. Prostě takový ten klasický WTF moment.

Po kontrole IČO jsem zjistil, že je opravdu korektní. Přeci si pamatuju IČO vlastní firmy, říkám si. Marně jsem se pokoušel najít chybu někde v kódu. Prostě a jednoduše se načetl název firmy, IČO a DIČ. Informace o adrese sídla firmy zůstala prázdná. Takže prostě a jednoduše kód, který jsem převzal (a asi mnoho dalších) od Radka Hulána přestal fungovat.

Šel jsem tedy hledat příčinu. Na stránkách MFČR jsem se proklikal ke stránce  XML služby ARES a připravujíce si kafe jsem se utěšoval, že to přečtení dokumentace nezabere více jak hodinu… no, zabralo více. V popisu rozhraní jsem nenašel jakoukoliv zmínku o datu poslední změny verze či formátu dat v XSD. Tato adresa http://wwwinfo.mfcr.cz/cgi-bin/ares/darv_bas.cgi?ico= zjevně vypadala, že prostě musí fungovat OK.

Po testovacím dotazu na http://wwwinfo.mfcr.cz/cgi-bin/ares/darv_bas.cgi?ico=27074358 volání API Výpis na dotaz Basic jsem zjistil, že v bloku AA je nějak méně informací a přibylo absolutně nepoužitelné políčko AT (Adresa Textem) s obsahem: <D:AT>Budějovická 778/3a, Michle, 140 00 Praha 4</D:AT> Kde se poděla další políčka a proč se nikde o tom nikdo nezmiňuje je mi záhadou. Verze XML odpovědi je pořád stejná – 1.0.3.

Po hodinovém bádání jsem nakonec došel i k tomu, že nelze žádným rozumným způsobem na jedno volání API nyní získat informace o DIČ a sídle firmy. Takže jsem byl nucen kombinovat získaná data z Výpis na dotaz Basic a Doplňující informace k službě RES. Tento dotaz navíc získávání dat z ARES asi dvakrát prodloužil na nějaké skvělé  až 4 sekundy.

Nejhroznější mi na tom všem ale přijde, že ministerstvo proklamuje, že verze je pořád stejná. Nicméně došlo k tak celkem zásadní změně. Dále jsem se koukal, že tato změna dopadla na jeden fakturační systém, který má 61.000 zákazníků. Zde získání dat z ARES nefunguje doteď. Nedokážu si ani představit nedozírné následky této změny na různé e-shopy a home-made řešení, které již nikdo neudržuje. Hold Asseco Central Europe, a.s. to nějak asi nejspíše zazdilo…

Podle mého pátrání nejede ani třeba na iDoklad.cz a třeba ani v Pohodě (díky Michalovi za ověření :).

UPDATE: Jak jsme s Michalem Špačkem vypátrali, tak asi nemá vliv, zda je človek živnostník či nikoliv – viz IČO 72183373, kde je vše OK. Nicméně některé firmy, u kterých vše fungovalo nejedou. Třeba obě dále uvedená IČO fungovala. Nyní 24698059 (funguje) a 29209200 (nefunguje). Zjevně v tom moc neexistuje žádný klíč.

 

 

Leave a comment

Your comment