PSD2 slibovalo jedno API pro každou banku v Evropě. Dostali jsme jednu rodinu specifikací a několik set jejích interpretací. Po pěti letech budování a provozování konektorů pro informace o účtu a iniciaci plateb pro klienty napříč Pobaltím je vzorec jasný: první banka zabere týden, pátá den, a pak vám ta další nečekaně zabere celý měsíc.
Projekty vázne na toku souhlasu
Volání API je ta snadná část. Tou těžkou je životní cyklus souhlasu - jak zákazník autorizuje váš přístup, jak dlouho tato autorizace žije a co se stane, když vyprší v neděli ve 03:00.
- Některé banky vydávají devadesátidenní souhlasy a tiše je obnovují; jiné vyžadují úplnou opětovnou autentizaci.
- Toky souhlasu v sandboxu se běžně liší od produkčních. Počítejte s druhým integračním průchodem po spuštění do provozu.
- Taxonomie chyb jsou nekonzistentní: stejný vypršelý souhlas se může projevit jako
401,403, nebo - v jednom nezapomenutelném případě - jako200s prázdným seznamem transakcí.
Ten poslední případ si zaslouží zdůraznit: prázdná odpověď není totéž co úspěšná odpověď. Pokud vaše párování závisí na feedu transakcí, berte „žádné transakce" jako stav k ověření, ne jako fakt k zaznamenání.
Na čem stavíme standardizaci
Každý konektor, který dnes dodáváme, běží za stejným interním rozhraním, přičemž adaptéry pro jednotlivé banky jsou záměrně tenké. Stejná disciplína platí i na straně iniciace plateb - jeden kanonický objekt platby, explicitně mapovaný na dialekt každé banky:
Adaptér řeší zvláštnosti autentizace a u každé banky jiný způsob načítání dat po stránkách; všechno ostatní - opakování pokusů, idempotenci, upozorňování, varování před vypršením souhlasu - žije ve sdílené vrstvě, napsané jednou a jednou otestované.
Pokud bankovní integrace potřebuje vlastní logiku opakování pokusů, patří tato logika do sdílené vrstvy s feature flagem - nikdy do adaptéru. Adaptéry ponechané bez péče zastarávají; sdílená vrstva se udržuje průběžně.
Výsledkem je předvídatelná rutina - a přesně to je cíl. Nová banka znamená nový adaptér, vzorový soubor nahraný z jejího sandboxu a checklist - ne nový projekt.