PSD2 lovet ett API for hver bank i Europa. Det vi fikk, var én spesifikasjonsfamilie og noen hundre tolkninger av den. Etter fem år med å bygge og drifte koblinger for kontoinformasjon og betalingsinitiering for kunder over hele Baltikum, er mønsteret tydelig: den første banken tar en uke, den femte tar en dag, og så tar den neste uventet en måned.
Samtykkeflyten er der prosjektene stopper opp
API-kallene er den enkle delen. Den vanskelige delen er samtykkets livssyklus - hvordan en kunde godkjenner tilgangen din, hvor lenge den godkjenningen varer, og hva som skjer når den utløper klokken 03:00 en søndag.
- Noen banker utsteder samtykker med 90 dagers varighet og fornyer dem stille i bakgrunnen; andre krever full re-autentisering.
- Samtykkeflyter i sandkasse skiller seg jevnlig fra de i produksjon. Sett av tid til en ny integrasjonsrunde etter lansering.
- Feiltaksonomiene er inkonsekvente: det samme utløpte samtykket kan dukke opp som
401,403, eller - i ett minneverdig tilfelle - en200med en tom transaksjonsliste.
Det siste punktet fortjener ekstra vekt: et tomt svar er ikke det samme som et vellykket svar. Hvis avstemmingen din er avhengig av en transaksjonsflyt, behandle «ingen transaksjoner» som en tilstand som må verifiseres, ikke som et faktum som skal registreres.
Det vi standardiserer på
Hver kobling vi leverer, kjører nå bak det samme interne grensesnittet, med bank-spesifikke adaptere som holdes bevisst tynne. Den samme disiplinen gjelder på betalingsinitieringssiden - ett kanonisk betalingsobjekt, eksplisitt tilpasset hver banks dialekt:
Adapteren håndterer autentiseringsrariteter og ulike måter å hente data side for side på; alt annet - nye forsøk, idempotens, varsling, advarsler om utløpende samtykke - ligger i det felles laget, skrevet én gang og testet én gang.
> Hvis en bankintegrasjon trenger skreddersydd logikk for nye forsøk, hører den logikken hjemme i det felles laget med et feature flag - aldri i adapteren. Adaptere som blir stående urørt, forfaller; det felles laget blir løpende vedlikeholdt.
Resultatet blir rutine - og det er nettopp målet. En ny bank er en ny adapter, en testfil tatt opp fra sandkassen deres, og en sjekkliste - ikke et nytt prosjekt.