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.

Authorisierung

Der Zugriff eines API-Accounts kann über Berechtigungen granular eingeschränkt werden.

Berechtigungen bearbeiten

In Xentral unter Administration > Einstellungen > API-Account muss der gewünschte API-Account mit einem Klick auf den Stift bearbeitet werden. Dort ist eine Liste der vorhandenen Berechtigungen.

Alte API-Accounts

Alle API-Accounts, die vor der Einführung der Berechtigungen existierten, haben automatisch alle Berechtigungen erhalten.

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 LIKE
    • not_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 von page_current darf nicht über dem von page_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 monat, monatx, jahr, wochen, 30tage, 360tage oder einmalig)

dokumenttyp
string, optional

Suche nach Dokument-Typ (Gültige Werte rechnung oder auftrag)

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: sort=-bezeichnung,rabatt)

Verfügbare Felder: bezeichnung, rabatt, preis, menge, startdatum, enddatum, abgerechnet_bis, reihenfolge

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=artikel)

Verfügbare Includes: gruppe, artikel, adresse, projekt

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
Body
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 1, wird nur die Beschreibung von hier ohne Artikelbeschreibung aus den Stammdaten angezeigt. (Default 0)

startdatum
date-only, optional

Erstes Startdatum (Format YYYY-MM-DD) (Default = Aktuelles Datum)

enddatum
date-only, optional

Enddatum (Format YYYY-MM-DD) (Default 0000-00-00)

preisart
string, optional

Zulässige Werte monat, monatx, jahr, wochen, einmalig, 30tage, 360tage

(Default monat)

zahlzyklus
integer, optional

abhängig von preisart (Default 1)

dokumenttyp
string, optional

Automatisch anlegen als Auftrag oder Rechnung. Zulässige Werte rechnung, auftrag (Default rechnung)

preis
number, optional

Netto Artikelpreis (Default 0.00)

menge
number, optional

Artikelmenge (Default 0)

rabatt
number, optional

Rabatt in Prozent (Default 0.00)

waehrung
string, optional

Währung; dreistelliger ISO-Code (Default EUR)

gruppe
integer, optional

Abo-Gruppen-ID (Default 0)

adresse
integer, optional

Adressen-ID (Default 0)

Wird überschrieben wenn Feld kundennummer gefüllt ist.

kundennummer
string, optional

Kundennummer (kein Default)

Wenn gefüllt, wird Adress-ID ermittelt und in Feld adresse geschrieben.

projekt
integer, optional

Projekt-ID (Default 0)

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 1)

  • 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

Body
  • 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

Body
  • 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

Body
  • 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

Body
  • Example
    {
        "success": true,
        "data": {
            "id": 1
        }
    }
    

id wurde nicht gefunden

Body
  • 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: sort=-bezeichnung,rabatt)

Verfügbare Felder: bezeichnung, rabatt, reihenfolge

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=projekt)

Verfügbare Includes: projekt

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
Body
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

Body
  • 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

Body
  • Example
    {
        "bezeichnung": "Abo-Gruppe Verbrauchsmaterial",
        "rabatt": 3.00
    }
    
Response

Request erfolgreich; Aktualisierte Abo-Gruppe wird zurückgeliefert

Body
  • 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
Body
  • 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
Body
  • 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

Body
  • 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

Body
  • 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

Body
  • 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

Body
  • Example
    {
      "name": "Schrauben Meier GmbH",
      "strasse": "Dorfstrasse 123",
      "ort": "Musterdorf",
      "plz": "12345",
      "telefon": "0987654321"
    }
    
Response

Request erfolgreich; Aktualisierte Adresse wird zurückgeliefert

Body
  • 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 kunde oder lieferant)

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: freifeld3=42)

freifeld[1-10]_equals
string, optional

Suche nach bestimmtem Wert im Freifeld1 bis Freifeld10 (genaue Übereinstimmung)

(Beispiel: freifeld3_equals=42)

sort
string, optional

Sortierung (Beispiel: sort=name,-kundennummer)

Verfügbare Felder: name, kundennummer, lieferantennummer, mitarbeiternummer

page
integer , default: 1, maximum: 1000, optional

Seitenzahl

items
integer , default: 20, maximum: 1000, optional

Anzahl der Ergebnisse pro Seite

Response
Body
  • 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

Body
  • 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

Body
  • 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: herr, frau, firma

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: sort=type,-bezeichnung)

Verfügbare Felder: bezeichnung, type, projekt, modul, aktiv

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=projekt)

Verfügbare Includes: projekt

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
Body
Properties (object)
bezeichnung
string, required

Bezeichnung des Adresstyps

type
string, required

Adresstyp; Mögliche Werte herr, frau, firma

projekt
integer, optional

Projekt

netto
integer, optional

Anzeige Belege in Netto (1 = netto / 0 = brutto)

aktiv
integer, optional

Aktiv (1 = aktiv / 0 = inaktiv)

  • Example
    {
        "type": "herr",
        "bezeichnung": "Gentleman",
        "aktiv": 1,
        "projekt": 1
    }
    
Response

Request erfolgreich; Angelegter Adresstyp wird zurückgeliefert

Body
  • 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: include=projekt)

Verfügbare Includes: projekt

Response

Request erfolgreich

Body
  • Example
    {
        "data": {
            "id": "1",
            "type": "firma",
            "bezeichnung": "Firma",
            "projekt": "0",
            "netto": "1",
            "aktiv": "1"
        }
    }
    

Adresstyp wurde nicht gefunden

Body
  • 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

Body
  • Example
    {
        "type": "herr",
        "bezeichnung": "Mr",
        "aktiv": "1",
        "projekt": "1"
    }
    
Response

Request erfolgreich; Aktualisierter Adresstyp wird zurückgeliefert

Body
  • 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: produkt, gebuehr

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: sort=typ,-nummer)

Verfügbare Felder: name_de, name_en, nummer, typ

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=projekt,verkaufpreise)

Verfügbare Includes: projekt, verkaufspreise, dateien, lagerbestand

Lagerbestand

Beispiel – Lagerartikel

"lagerbestand": {
    "lagernd": 12,
    "reserviert": 0,
    "offene_auftraege": 33,
    "offene_bestellungen": 1,
    "berechneter_bestand": -21,
    "verkaufbar": 0
}

Beispiel – Kein Lagerartikel

"lagerbestand": []

Erklärung

  • Lagernd: Lagernde Menge über alle Lager, außer Sperrlager;
  • Reserviert: Reservierte Menge
  • Offene Aufträge: Menge aus offenen Aufträgen; Es werden nur Aufträge mit dem Status FREIGEGEBEN berücksichtigt; Aufträge mit Status ANGELEGT werden nicht berücksichtigt;
  • Offene Bestellungen: Es werden nur Bestellungen mit dem Status FREIGEGEBEN berücksichtigt; Bestellungen mit Status ANGELEGT werden nicht berücksichtigt;
  • Berechneter Bestand: Lagernder Bestand minus Offene Aufträge
  • Verkaufbar: Wie Berechneter Bestand; wird nur nicht kleiner als 0
page
integer , default: 1, maximum: 1000, optional

Seitenzahl

items
integer , default: 20, maximum: 1000, optional

Anzahl der Ergebnisse pro Seite

Response
Body
  • 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

Body
  • 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

Body
  • 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: sort=parent,-bezeichnung)

Verfügbare Felder: bezeichnung, parent, projekt

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
Body
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

Body
  • 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

Body
  • 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

Body
  • 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

Body
  • Example
    {
        "bezeichnung": "Schwimmbagger"
    }
    
Response

Request erfolgreich; Aktualisierte Artikelkategorie wird zurückgeliefert

Body
  • 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: sort=artikel,-name)

Verfügbare Felder: artikel, name, typ, projekt, geloescht

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
Body
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

Body
  • 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

Body
  • Example
    {
        "data": {
            "id": 19,
            "artikel": 0,
            "name": "Farbe",
            "typ": "einzeilig",
            "projekt": 0,
            "geloescht": "0"
        }
    }
    

Eigenschaft wurde nicht gefunden

Body
  • 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

Body
  • Example
    {
        "name": "Material"
    }
    
Response

Request erfolgreich; Aktualisierte Eigenschaft wird zurückgeliefert

Body
  • 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

Body
  • Example
    {
        "success": true,
        "data": {
            "id": 19
        }
    }
    

Eigenschaft wurde nicht gefunden

Body
  • 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: sort=artikel,-wert)

Verfügbare Felder: artikel, wert

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
Body
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

Body
  • 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

Body
  • Example
    {
        "data": {
            "id": 203,
            "artikel": 1,
            "artikeleigenschaften": 19,
            "wert": "Gelb"
        }
    }
    

Eigenschaftenwert wurde nicht gefunden

Body
  • 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

Body
  • Example
    {
        "wert": "Holz"
    }
    
Response

Request erfolgreich; Aktualisierter Eigenschaftenwert wird zurückgeliefert

Body
  • 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

Body
  • Example
    {
        "success": true,
        "data": {
            "id": 203
        }
    }
    

Eigenschaftenwert wurde nicht gefunden

Body
  • 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: angelegt, abgelehnt, beauftragt, bestellt, freigegeben, versendet, storniert

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: sort=belegnr)

Verfügbare Felder: belegnr, datum

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=positionen)

Verfügbare Includes: positionen, protokoll

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

Body
  • 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

Body
  • 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: angelegt, bestellt, freigegeben, versendet, abgeschlossen, storniert,

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: sort=belegnr)

Verfügbare Felder: belegnr, datum

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=positionen)

Verfügbare Includes: positionen, protokoll

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

Body
  • 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

Body
  • 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: angelegt, freigegeben, abgeschlossen, versendet, storniert

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: sort=belegnr)

Verfügbare Felder: belegnr, datum

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=positionen)

Verfügbare Includes: positionen, protokoll

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

Body
  • 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

Body
  • 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: angelegt, freigegeben, versendet, storniert

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: sort=belegnr)

Verfügbare Felder: belegnr, datum

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=positionen)

Verfügbare Includes: positionen, protokoll

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

Body
  • 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

Body
  • 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

Body
  • Example
    {
        "success": true,
        "data": {
            "id": 18
        }
    }
    

Rechnung wurde nicht gefunden

Body
  • 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: angelegt, freigegeben, versendet, storniert

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: sort=belegnr)

Verfügbare Felder: belegnr, datum

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=positionen)

Verfügbare Includes: positionen, protokoll

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

Body
  • 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

Body
  • 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: brief, email, telefon, notiz

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: include=projekt)

Verfügbare Includes: projekt, adresse_to, adresse_from

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
Body
Properties (object)
typ
string, required

Mögliche Werte sind email, brief, telefon, notiz

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

Body
  • 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

Body
  • 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

Body
  • 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

Body
  • 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

Body
Properties (object)
typ
string, required

Mögliche Werte sind email, brief, telefon, notiz

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

Body
  • 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

Body
  • 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

Body
  • 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

Body
  • Example
    {
        "success": true,
        "data": {
            "id": 14
        }
    }
    

CRM-Dokument wurde nicht gefunden

Body
  • 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: sort=dateiname)

Verfügbare Felder: dateiname, datum, titel

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=stichwoerter)

Verfügbare Includes: stichwoerter

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
Body
Properties (object)
file_content
file, required

Datei-Inhalt (Raw-Daten)

titel
string, required

Datei-Titel

dateiname
string, required

Dateiname (ohne Verzeichnis; Beispiel foo.jpg)

beschreibung
string, optional

Beschreibungstext

Response

Request erfolgreich; Angelegte Datei wird zurückgeliefert

Body
  • 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

Body
  • 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

Body
  • 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

Request
Path Variables
id
integer, required

Datei-ID

Response

Request erfolgreich

Der Content-Type ist abhängig vom Mime-Type der Datei die gesendet wird.

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

Body
  • 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 YYYY-MM-DD)

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: sort=dateiname)

Verfügbare Felder: dateiname, datum, titel

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=stichwoerter)

Verfügbare Includes: stichwoerter, metadata

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
Body
Properties (object)
file_content
file, required

Datei-Inhalt

titel
string, required

Datei-Titel

dateiname
string, required

Dateiname (ohne Verzeichnis; Beispiel beleg.pdf)

beschreibung
string, optional

Datei-Beschreibungstext

meta
array, optional

Meta-Daten

meta.invoice_number
string, optional

Rechnungsnummer

meta.invoice_date
string, optional

Rechnungsdatum (Format YYYY-MM-DD)

meta.invoice_amount
string, optional

Rechnungsbetrag brutto (Beispiel 12345.67)

meta.invoice_tax
string, optional

Mehrwertsteuerbetrag der Rechnung (Beispiel 12345.67)

meta.invoice_currency
string, optional

Währungscode der Rechnung (Beispiel EUR)

Properties (object)
file_content
string, required

Datei-Inhalt (Raw-Daten)

titel
string, required

Datei-Titel

dateiname
string, required

Dateiname (ohne Verzeichnis; Beispiel beleg.pdf)

beschreibung
string, optional

Datei-Beschreibungstext

meta
array, optional

Meta-Daten

meta.invoice_number
string, optional

Rechnungsnummer

meta.invoice_date
string, optional

Rechnungsdatum (Format YYYY-MM-DD)

meta.invoice_amount
string, optional

Rechnungsbetrag brutto (Beispiel 12345.67)

meta.invoice_tax
string, optional

Mehrwertsteuerbetrag der Rechnung (Beispiel 12345.67)

meta.invoice_currency
string, optional

Währungscode der Rechnung (Beispiel EUR)

Response

Request erfolgreich; Angelegte Datei wird zurückgeliefert

Body
  • 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

Body
  • 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

Body
  • 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: gruppe, preisgruppe, verband, regionalgruppe, kategorie, vertreter

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: sort=projekt,-bezeichnung)

Verfügbare Felder: name, art, kennziffer, projekt, kategorie, aktiv

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=projekt)

Verfügbare Includes: projekt

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
Body
Properties (object)
name
string, required

Bezeichnung der Gruppe

art
string, required

Mögliche Werte sind gruppe, preisgruppe, verband, regionalgruppe, kategorie , vertreter

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

Body
  • 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

Body
  • Example
    {
        "data": {
            "id": "1",
            "name": "Vertriebsleiter",
            "art": "vertreter",
            "kennziffer": "VETRL",
            "internebemerkung": "",
            "projekt": "0",
            "kategorie": "0",
            "aktiv": "1"
        }
    }
    

Gruppe wurde nicht gefunden

Body
  • 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

Body
  • Example
    {
        "name": "Support (inaktiv)",
        "art": "gruppe",
        "kennziffer": "SUPPORT",
        "aktiv": "0"
    }
    
Response

Request erfolgreich; Aktualisierte Gruppe wird zurückgeliefert

Body
  • 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: sort=iso,-bezeichnung)

Verfügbare Felder: bezeichnung, bezeichnung_de, bezeichnung_en, iso , eu

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
Body
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

Body
  • 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

Body
  • Example
    {
        "data": {
            "id": "43",
            "iso": "DE",
            "bezeichnung_de": "Deutschland",
            "bezeichnung_en": "Germany",
            "eu": "1",
            "id_ext": null
        }
    }
    

Land wurde nicht gefunden

Body
  • 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

Body
  • Example
    {
      "bezeichnung_de": "Togo",
      "bezeichnung_en": "Republique Togolaise",
      "iso": "TX",
      "eu": 0
    }
    
Response

Request erfolgreich; Aktualisiertes Land wird zurückgeliefert

Body
  • 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: sort=artikelnummer,-menge)

Verfügbare Felder: lagerplatzbezeichnung, artikelnummer, charge, datum , menge

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=artikel)

Verfügbare Includes: artikel, lagerplatz

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.

Body
  • 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: sort=artikelnummer,-menge)

Verfügbare Felder: lagerplatzbezeichnung, artikelnummer, charge, mhddatum, datum , menge

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=artikel)

Verfügbare Includes: artikel, lagerplatz

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.

Body
  • 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: sort=plz,-land)

Verfügbare Felder: typ, name, plz, land

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
Body
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 type.

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?

(0 = Keine Standard-Lieferadresse / 1 = Ist Standard-Lieferadresse)

ust_befreit
integer, optional

Besteuerung

(0 = Inland / 1 = EU-Lieferung / 2 = Export / 3 = Steuerfrei Inland)

  • 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

Body
  • 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

Body
  • 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

Body
  • 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

Body
  • Example
    {
        "typ": "firma",
        "name": "Mustermann Gmbh"
    }
    
Response

Request erfolgreich; Aktualisierte Lieferadresse wird zurückgeliefert

Body
  • 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

Body
  • 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.

Body
  • Example
    {
        "error": {
          "http_code": 403,
          "message": "Access denied"
        }
    }
    

Bericht wurde nicht gefunden

Body
  • 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.

Body
  • 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: sort=satz,-bezeichnung)

Verfügbare Felder: bezeichnung, satz, aktiv

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
Body
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

Body
  • 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

Body
  • Example
    {
        "data": {
            "id": "1",
            "bezeichnung": "Steuersatz DE normal",
            "country_code": "DE",
            "satz": "19.00",
            "aktiv": "1"
        }
    }
    

Steuersatz wurde nicht gefunden

Body
  • 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

Body
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

Body
  • 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: sort=-versendet_am,lieferschein)

Verfügbare Felder: tracking, auftrag, lieferschein, versandart, versendet_am , abgeschlossen

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=projekt)

Verfügbare Includes: projekt

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
Body
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 YYYY-MM-DD

  • 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

Body
  • 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

Body
  • Example
    {
        "tracking": "11223344556677889900",
        "versendet_am": "2019-06-22",
        "anzahlpakete": 2
    }
    
Response

Request erfolgreich; Aktualisierter Trackingnummern-Eintrag wird zurückgeliefert

Body
  • 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: sort=type,-bezeichnung)

Verfügbare Felder: bezeichnung, type, projekt, modul, aktiv

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=projekt)

Verfügbare Includes: projekt

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
Body
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

Body
  • 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: include=projekt)

Verfügbare Includes: projekt

Response

Request erfolgreich

Body
  • 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

Body
  • 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

Body
  • Example
    {
        "type": "DHL_Paket",
        "bezeichnung": "DHL Paket",
        "aktiv": "1",
        "projekt": "1"
    }
    
Response

Request erfolgreich; Aktualisierte Versandart wird zurückgeliefert

Body
  • 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: sort=iso,-bezeichnung)

Verfügbare Felder: bezeichnung, datum_angelegt, zeit_angelegt, datum_erinnerung , zeit_erinnerung, stages, prio

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
Body
Properties (object)
datum_erinnerung
date-only, required

Fälligkeits-Datum der Wiedervorlage (Format 2019-12-31)

zeit_erinnerung
time-only, required

Fälligkeits-Uhrzeit der Wiedervorlage (Format 23:59:59)

datum_angelegt
date-only, optional

Anlage-Datum der Wiedervorlage (Format 2019-12-31)

zeit_angelegt
time-only, optional

Anlage-Uhrzeit der Wiedervorlage (Format 23:59:59)

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 2019-12-31)

  • 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

Body
  • 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

Body
  • 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

Body
  • 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

Body
  • Example
    {
        "bearbeiter": 1,
        "bezeichnung": "Blumengießen",
        "datum_erinnerung": "2019-12-31",
        "zeit_erinnerung": "23:59:59"
    }
    
Response

Request erfolgreich; Aktualisierte Wiedervorlage wird zurückgeliefert

Body
  • 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: sort=type,-bezeichnung)

Verfügbare Felder: bezeichnung, type, projekt, modul, aktiv

include
string, optional

Unter-Resourcen in Resource einbinden (Beispiel: include=projekt)

Verfügbare Includes: projekt

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
Body
Properties (object)
bezeichnung
string, required

Bezeichnung der Zahlungsweise

type
string, required

Zahlungsweise-Typ (einmaliger Wert)

verhalten
string, optional

Verhalten; Zulässige Werte sind vorkasse, rechnung, lastschrift

projekt
integer, optional

Projekt

aktiv
integer, optional

Aktiv (1 = aktiv / 0 = inaktiv)

  • Example
    {
        "type": "vorkasse",
        "bezeichnung": "Vorkasse",
        "verhalten": "vorkasse",
        "aktiv": 1,
        "projekt": 1
    }
    
Response

Request erfolgreich; Angelegte Zahlungsweise wird zurückgeliefert

Body
  • 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: include=projekt)

Verfügbare Includes: projekt

Response

Request erfolgreich

Body
  • 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

Body
  • 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

Body
  • Example
    {
        "type": "lastschrift",
        "bezeichnung": "Lastschrift",
        "aktiv": "1",
        "projekt": "1",
        "verhalten": "lastschrift"
    }
    
Response

Request erfolgreich; Aktualisierte Zahlungsweise wird zurückgeliefert

Body
  • Example
    {
        "success": true,
        "data": {
            "id": "10",
            "type": "lastschrift",
            "bezeichnung": "Lastschrift",
            "freitext": "",
            "aktiv": "1",
            "automatischbezahlt": "0",
            "automatischbezahltverbindlichkeit": "0",
            "projekt": "1",
            "vorkasse": "0",
            "verhalten": "lastschrift",
            "modul": ""
        }
    }
    

Type Reference