PSD2 beloofde één API voor elke bank in Europa. Wat we kregen is één specfamilie en een paar honderd interpretaties ervan. Na vijf jaar het bouwen en draaiend houden van account-informatie- en betalingsinitiatie-connectoren voor klanten in de Baltische staten, is het patroon duidelijk: de eerste bank kost een week, de vijfde kost een dag, en dan kost de volgende onverwacht een maand.
De consent flow is waar projecten vastlopen
De API-calls zijn het makkelijke deel. Het moeilijke deel is de consent-levenscyclus - hoe een klant uw toegang autoriseert, hoe lang die autorisatie geldig blijft, en wat er gebeurt wanneer die om 03:00 uur op een zondag verloopt.
- Sommige banken geven consents af voor 90 dagen en vernieuwen die stilzwijgend; andere dwingen volledige herauthenticatie af.
- Consent flows in de sandbox verschillen doorgaans van die in productie. Begroot een tweede integratieronde na livegang.
- Foutentaxonomieën zijn inconsistent: dezelfde verlopen consent kan zich uiten als
401,403, of - in één memorabel geval - een200met een lege transactielijst.
Dat laatste verdient extra nadruk: een lege response is niet hetzelfde als een succesvolle response. Als uw reconciliatie afhankelijk is van een transactiefeed, behandel "geen transacties" dan als een te verifiëren toestand, niet als een te registreren feit.
Waar we op standaardiseren
Elke connector die wij opleveren draait nu achter dezelfde interne interface, met per-bank adapters die bewust dun worden gehouden. Dezelfde discipline geldt aan de kant van betalingsinitiatie - één canoniek betalingsobject, expliciet gemapt naar het dialect van elke bank:
De adapter handelt authenticatie-eigenaardigheden af, plus de verschillende manieren waarop banken data pagina voor pagina teruggeven; al het andere - retries, idempotentie, alerting, waarschuwingen voor verlopende consents - leeft in de gedeelde laag, één keer geschreven en één keer getest.
> Als een bankintegratie aangepaste retrylogica nodig heeft, hoort die logica thuis in de gedeelde laag achter een feature flag - nooit in de adapter. Adapters die aan hun lot worden overgelaten verouderen; de gedeelde laag wordt wél onderhouden.
Het resultaat wordt routine - en dat is precies de bedoeling. Een nieuwe bank is een nieuwe adapter, een vanuit de sandbox opgenomen voorbeeldbestand voor de tests, en een checklist - geen nieuw project.