Statusmodell
Das Feld status im Objekt PaymentInformation beschreibt den Zustand einer Zahlungstransaktion. Es gibt vier mögliche Statuswerte:
| Status | Bedeutung |
|---|---|
INITIAL | Transaktion angelegt; Zahlung noch nicht abgeschlossen |
PAYED | Zahlung erfolgreich abgeschlossen |
CANCELED | Nutzer hat den Vorgang final abgebrochen |
FAILED | Bezahldienst hat den Vorgang abgebrochen |
PAYEDDer korrekte englische Begriff für „bezahlt" ist PAID, nicht PAYED. Dieser Tippfehler wurde in Version 0.0.6 des Standards eingeführt und ist seitdem Teil der Spezifikation. Da eine Korrektur einen Breaking Change darstellt, wird er bis zur nächsten Major-Version beibehalten. Implementierungen müssen den Wert PAYED (wie spezifiziert) verwenden.
Aus Sicht des Online-Dienstes
Nach dem Rücksprung von der Paypage auf die redirectUrl enthält die URL keinen Statusparameter. Der Online-Dienst muss den Status aktiv per GET /paymenttransaction abfragen.
| Status nach GET | Empfohlene Reaktion |
|---|---|
INITIAL | Nutzer ist noch auf der Paypage oder hat sie ohne Abschluss verlassen — erneut abfragen oder warten |
PAYED | Zahlung erfolgreich — Antrag weiterverarbeiten |
CANCELED | Nutzer hat abgebrochen — entsprechende Rückmeldung anzeigen |
FAILED | Bezahldienst hat abgebrochen — Fehlerbehandlung / erneuten Versuch anbieten |
Aus Sicht des Bezahldienstes
Der API-Status INITIAL bleibt aktiv, solange der Nutzer auf der Paypage noch handlungsfähig ist. Intern durchläuft die Paypage dabei mehrere Schritte:
Wann welcher Endstatus zu setzen ist:
PAYED— Nutzer hat die Zahlung auf der Bestätigungsseite erfolgreich autorisiert. Der Status beschreibt ausschließlich den Online-Anteil; nachträgliche Rücklastschriften oder Stornierungen außerhalb der Schnittstelle verändern ihn nicht.CANCELED— Nutzer hat den gesamten Vorgang final abgebrochen (kein Rückweg mehr). Bricht der Nutzer eine Zahlart ab und wählt eine andere, bleibt der StatusINITIAL.FAILED— Der Bezahldienst hat die Transaktion beendet: Fraud Detection, ungültige Eingaben oder Timeout. Da ein einheitliches Timeout über alle PSPs hinweg nicht steuerbar ist, setzt der Bezahldienst den Status nach einem bezahlartenspezifischen Timeout aufFAILED.