Skip to content

Kunden & Kontaktpersonen ​

Transaktion: SAL01 Kunden, SAL04 Kontaktpersonen
UI-Pfad: /customers, /contactPersons
API: /api/customer, Contact Person API

Business-Zweck ​

Der Kundenstamm (Debitor) ist Voraussetzung für jeden Vertriebsbeleg. Partner synchronisieren Kunden aus Shop, CRM oder ERP nach reybex, pflegen Adressen und Ansprechpartner und verknüpfen Zahlungsbedingungen, Preislisten und USt-Daten für korrekte Aufträge und Rechnungen.

Ohne gültigen Kunden schlagen POST /api/salesHead/ und Connector-Importe fehl oder erzeugen Dubletten.

Kernbegriffe ​

BegriffBedeutung
CustomerDebitor (ContactType Debitor)
customerNoInterne Kundennummer (Nummernkreis SAL01)
CustomerAddressMehrere Adressen (Rechnung, Lieferung, …)
ContactPersonAnsprechpartner (SAL04)
salesPriceListHeadStandard-VK-Preisliste des Kunden
isAddressMatchingUsedAdress-Matching statt Neuanlage
ProspectCRM-Interessent vor Umwandlung

Fachlicher Ablauf / Workflow ​

  1. Kunde anlegen oder per Adress-Matching finden
  2. Adressen und Kontaktpersonen pflegen
  3. Zahlungsbedingung, Preisliste, USt-ID setzen
  4. In Aufträgen referenzieren (customer, optional receiver)

Partner-Szenarien ​

Szenario 1 – Neukunde aus Shop-Bestellung ​

  1. Shop liefert Rechnungs- und Lieferadresse
  2. POST /api/customer/nameDuplicate – Dublettenprüfung
  3. Falls neu: POST /api/customer/ mit Adresse
  4. Auftrag mit customer.id anlegen

Szenario 2 – Adress-Matching ​

Wenn nur Adresse bekannt (B2C):

json
POST /api/customer/
{
  "isAddressMatchingUsed": true,
  "address": {
    "name": "Max Mustermann",
    "street1": "Hauptstraße 1",
    "zipStreet": "10115",
    "city": "Berlin",
    "country": { "code": "DE" },
    "email": "max@example.de"
  }
}

Backend sucht bestehenden Kunden oder legt neuen an.

Szenario 3 – CRM-Interessent wird Debitor ​

  1. Interessent in CRM gepflegt (CRM01)
  2. GET /api/customer/convertProspectToCustomer/{id}
  3. Debitor für SAL-Aufträge nutzbar

Szenario 4 – Zusätzliche Lieferadresse ​

json
POST /api/customer/saveAddress
{
  "customer": { "id": 1000001 },
  "addressline1": "Lager Tor 2",
  "street1": "Industriepark 5",
  "zipStreet": "90441",
  "city": "Nürnberg",
  "country": { "id": 1 },
  "addressType": { "id": 2 }
}

Auftrag mit abweichendem Empfänger:

json
{
  "customer": { "id": 1000001 },
  "receiver": { "id": 1000002 },
  "customerAddress": { "id": 2000003 }
}

Voraussetzungen ​

  • Kontakttyp Debitor konfiguriert
  • Nummernkreis Kundennummer
  • Länder, Währungen, Zahlungsbedingungen in Stammdaten
  • Optional: Preisliste (SAL09) vor Erstkauf

Auswirkungen im ERP ​

AktionAuswirkung
Kunde anlegenDebitor für SAL/PUR/FIN
Adresse ändernFolgebelege nutzen Snapshot zum Belegzeitpunkt
USt-ID prüfenEU-B2B-Steuerlogik in Belegen
Sperre isLockedNeue Aufträge blockiert
Preisliste am KundenPreisfindung in getSalesPrice

Typische Fehlerquellen ​

FehlerUrsacheLösung
Dublette KundenKein MatchingnameDuplicate, customerNo aus Shop
Falsche UStustid ungültigcheckUstdId
Auftrag ohne Kundecustomer.id fehltPflichtfeld setzen
Falsche PreiseKeine salesPriceListHeadSAL09 zuweisen
CRM-Kunde nicht buchbarNoch ProspectconvertProspectToCustomer

JSON-Beispiele ​

Kunde vollständig anlegen ​

json
POST /api/customer/
{
  "name": "Beispiel AG",
  "name2": "Einkauf",
  "street": "Musterweg 10",
  "zipcode": "80331",
  "city": "München",
  "country": { "code": "DE" },
  "email": "einkauf@beispiel.de",
  "phone": "+49 89 123456",
  "ustid": "DE123456789",
  "currency": { "id": 1 },
  "language": { "id": 1 },
  "paymcond": { "id": 100001 },
  "salesPriceListHead": { "id": 200001 },
  "vatKey": { "id": 1 }
}

Kunde lesen ​

bash
curl -G "$BASE_URL/api/customer/1000001" \
  -H "Authorization: Bearer $TOKEN"

Adressen auflisten ​

bash
curl -G "$BASE_URL/api/customer/addresses/1000001" \
  -H "Authorization: Bearer $TOKEN"

Weiterlesen ​

Nur für reybex-Partner. Nicht für Endkunden bestimmt.