Geschäftspartner: Kunde / Auftraggeber
Kunden und Auftraggeber werden in X4Fleet als Geschäftspartner bezeichnet. Neue Geschäftspartner werden bei POST Shipment automatisch importiert und angelegt. Wenn die Auftragserfassung jedoch manuell erfolgt oder wenn der Geschäftspartnerkatalog zwischen Vorsystem und X4Fleet synchronisiert werden soll, können die folgenden Endpunkte der API verwendet werden.
Endpunkte
POST /x4gateway/v1/import/client
sowie
GET /x4gateway/v1/import/client/{id} --> normaler GET Request mittels ID
GET /x4gateway/v1/import/client --> GET Request mittels RefID
PUT /x4gateway/v1/import/client/{id} --> UPDATE Request mittels ID
DELETE /x4gateway/v1/import/client/{id} --> normaler DELETE Request mittels ID
Request
{
"refId": "string",
"organisation": "string",
"contactName": "string",
"name2": "string",
"clientNumber": "string",
"roles": 0, //Rolle des Geschäftspartner (Kunde, Auftraggeber, beides), neue Geschäftspartner ohne Angabe: Kunde (1)
"vat": 0,
"invoicingVatDisplay": 0,
"priority": {},
"invoicingMails": [],
"creditRating": 0,
"daysForPayment": 0,
"skontoDaysForPayment": 0,
"skontoDiscountPercent": 0,
"generalPositionsDiscount": 0,
"guSurchargePercent": 0,
"guFuelSurchargePercent": 0,
"guLoadingToolSurchargePercent": 0,
"guLoadingToolSurchargeFix": 0,
"phone1": "string",
"phone2": "string",
"email": "string",
"location": {}, //Adresse / Koordinaten
"profilePix": "string",
"language": "string",
"paymentType": 0,
"notes": "string",
"contacts": [ //Kontaktpersonen, Felder siehe unten
{
"id": 0, //vom System vergeben
"refId": "string", //Referenz zur Kontaktperson aus dem Vorsystem
"contactName": "string",
"organisation": "string",
"...": "..."
}
],
"poBox": "string", //Postfach
"fax": "string",
"web": "string", //Webseite
"assignedLocations": [{}], //Zugewiesene Stellen
}
Verwendete Enum's: Rolle, Kreditwürdigkeit, Zahlungsart.
Import- und Aktualisierungsregeln
Geschäftspartner
- Ein POST mit einer
refId, die bereits einem anderen Geschäftspartner zugeordnet ist, wird abgelehnt. Bestehende Geschäftspartner werden mit PUT aktualisiert. - Felder, die nicht mitgeschickt oder mit
nullgesendet werden, behalten den gespeicherten Wert. Bei Textfeldern überschreibt ein leerer String""den gespeicherten Wert mit einem leeren Wert. invoicingMailswird nur überschrieben, wenn mindestens eine nicht leere Adresse mitgeschickt wird.- Wird
rolesnicht mitgeschickt, bleibt die gespeicherte Rolle erhalten. Neue Geschäftspartner ohne Angabe erhalten die Rolle Kunde (1).
Kontakte
Ein Kontakt (contacts) kennt die folgenden Felder: id, refId, contactName, organisation, phone1, phone2, email, location, fax, poBox, birthday, notes, isMainContact.
- Ein Kontakt wird nur übernommen, wenn mindestens eines der Felder
contactName,organisation,email,phone1oderphone2gefüllt ist. Kontakte ohne diese Angaben werden ignoriert. - Bestehende Kontakte werden zuerst über die
idund danach über dierefIdzugeordnet. Sonderzeichen in derrefId(z. B. "Łódź") werden dabei unterstützt. - Felder, die nicht mitgeschickt oder mit
nullgesendet werden, behalten den gespeicherten Wert. Ein leerer String""überschreibt den gespeicherten Wert mit einem leeren Wert. Ausnahme: DierefIdeines Kontakts kann nicht geleert werden. - Die
refIdeines Kontakts kann geändert werden. Dazu den Kontakt über seineididentifizieren und die neuerefIdmitschicken. - Eine leere oder nur aus Leerzeichen bestehende
refIdgilt als nicht mitgeschickt. - Kontakte, die weder mit
idnoch mitrefIdgesendet werden, werden standardmässig nicht zuverlässig einem bestehenden Kontakt zugeordnet und in der Regel neu angelegt, sodass Duplikate entstehen können. Um das zu vermeiden, kann die Zuordnung über den Inhalt eingeschaltet werden (siehe unten). - Ein Kontakt ohne eigene
refIdwird mit einer vom System erzeugten numerischenrefIdzurückgemeldet. Bei Kontakten, die über die API ohnerefIdangelegt werden, wird dieser Wert auch gespeichert. DieserefIdist keine Referenz aus dem Vorsystem, kann sich zwischen Aufrufen ändern und darf nicht zur Identifikation verwendet werden. Verwenden Sie stattdessen dieid, eine eigenerefIdoder die Zuordnung über den Inhalt.
Kontakte über den Inhalt zuordnen
Mit der Einstellung Gateway-Kontakte ohne refId über den Inhalt zuordnen werden Kontakte, die ohne id und ohne refId gesendet werden, über ihren Inhalt einem bestehenden Kontakt zugeordnet. Die Einstellung ist standardmässig ausgeschaltet und wirkt, wenn sie in der Hauptgruppe eingeschaltet ist. Sie befindet sich in den Einstellungen im Register Import, Bereich Import Einstellungen Aufträge, und ist nur für Superadministratoren sichtbar. Um die Einstellung einschalten zu lassen, wenden Sie sich an den Support.
- Reihenfolge der Zuordnung: zuerst über die
id, danach über eine mitgeschickterefIdund erst dann über den Inhalt. Kontakte mitidoderrefIdwerden nie über den Inhalt zugeordnet. - Verglichen werden
organisation,contactNameundphone1. Sind alle drei leer, werden stattdessenemailundphone2verglichen. - Bei
organisation,contactNameundemailspielen Gross-/Kleinschreibung, führende und nachfolgende Leerzeichen sowie mehrfache Leerzeichen keine Rolle. Beiphone1undphone2werden nur die Ziffern verglichen; Vorwahlen werden nicht vereinheitlicht,+41 52 …und052 …gelten also als verschieden. - Ein bestehender Kontakt wird nur gefunden, wenn mindestens eines der folgenden Felder genau so gesendet wird, wie es gespeichert ist (Gross-/Kleinschreibung ausgenommen):
contactNameoderphone1(ist von den drei Feldern nurorganisationgefüllt:organisation), bzw.emailoderphone2, wenn diese verglichen werden. - Gesucht wird unter den Kontakten der Hauptgruppe. Passen mehrere Kontakte, wird der Kontakt mit der kleinsten
idverwendet. - Gleiche Kontakte innerhalb desselben Requests werden zu einem Kontakt zusammengefasst.
- Die Zuordnung gilt auch für Stellenkontakte und für die Kontakte in Aufträgen.
Response
Die Response-Struktur ist analog der Request-Struktur, und alle Informationen welche im POST gesendet wurden, sowie vom System ergänzte Informationen, werden zurückgemeldet.
Dabei ist die ID / Geschäftspartner-ID eine wichtige Information, die ideallerweise im Vorsystem gemerkt wird.
Häufige Fehlermeldungen
GET:
- {"code":5,"messages":["Client with this id or refNr does not exist"],"RequestId":null,"Id":0}