Πέντε χρόνια συνδέσεων PSD2: όσα δεν σας λέει το πρότυπο (spec)

Ένα πλακίδιο τράπεζας συνδεδεμένο με το λογότυπο της Trex Pi μέσω διακεκομμένων γραμμών δεδομένων

Το PSD2 υποσχέθηκε ένα ενιαίο API για κάθε τράπεζα στην Ευρώπη. Αυτό που πήραμε είναι μία οικογένεια προτύπων (spec family) και μερικές εκατοντάδες ερμηνείες της. Μετά από πέντε χρόνια κατασκευής και λειτουργίας συνδέσεων πληροφοριών λογαριασμού και έναρξης πληρωμών για πελάτες σε όλη τη Βαλτική, το μοτίβο είναι ξεκάθαρο: η πρώτη τράπεζα παίρνει μια εβδομάδα, η πέμπτη παίρνει μία ημέρα, και μετά η επόμενη παίρνει απροσδόκητα έναν μήνα.

Η ροή συγκατάθεσης είναι εκεί όπου τα έργα κολλάνε

Οι κλήσεις API είναι το εύκολο κομμάτι. Το δύσκολο κομμάτι είναι ο κύκλος ζωής της συγκατάθεσης - πώς ένας πελάτης εξουσιοδοτεί την πρόσβασή σας, πόσο διαρκεί αυτή η εξουσιοδότηση, και τι συμβαίνει όταν λήγει στις 03:00 μια Κυριακή.

  • Ορισμένες τράπεζες εκδίδουν συγκαταθέσεις 90 ημερών και τις ανανεώνουν αθόρυβα· άλλες επιβάλλουν πλήρη επανεξουσιοδότηση.
  • Οι ροές συγκατάθεσης σε sandbox διαφέρουν συστηματικά από αυτές σε παραγωγή. Προϋπολογίστε μια δεύτερη φάση ενοποίησης μετά την έναρξη λειτουργίας.
  • Οι ταξινομήσεις σφαλμάτων είναι ασυνεπείς: η ίδια ληγμένη συγκατάθεση μπορεί να εμφανιστεί ως 401, 403, ή - σε μία αξιομνημόνευτη περίπτωση - ως 200 με άδεια λίστα συναλλαγών.

Αυτό το τελευταίο αξίζει έμφαση: μια κενή απόκριση δεν είναι το ίδιο με μια επιτυχημένη απόκριση. Αν η συμφωνία σας εξαρτάται από μια ροή συναλλαγών, αντιμετωπίστε το «καμία συναλλαγή» ως συνθήκη προς επαλήθευση, όχι ως γεγονός προς καταγραφή.

Σε τι τυποποιούμε

Κάθε σύνδεση που παραδίδουμε πλέον λειτουργεί πίσω από την ίδια εσωτερική διεπαφή, με τους adapters ανά τράπεζα να διατηρούνται σκόπιμα λεπτούς. Η ίδια πειθαρχία ισχύει και στην πλευρά έναρξης πληρωμών - ένα ενιαίο κανονικό αντικείμενο πληρωμής, αντιστοιχισμένο ρητά στη διάλεκτο κάθε τράπεζας:

Αντιστοίχιση πεδίων πληρωμής ERP σε στοιχεία XML του SEPA pain.001

Ο adapter χειρίζεται τις ιδιαιτερότητες της πιστοποίησης ταυτότητας και τους διαφορετικούς τρόπους ανάκτησης των δεδομένων σελίδα προς σελίδα· όλα τα υπόλοιπα - επαναλήψεις, ιδεμποτεντία, ειδοποιήσεις, προειδοποιήσεις λήξης συγκατάθεσης - βρίσκονται στο κοινό επίπεδο (shared layer), γραμμένο μία φορά και δοκιμασμένο μία φορά.

> Αν μια τραπεζική ενοποίηση χρειάζεται προσαρμοσμένη λογική επανάληψης, αυτή η λογική ανήκει στο κοινό επίπεδο με ένα feature flag - ποτέ στον adapter. Οι adapters που μένουν στην τύχη τους παλιώνουν· το κοινό επίπεδο, αντίθετα, συντηρείται διαρκώς.

Το αποτέλεσμα γίνεται προβλέψιμη ρουτίνα - και ακριβώς αυτός είναι ο στόχος. Μια νέα τράπεζα είναι ένας νέος adapter, ένα δείγμα αρχείου καταγεγραμμένο από το sandbox της, και μια λίστα ελέγχου - όχι ένα νέο έργο.