Pět let konektorů PSD2: co vám specifikace neřekne

Dlaždice banky propojená se značkou Trex Pi přerušovanými datovými linkami

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ě - jako 200 s 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:

Mapování polí platby ERP na XML elementy SEPA pain.001

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.