Basic Information
Endpoint
http://www.example.com/api/{version}/
version string, one of [ v1, v2 ], required |
---|
Authentifizierung
Die REST-API unterstützt momentan nur die Digest Authentifizierung, da nur diese Authentifizierungsmethode auch ohne HTTPS ausreichend Sicherheit bietet. Wir empfehlen grundsätzlich aber die zusätzliche Absicherung mit HTTPS-Verschlüsselung.
API-Account anlegen
In Xentral unter Administration > Einstellungen > API-Account. Dort auf Neu klicken.
Wichtig sind folgende Felder:
- Aktiv: Hacken muss gesetzt sein, damit API-Account genutzt werden kann.
- App Name / Benutzername und Initkey / Passwort: Benutzername und Kennwort für Digest-Authentifizierung.
Requests
Ressourcen
Grundsätzlich können alle API-Ressourcen nach folgendem Schema angesprochen werden.
Beispiel mit der Addressen
Ressource:
Method | Endpoint | Aktion |
---|---|---|
GET | /v1/adressen | Alle Adressen auflisten |
GET | /v1/adressen/10 | Einzelne Adresse abrufen |
PUT | /v1/adressen/10 | Vorhandene Adresse bearbeiten |
POST | /v1/adressen | Neue Adresse anlegen |
DELETE | /v1/adressen/10 | Vorhandene Adresse löschen |
Bei vereinzelten Ressourcen kann es Abweichungen von diesem Schema geben.
Content-Types
Die API erwartet Anfragen mit dem Content-Type application/json
oder application/xml
.
Zeichensatz
Alle Anfragen mit Nutzdaten müssen mit UTF-8
kodiert sein.
Nutzdaten
Nutzdaten müssen im Request-Body mitgeschickt werden. Nutzdaten sind nur bei POST- und PUT-Request zulässig; also nur Anfragen bei denen Ressourcen (z.B. Adressen) angelegt oder bearbeitet werden.
Beispiel HTTP-Request:
PUT /v1/adressen/7 HTTP/1.1
Host: api.example.com
Accept: application/json
Content-Type: application/json; charset=utf-8
Authorization: Digest XXXXXXXXXXX
{
"name": "Schrauben Meier",
"telefon": "0987654321"
}
Aufbau Nutzdaten
JSON
JSON-Nutzdaten werden ohne einheitliches Root-Element erwartet. Die zu ändernden Feldnamen werden in der ersten Ebene erwartet.
Beispiel JSON:
{
"name": "Schrauben Meier GmbH",
"strasse": "Dorfstrasse 123",
"ort": "Musterdorf",
"plz": "12345",
"telefon": "0987654321",
}
XML
XML-Nutzdaten müssen von einem Root-Element umschlossen sein. Der Name des Root-Elements kann beliebig lauten. Die zu ändernden Feldnamen werden in der zweiten Ebene erwartet.
Beispiel XML:
<data>
<name>Schrauben Meier GmbH</name>
<strasse>Dorfstrasse 123</strasse>
<ort>Musterdorf</ort>
<plz>12345</plz>
<telefon>0987654321</telefon>
</data>
Responses
Die API liefert Antworten im JSON
- oder XML
-Format aus; abhängig vom Accept
-Header der Anfrage.
Es wird die JSON
-Ausgabe bevorzugt, wenn der Accept
-Header fehlt oder ein nicht unterstütztes Format aufweist.
Content-Types
Antworten werden mit dem Content-Type application/json
oder application/xml
ausgeliefert; abhängig vom gesendeten Format.
Zeichensatz
Alle Antworten sind UTF-8
kodiert.
Response-Body
Erfolgreiche Anfrage
Der Response-Body einer erfolgreichen Anfrage beinhaltet immer ein data
-Property als Root-Element.
Einzelne Ressource
Beispiel mit einzelnem Ergebnis:
{
"data": {
"id": 1,
"title": "Bernhardt Bieber"
}
}
Mehrere Ressourcen
Anworten mit mehreren Ressourcen beinhalten zusätzlich ein pagination
Root-Element.
Beispiel mit mehreren Ergebnissen:
{
"data": [
{
"id": 1,
"title": "Phillipp Pabst"
},
{
"id": 2,
"name": "Peter Pfaff"
}
],
"pagination": {
"items_total": 50,
"items_current": 20,
"items_per_page": 20,
"page_current": 1,
"page_last": 3
}
}
Die Paginierung lässt sich über die GET-Parameter page
und items
steuern.
Fehler
Auch Fehler besitzen ein einheitliches Schema mit error
-Property als Root-Element:
{
"error": {
"code": 7452,
"http_code": 404,
"message": "Resource not found",
"href": "http://www.example.com/api/docs.html#error-7452"
}
}
Fehler-Responses beinhalten in der Regel ein code
Property. Jeder Code steht für einen spezifischen Fehler. Im Helpdesk (oder dieser Dokumentation) ist zu jedem Code eine genaue Beschreibung und idealerweise Lösungsvorschläge zu finden.
Filter/Sortierung/Paginierung
Suchfilter, Sortierung und Paginierung stehen bei allen Endpunkten zur Verfügung die eine Liste zurückliefern.
Filter
Einfache Filter
Beispiel: /resource?ausverkauft=1&typ=produkt
Welche Filter-Parameter zur Verfügung stehen erfahren Sie in der jeweiligen Endpunkt-Beschreibung.
Komplexe Filter
Komplexe Filter sind grundsätzlich bei allen Endpunkt verfügbar die eine Liste zurückliefern; unabhängig von den einfachen Filtern.
Beispiele:
/resource?filter[0][property]=mwst_satz&filter[0][expression]=gte&filter[0][value]=10
/resource?filter[0][property]=beschreibung&filter[0][value]=%Schraube%
/resource?filter[0][property]=land&filter[0][value]=DE&filter[0][operation]=OR&filter[1][property]=land&filter[1][value]=AT
Parameter:
-
property
Feld in dem gesucht werden soll (Pflichtangabe). -
value
Wert nach dem gesucht werden soll (Pflichtangabe). -
expression
Vergleichsoperator
Mögliche Werte:eq
entspricht =not
entspricht !=gt
entspricht >gte
entspricht >=lt
entspricht <lte
entspricht <=like
entspricht LIKEnot_like
entspricht NOT LIKE Default-Wert:like
-
operation
Verknüpfungsart bei der Anwendung mehrerer Filter.
Mögliche Werte:and
,or
.
Default-Wert:and
Sortierung
Welche Felder für die Sortierung zur Verfügung stehen, erfahren Sie in der jeweiligen Endpunkt-Beschreibung.
Ein Minuszeichen vor dem Feldnamen kehrt die Sortierung um.
Beispiel: /resource?sort=titel,-projekt
Paginierung
Parameter | Beschreibung | Default | Wertebereich |
---|---|---|---|
page | Auswahl der Seite | 1 | 1 bis 1000 |
items | Anzahl der Ergebnisse pro Seite | 20 | 1 bis 1000 |
Beispiel: /resource?page=2&items=5
Fehler-Codes
TODO: Erklärungen hinzufügen
Auth-Fehler
#7411 - Unauthorized
Zugriff ohne Authentifizierung. Authorization-Header fehlt komplett.
#7412 - Digest header incomplete
Digest-Header unvollständig; benötigte Teile fehlen.
#7413 - Api account missing
Es ist kein API-Account angelegt oder aktiv.
#7414 - Api account invalid
Der verwendete API-Account ist nicht gültig. Eventuell wurde der Account auf inaktiv gestellt.
#7415 - Digest validation failed
Die Prüfung der Digest-Authentifizierung ist fehlgeschlagen.
#7416 - Digest nonce invalid
Server-Nonce ist auf Server nicht vorhanden. Mögliche Ursachen:
- Der Client hat einen beliebigen Nonce-Key mitgeschickt der dem Server nicht bekannt ist.
- Der Nonce-Key ist schon länger abgelaufen und wurde gelöscht. Abgelaufene Nonce-Keys werden nach einigen Tagen gelöscht.
#7417 - Digest nonce expired
Server-Nonce ist abgelaufen. Nonce-Keys sind maximal 24 Stunden gültig und danach muss die Authentifizierung neu initialisiert werden. Beim erneuten Zugriff (auch schon beim Ausliefern des Fehlers) wird automatisch ein neuer Nonce-Key erzeugt und dem Client mitgeteilt (im www-authenticate Header). Der Client muss bei den weiteren Zugriffen den neuen Nonce-Key verwenden.
#7418 - Auth username empty
Der Benutzername darf nicht leer sein.
#7419 - Authorization type not allowed
Authorization-Header war vorhanden, aber die Authentifizierung-Methode ist nicht erlaubt. Vermutlich Zugriff mit Basic-Auth.
#7420 - Digest nonce count not matching
Fehler nicht möglich: Der Nonce-Count wird momentan nicht geprüft.
#7421 - Missing Permission
API-Account hat nicht die benötigten Berechtigungen
Routing-Fehler
#7431 - Route not found
#7432 - Method not allowed
#7433 - API-Method not found
Endpoint-Fehler
#7451 - Bad Request
#7452 - Resource not found
Mögliche Ursachen:
- Das Ergebnis wurde über Filter zu stark begrenzt.
- Beim Abrufen einer einzelnen Resource wurde eine nicht existierende ID angegeben.
- Über die Paginierung wurde eine zu hohe Seite eingestellt. Siehe
pagination
-Property; der Wert vonpage_current
darf nicht über dem vonpage_last
liegen. - Die entsprechende Datenbanktabelle hat keine Inhalte.
#7453 - Validation error
Dieser Fehler kann nur beim Ändern oder Anlegen von Resourcen auftreten. Bei der Validierung der Eingabedaten ist ein Fehler aufgetreten.
In diesem Fall beinhaltet der Error-Response das Property details
, das Aufschluss über die fehlerhaften Felder gibt.
#7454 - Invalid argument
Es wurde ein unzulässiger Request-Parameter (GET-Parameter) verwendet z.B. ein Filter-Parameter der nicht zulässig ist.
#7455 - Malformed request body
Das JSON- oder XML-Dokument im Request-Body konnte nicht dekodiert werden. Ungültige Zeichen oder eine fehlerhafte Struktur können die Ursache sein. Überprüfen Sie die Daten ggf. mit Online-Validatoren.
#7456 - Content type not supported
Der Request-Body konnte nicht dekodiert werden, weil kein gültiger Content-Type übergeben wurde.
Webserver-Konfiguration fehlerhaft
#7481 - Webserver-Konfiguration fehlerhaft (nicht genauer beschrieben)
#7482 - PATH_INFO ist nicht gesetzt oder leer
Die PHP-Variable $_SERVER['PATH_INFO']
ist nicht gesetzt oder leer, obwohl die aufgerufene URL darauf schließen lässt dass die Variable gefüllt sein müsste. Der Fehler deutet darauf hin dass die Webserver-Konfiguration fehlerhaft ist. Sie können sich mit der Failsafe-Variante behelfen. Damit kann die API auch ohne eine spezielle Webserver-Konfiguration verwendet werden, z.B. auf einem Webspace bei dem die Änderung der Webserver-Konfiguration eingeschränkt ist. Zur Fehlerbehebung siehe Abschnitt Nginx-Konfiguration oder Apache-Konfiguration
Debug-Modus
Im Auslieferungszustand gibt die REST-API bei Fehlern nur ausgewählte Fehlertypen zurück (siehe Fehler-Codes).
Beispiel Fehler-Response; Debug-Modus inaktiv
{
"error": {
"code": 7482,
"http_code": 500,
"message": "Webserver configuration incorrect. Pathinfo is invalid.",
"href": "http://www.example.com/api/docs.html#error-7482"
}
}
Zur Fehleranalyse kann der Debug-Modus aktiviert werden um zusätzliche Informationen über Request- und Konfigurationsvariablen zu erhalten. Debug-Informationen werden nur beim Auftreten eines Fehlers angehangen.
Beispiel Fehler-Response mit aktivierten Debug-Modus
{
"error": {
"code": 7482,
"http_code": 500,
"message": "Webserver configuration incorrect. Pathinfo is invalid.",
"href": "http://www.example.com/api/docs.html#error-7482"
},
"debug": {
"router": {
"controllerClass": "Xentral\\Modules\\Api\\Controller\\Version1\\StartController",
"controllerAction": "indexAction",
"resourceClass": "Xentral\\Modules\\Api\\Resource\\Resource",
"routerParams": []
},
"request": {
"isFailsafe": false,
"pathInfo": {
"actual": "",
"expected": "/v1/adressen/123"
},
"info": {
"method": "PUT",
"requestUri": "/api/v1/adressen/123",
"fullUri": "http://www.example.com/api/v1/adressen/123"
},
"serverParams": {
// Ausgabe entfernt; wie PHP-Variable `$_SERVER`
},
"header": {
"Content-Type": "application/json",
"Authorization": "Digest .........",
"Host": "www.example.com",
"Accept": "application/json"
},
"getParams": [],
"postParams": [],
"additionalParams": []
}
}
}
Debug-Modus aktivieren
Der Debug-Modus ist nicht für Produktiv-Systeme geeignet und sollte nur zur Fehlersuche aktiviert werden.
Debug-Modus global aktivieren
In der Datei /www/api/index.php
die Konstante DEBUG_MODE
auf true
stellen.
define('DEBUG_MODE', true);
Der Debug-Modus ist dann global für alle API-Accounts aktiviert. Debug-Informationen werden aber nur beim Auftreten eines Fehlers erzeugt.
PHP Beispiel-Clients
cURL
if (!function_exists('curl_version')) {
throw new Exception('curl-Extension fehlt');
}
$api = array(
'url' => 'http://www.example.com/api/',
'resource' => 'v1/adressen?page=1&items=5',
'username' => 'Your-Username',
'password' => 'Your-Passwort',
);
$options = array(
CURLOPT_URL => $api['url'] . $api['resource'],
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => array('Accept: application/json'), // oder 'application/xml'
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST, // Digest Authentifizierung
CURLOPT_USERPWD => $api['username'] . ':' . $api['password'],
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$response = curl_exec($ch);
if (curl_errno($ch)) {
throw new Exception(curl_error($ch));
}
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
$statusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$result = json_decode($response, true);
echo "<pre>";
echo "<h1>HTTP-Status: {$statusCode}</h1>";
echo "<h2>Content-Type: {$contentType}</h2>";
var_dump($result);
echo "</pre>";
if ($ch != null) {
curl_close($ch);
}
Guzzle
if (!class_exists('GuzzleHttp\Client')) {
throw new Exception('Guzzle konnte nicht gefunden werden');
}
$api = array(
'url' => 'http://www.example.com/api/',
'resource' => 'v1/adressen?page=1&items=5',
'username' => 'Your-Username',
'password' => 'Your-Passwort',
);
$client = new GuzzleHttp\Client(array(
'base_url' => $api['url'],
));
$options = array(
'headers' => array('Accept' => 'application/json'), // oder 'application/xml'
'auth' => array($api['username'], $api['password'], 'digest'), // Digest Authentifizierung
);
$request = $client->createRequest('GET', $api['resource'], $options);
$response = $client->send($request);
$contentType = $response->getHeader('Content-Type');
$statusCode = $response->getStatusCode();
$statusMsg = $response->getReasonPhrase();
$result = json_decode($response->getBody()->getContents(), true);
echo "<pre>";
echo "<h1>HTTP-Status: {$statusCode} {$statusMsg}</h1>";
echo "<h2>Content-Type: {$contentType}</h2>";
var_dump($result);
echo "</pre>";
Webserver-Konfiguration
Apache
Damit die API richtig funktioniert sollte mod_rewrite
aktiviert sein.
Der Aufruf ohne mod_rewrite
ist ebenfalls möglich, dann muss allerdings die index.php in der URL vorkommen: z.B.: /www/api/index.php/v1/adressen
mod_rewrite aktivieren
$ sudo a2enmod rewrite
Enabling module rewrite.
To activate the new configuration, you need to run:
systemctl restart apache2
$ sudo systemctl restart apache2
.htaccess Einbindung erlauben
Bei Ubuntu- und Debian-basierten Betriebssystemen geschieht das für den gesamten Webserver in der Datei /etc/apache2/apache2.conf
. Dort nach folgendem Eintrag suchen:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Hier muss das AllowOverride None
zu AllowOverride All
geändert werden. Anschließend die Apache2-Konfiguration neu einlesen mit: sudo service apache2 reload
.
Wichtig: Diese Anpassung ist nur exemplarisch. Aus Sicherheitsgründen sollten Sie die Einstellung nicht für den gesamten Webserver erlauben. Um die Einstellung für einzelne Webseites vorzunehmen, sollten sie die entsprechende VHost-Konfiguration anpassen.
Beispiel VHost-Konfiguration für Apache 2.4
<VirtualHost *:80>
# ServerName auskommentieren falls Sie per IP zugreifen
ServerName xentral.example.com
ServerAdmin webmaster@example.com
# Pfad zum www-Verzeichnis ihrer Xentral-Installation
DocumentRoot /var/www/xentral/www
<Directory /var/www/xentral/www/>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/xentral-error.log
CustomLog ${APACHE_LOG_DIR}/xentral-access.log combined
</VirtualHost>
Nginx
Beispiel-Konfiguration
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/xentral/www;
index index.php index.html index.htm;
server_name www.example.com;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
location /api/ {
# '/api/' befindet sich relativ zum Document-Root und muss ggf. angepasst werden.
try_files $uri $uri/ @xentral_api;
}
location @xentral_api {
# '/api/' befindet sich relativ zum Document-Root und muss ggf. angepasst werden.
rewrite ^/api/(.*)$ /api/index.php/$1 last;
}
location ~ [^/]\.php(/|$) {
# Path Info korrekt an PHP-Skript weitergeben
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
if (!-f $document_root$fastcgi_script_name) {
return 404;
}
# Mitigate https://httpoxy.org/ vulnerabilities
fastcgi_param HTTP_PROXY "";
# With php-fpm (or other unix sockets):
fastcgi_pass unix:/var/run/php/php-fpm.sock;
# With php-cgi (or other tcp sockets):
#fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# deny access to .htaccess files, if Apache's document root concurs with nginx's one
location ~ /\.ht {
deny all;
}
}
Außerdem muss cgi.fix_pathinfo
in der php.ini auf 1
gestellt sein (Default).
Quelle: https://www.nginx.com/resources/wiki/start/topics/examples/phpfcgi/
Failsafe-Alternative
Sollte die Konfiguration des Webservers Probleme bereiten, oder aus anderen Gründen nicht möglich sein, so gibt es die Möglichkeit die API ohne Anpassung der Webserver-Konfiguration zu nutzen.
Der Endpunkt wird dann nicht als Teil der Pfades übergeben, sondern als Query-Parameter path
.
Beispiel: /api/index.php?path=/v1/artikelkategorien&sort=bezeichnung
Standard API-Aufrufe
Es gibt auch die Möglichkeit die standard API über die neue URL abzurufen.
Struktur: http://www.example.com/api/{Action}
Beispiel: http://www.example.com/api/ArtikelGet
Eine Übersicht der möglichen Requests/Actions mit Beispielen: https://xentral.biz/helpdesk/api
In diesem Fall erwartet die API immer einen POST-Request und die Nutzdaten müssen im Request-Body mitgeschickt werden.
Test-System
Um auf die API eines Test-Systems zugreifen zu können, kann im HTTP-Header MultiDb
der Datenbankname des Test-Systems angegeben werden. Der Header muss bei jedem Request mitgeschickt werden.
Beispiel HTTP-Request
GET /api/v1/adressen HTTP/1.1
Host: www.example.com
Accept: application/json
MultiDb: xentral_test
Resources
/v1/aboartikel
Abo-Artikel abrufen ¶ GET /v1/aboartikel
Endpunkt zum Abrufen von Abo-Artikeln.
Permission: list_subscriptions
Request
Query Parameters
bezeichnung string, optional | Suche nach Abo-Artikel-Bezeichnung (ungefähre Übereinstimmung) |
---|---|
bezeichnung_equals string, optional | Suche nach Abo-Artikel-Bezeichnung (genaue Übereinstimmung) |
bezeichnung_startswith string, optional | Suche nach Abo-Artikel-Bezeichnung (Übereinstimmung am Anfang) |
bezeichnung_endswith string, optional | Suche nach Abo-Artikel-Bezeichnung (Übereinstimmung am Ende) |
rabatt number, optional | Suche nach Rabatt in Prozent (genaue Übereinstimmung) |
rabatt_gt number, optional | Suche nach Rabatt in Prozent (Rabatt größer Suchwert) |
rabatt_gte number, optional | Suche nach Rabatt in Prozent (Rabatt größer gleich Suchwert) |
rabatt_lt number, optional | Suche nach Rabatt in Prozent (Rabatt kleiner Suchwert) |
rabatt_lte number, optional | Suche nach Rabatt in Prozent (Rabatt kleiner gleich Suchwert) |
preis number, optional | Suche nach Preis (genaue Übereinstimmung) |
preis_gt number, optional | Suche nach Preis (Preis größer Suchwert) |
preis_gte number, optional | Suche nach Preis (Preis größer gleich Suchwert) |
preis_lt number, optional | Suche nach Preis (Preis kleiner Suchwert) |
preis_lte number, optional | Suche nach Preis (Preis kleiner gleich Suchwert) |
menge integer, optional | Suche nach Menge (Menge Übereinstimmung) |
menge_gt integer, optional | Suche nach Menge (Menge größer Suchwert) |
menge_gte integer, optional | Suche nach Menge (Menge größer gleich Suchwert) |
menge_lt integer, optional | Suche nach Menge (Menge kleiner Suchwert) |
menge_lte integer, optional | Suche nach Menge (Menge kleiner gleich Suchwert) |
startdatum string, optional | Suche nach Startdatum (Startdatum Übereinstimmung) |
startdatum_gt string, optional | Suche nach Startdatum (Startdatum größer Suchwert) |
startdatum_gte string, optional | Suche nach Startdatum (Startdatum größer gleich Suchwert) |
startdatum_lt string, optional | Suche nach Startdatum (Startdatum kleiner Suchwert) |
startdatum_lte string, optional | Suche nach Startdatum (Startdatum kleiner gleich Suchwert) |
enddatum string, optional | Suche nach Enddatum (Enddatum Übereinstimmung) |
enddatum_gt string, optional | Suche nach Enddatum (Enddatum größer Suchwert) |
enddatum_gte string, optional | Suche nach Enddatum (Enddatum größer gleich Suchwert) |
enddatum_lt string, optional | Suche nach Enddatum (Enddatum kleiner Suchwert) |
enddatum_lte string, optional | Suche nach Enddatum (Enddatum kleiner gleich Suchwert) |
waehrung string, optional | Suche nach Waehrungscode (ISO3; genaue Übereinstimmung) |
preisart string, optional | Suche nach Preisart (Gültige Werte |
dokumenttyp string, optional | Suche nach Dokument-Typ (Gültige Werte |
artikel integer, optional | Suche nach Artikel-ID (genaue Übereinstimmung) |
adresse integer, optional | Suche nach Adressen-ID (genaue Übereinstimmung) |
kundennummer string, optional | Suche nach Kundennummer (genaue Übereinstimmung) |
gruppe integer, optional | Suche nach Abogruppen-ID (genaue Übereinstimmung) |
projekt integer, optional | Suche nach Projekt-ID (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Abo-Artikel anlegen ¶ POST /v1/aboartikel
Abo-Artikel anlegen
Permission: create_subscription
Request
Properties (object)
artikelnummer string, required | Artikelnummer (Pflichfeld) |
---|---|
bezeichnung string, required | Name des Abo-Artikels (Pflichtfeld) |
beschreibung string, optional | Abo-Artikel-Beschreibung |
beschreibung_ersetzen integer, optional | Wenn |
startdatum date-only, optional | Erstes Startdatum (Format |
enddatum date-only, optional | Enddatum (Format |
preisart string, optional | Zulässige Werte (Default |
zahlzyklus integer, optional | abhängig von |
dokumenttyp string, optional | Automatisch anlegen als Auftrag oder Rechnung. Zulässige Werte |
preis number, optional | Netto Artikelpreis (Default |
menge number, optional | Artikelmenge (Default |
rabatt number, optional | Rabatt in Prozent (Default |
waehrung string, optional | Währung; dreistelliger ISO-Code (Default |
gruppe integer, optional | Abo-Gruppen-ID (Default |
adresse integer, optional | Adressen-ID (Default Wird überschrieben wenn Feld |
kundennummer string, optional | Kundennummer (kein Default) Wenn gefüllt, wird Adress-ID ermittelt und in Feld |
projekt integer, optional | Projekt-ID (Default Die erstellte Rechnung läuft auf dieses Projekt |
reihenfolge integer, optional | Wenn mehrere Artikel in einer Rechnung vorkommen, kann die Reihenfolge der Artikel damit angepasst werden (Default |
-
Example
{ "bezeichnung": "Abo-Artikel 001", "artikelnummer": "700006", "preis": 9.52, "zahlzyklus": 2, "preisart": "wochen", "kundennummer": "10001" }
Response
Request erfolgreich; Angelegter Abo-Artikel wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 21, "bezeichnung": "Abo-Artikel 001", "beschreibung": "", "beschreibung_ersetzen": 0, "startdatum": "2019-05-27", "enddatum": "0000-00-00", "abgerechnet_bis": "0000-00-00", "zahlzyklus": 2, "preis": "9.5200", "rabatt": "0.00", "waehrung": "EUR", "menge": 0, "preisart": "wochen", "dokumenttyp": "rechnung", "artikel": 6, "gruppe": 0, "adresse": 3, "kundennummer": "10000", "reihenfolge": 1, "projekt": 0 } }
Einzelnen Abo-Artikel abrufen ¶ GET /v1/aboartikel/{id}
Einzelnen Abo-Artikel abrufen
Permission: edit_subscription
Request
Path Variables
id integer, required | Abo-Artikel-ID |
---|
Abo-Artikel bearbeiten ¶ PUT /v1/aboartikel/{id}
Abo-Artikel bearbeiten (Felder siehe "Abo-Artikel anlegen")
Permission: view_subscription
Request
Path Variables
id integer, required | Abo-Artikel-ID |
---|
-
Example
{ "bezeichnung": "Abo-Artikel 001", "beschreibung_ersetzen": 0, "startdatum": "2019-01-01", "enddatum": "2019-12-31", "rabatt": "3.00", "zahlzyklus": 1, "waehrung": "EUR", "preisart": "wochen", "dokumenttyp": "rechnung", "kundennummer": "10000" }
Response
Request erfolgreich; Aktualisierter Abo-Artikel wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 1, "bezeichnung": "Abo-Artikel 001", "beschreibung": "", "beschreibung_ersetzen": 0, "startdatum": "2019-01-01", "enddatum": "2019-12-31", "abgerechnet_bis": "2019-07-31", "zahlzyklus": 1, "preis": "0.17", "rabatt": "3.00", "waehrung": "EUR", "menge": 100, "preisart": "wochen", "dokumenttyp": "rechnung", "artikel": 2, "gruppe": 1, "adresse": 3, "kundennummer": "10000", "reihenfolge": 1, "projekt": 0 } }
Abo-Artikel löschen ¶ DELETE /v1/aboartikel/{id}
Endpunkt zum Löschen von Abo-Artikeln
Permission: delete_subscription
Request
Path Variables
id integer, required | Abo-Artikel-ID |
---|
Response
Request erfolgreich; id des gelöschten Aboartikels wird zurückgegeben
-
Example
{ "success": true, "data": { "id": 1 } }
id wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://localhost/xentral/20.1/www/api/docs.html#error-7452" } }
/v1/abogruppen
Abo-Gruppen abrufen ¶ GET /v1/abogruppen
Endpunkt zum Abrufen von Abo-Gruppen
Permission: list_subscription_groups
Request
Query Parameters
bezeichnung string, optional | Suche nach bestimmter Abo-Gruppen-Bezeichnung (ungefähre Übereinstimmung) |
---|---|
bezeichnung_equals string, optional | Suche nach bestimmter Abo-Gruppen-Bezeichnung (genaue Übereinstimmung) |
bezeichnung_startswith string, optional | Suche nach bestimmter Abo-Gruppen-Bezeichnung (Übereinstimmung am Anfang) |
bezeichnung_endswith string, optional | Suche nach bestimmter Abo-Gruppen-Bezeichnung (Übereinstimmung am Ende) |
gruppensumme integer, optional | Suche nach Gruppensumme-Kennzeichen (1 = aktiv / 0 = inaktiv) |
rabatt number, optional | Suche nach Rabatt in Prozent (genaue Übereinstimmung) |
rabatt_gt number, optional | Suche nach Rabatt in Prozent (Rabatt größer Suchwert) |
rabatt_gte number, optional | Suche nach Rabatt in Prozent (Rabatt größer gleich Suchwert) |
rabatt_lt number, optional | Suche nach Rabatt in Prozent (Rabatt kleiner Suchwert) |
rabatt_lte number, optional | Suche nach Rabatt in Prozent (Rabatt kleiner gleich Suchwert) |
projekt integer, optional | Suche nach bestimmter Projekt-ID (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Abo-Gruppe anlegen ¶ POST /v1/abogruppen
Abo-Gruppe anlegen
Permission: create_subscription_group
Request
Properties (object)
bezeichnung string, required | Name der Gruppe; erscheint auf der Rechnung (Pflichtfeld) |
---|---|
beschreibung string, optional | Beschreibung der Gruppe; erscheint auf der Rechnung (optional) |
rabatt number, optional | Rabatt in Prozent (Default = 0.00) |
gruppensumme integer, optional | Nach jeder Auflistung der Artikel einer Gruppe, wird eine Gruppensumme auf dem Beleg ausgegeben (1 = aktiv / 0 = inaktiv) (Default = 0) |
projekt integer, optional | Projekt-ID (Default = 0) Die erstellte Rechnung läuft auf dieses Projekt |
reihenfolge integer, optional | Wenn mehrere Gruppen in einer Rechnung vorkommen, kann die Reihenfolge der Gruppen damit angepasst werden (ab Version 18.3) (Default = 0) |
-
Example
{ "bezeichnung": "Abo-Gruppe Verbrauchsmaterial", "rabatt": 2.50, "gruppensumme": 1, "projekt": 1, "reihenfolge": 123 }
Response
Request erfolgreich; Angelegte Abo-Gruppe wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 14, "bezeichnung": "Abo-Gruppe Verbrauchsmaterial", "beschreibung": "", "rabatt": "2.50", "gruppensumme": 1, "projekt": 1, "reihenfolge": 123 } }
Einzelne Abo-Gruppe abrufen ¶ GET /v1/abogruppen/{id}
Einzelne Abo-Gruppe abrufen
Permission: view_subscription_group
Request
Path Variables
id integer, required | Abo-Gruppen-ID |
---|
Abo-Gruppe bearbeiten ¶ PUT /v1/abogruppen/{id}
Abo-Gruppe bearbeiten (Felder siehe "Abo-Gruppe anlegen")
Permission: edit_subscription_group
Request
Path Variables
id integer, required | Abo-Gruppen-ID |
---|
-
Example
{ "bezeichnung": "Abo-Gruppe Verbrauchsmaterial", "rabatt": 3.00 }
Response
Request erfolgreich; Aktualisierte Abo-Gruppe wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 14, "bezeichnung": "Abo-Gruppe Verbrauschsmaterial", "beschreibung": "", "rabatt": "3.00", "gruppensumme": 1, "projekt": 1, "reihenfolge": 123 } }
/v1/adressen
Adressen anlegen, bearbeiten und abrufen
Adressliste abrufen ¶ GET /v1/adressen
Adressenliste abrufen
Permission: list_addresses
Request
Query Parameters
kundennummer string , default: , optional | Suche nach bestimmter Adresse mit Kundennummer |
---|---|
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Response
-
Example
{ "data": [ { "id": 7, "typ": "firma", "sprache": "deutsch", "name": "Schrauben Meier", "abteilung": "", "unterabteilung": "", "land": "DE", "strasse": "Musterstrasse 6", "ort": "Musterdorf", "plz": "13245", "telefon": "12345678", "telefax": "", "mobile": "", "email": "schrauben@meiermusterdorf.de", "projekt": 1, "...": "Ausgabe gekürzt" }, { "id": 8, "...": "Ausgabe gekürzt" } ], "pagination": { "items_total": 50, "items_current": 20, "items_per_page": 20, "page_current": 1, "page_last": 3 } }
Adressen anlegen ¶ POST /v1/adressen
Neue Adresse anlegen
Permission: create_address
Request
-
Example
{ "typ": "firma", "sprache": "deutsch", "name": "Max Muster", "land": "DE", "strasse": "Musterstrasse 6", "ort": "Musterdorf", "plz": "12345", "telefon": "0821123456789", "telefax": "0821123456790", "email": "info@maxmuellermuster.de", "projekt": 1 }
Response
Request erfolgreich; Angelegte Adresse wird zurückgeliefert
-
Example
{ "data": { "id": 33, "typ": "firma", "sprache": "deutsch", "name": "Max Muster", "abteilung": "", "unterabteilung": "", "land": "DE", "strasse": "Musterstrasse 6", "ort": "Musterdorf", "plz": "12345", "telefon": "0821123456789", "telefax": "0821123456790", "mobile": "", "email": "info@maxmuellermuster.de", "projekt": 1, "...": "Ausgabe gekürzt" } }
Einzelne Adresse abrufen ¶ GET /v1/adressen/{id}
Einzelne Adresse abrufen
Permission: view_address
Request
Path Variables
id integer, required | Adressen-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 7, "typ": "firma", "sprache": "deutsch", "name": "Schrauben Meier GmbH", "abteilung": "", "unterabteilung": "", "land": "DE", "strasse": "Musterstrasse 6", "ort": "Musterdorf", "plz": "13245", "telefon": "12345678", "telefax": "", "mobile": "", "email": "schrauben@meiermusterdorf.de", "projekt": 1, "...": "Ausgabe gekürzt" } }
Adresse wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Adresse bearbeiten ¶ PUT /v1/adressen/{id}
Adresse bearbeiten
Permission: edit_address
Request
Path Variables
id integer, required | Adressen-ID |
---|
-
Example
{ "name": "Schrauben Meier GmbH", "strasse": "Dorfstrasse 123", "ort": "Musterdorf", "plz": "12345", "telefon": "0987654321" }
Response
Request erfolgreich; Aktualisierte Adresse wird zurückgeliefert
-
Example
{ "data": { "id": 7, "typ": "firma", "sprache": "deutsch", "name": "Schrauben Meier GmbH", "abteilung": "", "unterabteilung": "", "land": "DE", "strasse": "Dorfstrasse 123", "ort": "Musterdorf", "plz": "12345", "telefon": "0987654321", "telefax": "", "mobile": "", "email": "schrauben@meiermusterdorf.de", "projekt": 1, "...": "Ausgabe gekürzt" } }
/v2/adressen
Adressen abrufen
Adressenliste abrufen ¶ GET /v2/adressen
Adressenliste abrufen
Permission: list_addresses
Request
Query Parameters
projekt integer, optional | Suche nach bestimmter Projekt-ID (genaue Übereinstimmung) |
---|---|
firma integer, optional | Suche nach bestimmter Firmen-ID (genaue Übereinstimmung) |
rolle string, optional | Suche nach bestimmter Rolle (Wert |
typ string, optional | Suche nach bestimmtem Adresstyp (genaue Übereinstimmung) |
sprache string, optional | Suche nach bestimmter Sprache (genaue Übereinstimmung) |
waehrung string, optional | Suche nach bestimmtem Währungscode (genaue Übereinstimmung) |
land string, optional | Suche nach bestimmtem Ländercode (genaue Übereinstimmung) |
kundennummer string, optional | Suche nach bestimmter Kundennummer (ungefähre Übereinstimmung) |
kundennummer_equals string, optional | Suche nach bestimmter Kundennummer (genaue Übereinstimmung) |
kundennummer_startswith string, optional | Suche nach bestimmter Kundennummer (Übereinstimmung am Anfang) |
kundennummer_endswith string, optional | Suche nach bestimmter Kundennummer (Übereinstimmung am Ende) |
lieferantennummer string, optional | Suche nach bestimmter Lieferantennummer (ungefähre Übereinstimmung) |
lieferantennummer_equals string, optional | Suche nach bestimmter Lieferantennummer (genaue Übereinstimmung) |
lieferantennummer_startswith string, optional | Suche nach bestimmter Lieferantennummer (Übereinstimmung am Anfang) |
lieferantennummer_endswith string, optional | Suche nach bestimmter Lieferantennummer (Übereinstimmung am Ende) |
mitarbeiternummer string, optional | Suche nach bestimmter Mitarbeiternummer (ungefähre Übereinstimmung) |
mitarbeiternummer_equals string, optional | Suche nach bestimmter Mitarbeiternummer (genaue Übereinstimmung) |
mitarbeiternummer_startswith string, optional | Suche nach bestimmter Mitarbeiternummer (Übereinstimmung am Anfang) |
mitarbeiternummer_endswith string, optional | Suche nach bestimmter Mitarbeiternummer (Übereinstimmung am Ende) |
email string, optional | Suche nach bestimmter E-Mail-Adresse (ungefähre Übereinstimmung) |
email_equals string, optional | Suche nach bestimmter E-Mail-Adresse (genaue Übereinstimmung) |
email_startswith string, optional | Suche nach bestimmter E-Mail-Adresse (Übereinstimmung am Anfang) |
email_endswith string, optional | Suche nach bestimmter E-Mail-Adresse (Übereinstimmung am Ende) |
freifeld[1-10] string, optional | Suche nach bestimmtem Wert im Freifeld1 bis Freifeld10 (ungefähre Übereinstimmung) (Beispiel: |
freifeld[1-10]_equals string, optional | Suche nach bestimmtem Wert im Freifeld1 bis Freifeld10 (genaue Übereinstimmung) (Beispiel: |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Response
-
Example
{ "data": [ { "id": 7, "rolle": "lieferant", "typ": "firma", "sprache": "deutsch", "name": "Schrauben Meier", "abteilung": "", "unterabteilung": "", "land": "DE", "strasse": "Musterstrasse 6", "ort": "Musterdorf", "plz": "13245", "telefon": "12345678", "telefax": "", "mobile": "", "email": "schrauben@meiermusterdorf.de", "projekt": 1, "...": "Ausgabe gekürzt" }, { "id": 8, "...": "Ausgabe gekürzt" } ], "pagination": { "items_total": 50, "items_current": 20, "items_per_page": 20, "page_current": 1, "page_last": 3 } }
Einzelne Adresse abrufen ¶ GET /v2/adressen/{id}
Einzelne Adresse abrufen
Permission: view_address
Request
Path Variables
id integer, required | Adressen-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 7, "rolle": "lieferant", "typ": "firma", "sprache": "deutsch", "name": "Schrauben Meier GmbH", "abteilung": "", "unterabteilung": "", "land": "DE", "strasse": "Musterstrasse 6", "ort": "Musterdorf", "plz": "13245", "telefon": "12345678", "telefax": "", "mobile": "", "email": "schrauben@meiermusterdorf.de", "projekt": 1, "...": "Ausgabe gekürzt" } }
Adresse wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
/v1/adresstyp
Adresstyp anlegen, bearbeiten und abrufen
Adresstypen abrufen ¶ GET /v1/adresstyp
Adresstypen abrufen
Permission: list_address_types
Request
Query Parameters
bezeichnung string, optional | Adresstyp mit bestimmter Bezeichnung suchen (ungefähre Übereinstimmung) |
---|---|
bezeichnung_exakt string, optional | Adresstyp mit bestimmter Bezeichnung suchen (genaue Übereinstimmung) |
type string, optional | Nach bestimmten Typ filtern (genaue Übereinstimmung) Mögliche Werte: |
projekt integer, optional | Adresstyp eines Projekts filtern (genaue Übereinstimmung) |
netto boolean, optional | Netto-Adresstypen filtern (1 = netto / 0 = brutto) |
aktiv integer, optional | Aktive/Inaktive Adresstypen filtern (1 = aktiv / 0 = inaktiv) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Adresstyp anlegen ¶ POST /v1/adresstyp
Adresstyp anlegen
Permission: create_address_type
Request
Properties (object)
bezeichnung string, required | Bezeichnung des Adresstyps |
---|---|
type string, required | Adresstyp; Mögliche Werte |
projekt integer, optional | Projekt |
netto integer, optional | Anzeige Belege in Netto ( |
aktiv integer, optional | Aktiv ( |
-
Example
{ "type": "herr", "bezeichnung": "Gentleman", "aktiv": 1, "projekt": 1 }
Response
Request erfolgreich; Angelegter Adresstyp wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "5", "type": "herr", "bezeichnung": "Gentleman", "projekt": "1", "netto": "0", "aktiv": "1" } }
Einzelnen Adresstyp abrufen ¶ GET /v1/adresstyp/{id}
Einzelnen Adresstyp abrufen
Permission: view_address_type
Request
Path Variables
id integer, required | Adresstyp-ID |
---|
Query Parameters
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": "1", "type": "firma", "bezeichnung": "Firma", "projekt": "0", "netto": "1", "aktiv": "1" } }
Adresstyp wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Adresstyp bearbeiten ¶ PUT /v1/adresstyp/{id}
Adresstyp bearbeiten
Permission: edit_address_type
Request
Path Variables
id integer, required | Adresstyp-ID |
---|
-
Example
{ "type": "herr", "bezeichnung": "Mr", "aktiv": "1", "projekt": "1" }
Response
Request erfolgreich; Aktualisierter Adresstyp wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "5", "type": "herr", "bezeichnung": "Mr", "projekt": "1", "netto": "0", "aktiv": "1" } }
/v1/artikel
Artikel abrufen
Artikelliste abrufen ¶ GET /v1/artikel
Artikelliste abrufen
Permission: list_articles
Request
Query Parameters
typ string, optional | Artikel eines bestimmten Typs suchen (genaue Übereinstimmung) Mögliche Werte: |
---|---|
nummer string, optional | Suche nach Artikeln mit bestimmter Artikelnummer (ungefähre Übereinstimmung) |
nummer_equals string, optional | Suche nach Artikeln mit bestimmter Artikelnummer (genaue Übereinstimmung) |
nummer_startswith string, optional | Suche nach Artikeln mit bestimmter Artikelnummer (Übereinstimmung am Anfang) |
nummer_endswith string, optional | Suche nach Artikeln mit bestimmter Artikelnummer (Übereinstimmung am Ende) |
name_de string, optional | Suche nach Artikeln mit bestimmtem deutschem Namen (ungefähre Übereinstimmung) |
name_de_equals string, optional | Suche nach Artikeln mit bestimmtem deutschem Namen (genaue Übereinstimmung) |
name_de_startswith string, optional | Suche nach Artikeln mit bestimmtem deutschem Namen (Übereinstimmung am Anfang) |
name_de_endswith string, optional | Suche nach Artikeln mit bestimmtem deutschem Namen (Übereinstimmung am Ende) |
name_en string, optional | Suche nach Artikeln mit bestimmtem englischem Namen (ungefähre Übereinstimmung) |
name_en_equals string, optional | Suche nach Artikeln mit bestimmtem englischem Namen (genaue Übereinstimmung) |
name_en_startswith string, optional | Suche nach Artikeln mit bestimmtem englischem Namen (Übereinstimmung am Anfang) |
name_en_endswith string, optional | Suche nach Artikeln mit bestimmtem englischem Namen (Übereinstimmung am Ende) |
projekt integer, optional | Artikel nach Projekt filtern |
adresse integer, optional | Artikel nach Adresse filtern |
firma integer, optional | Artikel nach Firma filtern |
katalog integer, optional | Artikel nach Katalog filtern |
ausverkauft integer, optional | Suche nach ausverkauften Artikeln (1 = ausverkauft / 0 = nicht ausverkauft) |
startseite integer, optional | Suche nach Artikeln auf Startseite (1 = Startseite / 0 = nicht Startseite) |
topseller integer, optional | Suche nach Topseller-Artikeln (1 = Topseller / 0 = kein Topseller) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: Lagerbestand Beispiel – Lagerartikel Beispiel – Kein Lagerartikel Erklärung
|
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Response
-
Example
{ "data": [ { "id": 1, "typ": "produkt", "nummer": "700001", "checksum": "", "projekt": 1, "inaktiv": "", "ausverkauft": 0, "warengruppe": "", "name_de": "Schraube M10x20", "name_en": "", "kurztext_de": "", "kurztext_en": "", "beschreibung_de": "", "beschreibung_en": "", "uebersicht_de": "", "uebersicht_en": "", "links_de": "", "links_en": "", "startseite_de": "", "startseite_en": "", "standardbild": "", "herstellerlink": "", "hersteller": "", "teilbar": "", "...": "Ausgabe gekürzt" }, { "id": 2, "...": "Ausgabe gekürzt" } ] }
Einzelnen Artikel abrufen ¶ GET /v1/artikel/{id}
Einzelnen Artikel abrufen
Permission: view_article
Request
Path Variables
id integer, required | Artikel-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 1, "typ": "produkt", "nummer": "700001", "checksum": "", "projekt": 1, "inaktiv": "", "ausverkauft": 0, "warengruppe": "", "name_de": "Schraube M10x20", "name_en": "", "kurztext_de": "", "kurztext_en": "", "beschreibung_de": "", "beschreibung_en": "", "uebersicht_de": "", "uebersicht_en": "", "links_de": "", "links_en": "", "startseite_de": "", "startseite_en": "", "standardbild": "", "herstellerlink": "", "hersteller": "", "teilbar": "", "nteile": "", "...": "Ausgabe gekürzt" } }
Artikel wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
/v1/artikelkategorien
Artikelkategorien anlegen, bearbeiten und abrufen
Artikelkategorien abrufen ¶ GET /v1/artikelkategorien
Artikelkategorien abrufen
Permission: list_article_categories
Request
Query Parameters
parent integer, optional | Artikelkategorien mit Parent-ID filtern (genaue Übereinstimmung) |
---|---|
projekt integer, optional | Artikelkategorien mit Projekt filtern (genaue Übereinstimmung) |
bezeichnung string, optional | Artikelkategorie mit bestimmter Bezeichnung suchen (ungefähre Übereinstimmung) |
bezeichnung_exakt string, optional | Artikelkategorie mit bestimmter Bezeichnung suchen (genaue Übereinstimmung) |
id_ext integer, optional | Artikelkategorie mit externer ID filtern (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Artikelkategorie anlegen ¶ POST /v1/artikelkategorien
Artikelkategorie anlegen
Permission: create_article_category
Request
Properties (object)
bezeichnung string, required | Name der Artikelkategorie |
---|---|
projekt integer, optional | Projekt-ID |
parent integer, optional | ID der Elternkategorie |
-
Example
{ "bezeichnung": "Schaufelradbagger", "projekt": 1, "parent": 10 }
Response
Request erfolgreich; Angelegte Artikelkategorie wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 19, "bezeichnung": "Schaufelradbagger", "next_nummer": "", "projekt": 1, "geloescht": "0", "externenummer": "0", "parent": 10, "steuer_erloese_inland_normal": "", "steuer_aufwendung_inland_normal": "", "steuer_erloese_inland_ermaessigt": "", "steuer_aufwendung_inland_ermaessigt": "", "steuer_erloese_inland_steuerfrei": "", "steuer_aufwendung_inland_steuerfrei": "", "steuer_erloese_inland_innergemeinschaftlich": "", "steuer_aufwendung_inland_innergemeinschaftlich": "", "steuer_erloese_inland_eunormal": "", "steuer_erloese_inland_nichtsteuerbar": "", "steuer_erloese_inland_euermaessigt": "", "steuer_aufwendung_inland_nichtsteuerbar": "", "steuer_aufwendung_inland_eunormal": "", "steuer_aufwendung_inland_euermaessigt": "", "steuer_erloese_inland_export": "", "steuer_aufwendung_inland_import": "", "steuertext_innergemeinschaftlich": null, "steuertext_export": null, "id_ext": 0 } }
Einzelne Artikelkategorie abrufen ¶ GET /v1/artikelkategorien/{id}
Einzelne Artikelkategorie abrufen
Permission: view_article_category
Request
Path Variables
id integer, required | Artikelkategorie-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 1, "bezeichnung": "1000000 Sonstiges", "next_nummer": "1000000", "projekt": 0, "geloescht": "0", "externenummer": "0", "parent": 0, "...": "Ausgabe gekürzt", "id_ext": 0 } }
Artikelkategorie wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Artikelkategorie bearbeiten ¶ PUT /v1/artikelkategorien/{id}
Artikelkategorie bearbeiten
Permission: edit_article_category
Request
Path Variables
id integer, required | Artikelkategorie-ID |
---|
-
Example
{ "bezeichnung": "Schwimmbagger" }
Response
Request erfolgreich; Aktualisierte Artikelkategorie wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 19, "bezeichnung": "Schwimmbagger", "next_nummer": "", "projekt": 1, "geloescht": "0", "externenummer": "0", "parent": 0, "...": "Ausgabe gekürzt", "id_ext": 0 } }
/v1/eigenschaften
Eigenschaften für Artikel abrufen, erstellen, bearbeiten und löschen
Eigenschaften abrufen ¶ GET /v1/eigenschaften
Eigenschaften abrufen
Permission: list_property
Request
Query Parameters
artikel integer, optional | Artikel Id der die Eigenschaft zugewiesen ist (genaue Übereinstimmung) - Standardmäßig 0, da die Zuordnung zum Artikel über den Wert realisiert wird |
---|---|
name string, optional | Name der Eigenschaft (genaue Übereinstimmung) |
typ string, optional | Typ der Eigenschaft (genaue Übereinstimmung) |
projekt integer, optional | Projekt dem die Eigenschaft zugewiesen ist (genaue Übereinstimmung) |
geloescht integer, optional | Markiert die Eigenschaft als gelöscht (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Eigenschaft anlegen ¶ POST /v1/eigenschaften
Eigenschaft anlegen
Permission: create_property
Request
Properties (object)
artikel integer, optional | Artikel Id der die Eigenschaft zugewiesen werden soll |
---|---|
name string, required | Name der Eigenschaft (muss eindeutig sein) |
typ string, optional | Typ der Eigenschaft |
projekt integer, optional | Projekt dem die Eigenschaft zugewiesen ist |
geloescht integer, optional | Markiert die Eigenschaft als gelöscht |
-
Example
{ "name": "Farbe", "typ": "einzeilig" }
Response
Request erfolgreich; Angelegte Eigenschaft wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 19, "artikel": 0, "name": "Farbe", "typ": "einzeilig", "projekt": 0, "geloescht": "0" } }
Einzelne Eigenschaft abrufen ¶ GET /v1/eigenschaften/{id}
Einzelne Eigenschaft abrufen
Permission: view_property
Request
Path Variables
id integer, required | Eigenschaft-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 19, "artikel": 0, "name": "Farbe", "typ": "einzeilig", "projekt": 0, "geloescht": "0" } }
Eigenschaft wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Eigenschaft bearbeiten ¶ PUT /v1/eigenschaften/{id}
Eigenschaft bearbeiten
Permission: edit_property
Request
Path Variables
id integer, required | Eigenschaft-ID |
---|
-
Example
{ "name": "Material" }
Response
Request erfolgreich; Aktualisierte Eigenschaft wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 19, "artikel": 0, "name": "Material", "typ": "einzeilig", "projekt": 0, "geloescht": "0" } }
Einzelne Eigenschaft löschen ¶ DELETE /v1/eigenschaften/{id}
Einzelne Eigenschaft löschen - Eigenschaften sollten nur dann gelöscht werden wenn auch keine Werte mehr für sie vorliegen
Permission: delete_property
Request
Path Variables
id integer, required | Eigenschaft-ID |
---|
Response
Request erfolgreich
-
Example
{ "success": true, "data": { "id": 19 } }
Eigenschaft wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://localhost/xentral/20.1/www/api/docs.html#error-7452" } }
/v1/eigenschaftenwerte
Eigenschaftenwerte für Artikel abrufen, erstellen, bearbeiten und löschen
Eigenschaftenwerte abrufen ¶ GET /v1/eigenschaftenwerte
Eigenschaften abrufen
Permission: list_property_value
Request
Query Parameters
artikel integer, optional | Artikel Id der die Eigenschaft zugewiesen ist (genaue Übereinstimmung) |
---|---|
artikeleigenschaften string, optional | Id der Eigenschaft (genaue Übereinstimmung) |
wert string, optional | Wert der Eigenschaft (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Eigenschaftwert anlegen ¶ POST /v1/eigenschaftenwerte
Eigenschaftenwert anlegen
Permission: create_property_value
Request
Properties (object)
artikel integer, required | Artikel Id der der Eigenschaftenwert zugewiesen werden soll |
---|---|
artikeleigenschaften integer, required | Id der Eigenschaft |
wert string, optional | Wert der Eigenschaft |
-
Example
{ "artikel": 1, "artikeleigenschaften": 19, "wert": "Gelb" }
Response
Request erfolgreich; Angelegter Eigenschaftenwert wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 203, "artikel": 1, "artikeleigenschaften": 19, "wert": "Gelb" } }
Einzelnen Eigenschaftenwert abrufen ¶ GET /v1/eigenschaftenwerte/{id}
Einzelnen Eigenschaftenwert abrufen
Permission: view_property_value
Request
Path Variables
id integer, required | Eigenschaftenwert-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 203, "artikel": 1, "artikeleigenschaften": 19, "wert": "Gelb" } }
Eigenschaftenwert wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Eigenschaftenwert bearbeiten ¶ PUT /v1/eigenschaftenwerte/{id}
Eigenschaftenwert bearbeiten
Permission: edit_property_value
Request
Path Variables
id integer, required | Eigenschaftenwert-ID |
---|
-
Example
{ "wert": "Holz" }
Response
Request erfolgreich; Aktualisierter Eigenschaftenwert wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 203, "artikel": 1, "artikeleigenschaften": 19, "wert": "Holz" } }
Einzelnen Eigenschaftenwert löschen ¶ DELETE /v1/eigenschaftenwerte/{id}
Einzelnen Eigenschaftenwert löschen
Permission: delete_property_value
Request
Path Variables
id integer, required | Eigenschaftenwert-ID |
---|
Response
Request erfolgreich
-
Example
{ "success": true, "data": { "id": 203 } }
Eigenschaftenwert wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://localhost/xentral/20.1/www/api/docs.html#error-7452" } }
/v1/belege/angebote
Angebote abrufen
Angebotsliste abrufen ¶ GET /v1/belege/angebote
Angebotsliste abrufen und Angebote suchen
Permission: list_quotes
Request
Query Parameters
status string, optional | Suche nach Angebotsstatus (genaue Übereinstimmung) Mögliche Werte: |
---|---|
belegnr string, optional | Suche nach Belegnummer (ungefähre Übereinstimmung) |
belegnr_equals string, optional | Suche nach Belegnummer (genaue Übereinstimmung) |
belegnr_startswith string, optional | Suche nach Belegnummer (Übereinstimmung am Anfang) |
belegnr_endswith string, optional | Suche nach Belegnummer (Übereinstimmung am Ende) |
kundennummer string, optional | Suche nach Kundennummer (ungefähre Übereinstimmung) |
kundennummer_equals string, optional | Suche nach Kundennummer (genaue Übereinstimmung) |
kundennummer_startswith string, optional | Suche nach Kundennummer (Übereinstimmung am Anfang) |
kundennummer_endswith string, optional | Suche nach Kundennummer (Übereinstimmung am Ende) |
datum string, optional | Suche nach bestimmtem Belegdatum (genaue Übereinstimmung) |
datum_gt string, optional | Suche nach bestimmtem Belegdatum (Datum größer Suchwert) |
datum_gte string, optional | Suche nach bestimmtem Belegdatum (Datum größer gleich Suchwert) |
datum_lt string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner Suchwert) |
datum_lte string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner gleich Suchwert) |
projekt integer, optional | Angebote eines bestimmten Projekt filtern |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Einzelnes Angebot abrufen ¶ GET /v1/belege/angebote/{id}
Einzelnes Angebot abrufen
Permission: list_quotes
Request
Path Variables
id integer, required | Angebots-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 4, "firma": 1, "projekt": "1", "status": "versendet", "belegnr": "100003", "kundennummer": "10000", "datum": "2019-06-28", "gueltigbis": "2019-04-10", "adresse": 3, "typ": "firma", "name": "Max Muster", "titel": "", "strasse": "Musterstrasse 6", "plz": "12345", "ort": "Musterdorf", "land": "DE", "...": "Ausgabe gekürzt" } }
Angebot wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
/v1/belege/auftraege
Aufträge abrufen
Auftragsliste abrufen ¶ GET /v1/belege/auftraege
Auftragsliste abrufen und Aufträge suchen
Permission: list_orders
Request
Query Parameters
status string, optional | Suche nach Auftragssstatus (genaue Übereinstimmung) Mögliche Werte: |
---|---|
belegnr string, optional | Suche nach Belegnummer (ungefähre Übereinstimmung) |
belegnr_equals string, optional | Suche nach Belegnummer (genaue Übereinstimmung) |
belegnr_startswith string, optional | Suche nach Belegnummer (Übereinstimmung am Anfang) |
belegnr_endswith string, optional | Suche nach Belegnummer (Übereinstimmung am Ende) |
kundennummer string, optional | Suche nach Kundennummer (ungefähre Übereinstimmung) |
kundennummer_equals string, optional | Suche nach Kundennummer (genaue Übereinstimmung) |
kundennummer_startswith string, optional | Suche nach Kundennummer (Übereinstimmung am Anfang) |
kundennummer_endswith string, optional | Suche nach Kundennummer (Übereinstimmung am Ende) |
datum string, optional | Suche nach bestimmtem Belegdatum (genaue Übereinstimmung) |
datum_gt string, optional | Suche nach bestimmtem Belegdatum (Datum größer Suchwert) |
datum_gte string, optional | Suche nach bestimmtem Belegdatum (Datum größer gleich Suchwert) |
datum_lt string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner Suchwert) |
datum_lte string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner gleich Suchwert) |
angebot string, optional | Aufträge nach Angebotsnummer filtern (genaue Übereinstimmung) |
angebotid integer, optional | Aufträge nach Angebots-ID filtern (genaue Übereinstimmung) |
projekt integer, optional | Aufträge eines bestimmten Projekt filtern |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Einzelnen Auftrag abrufen ¶ GET /v1/belege/auftraege/{id}
Einzelnen Auftrag abrufen
Permission: list_orders
Request
Path Variables
id integer, required | Auftrag-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 4, "firma": 1, "projekt": "1", "status": "freigegeben", "belegnr": "200003", "kundennummer": "10002", "ihrebestellnummer": null, "datum": "2019-02-26", "adresse": 5, "typ": "firma", "name": "Hans Huber", "titel": "", "strasse": "Musterstrasse 6", "plz": "12345", "ort": "Musterstadt", "land": "DE", "...": "Ausgabe gekürzt" } }
Auftrag wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
/v1/belege/lieferscheine
Lieferscheine abrufen
Lieferscheinliste abrufen ¶ GET /v1/belege/lieferscheine
Lieferscheinliste abrufen und Lieferscheine suchen
Permission: list_delivery_notes
Request
Query Parameters
status string, optional | Suche nach Lieferschein-Status (genaue Übereinstimmung) Mögliche Werte: |
---|---|
belegnr string, optional | Suche nach Belegnummer (ungefähre Übereinstimmung) |
belegnr_equals string, optional | Suche nach Belegnummer (genaue Übereinstimmung) |
belegnr_startswith string, optional | Suche nach Belegnummer (Übereinstimmung am Anfang) |
belegnr_endswith string, optional | Suche nach Belegnummer (Übereinstimmung am Ende) |
internet string, optional | Suche nach Internetnummer (ungefähre Übereinstimmung) |
internet_equals string, optional | Suche nach Internetnummer (genaue Übereinstimmung) |
internet_startswith string, optional | Suche nach Internetnummer (Übereinstimmung am Anfang) |
internet_endswith string, optional | Suche nach Internetnummer (Übereinstimmung am Ende) |
kundennummer string, optional | Suche nach Kundennummer (ungefähre Übereinstimmung) |
kundennummer_equals string, optional | Suche nach Kundennummer (genaue Übereinstimmung) |
kundennummer_startswith string, optional | Suche nach Kundennummer (Übereinstimmung am Anfang) |
kundennummer_endswith string, optional | Suche nach Kundennummer (Übereinstimmung am Ende) |
datum string, optional | Suche nach bestimmtem Belegdatum (genaue Übereinstimmung) |
datum_gt string, optional | Suche nach bestimmtem Belegdatum (Datum größer Suchwert) |
datum_gte string, optional | Suche nach bestimmtem Belegdatum (Datum größer gleich Suchwert) |
datum_lt string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner Suchwert) |
datum_lte string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner gleich Suchwert) |
auftrag string, optional | Lieferscheine nach Auftragsnummer filtern (genaue Übereinstimmung) |
auftragid integer, optional | Lieferscheine nach Auftrags-ID filtern (genaue Übereinstimmung) |
projekt integer, optional | Lieferscheine eines bestimmten Projekt filtern |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Einzelnen Lieferschein abrufen ¶ GET /v1/belege/lieferscheine/{id}
Einzelnen Lieferschein abrufen
Permission: list_delivery_notes
Request
Path Variables
id integer, required | Lieferschein-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 4, "firma": 1, "projekt": "1", "status": "freigegeben", "lieferscheinart": "", "belegnr": "300003", "kundennummer": "10001", "ihrebestellnummer": "", "datum": "2019-06-12", "adresse": 4, "typ": "frau", "name": "Eva Müller", "strasse": "Musterweg 12a", "plz": "12345", "ort": "Musterdorf", "land": "DE", "...": "Ausgabe gekürzt" } }
Lieferschein wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
/v1/belege/rechnungen
Rechnungen abrufen
Rechnungsliste abrufen ¶ GET /v1/belege/rechnungen
Rechnungsliste abrufen und Rechnungen suchen
Permission: list_invoices
Request
Query Parameters
status string, optional | Suche nach Rechnungs-Status (genaue Übereinstimmung) Mögliche Werte: |
---|---|
belegnr string, optional | Suche nach Belegnummer (ungefähre Übereinstimmung) |
belegnr_equals string, optional | Suche nach Belegnummer (genaue Übereinstimmung) |
belegnr_startswith string, optional | Suche nach Belegnummer (Übereinstimmung am Anfang) |
belegnr_endswith string, optional | Suche nach Belegnummer (Übereinstimmung am Ende) |
kundennummer string, optional | Suche nach Kundennummer (ungefähre Übereinstimmung) |
kundennummer_equals string, optional | Suche nach Kundennummer (genaue Übereinstimmung) |
kundennummer_startswith string, optional | Suche nach Kundennummer (Übereinstimmung am Anfang) |
kundennummer_endswith string, optional | Suche nach Kundennummer (Übereinstimmung am Ende) |
datum string, optional | Suche nach bestimmtem Belegdatum (genaue Übereinstimmung) |
datum_gt string, optional | Suche nach bestimmtem Belegdatum (Datum größer Suchwert) |
datum_gte string, optional | Suche nach bestimmtem Belegdatum (Datum größer gleich Suchwert) |
datum_lt string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner Suchwert) |
datum_lte string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner gleich Suchwert) |
auftrag string, optional | Rechnungen nach Auftragsnummer filtern (genaue Übereinstimmung) |
auftragid integer, optional | Rechnungen nach Auftrags-ID filtern (genaue Übereinstimmung) |
projekt integer, optional | Rechnungen eines bestimmten Projekt filtern |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Einzelne Rechnung abrufen ¶ GET /v1/belege/rechnungen/{id}
Einzelne Rechnung abrufen
Permission: view_invoice
Request
Path Variables
id integer, required | Rechnungs-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 4, "firma": 1, "projekt": "1", "status": "versendet", "belegnr": "400002", "datum": "2019-05-21", "kundennummer": "10000", "adresse": 3, "typ": "firma", "name": "Max Muster", "strasse": "Musterstrasse 6", "plz": "12345", "ort": "Musterdorf", "land": "DE", "...": "Ausgabe gekürzt" } }
Rechnung wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Einzelne Rechnung löschen ¶ DELETE /v1/belege/rechnungen/{id}
Einzelne Rechnung löschen
Permission: delete_invoice
Request
Path Variables
id integer, required | Rechnungs-ID |
---|
Response
Request erfolgreich
-
Example
{ "success": true, "data": { "id": 18 } }
Rechnung wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://localhost/xentral/20.1/www/api/docs.html#error-7452" } }
/v1/belege/gutschriften
Gutschriften/Stornorechnungen abrufen
Gutschriftenliste abrufen ¶ GET /v1/belege/gutschriften
Gutschriftenliste abrufen und Gutschriften suchen
Permission: list_credit_memos
Request
Query Parameters
status string, optional | Suche nach Gutschriften-Status (genaue Übereinstimmung) Mögliche Werte: |
---|---|
belegnr string, optional | Suche nach Belegnummer (ungefähre Übereinstimmung) |
belegnr_equals string, optional | Suche nach Belegnummer (genaue Übereinstimmung) |
belegnr_startswith string, optional | Suche nach Belegnummer (Übereinstimmung am Anfang) |
belegnr_endswith string, optional | Suche nach Belegnummer (Übereinstimmung am Ende) |
kundennummer string, optional | Suche nach Kundennummer (ungefähre Übereinstimmung) |
kundennummer_equals string, optional | Suche nach Kundennummer (genaue Übereinstimmung) |
kundennummer_startswith string, optional | Suche nach Kundennummer (Übereinstimmung am Anfang) |
kundennummer_endswith string, optional | Suche nach Kundennummer (Übereinstimmung am Ende) |
datum string, optional | Suche nach bestimmtem Belegdatum (genaue Übereinstimmung) |
datum_gt string, optional | Suche nach bestimmtem Belegdatum (Datum größer Suchwert) |
datum_gte string, optional | Suche nach bestimmtem Belegdatum (Datum größer gleich Suchwert) |
datum_lt string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner Suchwert) |
datum_lte string, optional | Suche nach bestimmtem Belegdatum (Datum kleiner gleich Suchwert) |
rechnung string, optional | Gutschriften nach Rechnungsnummer filtern (genaue Übereinstimmung) |
rechnungid integer, optional | Gutschriften nach Rechnungs-ID filtern (genaue Übereinstimmung) |
projekt integer, optional | Gutschriften eines bestimmten Projekt filtern |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Einzelne Gutschrift abrufen ¶ GET /v1/belege/gutschriften/{id}
Einzelne Gutschrift abrufen
Permission: view_credit_memo
Request
Path Variables
id integer, required | Gutschriften-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 1, "firma": 1, "projekt": "1", "status": "versendet", "belegnr": "900000", "datum": "2019-08-07", "stornorechnung": 0, "kundennummer": "10001", "adresse": 4, "typ": "frau", "name": "Eva Müller", "strasse": "Musterweg 12a", "plz": "12345", "ort": "Musterdorf", "land": "DE", "...": "Ausgabe gekürzt" } }
Gutschrift wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
/v1/crmdokumente
CRM-Dokumente abrufen, anlegen und bearbeiten
CRM-Dokumente abrufen ¶ GET /v1/crmdokumente
CRM-Dokumente abrufen und suchen
Permission: list_crm_documents
Request
Query Parameters
typ string, optional | Suche nach CRM-Dokumenten eines Typs (ungefähre Übereinstimmung) |
---|---|
typ_equals string, optional | Suche nach CRM-Dokumenten eines Typs (genaue Übereinstimmung) Verfügbare Typen: |
typ_exact string, optional | (deprecated) gleich wie typ_equals |
betreff string, optional | Suche nach Betreff (ungefähre Übereinstimmung) |
betreff_equals string, optional | Suche nach Betreff (genaue Übereinstimmung) |
betreff_exakt string, optional | (deprecated) gleich wie betreff_equals |
projekt integer, optional | Filtere nach Projekt (Projekt-ID) |
adresse_from integer, optional | Filtere nach Absender (Adresse-ID) |
adresse_to integer, optional | Filtere nach Empfänger (Adresse-ID) |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
CRM-Dokument anlegen ¶ POST /v1/crmdokumente
CRM-Dokument anlegen
Permission: create_crm_document
Request
Properties (object)
typ string, required | Mögliche Werte sind |
---|---|
betreff string, required | Betreff des CRM-Dokuments |
content string, optional | Inhalt des CRM-Dokuments |
adresse_from integer, optional | Absender/Mitarbeiter (Adresse-ID) |
adresse_to integer, optional | Empfänger/Kunde (Adresse-ID) |
von string, optional | Anzeigename Absender |
an string, optional | Anzeigename Empfänger |
email_an string, optional | E-Mail Adresse Empfänger |
email_cc string, optional | E-Mail Adresse CC |
email_bcc string, optional | E-Mail Adresse BCC |
adresse string, optional | Anschrift 1. Adresszeile |
plz string, optional | Anschrift Postleitzahl |
ort string, optional | Anschrift Ort |
land string, optional | Anschrift Land |
datum date-only, optional | Datum des Dokuments |
uhrzeit time-only, optional | Uhrzeit des Dokuments |
projekt integer, optional | Projekt-ID |
signatur integer, optional | Signatur verwendet (1=ja, 0=nein) |
printer integer, optional | Nachricht wurde gedruckt (1=ja, 0=nein) |
fax integer, optional | Fax wurde versendet (1=ja, 0=nein) |
sent integer, optional | Nachricht wurde versendet (1=ja, 0=nein) |
deleted integer, optional | Nachricht wurde gelöscht (1=ja, 0=nein) |
-
Example
{ "typ": "email", "betreff": "AW: Antwort auf eine Frage", "adresse_from": 1, "adresse_to": 7, "projekt": 1 }
Response
Request erfolgreich
-
Example
{ "success": true, "data": { "id": 14, "adresse_from": 1, "adresse_to": 7, "typ": "email", "von": "", "an": "", "email_an": "", "send_as": "", "email": "", "email_cc": null, "email_bcc": null, "bearbeiter": null, "firma_an": "", "adresse": "", "ansprechpartner": null, "plz": "", "ort": "", "land": "", "datum": "0000-00-00", "uhrzeit": null, "betreff": "AW: Antwort auf eine Frage", "content": "", "projekt": 1, "internebezeichnung": "", "signatur": 0, "fax": 0, "sent": 0, "printer": 0, "deleted": 0 } }
Request Body Fehlerhaft
-
Example
{ "error": { "code": 7453, "http_code": 400, "message": "Validation error", "href": "http://localhost/xentral/20.1/www/api/docs.html#error-7453", "details": [ "The attribute 'betreff' is required." ] } }
Einzelnes CRM-Dokument abrufen ¶ GET /v1/crmdokumente/{id}
Einzelnes CRM-Dokument abrufen.
Permission: view_crm_document
Request
Path Variables
id integer, required | CRM-Dokumenten-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 4, "adresse_from": 1, "adresse_to": 7, "typ": "telefon", "von": "", "an": "", "email_an": "", "send_as": "", "email": "", "email_cc": "", "email_bcc": "", "bearbeiter": "Mitarbeiter XY", "firma_an": "", "adresse": "", "ansprechpartner": "", "plz": "", "ort": "", "land": "", "datum": "2019-11-05", "uhrzeit": "12:04:00", "betreff": "Fragen zur Bedienung", "content": "- Keine Fragen, alles klar", "projekt": 1, "internebezeichnung": "", "signatur": 0, "fax": 0, "sent": 0, "printer": 0, "deleted": 0 } }
CRM-Dokument wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
CRM-Dokument bearbeiten ¶ PUT /v1/crmdokumente/{id}
CRM-Dokument bearbeiten
Permission: view_crm_document
Request
Path Variables
id integer, required | CRM-Dokumenten-ID |
---|
Properties (object)
typ string, required | Mögliche Werte sind |
---|---|
betreff string, required | Betreff des CRM-Dokuments |
content string, optional | Inhalt des CRM-Dokuments |
adresse_from integer, optional | Absender/Mitarbeiter (Adresse-ID) |
adresse_to integer, optional | Empfänger/Kunde (Adresse-ID) |
von string, optional | Anzeigename Absender |
an string, optional | Anzeigename Empfänger |
email_an string, optional | E-Mail Adresse Empfänger |
email_cc string, optional | E-Mail Adresse CC |
email_bcc string, optional | E-Mail Adresse BCC |
adresse string, optional | Anschrift 1. Adresszeile |
plz string, optional | Anschrift Postleitzahl |
ort string, optional | Anschrift Ort |
land string, optional | Anschrift Land |
datum date-only, optional | Datum des Dokuments |
uhrzeit time-only, optional | Uhrzeit des Dokuments |
projekt integer, optional | Projekt-ID |
signatur integer, optional | Signatur verwendet (1=ja, 0=nein) |
printer integer, optional | Nachricht wurde gedruckt (1=ja, 0=nein) |
fax integer, optional | Fax wurde versendet (1=ja, 0=nein) |
sent integer, optional | Nachricht wurde versendet (1=ja, 0=nein) |
deleted integer, optional | Nachricht wurde gelöscht (1=ja, 0=nein) |
-
Example
{ "typ": "brief", "betreff": "Test Brief 14" }
Response
Request erfolgreich
-
Example
{ "success": true, "data": { "id": 14, "adresse_from": 1, "adresse_to": 7, "typ": "brief", "von": "", "an": "", "email_an": "", "send_as": "", "email": "", "email_cc": null, "email_bcc": null, "bearbeiter": null, "firma_an": "", "adresse": "", "ansprechpartner": null, "plz": "", "ort": "", "land": "", "datum": "0000-00-00", "uhrzeit": null, "betreff": "Test Brief 14", "content": "", "projekt": 1, "internebezeichnung": "", "signatur": 0, "fax": 0, "sent": 0, "printer": 0, "deleted": 0 } }
Request Body Fehlerhaft
-
Example
{ "error": { "code": 7453, "http_code": 400, "message": "Validation error", "href": "http://localhost/xentral/20.1/www/api/docs.html#error-7453", "details": [ "The attribute 'betreff' is required." ] } }
CRM-Dokument wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
CRM-Dokument löschen ¶ DELETE /v1/crmdokumente/{id}
CRM-Dokument löschen
Permission: delete_crm_document
Request
Path Variables
id integer, required | CRM-Dokumenten-ID |
---|
Response
Request erfolgreich
-
Example
{ "success": true, "data": { "id": 14 } }
CRM-Dokument wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
/v1/dateien
Dateiliste abrufen und Dateien downloaden
Dateiliste abrufen ¶ GET /v1/dateien
Dateiliste abrufen.
Permission: list_files
Request
Query Parameters
titel string, optional | Suche nach Dateititel (ungefähre Übereinstimmung) |
---|---|
titel_equals string, optional | Suche nach Dateititel (genaue Übereinstimmung) |
titel_startswith string, optional | Suche nach Dateititel (Übereinstimmung am Anfang) |
titel_endswith string, optional | Suche nach Dateititel (Übereinstimmung am Ende) |
dateiname string, optional | Suche nach Dateiname (ungefähre Übereinstimmung) |
dateiname_equals string, optional | Suche nach Dateiname (genaue Übereinstimmung) |
dateiname_startswith string, optional | Suche nach Dateiname (Übereinstimmung am Anfang) |
dateiname_endswith string, optional | Suche nach Dateiname (Übereinstimmung am Ende) |
belegtyp string, optional | Suche nach Zuweisungen zu Belegtyp (ungefähre Übereinstimmung) |
stichwort string, optional | Suche nach Stichwort (ungefähre Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Datei anlegen/hochladen ¶ POST /v1/dateien
Datei anlegen/hochladen
Permission: create_files
Request
Properties (object)
file_content file, required | Datei-Inhalt (Raw-Daten) |
---|---|
titel string, required | Datei-Titel |
dateiname string, required | Dateiname (ohne Verzeichnis; Beispiel |
beschreibung string, optional | Beschreibungstext |
Response
Request erfolgreich; Angelegte Datei wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 123, "titel": "Rechnung 400027", "beschreibung": "Rechnung 400027 von Kunde Max Mustermann", "nummer": "", "firma": 1, "ersteller": "", "datum": "2018-11-15", "version": 1, "dateiname": "RE400027.pdf", "bemerkung": "Initiale Version", "size": "8427", "stichwoerter": null, "belegtypen": null, "mimetype": "application/pdf", "links": { "download": "http://www.example.com/api/v1/dateien/123/download", "base64": "http://www.example.com/api/v1/dateien/123/base64" } } }
Informationen zu einer Datei abrufen ¶ GET /v1/dateien/{id}
Informationen zu einer Datei abrufen
Permission: view_file
Request
Path Variables
id integer, required | Datei-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 115, "titel": "Rechnung 400027", "beschreibung": "", "nummer": "", "firma": 1, "ersteller": "Max Mustermann", "datum": "2018-11-15", "version": 1, "dateiname": "RE400027.pdf", "bemerkung": "Initiale Version", "size": "8427", "stichwoerter": "Belege", "belegtypen": "Verbindlichkeiten", "mimetype": "application/pdf", "links": { "download": "http://www.example.com/api/v1/dateien/115/download", "base64": "http://www.example.com/api/v1/dateien/115/base64" } } }
Datei wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Datei downloaden ¶ GET /v1/dateien/{id}/download
Datei downloaden
Permission: handle_assets
Dateiinhalt base64-kodiert abrufen ¶ GET /v1/dateien/{id}/base64
Dateiinhalt base64-kodiert abrufen
Permission: handle_assets
Request
Path Variables
id integer, required | Datei-ID |
---|
Response
Request erfolgreich
-
Example
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=
/v1/docscan
DocumentScanner-Dateiliste abrufen und Dateien downloaden
DocumentScanner-Dateiliste abrufen ¶ GET /v1/docscan
DocumentScanner-Dateiliste abrufen
Permission: list_scanned_documents
Request
Query Parameters
titel string, optional | Suche nach Dateititel (ungefähre Übereinstimmung) |
---|---|
titel_equals string, optional | Suche nach Dateititel (genaue Übereinstimmung) |
titel_startswith string, optional | Suche nach Dateititel (Übereinstimmung am Anfang) |
titel_endswith string, optional | Suche nach Dateititel (Übereinstimmung am Ende) |
dateiname string, optional | Suche nach Dateiname (ungefähre Übereinstimmung) |
dateiname_equals string, optional | Suche nach Dateiname (genaue Übereinstimmung) |
dateiname_startswith string, optional | Suche nach Dateiname (Übereinstimmung am Anfang) |
dateiname_endswith string, optional | Suche nach Dateiname (Übereinstimmung am Ende) |
datum string, optional | Suche nach Datum (genaue Übereinstimmung; Format |
datum_gt string, optional | Suche nach Datum (Datum größer Suchwert) |
datum_gte string, optional | Suche nach Datum (Datum größer gleich Suchwert) |
datum_lt string, optional | Suche nach Datum (Datum kleiner Suchwert) |
datum_lte string, optional | Suche nach Datum (Datum kleiner gleich Suchwert) |
belegtyp string, optional | Suche nach Zuweisungen zu Belegtyp (ungefähre Übereinstimmung) |
stichwort string, optional | Suche nach Stichwort (ungefähre Übereinstimmung) |
firma integer, optional | Suche nach Firmen-ID |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
DocumentScanner-Datei anlegen/hochladen ¶ POST /v1/docscan
DocumentScanner-Datei anlegen/hochladen
Permission: create_scanned_documents
Request
Properties (object)
file_content file, required | Datei-Inhalt |
---|---|
titel string, required | Datei-Titel |
dateiname string, required | Dateiname (ohne Verzeichnis; Beispiel |
beschreibung string, optional | Datei-Beschreibungstext |
meta array, optional | Meta-Daten |
meta.invoice_number string, optional | Rechnungsnummer |
meta.invoice_date string, optional | Rechnungsdatum (Format |
meta.invoice_amount string, optional | Rechnungsbetrag brutto (Beispiel |
meta.invoice_tax string, optional | Mehrwertsteuerbetrag der Rechnung (Beispiel |
meta.invoice_currency string, optional | Währungscode der Rechnung (Beispiel |
Properties (object)
file_content string, required | Datei-Inhalt (Raw-Daten) |
---|---|
titel string, required | Datei-Titel |
dateiname string, required | Dateiname (ohne Verzeichnis; Beispiel |
beschreibung string, optional | Datei-Beschreibungstext |
meta array, optional | Meta-Daten |
meta.invoice_number string, optional | Rechnungsnummer |
meta.invoice_date string, optional | Rechnungsdatum (Format |
meta.invoice_amount string, optional | Rechnungsbetrag brutto (Beispiel |
meta.invoice_tax string, optional | Mehrwertsteuerbetrag der Rechnung (Beispiel |
meta.invoice_currency string, optional | Währungscode der Rechnung (Beispiel |
Response
Request erfolgreich; Angelegte Datei wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 123, "titel": "Rechnung 400027", "beschreibung": "Rechnung 400027 von Kunde Max Mustermann", "nummer": "", "firma": 1, "ersteller": "", "datum": "2018-11-15", "version": 1, "dateiname": "RE400027.pdf", "bemerkung": "Initiale Version", "size": "8427", "mimetype": "application/pdf", "links": { "download": "http://www.example.com/api/v1/dateien/123/download", "base64": "http://www.example.com/api/v1/dateien/123/base64" } } }
Informationen zu einer DocumentScanner-Datei abrufen ¶ GET /v1/docscan/{id}
Informationen zu einer DocumentScanner-Datei abrufen
Permission: view_scanned_documents
Request
Path Variables
id integer, required | Datei-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 115, "titel": "Rechnung 400027", "beschreibung": "", "nummer": "", "firma": 1, "ersteller": "Max Mustermann", "datum": "2018-11-15", "version": 1, "dateiname": "RE400027.pdf", "bemerkung": "Initiale Version", "size": "8427", "mimetype": "application/pdf", "links": { "download": "http://www.example.com/api/v1/dateien/115/download", "base64": "http://www.example.com/api/v1/dateien/115/base64" } } }
Datei wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
/v1/gruppen
Gruppen anlegen, bearbeiten und abrufen
Gruppenliste abrufen ¶ GET /v1/gruppen
Gruppenliste abrufen
Permission: list_groups
Request
Query Parameters
name string, optional | Gruppe mit bestimmter Bezeichnung suchen (ungefähre Übereinstimmung) |
---|---|
name_exakt string, optional | Gruppe mit bestimmter Bezeichnung suchen (genaue Übereinstimmung) |
kennziffer string, optional | Gruppen mit bestimmter Kennziffer suchen (ungefähre Übereinstimmung) |
kennziffer_exakt string, optional | Gruppen mit bestimmter Kennziffer suchen (genaue Übereinstimmung) |
art string, optional | Gruppen mit bestimmter Art suchen (genaue Übereinstimmung) Mögliche Werte: |
projekt integer, optional | Gruppen mit bestimmten Projekt filtern |
kategorie integer, optional | Gruppen mit bestimmter Kategorie filtern |
aktiv integer, optional | Aktive/Inaktive Gruppen filtern (1 = aktiv / 0 = inaktiv) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Gruppe anlegen ¶ POST /v1/gruppen
Gruppe anlegen
Permission: create_groups
Request
Properties (object)
name string, required | Bezeichnung der Gruppe |
---|---|
art string, required | Mögliche Werte sind |
kennziffer string, required | Einmalige Kennziffer |
projekt integer, optional | Projekt-ID |
kategorie integer, optional | Projekt-ID |
aktiv integer, optional | Gruppe aktiv? (1 = Aktiv / 0 = Inaktiv) |
-
Example
{ "name": "Support", "art": "gruppe", "kennziffer": "SUPPORT", "projekt": 0, "kategorie": 0, "aktiv": 1 }
Response
Request erfolgreich; Angelegte Gruppe wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "11", "name": "Support", "art": "gruppe", "kennziffer": "SUPPORT", "internebemerkung": "", "projekt": "0", "kategorie": "0", "aktiv": "1" } }
Einzelne Gruppe abrufen ¶ GET /v1/gruppen/{id}
Einzelne Gruppe abrufen
Permission: view_group
Request
Path Variables
id integer, required | Gruppe-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": "1", "name": "Vertriebsleiter", "art": "vertreter", "kennziffer": "VETRL", "internebemerkung": "", "projekt": "0", "kategorie": "0", "aktiv": "1" } }
Gruppe wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Gruppe bearbeiten ¶ PUT /v1/gruppen/{id}
Gruppe bearbeiten
Permission: update_group
Request
Path Variables
id integer, required | Gruppe-ID |
---|
-
Example
{ "name": "Support (inaktiv)", "art": "gruppe", "kennziffer": "SUPPORT", "aktiv": "0" }
Response
Request erfolgreich; Aktualisierte Gruppe wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "11", "name": "Support (inaktiv)", "art": "gruppe", "kennziffer": "SUPPORT", "internebemerkung": "", "projekt": "0", "kategorie": "0", "aktiv": "0" } }
/v1/laender
Länder anlegen, bearbeiten und abrufen
Länderliste abrufen ¶ GET /v1/laender
Länderliste abrufen
Permission: list_countries
Request
Query Parameters
eu integer, optional | Länder innerhalb/außerhalb EU filtern (1 = EU / 0 = Nicht EU) |
---|---|
iso string, optional | Länder mit ISO-Code filtern (genaue Übereinstimmung) |
bezeichnung_de string, optional | Länder mit bestimmter Bezeichnung suchen (ungefähre Übereinstimmung) |
bezeichnung_en string, optional | Länder mit bestimmter Bezeichnung suchen (ungefähre Übereinstimmung) |
id_ext integer, optional | Land mit externer ID filtern (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Land anlegen ¶ POST /v1/laender
Land anlegen
Permission: create_countries
Request
Properties (object)
bezeichnung_de string, required | Deutsche Bezeichnung des Landes |
---|---|
bezeichnung_en string, required | Englische Bezeichnung des Landes |
iso string, required | ISO-Code (ISO-3166 ALPHA 2) |
eu integer, optional | EU (1 = EU / 0 = Nicht EU) |
-
Example
{ "bezeichnung_de": "Republik Togo", "bezeichnung_en": "République Togolaise", "iso": "TG", "eu": 0 }
Response
Request erfolgreich; Angelegtes Land wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "246", "iso": "TG", "bezeichnung_de": "Republik Togo", "bezeichnung_en": "République Togolaise", "eu": "0", "id_ext": null } }
Einzelnes Land abrufen ¶ GET /v1/laender/{id}
Einzelnes Land abrufen
Permission: view_country
Request
Path Variables
id integer, required | Land-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": "43", "iso": "DE", "bezeichnung_de": "Deutschland", "bezeichnung_en": "Germany", "eu": "1", "id_ext": null } }
Land wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Land bearbeiten ¶ PUT /v1/laender/{id}
Land bearbeiten
Permission: edit_country
Request
Path Variables
id integer, required | Land-ID |
---|
-
Example
{ "bezeichnung_de": "Togo", "bezeichnung_en": "Republique Togolaise", "iso": "TX", "eu": 0 }
Response
Request erfolgreich; Aktualisiertes Land wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "246", "iso": "TX", "bezeichnung_de": "Togo", "bezeichnung_en": "Republique Togolaise", "eu": "0", "id_ext": null } }
/v1/lagercharge
Lagercharge abrufen
Lagercharge abrufen ¶ GET /v1/lagercharge
Lagercharge abrufen
Permission: view_storage_batch
Request
Query Parameters
artikelnummer string, optional | Suche nach bestimmter Artikelnummer (ungefähre Übereinstimmung) |
---|---|
artikelnummer_equals string, optional | Suche nach bestimmter Artikelnummer (genaue Übereinstimmung) |
artikelnummer_startswith string, optional | Suche nach bestimmter Artikelnummer (Übereinstimmung am Anfang) |
artikelnummer_endswith string, optional | Suche nach bestimmter Artikelnummer (Übereinstimmung am Ende) |
artikel integer, optional | Suche nach bestimmter Artikel-ID (genaue Übereinstimmung) |
lagerplatzbezeichnung string, optional | Suche nach bestimmter Lagerplatzbezeichnung (ungefähre Übereinstimmung) |
lagerplatzbezeichnung_equals string, optional | Suche nach bestimmter Lagerplatzbezeichnung (genaue Übereinstimmung) |
lagerplatzbezeichnung_startswith string, optional | Suche nach bestimmter Lagerplatzbezeichnung (Übereinstimmung am Anfang) |
lagerplatzbezeichnung_endswith string, optional | Suche nach bestimmter Lagerplatzbezeichnung (Übereinstimmung am Ende) |
lagerplatz integer, optional | Suche nach bestimmter Lagerplatz-ID (genaue Übereinstimmung) |
charge integer, optional | Suche nach bestimmter Charge (ungefähre Übereinstimmung) |
charge_equals string, optional | Suche nach bestimmter Charge (genaue Übereinstimmung) |
charge_startswith string, optional | Suche nach bestimmter Charge (Übereinstimmung am Anfang) |
charge_endswith string, optional | Suche nach bestimmter Charge (Übereinstimmung am Ende) |
datum string, optional | Suche nach bestimmtem Datum (genaue Übereinstimmung) |
datum_gt string, optional | Suche nach bestimmtem Datum (Datum größer Suchwert) |
datum_gte string, optional | Suche nach bestimmtem Datum (Datum größer gleich Suchwert) |
datum_lt string, optional | Suche nach bestimmtem Datum (Datum kleiner Suchwert) |
datum_lte string, optional | Suche nach bestimmtem Datum (Datum kleiner gleich Suchwert) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Response
Request erfolgreich
Die Menge wird gruppiert über drei Felder: artikel
, lagerplatz
und charge
.
-
Example
{ "data": [ { "artikel": 1, "artikelnummer": "700001", "lagerplatz": 1, "lagerplatzbezeichnung": "HL001A", "charge": "111111", "datum": "2018-12-21", "menge": "200.0000", "internebemerkung": "" }, { "artikel": 1, "artikelnummer": "700001", "lagerplatz": 2, "lagerplatzbezeichnung": "HL001B", "charge": "222222", "datum": "2018-12-21", "menge": "300.0000", "internebemerkung": "" } ], "pagination": { "items_per_page": 20, "items_current": 2, "items_total": 2, "page_current": 1, "page_last": 1 } }
/v1/lagermhd
Lager-Mindesthaltbarkeitdatum abrufen
Lager-Mindesthaltbarkeitdatum abrufen ¶ GET /v1/lagermhd
Lager-Mindesthaltbarkeitdatum abrufen
Permission: view_storage_best_before
Request
Query Parameters
artikelnummer string, optional | Suche nach bestimmter Artikelnummer (ungefähre Übereinstimmung) |
---|---|
artikelnummer_equals string, optional | Suche nach bestimmter Artikelnummer (genaue Übereinstimmung) |
artikelnummer_startswith string, optional | Suche nach bestimmter Artikelnummer (Übereinstimmung am Anfang) |
artikelnummer_endswith string, optional | Suche nach bestimmter Artikelnummer (Übereinstimmung am Ende) |
artikel integer, optional | Suche nach bestimmter Artikel-ID (genaue Übereinstimmung) |
lagerplatzbezeichnung string, optional | Suche nach bestimmter Lagerplatzbezeichnung (ungefähre Übereinstimmung) |
lagerplatzbezeichnung_equals string, optional | Suche nach bestimmter Lagerplatzbezeichnung (genaue Übereinstimmung) |
lagerplatzbezeichnung_startswith string, optional | Suche nach bestimmter Lagerplatzbezeichnung (Übereinstimmung am Anfang) |
lagerplatzbezeichnung_endswith string, optional | Suche nach bestimmter Lagerplatzbezeichnung (Übereinstimmung am Ende) |
lagerplatz integer, optional | Suche nach bestimmter Lagerplatz-ID (genaue Übereinstimmung) |
charge integer, optional | Suche nach bestimmter Charge (ungefähre Übereinstimmung) |
charge_equals string, optional | Suche nach bestimmter Charge (genaue Übereinstimmung) |
charge_startswith string, optional | Suche nach bestimmter Charge (Übereinstimmung am Anfang) |
charge_endswith string, optional | Suche nach bestimmter Charge (Übereinstimmung am Ende) |
mhddatum string, optional | Suche nach bestimmtem MHD-Datum (genaue Übereinstimmung) |
mhddatum_gt string, optional | Suche nach bestimmtem MHD-Datum (MHD-Datum größer Suchwert) |
mhddatum_gte string, optional | Suche nach bestimmtem MHD-Datum (MHD-Datum größer gleich Suchwert) |
mhddatum_lt string, optional | Suche nach bestimmtem MHD-Datum (MHD-Datum kleiner Suchwert) |
mhddatum_lte string, optional | Suche nach bestimmtem MHD-Datum (MHD-Datum kleiner gleich Suchwert) |
datum string, optional | Suche nach bestimmtem Datum (genaue Übereinstimmung) |
datum_gt string, optional | Suche nach bestimmtem Datum (Datum größer Suchwert) |
datum_gte string, optional | Suche nach bestimmtem Datum (Datum größer gleich Suchwert) |
datum_lt string, optional | Suche nach bestimmtem Datum (Datum kleiner Suchwert) |
datum_lte string, optional | Suche nach bestimmtem Datum (Datum kleiner gleich Suchwert) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Response
Request erfolgreich
Die Menge wird gruppiert über vier Felder: artikel
, lagerplatz
, charge
und mhddatum
.
-
Example
{ "data": [ { "artikel": 1, "artikelnummer": "700001", "lagerplatz": 1, "lagerplatzbezeichnung": "HL001A", "charge": "444444", "mhddatum": "2019-12-24", "datum": "2018-12-21", "menge": "300.0000", "internebemerkung": "Charge und / oder MHD angelegt" }, { "artikel": 1, "artikelnummer": "700001", "lagerplatz": 4, "lagerplatzbezeichnung": "HL002", "charge": "555555", "mhddatum": "2019-12-23", "datum": "2018-12-21", "menge": "289.0000", "internebemerkung": "Produktion 400003 Einlagern" } ], "pagination": { "items_per_page": 20, "items_current": 2, "items_total": 2, "page_current": 1, "page_last": 1 } }
/v1/lieferadressen
Lieferadressen anlegen, bearbeiten und abrufen
Lieferadressen abrufen ¶ GET /v1/lieferadressen
Lieferadressen abrufen
Permission: list_delivery_addresses
Request
Query Parameters
adresse integer, optional | Suche nach allen Lieferadressen einer bestimmten Hauptadresse |
---|---|
standardlieferadresse integer, optional | Ist Standard-Lieferadresse? (0 = Keine Standard-Lieferadresse / 1 = Ist Standard-Lieferadresse) |
typ string, optional | Nach bestimmten Adresstyp filtern (genaue Übereinstimmung) Mögliche Werte: Siehe Adresstyp-Endpunkt: GET /adresstyp. |
name string, optional | Suche nach Name (ungefähre Übereinstimmung) |
name_equals string, optional | Suche nach Name (genaue Übereinstimmung) |
name_startswith string, optional | Suche nach Name (Übereinstimmung am Anfang) |
name_endswith string, optional | Suche nach Name (Übereinstimmung am Ende) |
land string, optional | Suche nach Lieferadressen aus einem bestimmten Land (zweistelliger ISO-Code) |
id_ext integer, optional | Lieferadresse mit externer ID filtern (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Lieferadresse anlegen ¶ POST /v1/lieferadressen
Lieferadresse anlegen
Permission: create_delivery_address
Request
Properties (object)
name string, required | Name der Firma bzw. Person |
---|---|
adresse integer, optional | ID der Hauptadresse; Die angelegte Lieferadresse wird dieser Hauptadresse zugeordnet. |
typ string, optional | Adresstyp; Siehe Adresstyp-Endpunkt Feld |
abteilung string, optional | |
strasse string, optional | |
ort string, optional | |
plz string, optional | |
telefon string, optional | |
telefax string, optional | |
email string, optional | |
land string, optional | ISO-Code (ISO-3166 ALPHA 2) |
standardlieferadresse integer, optional | Als Standard-Lieferadresse markieren? ( |
ust_befreit integer, optional | Besteuerung ( |
-
Example
{ "adresse": 5, "typ": "herr", "name": "Max Mustermann", "abteilung": "Musterabteilung", "strasse": "Musterweg", "ort": "Musterort", "plz": "12345", "land": "DE", "telefon": "0123-456789-9", "telefax": "0123-456789-0", "email": "max@mustermann.de", "standardlieferadresse": 1, "ust_befreit": 0 }
Response
Request erfolgreich; Angelegte Lieferadresse wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 23, "typ": "herr", "name": "Max Mustermann", "abteilung": "Musterabteilung", "...": "Ausgabe gekürzt", "standardlieferadresse": 1, "ust_befreit": 0, "id_ext": null } }
Einzelne Lieferadresse abrufen ¶ GET /v1/lieferadressen/{id}
Einzelne Lieferadresse abrufen
Permission: view_delivery_address
Request
Path Variables
id integer, required | Lieferadressen-ID |
---|
Response
Request erfolgreich
-
Example
{ "success": true, "data": { "id": 1, "typ": "herr", "name": "Max Mustermann", "abteilung": "Musterabteilung", "...": "Ausgabe gekürzt", "standardlieferadresse": 1, "ust_befreit": 0, "id_ext": null } }
Lieferadresse wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Lieferadresse bearbeiten ¶ PUT /v1/lieferadressen/{id}
Lieferadresse bearbeiten
Permission: edit_delivery_address
Request
Path Variables
id integer, required | Lieferadressen-ID |
---|
-
Example
{ "typ": "firma", "name": "Mustermann Gmbh" }
Response
Request erfolgreich; Aktualisierte Lieferadresse wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 1, "typ": "firma", "name": "Mustermann Gmbh", "abteilung": "Musterabteilung", "...": "Ausgabe gekürzt", "standardlieferadresse": 1, "ust_befreit": 0, "id_ext": null } }
Lieferadresse löschen ¶ DELETE /v1/lieferadressen/{id}
Lieferadresse löschen
Permission: delete_delivery_address
Request
Path Variables
id integer, required | Lieferadressen-ID |
---|
Response
Request erfolgreich; ID der gelöschten Lieferadresse wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 1 } }
/v1/reports
Berichte (neues Modul) abrufen
Einzelnen Bericht herunterladen ¶ GET /v1/reports/{id}/download
Einzelnen Bericht herunterladen
Request
Path Variables
id integer, required | Bericht-ID |
---|
Query Parameters
parameter any, optional | Jeder Parameter, der in der Abfrage des Berichts vorkommt. |
---|
Response
Request erfolgreich
Der Content-Type ist abhängig vom Mime-Type des Formats, das im Bericht hinterlegt ist.
Der Bericht ist nicht für den Zugriff über diesen API Account freigegeben.
-
Example
{ "error": { "http_code": 403, "message": "Access denied" } }
Bericht wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Der Bericht konnte nicht erstellt werden. Der Bericht ist eventuell fehlerhaft.
-
Example
{ "error": { "code": 7499, "http_code": 500, "message": "Unknown server error", "href": "http://localhost/xentral/20.1/www/api/docs.html#error-7499" } }
/v1/steuersaetze
Steuersätze anlegen, bearbeiten und abrufen
Steuersätze abrufen ¶ GET /v1/steuersaetze
Steuersätze abrufen
Permission: list_tax_rates
Request
Query Parameters
bezeichnung string, optional | Steuersatz mit bestimmter Bezeichnung suchen (ungefähre Übereinstimmung) |
---|---|
satz string, optional | Nach Steuersatz filtern (genaue Übereinstimmung) |
aktiv integer, optional | Aktive/Inaktive Steuersätze filtern (1 = aktiv / 0 = inaktiv) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Steuersatz anlegen ¶ POST /v1/steuersaetze
Steuersatz anlegen
Permission: create_tax_rate
Request
Properties (object)
bezeichnung string, required | Bezeichnung des Steuersatzes |
---|---|
satz string, required | Steuersatz in Prozent (ohne Prozentzeichen; Dezimaltrenner = Punkt) |
aktiv integer, optional | Aktiv (1 = aktiv / 0 = inaktiv) |
-
Example
{ "bezeichnung": "Steuer DE ermäßigt", "satz": "7.00", "aktiv": 1 }
Response
Request erfolgreich; Angelegter Steuersatz wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "14", "bezeichnung": "Steuer DE ermäßigt", "satz": "7.00", "aktiv": "1" } }
Einzelnen Steuersatz abrufen ¶ GET /v1/steuersaetze/{id}
Einzelnen Steuersatz abrufen
Permission: view_tax_rate
Request
Path Variables
id integer, required | Steuersatz-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": "1", "bezeichnung": "Steuersatz DE normal", "country_code": "DE", "satz": "19.00", "aktiv": "1" } }
Steuersatz wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Steuersatz bearbeiten ¶ PUT /v1/steuersaetze/{id}
Steuersatz bearbeiten
Permission: edit_tax_rates
Request
Path Variables
id integer, required | Steuersatz-ID |
---|
Properties (object)
bezeichnung string, required | Bezeichnung des Steuersatzes |
---|---|
country_code string, optional | Ländercode des Steuersatzes |
satz string, required | Steuersatz in Prozent (ohne Prozentzeichen; Dezimaltrenner = Punkt) |
aktiv integer, optional | Aktiv (1 = aktiv / 0 = inaktiv) |
-
Example
{ "bezeichnung": "Steuer DE normal", "satz": "19.00" }
Response
Request erfolgreich; Aktualisierter Steuersatz wird zurückgeliefert
-
Example
{ "data": { "id": "1", "bezeichnung": "Steuer DE normal", "country_code": "DE", "satz": "19.00", "aktiv": "1" } }
/v1/trackingnummern
Trackingnummern abrufen ¶ GET /v1/trackingnummern
Endpunkt zum Abrufen von Trackingnummern
Permission: list_tracking_numbers
Request
Query Parameters
tracking string, optional | Suche nach bestimmter Trackingnummer (ungefähre Übereinstimmung) |
---|---|
tracking_equals string, optional | Suche nach bestimmter Trackingnummer (genaue Übereinstimmung) |
tracking_startswith string, optional | Suche nach bestimmter Trackingnummer (Übereinstimmung am Anfang) |
tracking_endswith string, optional | Suche nach bestimmter Trackingnummer (Übereinstimmung am Ende) |
lieferschein string, optional | Suche nach bestimmter Lieferscheinnummer (ungefähre Übereinstimmung) |
lieferschein_equals string, optional | Suche nach bestimmter Lieferscheinnummer (genaue Übereinstimmung) |
lieferschein_startswith string, optional | Suche nach bestimmter Lieferscheinnummer (Übereinstimmung am Anfang) |
lieferschein_endswith string, optional | Suche nach bestimmter Lieferscheinnummer (Übereinstimmung am Ende) |
auftrag string, optional | Suche nach bestimmter Auftragsnummer (ungefähre Übereinstimmung) |
auftrag_equals string, optional | Suche nach bestimmter Auftragsnummer (genaue Übereinstimmung) |
auftrag_startswith string, optional | Suche nach bestimmter Auftragsnummer (Übereinstimmung am Anfang) |
auftrag_endswith string, optional | Suche nach bestimmter Auftragsnummer (Übereinstimmung am Ende) |
internet string, optional | Suche nach bestimmter Internetnummer (ungefähre Übereinstimmung) |
internet_equals string, optional | Suche nach bestimmter Internetnummer (genaue Übereinstimmung) |
internet_startswith string, optional | Suche nach bestimmter Internetnummer (Übereinstimmung am Anfang) |
internet_endswith string, optional | Suche nach bestimmter Internetnummer (Übereinstimmung am Ende) |
versandart string, optional | Suche nach bestimmter Versandart (genaue Übereinstimmung) |
versendet_am string, optional | Suche nach bestimmtem Versanddatum (genaue Übereinstimmung) |
versendet_am_gt string, optional | Suche nach bestimmtem Versanddatum (Datum größer Suchwert) |
versendet_am_gte string, optional | Suche nach bestimmtem Versanddatum (Datum größer gleich Suchwert) |
versendet_am_lt string, optional | Suche nach bestimmtem Versanddatum (Datum kleiner Suchwert) |
versendet_am_lte string, optional | Suche nach bestimmtem Versanddatum (Datum kleiner gleich Suchwert) |
adresse integer, optional | Suche nach bestimmter Adress-ID (genaue Übereinstimmung) |
projekt integer, optional | Suche nach bestimmter Projekt-ID (genaue Übereinstimmung) |
land string, optional | Suche nach bestimmtem Ländercode (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Trackingnummer anlegen ¶ POST /v1/trackingnummern
Trackingnummer anlegen
Eines der Felder internet
, auftrag
oder lieferschein
muss mindestens gefüllt sein!
Permission: create_tracking_number
Request
Properties (object)
tracking string, required | Trackingnummer |
---|---|
internet string, optional | Internetnummer aus Auftrag (Pflichtfeld, wenn Auftragsnummer und Lieferscheinnummer leer) |
auftrag string, optional | Auftragsnummer (Pflichtfeld, wenn Internetnummer und Lieferscheinnummer leer) |
lieferschein string, optional | Lieferscheinnummer (Pflichtfeld, wenn Auftragsnummer und Internetnummer leer) |
anzahlpakete integer, required | Anzahl Pakete |
gewicht string, required | Gewicht |
versendet_am string, required | Versanddatum im Format |
-
Example
{ "tracking": "11223344556677889900", "internet": "111001", "auftrag": "200001", "lieferschein": "300001", "anzahlpakete": 1, "gewicht": "2 kg", "versendet_am": "2019-07-25" }
Response
Request erfolgreich; Angelegte Trackingnummer wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 8, "tracking": "11223344556677889900", "adresse": 5, "internet": "111001", "auftrag": "200001", "lieferschein": "300001", "projekt": 1, "versandart": "versandunternehmen", "land": "DE", "gewicht": "2 kg", "abgeschlossen": 0, "versendet_am": "2019-07-25", "anzahlpakete": 1, "retoure": 0, "klaergrund": "" } }
Einzelne Trackingnummer abrufen ¶ GET /v1/trackingnummern/{id}
Einzelne Trackingnummer abrufen
Permission: view_tracking_number
Request
Path Variables
id integer, required | Trackingnummer-ID |
---|
Trackingnummer bearbeiten ¶ PUT /v1/trackingnummern/{id}
Trackingnummer bearbeiten (Felder siehe "Trackingnummer anlegen")
Permission: edit_tracking_number
Request
Path Variables
id integer, required | Trackingnummer-ID |
---|
-
Example
{ "tracking": "11223344556677889900", "versendet_am": "2019-06-22", "anzahlpakete": 2 }
Response
Request erfolgreich; Aktualisierter Trackingnummern-Eintrag wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 8, "tracking": "11223344556677889900", "adresse": 5, "internet": "111001", "auftrag": "200001", "lieferschein": "300001", "projekt": 1, "versandart": "versandunternehmen", "land": "DE", "gewicht": "2 kg", "abgeschlossen": 0, "versendet_am": "2019-06-22", "anzahlpakete": 2, "retoure": 0, "klaergrund": "" } }
/v1/versandarten
Versandarten anlegen, bearbeiten und abrufen
Versandarten abrufen ¶ GET /v1/versandarten
Versandarten abrufen
Permission: list_shipping_methods
Request
Query Parameters
bezeichnung string, optional | Versandart mit bestimmter Bezeichnung suchen (ungefähre Übereinstimmung) |
---|---|
bezeichnung_exakt string, optional | Versandart mit bestimmter Bezeichnung suchen (genaue Übereinstimmung) |
type string, optional | Versandart eines bestimmten Typs suchen (ungefähre Übereinstimmung) |
type_exakt string, optional | Versandart eines bestimmten Typs suchen (genaue Übereinstimmung) |
projekt integer, optional | Versandarten eines Projekts filtern (genaue Übereinstimmung) |
modul integer, optional | Versandarten mit bestimmtem Modul filtern (genaue Übereinstimmung) |
aktiv integer, optional | Aktive/Inaktive Versandarten filtern (1 = aktiv / 0 = inaktiv) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Versandart anlegen ¶ POST /v1/versandarten
Versandart anlegen
Permission: create_shipping_method
Request
Properties (object)
bezeichnung string, required | Bezeichnung der Versandart |
---|---|
type string, required | Versandart-Typ (einmaliger Wert) |
projekt integer, optional | Projekt |
aktiv integer, optional | Aktiv (1 = aktiv / 0 = inaktiv) |
-
Example
{ "type": "DHL", "bezeichnung": "DHL", "aktiv": 1, "projekt": 1 }
Response
Request erfolgreich; Angelegte Versandart wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "15", "type": "DHL", "bezeichnung": "DHL", "aktiv": "1", "projekt": "1", "modul": "", "paketmarke_drucker": "0", "export_drucker": "0", "ausprojekt": "1", "versandmail": "0", "geschaeftsbrief_vorlage": "0" } }
Einzelnen Versandart abrufen ¶ GET /v1/versandarten/{id}
Einzelnen Versandart abrufen
Permission: view_shipping_method
Request
Path Variables
id integer, required | Versandarten-ID |
---|
Query Parameters
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": "15", "type": "DHL", "bezeichnung": "DHL", "aktiv": "1", "projekt": "1", "modul": "", "paketmarke_drucker": "0", "export_drucker": "0", "ausprojekt": "1", "versandmail": "0", "geschaeftsbrief_vorlage": "0" } }
Versandart wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Versandart bearbeiten ¶ PUT /v1/versandarten/{id}
Versandart bearbeiten
Permission: edit_shipping_method
Request
Path Variables
id integer, required | Versandarten-ID |
---|
-
Example
{ "type": "DHL_Paket", "bezeichnung": "DHL Paket", "aktiv": "1", "projekt": "1" }
Response
Request erfolgreich; Aktualisierte Versandart wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "15", "type": "DHL_Paket", "bezeichnung": "DHL Paket", "aktiv": "1", "projekt": "1", "modul": "", "paketmarke_drucker": "0", "export_drucker": "0", "ausprojekt": "1", "versandmail": "0", "geschaeftsbrief_vorlage": "0" } }
/v1/wiedervorlagen
Wiedervorlagen anlegen, bearbeiten und abrufen
Wiedervorlagen abrufen ¶ GET /v1/wiedervorlagen
Wiedervorlagen abrufen
Permission: list_resubmissions
Request
Query Parameters
adresse integer, optional | Wiedervorlagen mit bestimmter Address-ID filtern (genaue Übereinstimmung) |
---|---|
adresse_mitarbeiter string, optional | Wiedervorlagen filtern die einem bestimmten Mitarbeiter (Address-ID) zugewiesen sind (genaue Übereinstimmung) |
bearbeiter string, optional | Wiedervorlagen filtern die einem bestimmten Bearbeiter (Address-ID) zugewiesen sind (genaue Übereinstimmung) |
projekt string, optional | Wiedervorlagen mit bestimmter Projekt-ID filtern (genaue Übereinstimmung) |
stages string, optional | Wiedervorlagen mit bestimmter Stage-ID filtern (genaue Übereinstimmung) |
id_ext integer, optional | Wiedervorlage mit externer ID filtern (genaue Übereinstimmung) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Wiedervorlage anlegen ¶ POST /v1/wiedervorlagen
Wiedervorlage anlegen
Permission: create_resubmission
Request
Properties (object)
datum_erinnerung date-only, required | Fälligkeits-Datum der Wiedervorlage (Format |
---|---|
zeit_erinnerung time-only, required | Fälligkeits-Uhrzeit der Wiedervorlage (Format |
datum_angelegt date-only, optional | Anlage-Datum der Wiedervorlage (Format |
zeit_angelegt time-only, optional | Anlage-Uhrzeit der Wiedervorlage (Format |
bezeichnung string, required | Kurzbeschreibung |
beschreibung string, optional | Langbeschreibung |
bearbeiter integer, optional | Address-ID des Bearbeiters |
adresse_mitarbeiter integer, optional | Address-ID des zuständigen Mitarbeiters |
datum_abschluss date-only, optional | Abschlussdatum der Wiedervorlage (Format |
-
Example
{ "bearbeiter": 4, "bezeichnung": "Blumengießen", "beschreibung": "Alle Blumen im Büro gießen", "datum_erinnerung": "2019-12-31", "zeit_erinnerung": "23:59:59", "datum_abschluss": "2020-01-06", "adresse_mitarbeiter": 1 }
Response
Request erfolgreich; Angelegte Wiedervorlage wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": 49, "adresse": 0, "projekt": 0, "bezeichnung": "Blumengießen", "beschreibung": "Alle Blumen im Büro gießen", "bearbeiter": 4, "adresse_mitarbeiter": 1, "datum_erinnerung": "2019-12-31", "zeit_erinnerung": "23:59:59", "datum_abschluss": "2020-01-06", "oeffentlich": 0, "abgeschlossen": 0, "prio": 0, "stages": 0, "color": "", "id_ext": null } }
Einzelne Wiedervorlage abrufen ¶ GET /v1/wiedervorlagen/{id}
Einzelne Wiedervorlage abrufen
Permission: view_resubmission
Request
Path Variables
id integer, required | Wiedervorlage-ID |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": 49, "adresse": 1, "projekt": 1, "bezeichnung": "Blumengießen", "beschreibung": "Alle Blumen im Büro gießen", "ergebnis": "", "betrag": "5.00", "erinnerung_per_mail": 0, "bearbeiter": 4, "adresse_mitarbeiter": 1, "datum_angelegt": null, "zeit_angelegt": null, "datum_erinnerung": "2019-12-31", "zeit_erinnerung": "23:59:00", "datum_abschluss": "2020-01-06", "oeffentlich": 0, "abgeschlossen": 1, "chance": 100, "prio": 0, "stages": 2, "color": "", "id_ext": null } }
Wiedervorlage wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Wiedervorlage bearbeiten ¶ PUT /v1/wiedervorlagen/{id}
Wiedervorlage bearbeiten
Permission: edit_resubmission
Request
Path Variables
id integer, required | Wiedervorlage-ID |
---|
-
Example
{ "bearbeiter": 1, "bezeichnung": "Blumengießen", "datum_erinnerung": "2019-12-31", "zeit_erinnerung": "23:59:59" }
Response
Request erfolgreich; Aktualisierte Wiedervorlage wird zurückgeliefert
-
Example
{ "data": { "id": 49, "adresse": 1, "projekt": 1, "bezeichnung": "Blumengießen", "beschreibung": "Alle Blumen im Büro gießen", "ergebnis": "", "betrag": "5.00", "erinnerung_per_mail": 0, "bearbeiter": 1, "adresse_mitarbeiter": 1, "datum_angelegt": null, "zeit_angelegt": null, "datum_erinnerung": "2019-12-31", "zeit_erinnerung": "23:59:00", "datum_abschluss": "2020-01-06", "oeffentlich": 0, "abgeschlossen": 1, "chance": 100, "prio": 0, "stages": 2, "color": "", "id_ext": null } }
/v1/zahlungsweisen
Zahlungsweisen anlegen, bearbeiten und abrufen
Zahlungsweisen abrufen ¶ GET /v1/zahlungsweisen
Zahlungsweisen abrufen
Permission: list_payment_methods
Request
Query Parameters
bezeichnung string, optional | Zahlungsweise mit bestimmter Bezeichnung suchen (ungefähre Übereinstimmung) |
---|---|
bezeichnung_exakt string, optional | Zahlungsweise mit bestimmter Bezeichnung suchen (genaue Übereinstimmung) |
type string, optional | Nach bestimmten Typ filtern (ungefähre Übereinstimmung) |
type_exakt string, optional | Nach bestimmten Typ filtern (genaue Übereinstimmung) |
projekt integer, optional | Zahlungsweise eines Projekts filtern (genaue Übereinstimmung) |
modul integer, optional | Nach bestimmtem Modul filtern (genaue Übereinstimmung) |
aktiv integer, optional | Aktive/Inaktive Zahlungsweise filtern (1 = aktiv / 0 = inaktiv) |
sort string, optional | Sortierung (Beispiel: Verfügbare Felder: |
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
page integer , default: 1 , maximum: 1000, optional | Seitenzahl |
items integer , default: 20 , maximum: 1000, optional | Anzahl der Ergebnisse pro Seite |
Zahlungsweisen anlegen ¶ POST /v1/zahlungsweisen
Zahlungsweisen anlegen
Permission: create_payment_method
Request
Properties (object)
bezeichnung string, required | Bezeichnung der Zahlungsweise |
---|---|
type string, required | Zahlungsweise-Typ (einmaliger Wert) |
verhalten string, optional | Verhalten; Zulässige Werte sind |
projekt integer, optional | Projekt |
aktiv integer, optional | Aktiv ( |
-
Example
{ "type": "vorkasse", "bezeichnung": "Vorkasse", "verhalten": "vorkasse", "aktiv": 1, "projekt": 1 }
Response
Request erfolgreich; Angelegte Zahlungsweise wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "10", "type": "vorkasse", "bezeichnung": "Vorkasse", "freitext": "", "aktiv": "1", "automatischbezahlt": "0", "automatischbezahltverbindlichkeit": "0", "projekt": "1", "vorkasse": "0", "verhalten": "vorkasse", "modul": "" } }
Einzelnen Zahlungsweise abrufen ¶ GET /v1/zahlungsweisen/{id}
Einzelnen Zahlungsweise abrufen
Permission: view_payment_method
Request
Path Variables
id integer, required | Zahlungsweisen-ID |
---|
Query Parameters
include string, optional | Unter-Resourcen in Resource einbinden (Beispiel: Verfügbare Includes: |
---|
Response
Request erfolgreich
-
Example
{ "data": { "id": "1", "type": "vorkasse", "bezeichnung": "Vorkasse", "freitext": "", "aktiv": "1", "automatischbezahlt": "0", "automatischbezahltverbindlichkeit": "0", "projekt": "0", "vorkasse": "0", "verhalten": "vorkasse", "modul": "" } }
Zahlungsweise wurde nicht gefunden
-
Example
{ "error": { "code": 7452, "http_code": 404, "message": "Resource not found", "href": "http://www.example.com/api/docs.html#error-7452" } }
Zahlungsweise bearbeiten ¶ PUT /v1/zahlungsweisen/{id}
Zahlungsweise bearbeiten
Permission: edit_payment_method
Request
Path Variables
id integer, required | Zahlungsweisen-ID |
---|
-
Example
{ "type": "lastschrift", "bezeichnung": "Lastschrift", "aktiv": "1", "projekt": "1", "verhalten": "lastschrift" }
Response
Request erfolgreich; Aktualisierte Zahlungsweise wird zurückgeliefert
-
Example
{ "success": true, "data": { "id": "10", "type": "lastschrift", "bezeichnung": "Lastschrift", "freitext": "", "aktiv": "1", "automatischbezahlt": "0", "automatischbezahltverbindlichkeit": "0", "projekt": "1", "vorkasse": "0", "verhalten": "lastschrift", "modul": "" } }