API-Referenz Kundendaten
Der Endpunkt customerAccounts/ stellt eine REST-Schnittstelle zur Verfügung, über die Kundendaten im Shop-System verwaltet werden können. Die API ermöglicht das Erstellen, Abrufen, Aktualisieren und Löschen von Kundenkonten, Adressen und Bankverbindungen. Zusätzlich lassen sich Daten exportieren oder Passwortrücksetzungen initiieren. Alle Endpunkte sind so gestaltet, dass sie eine systematische Verwaltung und Pflege von Kundendaten über das Admin-Interface hinaus ermöglichen.
Inhaltsverzeichnis
1. Unterstützte Methoden
Angabe aller unterstützten Methoden.
Befehl/Info | Endpunkte | GET | POST | PUT | DELETE |
|---|---|---|---|---|---|
Kundendaten | customerAccounts/ | ||||
Adressen | customerAccounts/…/addresses | ||||
Bankdaten | customerAccounts/…/bankData |
2. Datenfelder
2.1 Datenfelder eines Kundenkontos
Name | Typ | Bedeutung |
|---|---|---|
allSubshopsAllowed | Boolean | Gibt an, ob der Kunde für alle Subshops freigeschaltet ist |
allowedSubshopIds | String[] | Liste der Subshops, für die der Kunde freigeschaltet ist |
createdAt | String | Zeitpunkt der Kontoerstellung (ISO 8601-Format, UTC) |
customerNumber | String | Vom System oder extern vergebene Kundennummer |
deleted | Boolean | Gibt an, ob das Konto gelöscht wurde |
displayName | String | Anzeigename des Kunden (wird z. B. bei Kommentaren oder Bewertungen angezeigt) |
String | E-Mail-Adresse des Kunden | |
id | Integer | Interne eindeutige ID des Kunden |
loginBlocked | Boolean | Gibt an, ob der Login für dieses Konto gesperrt ist |
mainSubshop | String | Haupt-Subshop |
meta.currentLogin | String | Zeitpunkt des aktuellen Logins |
meta.dataSets.accountBasketId | String | Das zugeordnete Warenkorb-ID des Kundenkontos |
meta.dataSets.lastUsedBillAddressId | Integer | ID der zuletzt genutzten Rechnungsadresse |
meta.dataSets.lastUsedDeliveryAddressId | Integer | ID der zuletzt genutzten Lieferadresse |
meta.dataSets.lastUsedPaymentMethodId | String | ID der zuletzt verwendeten Zahlungsart |
meta.dataSets.lastUsedPseudoCCId | String | ID, anhand der Kreditkartendaten zum letzten Mal gefunden wurden |
meta.dataSets.lastUsedShippingMethodId | String | ID der zuletzt genutzten Versandart |
meta.dataSets.mainAddressId | Integer | ID der Hauptadresse des Kunden |
meta.emailVerificationState | Integer | Verifizierungsstatus der E-Mail-Adresse Mögliche Werte:
|
meta.lastChangedAt | String | Zeitpunkt der letzten Änderung am Konto |
meta.lastChangedBy | String | Quelle der letzten Änderung (z. B. „shop“, "admin") |
meta.lastLogin | String | Zeitpunkt des letzten Logins |
passwordResetRequired | Boolean | Gibt an, ob der Kunde beim nächsten Login sein Passwort ändern muss |
phone | String | Telefonnummer des Kunden |
Beispiel:
{
"addresses": [
{
"additionalInfo": "",
"addressType": "1",
"businessFax": "",
"businessPhone": "",
"city": "asdf",
"company": "WEBSALE AG",
...
}
],
"allSubshopsAllowed": false,
"allowedSubshopIds": [
"deutsch"
],
"bankData": [
{
"accountNumber": "",
"bankCode": "",
"bankName": "myBank",
"bic": "INGDDEFFXXX",
"custom": null,
"iban": "DE746374637463746300",
...
}
],
"createdAt": "2024-09-03T10:09:34.000Z",
"customerNumber": "",
"deleted": false,
"displayName": "",
"email": "root@root.root",
"id": 1,
"loginBlocked": false,
"mainSubshop": "",
"meta": {
"currentLogin": "2025.04.16-12:12:04.899",
"dataSets": {
"accountBasketId": "",
"lastUsedBillAddressId": 108,
"lastUsedDeliveryAddressId": 108,
"lastUsedPaymentMethodId": "safepayment",
"lastUsedPseudoCCId": "",
"lastUsedShippingMethodId": "hermes",
"mainAddressId": 108
},
"emailVerificationState": 0,
"lastChangedAt": "1970.01.01-00:00:00.000",
"lastChangedBy": "shop",
"lastLogin": "2025.04.16-08:12:31.895"
},
"passwordResetRequired": false,
"phone": ""
}
2.2 Datenfelder einer Adresse
Name | Typ | Bedeutung |
|---|---|---|
additionalInfo | String | Zusätzliche Adressinformationen (z. B. Etage, Hausname etc.) |
addressType | String | Unbekannt ( |
businessFax | String | Geschäftsfax |
businessPhone | String | Geschäftstelefon |
city | String | Stadt |
company | String | Firmenname (sofern vorhanden) |
country | String | Ländercode nach ISO 3166-1 alpha-2 (z. B. "DE" für Deutschland) |
custom | Objekt | Benutzerdefinierte Felder |
dateOfBirth | String | Geburtsdatum |
department | String | Abteilung |
fax | String | Faxnummer |
firstName | String | Vorname |
id | Integer | Eindeutige ID der Adresse |
lastName | String | Nachname |
mobilePhone | String | Mobilnummer |
phone | String | Telefonnummer |
salutationCode | String | Anrede-Code (z. B. "1" für "Herr", "2" für "Frau") |
state | String | Bundesland / Region |
street | String | Straßenname |
streetNumber | String | Hausnummer |
taxId | String | Mehrwertsteuer-ID |
titleCode | String | Titel-Code (z. B. "2" für "Dr.") |
zip | String | Postleitzahl |
Beispiel:
{
"additionalInfo": "",
"addressType": "1",
"businessFax": "",
"businessPhone": "",
"city": "asdf",
"company": "WEBSALE AG",
"country": "DE",
"custom": null,
"dateOfBirth": "14.07.1967",
"department": "",
"fax": "",
"firstName": "asdff",
"id": 5,
"lastName": "asdf",
"mobilePhone": "",
"phone": "+49123456789",
"salutationCode": "1",
"state": "",
"street": "asdf",
"streetNumber": "9",
"taxId": "",
"titleCode": "2",
"zip": "99999"
}
2.3 Datenfelder eines Bankkontos
Name | Typ | Bedeutung |
|---|---|---|
accountNumber | String | ID des Zahlungskontos (veraltet, meist durch IBAN ersetzt) |
bankCode | String | Bankleitzahl (BLZ) des Kreditinstituts |
bankName | String | Name der Bank |
bic | String | BIC (Business Identifier Code) der Bank für internationale Zahlungen |
custom | Objekt | Benutzerdefinierte Felder |
iban | String | IBAN (Internationale Bankkontonummer) des Zahlungskontos |
id | Integer | Eindeutige ID des Bankdatensatzes |
owner | String | Name des Kontoinhabers |
sepaDebitType | String | Typ des SEPA-Lastschriftverfahrens (z. B. "CORE", "B2B") |
sepaDirectDebitMandate | String | Mandatsreferenznummer für SEPA-Lastschrift |
sepaMandateDate | String | Datum der Mandatserteilung (z. B. 2025-01-01) |
sepaMandateType | String | Art des SEPA-Mandats (z. B. "Erstmandat", "Folgemandat") |
Beispiel:
{
"accountNumber": "",
"bankCode": "",
"bankName": "myBank",
"bic": "INGDDEFFXXX",
"custom": null,
"iban": "DE746374637463746300",
"id": 1778681,
"owner": "Max Mustermann",
"sepaDebitType": "",
"sepaDirectDebitMandate": "",
"sepaMandateDate": "",
"sepaMandateType": ""
}
3. Methoden für Kundendaten
Die hier beschriebenen Methoden ermöglichen das vollständige Verwalten von Kundendaten im System. Dazu zählen das Abrufen, Erstellen, Aktualisieren und Löschen von Kundenkonten sowie das Exportieren von Daten und das Zurücksetzen von Passwörtern. Zusätzlich können Informationen über bereits gelöschte Konten abgerufen werden.
Für jede Operation gelten unterschiedliche Berechtigungen, die sicherstellen, dass nur autorisierte Benutzer auf die jeweiligen Funktionen zugreifen können.
3.1 GET customerAccounts
Mit dieser Methode wird eine paginierte Liste aller Kunden im Shop-System abgerufen. Neben grundlegenden Kundeninformationen wie ID, E-Mail-Adresse und Telefonnummer enthält jede Antwort auch zugehörige Adress- und Bankdaten.
Über optionale Filter- und Sortierparameter lassen sich die Ergebnisse gezielt einschränken und sortieren. Die maximale Anzahl an Ergebnissen pro Anfrage beträgt 300.
Für den Zugriff auf diese Schnittstelle sind Leseberechtigungen für Kundendaten erforderlich.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/customerAccountsAntwort:
{
"endReached": true,
"items": [
{
"addresses": [
{
"city": "asdf",
"country": "DE",
"firstName": "asdf",
"id": 108,
"lastName": "asdf",
"zip": "99999",
...
}
],
"allSubshopsAllowed": false,
"allowedSubshopIds": [
"deutsch",
"english"
],
"bankData": [
{
"accountNumber": "",
"bankCode": "",
"bankName": "foo",
"bic": "",
"iban": "",
"id": 7,
"owner": "bar",
...
}
],
"createdAt": "2024-09-03T10:09:34.000Z",
"customerNumber": "",
"deleted": false,
"email": "root@root.root",
"id": 1,
"loginBlocked": false,
"passwordResetRequired": false,
"phone": ""
},
...
],
"nextPageToken": "NDA",
"totalCount": 41
}Filterfelder:
id, customerNumber, loginBlocked, deleted, createdAt, updatedAt
Sortierfelder:
id, customerNumber, loginBlockedAt, deletedAt, createdAt, updatedAt
Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von Kundendaten. |
400 Bad Request | "invalidValue" |
|
400 Bad Request | "invalidCharacters" |
|
400 Bad Request | "unknownDataField" | Ein Filter- oder Sortierfeld ist ungültig. |
400 Bad Request | "unknownOperation" | Ein Filtertyp ist ungültig. |
400 Bad Request | "syntaxError" |
|
3.2 GET customerAccounts/{accountId}
Diese Methode lädt die vollständigen Daten eines Kundenkontos anhand seiner ID.
Die Antwort enthält neben den Stammdaten wie E-Mail-Adresse, Telefonnummer und Kundennummer auch Zusatzinformationen wie erlaubte Subshops, Bankdaten, Adressen und Metadaten (z. B. letzter Login oder verwendete Zahlungsart).
Zum Zugriff auf diese Methode sind Leseberechtigungen für Kundendaten erforderlich. Wird kein Konto mit der angegebenen ID gefunden, wird ein entsprechender Fehler zurückgegeben.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/customerAccounts/1Antwort:
{
"addresses": [
...
"allowedSubshopIds": [
"deutsch",
"english"
],
"bankData": [
...
],
"createdAt": "2024-09-03T10:09:34.000Z",
"customerNumber": "",
"deleted": false,
"email": "root@root.root",
"id": 1,
"loginBlocked": false,
"meta": {
"currentLogin": "2024.12.19-10:43:01.435",
"dataSets": {
"accountBasketId": "",
"lastUsedBillAddressId": 108,
"lastUsedDeliveryAddressId": 108,
"lastUsedPaymentMethodId": "prepayment",
"lastUsedPseudoCCId": "",
"lastUsedShippingMethodId": "dhl",
"mainAddressId": 108
},
"emailVerificationState": 0,
"lastLogin": "2024.12.18-20:56:30.823"
},
"passwordResetRequired": false,
"phone": ""
}Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von Kundendaten. |
404 Not Found |
| Das Konto mit |
3.3 GET customerDataDeleted
Diese Methode liefert eine Liste von Kundendatensätzen, die als gelöscht markiert wurden. Jeder Eintrag enthält die ID des Kontos, den Zeitpunkt der Löschung (deletedAt) sowie einen Typenwert, der die Art der gelöschten Daten beschreibt.
Filter- und Sortierparameter stehen zur Verfügung, um die Ergebnismenge gezielt einzuschränken. Leseberechtigungen für Kundendaten sind erforderlich.
Beispiel:
https://www.<ihr-shop>.de/admin/api/v1/customerDataDeletedAntwort:
{
"endReached": true,
"items": [
{
"deletedAt": "2024-10-02T11:22:41.000Z",
"id": 4,
"type": 0
},
...
],
"nextPageToken": "NDA",
"totalCount": 41
}Filterfelder:
id, type, deletedAt
Sortierfelder:
id, type, deletedAt
Fehlercodes:
Fehler | Typ | Grund |
|---|---|---|
401 Unauthorized |
| Nicht autorisiert: Sie sind nicht angemeldet oder verfügen nicht über die erforderlichen Rechte zum Lesen von Kundendaten. |
© 2025 WEBSALE AG | Impressum | Datenschutz