payment/paypalonboarding stellt eine REST-Schnittstelle bereit, um PayPal-Onboarding-Vorgänge im Shop-System zu verwalten. Er unterstützt das Anlegen, Abrufen, Aktualisieren und Löschen von Onboarding-Einträgen, das Erzeugen der für den Flow benötigten PayPal-Action-URL sowie die Verarbeitung des PayPal-Rücksprungs (Return-URL).
Unterstützte Methoden
Angabe aller unterstützten Methoden.| Befehl/Info | Endpunkte | GET | POST | PUT | DELETE |
|---|---|---|---|---|---|
| PayPal-Onboarding | payment/ paypalonboarding |
PayPal-Onboarding-Vorgang
Datenfelder eines Eintrags
| Name | Typ | Verwendung |
|---|---|---|
| id | String | Tracking-ID des Onboarding-Vorgangs; wird aus <unixTimestamp>_<shopId>_<laufendeId> generiert und dient als Primärschlüssel. |
| shop | String | Shopkennung, der der Eintrag zugeordnet ist. |
| status | Integer | Aktueller Onboarding-Status, abgeleitet u. a. aus E-Mail-Bestätigung, Zahlungsfähigkeit und Antwortvalidität. Mögliche Werte: - 0 = Unknown (nicht bestimmt) - 1 = NoConnection (keine gültige PayPal-Antwort/Verbindung) - 2 = Success (Voraussetzungen erfüllt) - 3 = EmailNotConfirmed (E-Mail nicht bestätigt) - 4 = PaymentNotReceivable (Konto kann (noch) keine Zahlungen empfangen) - 5 = InvalidResponse (unvollständige/unerwartete Antwort) |
| merchantId | String | Händler-ID bei PayPal (merchantIdInPayPal); identifiziert das PayPal-Konto eindeutig. |
| String | Primäre PayPal-E-Mail des Händlerkontos (primary_email). | |
| permissionsGranted | Boolean | Gibt an, ob die nötigen OAuth-Berechtigungen/Scopes gewährt wurden (Return-Param permissionGranted bzw. aus PayPal-Status). |
| emailConfirmed | Boolean | Gibt an, ob die primäre E-Mail bei PayPal bestätigt ist (primary_email_confirmed). |
| consentStatus | Boolean | Gibt an, ob rechtliche Einwilligungen erteilt wurden (Return-Param consentStatus). |
| accountType | String | Vom PayPal-Rücksprung gemeldeter Kontozustand. |
| updatedAt | String | Zeit der letzten Aktualisierung des Eintrags (ISO 8601-Format, UTC). |
| createdAt | String | Zeitpunkt der Erstellung (ISO 8601-Format, UTC). |
| deletedAt | String | Zeitpunkt der Löschung (ISO 8601-Format, UTC); leer, wenn der Eintrag aktiv ist. |
| rawResponse | String | Vollständige, ungefilterte Antwort der PayPal-Account-Status-API (als JSON-String) zur Nachverfolgung/Debugging. |
| activePayments | String | Freigegebene Zahlungsarten. |
| mode | Integer | Betriebsmodus des Eintrags (aus Konfiguration ermittelt): Produktion oder Test. Mögliche Werte: - 0 = Unknown - 1 = Production - 2 = Test |
Beispiel
Methoden für PayPal-Onboarding
Dieser Abschnitt beschreibt die Endpunkte zur Verwaltung einzelner PayPal-Onboarding-Einträge.GET payment/paypalonboarding
Mit diesem Endpunkt kann eine Liste der vorhandenen Onboarding-Einträge des aktuellen Shops geladen werden. Dabei werden Such- und Filterparameter aus der Anfrage berücksichtigt und aufdeleted=false begrenzt. Enthält die Anfrage den Hinweis auf einen PayPal-Rücksprung (PPact=finish), werden zuerst die Rücksprungdaten verarbeitet.
Für die Nutzung sind Leseberechtigungen für PayPal-Onboarding-Daten erforderlich.
Beispiel
Antwort
Filterfelder
id, updatedAt, status, emailConfirmed, permissionsGranted, mode, deleted
Sortierfelder
updatedAt, createdAt, id, shop, merchantId, accountType, status, mode, emailConfirmed, email, consentStatus, permissionsGranted
Fehlercodes
| Fehler | Typ | Grund |
|---|---|---|
| 401 Unauthorized | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von PayPal-Onboarding-Daten. | |
| 400 Bad Request | ”invalidValue” | size ∉ [1;300] pageToken ist keine Zahl oder kleiner als 0. Die Sortierrichtung in sort ist nicht “asc” oder “desc”. |
| 400 Bad Request | ”unknownDataField” | Ein Filter- oder Sortierfeld ist ungültig. |
| 400 Bad Request | ”unknownOperation” | Ein Filtertyp ist ungültig. |
| 400 Bad Request | ”invalidCharacters” | size ist keine Ganzzahl. Ein Filterwert ist ungültig. |
| 400 Bad Request | ”syntaxError” | sort enthält mehr als einen oder keinen ”:“. |
| 503 Service Unavailable | ”internalError” | Das Lesen von Daten ist fehlgeschlagen. |
GET payment/paypalonboarding/{id}
Mit diesem Endpunkt kann ein einzelner Onboarding-Eintrag anhand seiner ID für den aktuellen Shop abgerufen werden. Für die Nutzung dieses Endpunkts sind Leseberechtigungen für PayPal-Onboarding-Daten erforderlich.Beispiel
Antwort
Fehlercodes
| Fehler | Typ | Grund |
|---|---|---|
| 401 Unauthorized | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von PayPal-Onboarding-Daten. | |
| 404 Not Found | Die Daten wurden nicht gefunden. |
GET payment/paypalonboarding/{id}/url
Mit diesem Endpunkt kann die aktuelle PayPal-Action-URL zu einer Tracking-ID direkt angefordert werden. Die URL ist für den Einstieg in den PayPal-Onboarding-Flow bestimmt und enthält die konfigurierte Return-URL des Shops. Für die Nutzung dieses Endpunkts sind Schreibberechtigungen für PayPal-Onboarding-Daten erforderlich.Beispiel
Antwort
Fehlercodes
| Fehler | Typ | Grund |
|---|---|---|
| 401 Unauthorized | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Schreiben von PayPal-Onboarding-Daten. | |
| 404 Not Found | Die URL konnte nicht generiert werden. Details sind in Logs zu finden. |
POST payment/paypalonboarding
Mit diesem Endpunkt kann ein neuer Onboarding-Eintrag angelegt werden. Die Tracking-ID wird aus Zeitstempel, Shop-ID und einer fortlaufenden Nummer gebildet; der Betriebsmodus (Production/Test) wird aus der Konfiguration ermittelt. Als Ergebnis wird die erzeugte{ "trackingId": "…" } zurückgegeben.
Für die Nutzung dieses Endpunkts sind Erstellberechtigungen für PayPal-Onboarding-Daten erforderlich.
Beispiel
Request Body
Antwort
Fehlercodes
| Fehler | Typ | Grund |
|---|---|---|
| 401 Unauthorized | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Erstellen von PayPal-Onboarding-Daten. | |
| 400 Bad Request | Request body konnte nicht geladen werden. In der setupConfig wurde kein Modus angegeben. Mögliche Werte: "production", "test" Das Anlegen von Daten ist fehlgeschlagen. | |
| 404 Not Found | Die Daten konnten nach dem Anlegen nicht geladen werden. |
PUT payment/paypalonboarding/{id}
Mit diesem Endpunkt kann ein Onboarding-Eintrag aktualisiert oder – falls noch keine Händler-ID vorliegt – die PayPal-Action-URL für den Start des Onboardings abgefragt werden. OhnemerchantIdInPayPal liefert der Endpunkt die Aktions-URL ({ "acturl": "…" }). Mit merchantIdInPayPal wird der Konto-/Integrationsstatus bei PayPal abgefragt, relevante Felder (z. B. E-Mail-Bestätigung, Zahlungsfähigkeit, Scopes) werden übernommen und ein entsprechender interner Status gesetzt; das Ergebnis ist der aktualisierte Eintrag als JSON.
Für die Nutzung dieses Endpunkts sind Schreibberechtigungen für PayPal-Onboarding-Daten erforderlich.
Query-Parameter
merchantIdInPayPal – (optional) PayPal-Merchant-ID. Wenn angegeben, wird der Account-Status bei PayPal abgefragt und der Eintrag aktualisiert. Wenn nicht angegeben, wird stattdessen die Aktions-URL zurückgegeben.
Beispiel
Antwort, wenn keine merchantIdInPayPal übergeben wurde
Antwort, wenn eine merchantIdInPayPal übergeben wurde
Fehlercodes
| Fehler | Typ | Grund |
|---|---|---|
| 401 Unauthorized | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Schreiben von PayPal-Onboarding-Daten. | |
| 400 Bad Request | Das Aktualisieren von Daten ist fehlgeschlagen. | |
| 404 Not Found | Die Aktions-URL konnte nicht ermittelt werden oder PayPal hat keine Account-Daten geliefert. |
PUT payment/paypalonboarding/{id}/checkstatus
Mit diesem Endpunkt werden Rücksprungdaten von PayPal (Return-URL) entgegengenommen, protokolliert und dem zugehörigen Onboarding-Eintrag zugeordnet. Die gelieferten Query-Parameter werden gespeichert; anschließend wird der gültige Account-Status über die PayPal-API abgefragt, im Eintrag persistiert und der aktualisierte Eintrag als JSON zurückgegeben. Für die Nutzung dieses Endpunkts sind Schreibberechtigungen für PayPal-Onboarding-Daten erforderlich.Query-Parameter
commonid – Shop-IDmerchantId – Tracking-ID des EintragsmerchantIdInPayPal – PayPal-Merchant-IDaccountStatus – KontostatusconsentStatus – Zustimmungsstatus (“true”/“false”)isEmailConfirmed – E-Mail bestätigt (“true”/“false”)permissionGranted – Berechtigungen erteilt (“true”/“false”)
Beispiel
Antwort
Fehlercodes
| Fehler | Typ | Grund |
|---|---|---|
| 401 Unauthorized | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Schreiben von PayPal-Onboarding-Daten. | |
| 400 Bad Request | Das Aktualisieren von Daten ist fehlgeschlagen. | |
| 404 Not Found | PayPal hat keine Daten geliefert. |
DELETE payment/paypalonboarding/{id}
Mit diesem Endpunkt wird ein vorhandenes Onboarding-Eintrag anhand seiner ID als gelöscht markiert (Soft-Delete). Der Eintrag verbleibt in der Datenbank, wird jedoch mit einem Löschzeitstempel versehen und erscheint nicht mehr in der Liste. Die Anfrage liefert die aktualisierte Liste im Response Body zurück. Für die Nutzung dieses Endpunkts sind Löschberechtigungen für PayPal-Onboarding-Daten erforderlich.Beispiel
Antwort
Fehlercodes
| Fehler | Typ | Grund |
|---|---|---|
| 401 Unauthorized | Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Löschen von PayPal-Onboarding-Daten. | |
| 404 Not Found | Es wurden keine Daten gefunden. |
