Öt év PSD2-konnektorok: amit a szabvány nem mond el

Egy bankcsempe, amely szaggatott adatvonalakkal kapcsolódik a Trex Pi jelhez

A PSD2 egy API-t ígért Európa minden bankjához. Amit kaptunk, az egy szabványcsalád és annak néhány száz értelmezése. Öt év után, amit balti ügyfelek számára számlainformációs és fizetéskezdeményezési konnektorok építésével és üzemeltetésével töltöttünk, a minta egyértelmű: az első bank egy hetet vesz igénybe, az ötödik egy napot, majd a következő váratlanul egy hónapot.

A hozzájárulási folyamatnál akadnak el a projektek

Az API-hívások a könnyű rész. A nehéz rész a hozzájárulás életciklusa - hogyan engedélyezi az ügyfél a hozzáférését, meddig él ez az engedély, és mi történik, amikor vasárnap hajnali 03:00-kor lejár.

  • Egyes bankok 90 napos hozzájárulásokat adnak ki, és csendben megújítják őket; mások teljes újra-hitelesítést kényszerítenek ki.
  • A sandbox hozzájárulási folyamatok rendszeresen eltérnek az éles környezetbeliektől. Számoljon egy második integrációs körrel az élesítés után.
  • A hibataxonómiák következetlenek: ugyanaz a lejárt hozzájárulás megjelenhet 401-ként, 403-ként, vagy - egy emlékezetes esetben - egy 200-as válaszként üres tranzakciólistával.

Ez utóbbi külön hangsúlyt érdemel: egy üres válasz nem ugyanaz, mint egy sikeres válasz. Ha az egyeztetése egy tranzakciós feedtől függ, kezelje a „nincs tranzakció” állapotot ellenőrizendő feltételként, ne rögzítendő tényként.

Amire szabványosítunk

Minden általunk szállított konnektor ma már ugyanazon belső interfész mögött fut, a bankonkénti adaptereket pedig tudatosan vékonyan tartjuk. Ugyanez a fegyelem érvényes a fizetéskezdeményezés oldalán is - egyetlen kanonikus fizetési objektum, amelyet explicit módon leképezünk az egyes bankok dialektusára:

Az ERP fizetési mezők leképezése a SEPA pain.001 XML elemeire

Az adapter kezeli a hitelesítési sajátosságokat és az oldalankénti adatlekérés eltérő sémáit; minden más - újrapróbálkozások, idempotencia, riasztás, hozzájárulás-lejárati figyelmeztetések - a közös rétegben él, egyszer megírva és egyszer letesztelve.

> Ha egy banki integrációnak egyedi újrapróbálkozási logikára van szüksége, az a logika a közös rétegbe tartozik, egy feature flaggel - soha nem az adapterbe. A magukra hagyott adapterek elavulnak; a közös réteget viszont folyamatosan karbantartják.

Az eredmény kiszámítható rutinná válik - és pontosan ez a cél. Egy új bank egy új adaptert jelent, egy a sandboxából rögzített mintafájlt, és egy ellenőrzőlistát - nem egy új projektet.