Bei PSD2-Schnittstelle fehlt das Beleg-Datum

Hallo,

am Freitag habe ich die ersten Male mit der Karte bezahlt, und zuerst sah es in MoneyMoney (das benutzt die PSD2-Schnittstelle) gut aus, die Buchungen waren vorgemerkt.
Nun sind sie nicht mehr vorgemerkt, und das Datum hat sich verändert: es ist jetzt an unterschiedlichen Tagen, und auch am Sonntag. Also habe ich einen Blick auf das Log geworfen, und in der Tat kommt nur dieses Datum mit der Buchung vom Server, das Datum, an dem bezahlt wurde, ist nicht dabei.
Das ist natürlich untauglich, wenn die Solarisbank selbst nur das Buchungs-Datum, nicht aber das Beleg-Datum ausgibt.
Könnte das bitte behoben werden? Ansonsten stimmen ja kaum irgendwelche zeitlichen Daten der Buchungen, die über die PSD2-Schnittstelle kommen. Ist das überhaupt so zulässig?

Viele Grüße

Konntest du über MoneyMoney Kontoauszüge herunterladen?

@Ferderfu Ich schätze, deine Anfrage lässt sich mit diesem Thema vergleichen: Abbuchungen von Spotify landen im November 2020 - #17 von Vinz

Folgendes zu deinem Anliegen:

  • Die Kartentransaktion findet an Tag X statt.
  • Die Abrechnung der Transaktion an Tag Y.
  • Da der vorgemerkte Betrag und die letztendliche Verbuchung der Transaktion im Solaris-System zwei verschieden Einträge sind, ist also das Datum der finalen Buchung ggbfls. nicht der Tag, an dem die Transaktion tatsächlich stattfand.
  • ABER: In den Metadaten der Buchung sollte das ursprünglich Zahlungsdatum mitgeliefert werden. Ich vermute, dass MoneyMoney aber das transaction date und nicht die transaction time anzeigt, die in diesem Fall korrekt wäre.

Disclaimer: Das ist meine Vermutung auf Basis ähnlicher Fälle in der Vergangenheit. Ich könnte auch falsch liegen. Aber vllt. ist das ein Ansatz, mit dem du mal bei MoneyMoney nachhaken könntest. Bestimmt kann dir dort genauer gesagt werden, welches Datum angezeigt wird.

Moneymoney zeigt an, was ihr auch auf den Kontoauszügen anzeigt: Buchungsdatum, kein Belegdatum.

Tomorrow-App zeigt Belegdatum, aber kein Buchungsdatum.

2 Like

Könnte man das nicht einstellbar machen, was in der App angezeigt wird? Empfinde es als ein Unding, dass Kontoauszug und app abweichen

Hallo,
@Prompto - nein, Kontoauszüge kommen da nicht rüber, leider.

In der Tat gibt es in der App das andere Datum, also das, an dem ich die Bezahlung mit der Karte wirklich gemacht habe, auch mit zutreffender Uhrzeit. Das scheint ja auch rückwärts gesehen das Wirkdatum zu sein, weil das Geld da schon ‚fest reserviert‘ ist.

@Vinz
Was an Daten empfangen wird, kann man bei MoneyMoney im Protokollfenster sehen und von dort herauskopieren: (hier noch schön formatiert)

 {
   "account": {
     "iban": "DE##########",
     "currency": "EUR"
   },
   "transactions": {
     "booked": [{
       "bookingDate": "2021-07-04",
       "transactionAmount": {
         "currency": "EUR",
         "amount": -11.25
       },
       "creditorName": "DM-Drogerie Markt",
       "creditorAccount": {
         "iban": "DE#############"
       },
       "remittanceInformationUnstructured": "DM-Drogerie Markt, Berlin",
       "proprietaryBankTransactionCode": "CARD_TRANSACTION"
     }, { .....

Da ist wirklich nur das Buchungs-Datum dabei.
Das Programm kann mit dem Beleg-Datum natürlich auch umgehen, und mit den ganzen anderen Metadaten (siehe https://moneymoney-app.com/api/import/#transaction ).

An sich ist das ja nur eine Schnittstellensache, denke ich, die Daten sind ja da, sie müssten nur bis zur Schnittstelle durchkommen je weniger unterschiedliche Schnittstellen, desto besser - eat your own dogfoot :+1:
Andererseits, falls Ihr UX-Designer mit großer Priorität für ‚Einfachheit‘ habt, wird das wohl nix werden, denn ein Datum muss dann ausreichen :crazy_face:
Aber man könnte weitere Details ja in dem Detail-Popup unterbringen (oder in der Zeile auf dem Auszug)…
Aber das spricht alles nicht gegen die Metadaten per PSD2 - die wären schon wirklich hilfreich :dizzy:

1 Like

In der Dokumentation der Solarisbank-APIs sind “bookingDate” und “valueDate” dokumentiert.

Ich habe mir jetzt auch angesehen, welche Daten Moneymoney bei einer anderen Bank zieht:

"BookingDateTime":"2021-07-03T19:46:26.097722Z",
"ValueDateTime":"2021-07-04T09:23:36.349010Z",
"CreditDebitIndicator":"Debit",
"MerchantDetails":{"MerchantName":"Rewe…" 

„BookingDate“ sollte das Belegdatum, „ValueDate“ das Buchungsdatum (Wertstellungsdatum) sein.

Trotzi Verfügbarkeit beider Angaben zeigt Moneymoney bei dieser Bank in seiner Buchungsliste nur das Belegdatum. Hier hat sich also der Programmierer von Moneymoney entschieden, das Buchungsdatum nicht anzuzeigen. Bei wieder anderen Konten/Karten zeigt Monemoney beides.

Es bleiben die Fragen offen, warum die Solarisbank-APIs bei „bookingDate“ das Wertstellungsdatum ausspucken, und warum Moneymoney keine einheitliche Anzeige selbst bei Verfügbarkeit der Daten hat.

aha, also:

  • bei N26 z.B. wird in MoneyMoney das entsprechende Datum angezeigt, das auch in deren App angezeigt wird, damit die Sache konkruent aussieht. Das wäre zwar formal ein Unterschied zu anderen Banken, ist aber das, was N26 selbst anzeigt und wohl für das relevante/richtige Datum befindet - und das, was man als Anwender auch vor sich hat… Lustigerweise steht im PDF-Kontoauszug nur das ‚Verbuchungsdatum‘, das davon ab und zu abweicht. :rofl:

  • Andererseits zeigt Tomorrow in der App und auf dem Kontoauszug unterschiedliche Daten an - so gesehen könnten sie den zeitlichen Mittelpunkt dazwischen als Datum über die Schnittstelle liefern, dann hätte jede Informationsschiene ihr eigenes Datum. :sweat_smile:

@Frnk kann man sagen, um welche andere Bank es sich handelt? Vermutlich N26? Oder eine andere, die auch über die Solarisbank anbietet?

MoneyMoney kann nur die PSD2/XS2A Api von der Solarisbank verwenden, nicht die Apis, die es für die Partner gibt - das können nur die wirklichen Partner. Und wenn nur das eine Datum da durchkommt, kann man halt auch nur das verarbeiten…
Auf den ersten Blick ins PDF müsste es laut Beschreibung der Api bei Kartenzahlungen das Feld ‚bookingDate‘ und ‚valueDate‘ geben - aber in echt ist dem wohl nicht so. Ein Feld namens ‚transaction time‘ habe ich allerdings nicht gefunden… Und ein bisschen unterscheidet sich die Struktur von denen im Beispiel im PDF.
Aber ich könnte mir denken, dass man als Partner auch in der Lage sein sollte, einzustellen, was/welche Daten über PSD2 überhaupt geliefert werden. Auch scheinen die Daten dort viel langsamer rüberzukommen als sie in der App sichtbar sind. Meine Einkäufe von heute sind z.b. heute abend noch nicht dort… (wieder ein Fall für eat your own dog food).

Interessanterweise wird über PSD2 übrigens für den Einkauf bei Edeka und bei DM dieselbe gegenseitige IBAN geschickt - sie beginnt mit DE28110…, da bin ich ja skeptisch, ob das wirklich so ist :thinking:

Ich gehe davon aus, dass die Partner mit der PSD2-Schnittstelle nichts am Hut haben. Die Backend-Systeme der Partner werden da komplett außen vor gelassen, da liefert direkt die Solarisbank. Ich wäre verwundert, wenn die Partner hier „konfigurierend“ eingreifen. Scheint mir unnötig komplex. Ausnahme: Kontist. Die bieten eigene APIs an.

Ob Moneymoneys Implementierung oder die Dokumentation der Solarisbank fehlerhaft ist, weiß ich nicht. Was ich sagen kann ist dass selbst bei vollständiger Verfügbarkeit beider Daten in Moneymoney die Darstellung nicht einheitlich zwischen Banken ist. Allerdings tippe ich in Bezug auf Tomorrow auf einen Fehler bei der Solarisbank: denn die mit dem Identifier „bookingDate“ bezeichnete Variable müsste meines Erachtens „valueDate“ sein. Bisschen schlampig ist Moneymoney aber eben manchmal auch.

Das macht die Schnittstelle für mich komplett unbrauchbar - ist bei N26 leider genauso. Man möchte sich den Umgang erleichtern und nicht erschweren.

Vllt. an der Stelle nur ein Kommentar zu diesem Teilaspekt: Bitte beobachtet das mal. Wir haben eben einen Fix eingestellt, der dieses Problem zumindest für Kartenzahlungen beheben sollte. Siehe hier im Forum.
Aber: Wir zeigen bspw. eingehende Überweisungen und Lastschriften immer an dem Datum an, zu dem wir den webhook von Solaris bekommen, sprich am Buchungsdatum. Das Wertstellungsdatum kann bei Lastschriften allerdings schon etwas vorher liegen. Soweit ich das geprüft habe, zeigen wir in den Kontoauszügen immer das Buchungsdatum an, nicht das Wertstellungsdatum. Allerdings liefert die Solarisbank beide Daten mit, bei Kartenzahlungen auch noch die Meta-Daten der Kartenzahlung von dem/der Händlerin.

Bei mir sieht’s bei einer Kartentransaktion so aus:

App zeigt Buchungsdatum
Kontoauszug zeigt Wertstellungsdatum

Eine Kartenzahlung, die in der App am 24. angezeigt wird (Moment der Autorisierung), hat auf dem Kontoauszug das Datum 26. – der Tag, an dem das Geld tatsächlich das Konto verlassen hat, wertgestellt wurde.

Ich glaube, wenn ihr einfach ganz altmodisch auf Kontoauszügen beides anzeigen würdet, wäre für den Großteil der Kunden die Lage schon klar genug.

1 Like

Ich habe das gestern einmal recherchiert. Tatsächlich zeigen die Buchungen, die ich geprüft habe, bei mir das Buchungsdatum, nicht das Wertstellungsdatum im Kontoauszug. Das Buchungsdatum ist in deinem Beispiel höchstwahrscheinlich nicht der 24… Das ist das Transaktionsdatum, bzw. der Zeitpunkt der Autorisierung. Das Buchungsdatum liegt nie vor dem Wertstellungsdatum. So oder so fallen Wertstellungsdatum und Buchungsdatum in ca. 90% der Fälle auf das gleiche Datum (geschätzt).

Stimmt, sorry, ich habe mich bei den Begriffen vertan. Den Fehler wollte ich eigentlich vermeiden, und habe deswegen bei Kartenzahlungen zusätzlich immer vom Belegdatum gesprochen.

Also, App zeigt Belegdatum
Kontoauszug zeigt Buchungsdatum (das häufig identisch ist mit Wertstellungsdatum)

Wer also Kontoauszüge und App vergleicht, dem fehlt auf den Kontoauszügen das Belegdatum.

1 Like

Das finde ich ja bzgl. des Kontoauszuges einen schönen Fortschritt!

Schade, dass man als Kunde von diesen Meta-Daten nicht profitiert. Jeder Supermarkt, bei dem ich einkaufe, habe dieselbe Kontonummer bei der Solarisbank, wird über PSD2 übertragen:

     "booked": [{
       "bookingDate": "2021-07-11",
       "transactionAmount": {
         "currency": "EUR",
         "amount": -8.48
       },
       "creditorName": "##### Master GmbH",
       "creditorAccount": {
         "iban": "DE2811010#############"
       },
       "remittanceInformationUnstructured": "##### Master GmbH, Berlin",
       "proprietaryBankTransactionCode": "CARD_TRANSACTION"
     }, {
       "bookingDate": "2021-07-11",
       "transactionAmount": {
         "currency": "EUR",
         "amount": -6.00
       },
       "creditorName": "DM-Drogerie Markt",
       "creditorAccount": {
         "iban": "DE2811010#############"
       },
       "remittanceInformationUnstructured": "DM-Drogerie Markt, Berlin",
       "proprietaryBankTransactionCode": "CARD_TRANSACTION"
     }, {
       "bookingDate": "2021-07-08",
       "transactionAmount": {
         "currency": "EUR",
         "amount": -14.46
       },
       "creditorName": "##### GMBH",
       "creditorAccount": {
         "iban": "DE2811010#############"
       },
       "remittanceInformationUnstructured": "##### GMBH, BERLIN",
       "proprietaryBankTransactionCode": "CARD_TRANSACTION"
     },{
       "bookingDate": "2021-07-03",
       "transactionAmount": {
         "currency": "EUR",
         "amount": -9.81
       },
       "creditorName": "E-REICHELT #####",
       "creditorAccount": {
         "iban": "DE2811010#############"
       },
       "remittanceInformationUnstructured": "E-REICHELT #####, BERLIN",
       "proprietaryBankTransactionCode": "CARD_TRANSACTION"
     },

An sich ist mir die Kontonummer eher weniger wichtig bei der Kartenzahlung, ich hätte lieber beide Daten zur Buchung. Die Daten allerdings bei allen Transaktionen, also auch Überweisungen etc.
Ich muss sagen, dass ich das ganz transparent finde seitens MoneyMoney, denn als Kunde sehe ich quasi den Volltext, den das Programm als Input vom Server bekommt. Und da ist PSD2 schon ein Fortschritt ggü. den früheren Formaten.
Aber wie es bei einem Entwicklungssprung so ist: der Anfang ist reell meist unter der gegenwärtigen Leistungsfähigkeit der Vorgänger.
Hoffen wir, dass bald mehr Inhalte über PSD2 kommen! Das muss ja gehen, wenn es bei anderen Banken ganz einfach klappt.

Die Kontonummer des Händlers bekommst du bei Visazahlungen nicht mitgeteilt. Die weiß auch die Solarisbank nicht. Diese Kontonummer, die du da siehst, ist sicher ein internes Verrechnungskonto, auf dem die Solarisbank die Gelder fürs Settlement sammelt.

Ja, eben, die würde ich als Kunde gerne eintauschen gegen die beiden Daten zur Buchung.
Es nützt mir ja noch weniger, ein Gegenkonto in den Daten zu haben, das meinerseits keinen Nutzen ergibt.

Wie verhält es sich denn aktuell bei den anderen Solaris-Partnern? Bekommt man da als Kunde über PSD2 dieselben Daten? Weiß das jemand, oder ist zufällig hier und da auch Kunde?

Du kannst auf der Solaisbankwebsite nachsehen, weile Partner angebunden sind. Da steht auch, dass Kontist eine eigene Lösung anbietet. Die hatten die APIs verfügbar lange vor PSD2 und betreiben den Dienst selbst.