Skip to main content

Schnittstellen für Mittwald-Kunden (1.4.1)

Download OpenAPI specification:Download

Für die öffentliche API, alle Bestandteile und diese Dokumentation bieten wir keinen Support. Wir behalten uns vor, Änderungen jederzeit und ohne Ankündigung oder Dokumentation durchzuführen.

Authentifizierung

Mit Nutzername & Passwort

Zur Authentifizierung wird ein zuvor ausgestelltes API-Token benötigt. Bei Requests kann dieses Token innerhalb eines Authorization-Headers übergeben werden:

GET /v1/customers/123456 HTTP/1.1
Host: api.mittwald.de
Authorization: Bearer {TOKEN-HIER-EINFÜGEN}

Alternativ dazu kann das Token auch in Form des Query-Parameters access_token übergeben werden: GET /v1/customers/123456?access_token={TOKEN-HIER-EINFÜGEN} HTTP/1.1 Host: api.mittwald.de

Um ein Token zu beziehen, kann der /authenticate-Endpunkt genutzt werden. Hier erfolgt eine Authentifzierung über die Zugangsdaten des Mittwald-Kundencenters. POST /v1/authenticate HTTP/1.1 Host: api.mittwald.de Content-Type: application/json Accept: application/jwt

{
    "username": "r1234",
    "password": "{PASSWORT-HIER-EINFÜGEN}"
}

Rückgabewert dieses Aufrufs ist ein API-Token. Dieses hat eine begrenzte Gültigkeitsdauer.

Wichtig: Client-Applikationen sollten das API-Token für seine Gültigkeitsdauer cachen, und erst anschließend ein neues Token über die API anfordern.

Mit Access-Token

Für Anwendungen, die dauerhaft Zugriff auf die Mittwald-API benötigen, wird nicht empfohlen, Nutzername und Passwort dauerhaft in der jeweiligen Anwendung zu speichern. Stattdessen empfehlen wir den Einsatz eines Access Tokens, welches nach einem (initialen) Login mit Nutzername und Passwort erstellt und im Anschluss anstelle dessen genutzt werden kann.

Hierzu wird zunächst ein reguläres API-Token benötigt, das per Nutzername und Passwort bezogen werden kann. Weder Nutzername+Passwort noch das damit bezogene API-Token müssen dauerhaft gespeichert werden. Sie dienen lediglich dazu, ein Access Token zu erstellen, welches im Anschluss dauerhaft in der Applikation gespeichert werden kann:

POST /v1/authentication/tokens HTTP/1.1
Host: api.mittwald.de
Content-Type: application/json

{  "description": "Meine Anwendung"
}

In der Antwort auf obige Anfrage ist das eigentliche Access Token und dessen ID enthalten (mit Beispiel-Daten):

HTTP/1.1 201 Created
Content-Type: application/json

{  "uuid": "2a91ce52-2058-404b-9959-ac7d2fbbbfbc",
  "token": "MW_aEQyz5j9YmTaamTq2N9X3d2sBDACLUoz",
  "crdate": "2021-08-23T14:06:17.580Z",
  "description": "Meine Anwendung"
}

uuid und token dieser Antwort können bei nachfolgenden Authentifzierungs-Vorgängen als Nutzername und Passwort genutzt werden.

Rate Limiting

Zur Sicherstellung der Systemstabilität sind einige API-Endpunkte in der Anzahl der durchführbaren Anfragen beschränkt. Die Limitierung bezieht sich dabei stets auf ein Zeitfenster von 15 Minuten.

Bei auf diese Weise zugriffsbeschränkten API-Endpunkten enthalten die HTTP-Antworten stets einen X-RateLimit-Header, welcher die maximale Anzahl der ausführbaren Anfragen enthält. Außerdem enthält jede Antwort einen X-RateLimit-Remaining-Header, welcher die aktuell noch verfügbaren Anfragen enthält: HTTP/1.1 200 OK Content-Type: application/json;charset=utf8 Content-Length: 1234 X-RateLimit: 1000 X-RateLimit-Remaining: 712

Caching

Einige Anfragen an die API können zwecks besserer Performance aus einem serverseitigen Cache beantwortet werden. Wurde eine Anfrage aus dem Cache beantwortet, enthält die Antwort einen X-Cache: HIT-Header.

Der Cache einer Ressource wird dann geleert, wenn ein POST-, PUT- oder DELETE-Request an dieselbe URI gesendet wird, oder bei einem GET-Request ein Cache-Control: no-cache-Header gesendet wird.

Authentifizierung

Rate Limiting

Caching

Für die öffentliche API, alle Bestandteile und diese Dokumentation bieten wir keinen Support. Wir behalten uns vor, Änderungen jederzeit und ohne Ankündigung oder Dokumentation durchzuführen.

Authentifizierung

Mit Nutzername & Passwort

Zur Authentifizierung wird ein zuvor ausgestelltes API-Token benötigt. Bei Requests kann dieses Token innerhalb eines Authorization-Headers übergeben werden:

GET /v1/customers/123456 HTTP/1.1
Host: api.mittwald.de
Authorization: Bearer {TOKEN-HIER-EINFÜGEN}

Alternativ dazu kann das Token auch in Form des Query-Parameters access_token übergeben werden: GET /v1/customers/123456?access_token={TOKEN-HIER-EINFÜGEN} HTTP/1.1 Host: api.mittwald.de

Um ein Token zu beziehen, kann der /authenticate-Endpunkt genutzt werden. Hier erfolgt eine Authentifzierung über die Zugangsdaten des Mittwald-Kundencenters. POST /v1/authenticate HTTP/1.1 Host: api.mittwald.de Content-Type: application/json Accept: application/jwt

{
    "username": "r1234",
    "password": "{PASSWORT-HIER-EINFÜGEN}"
}

Rückgabewert dieses Aufrufs ist ein API-Token. Dieses hat eine begrenzte Gültigkeitsdauer.

Wichtig: Client-Applikationen sollten das API-Token für seine Gültigkeitsdauer cachen, und erst anschließend ein neues Token über die API anfordern.

Mit Access-Token

Für Anwendungen, die dauerhaft Zugriff auf die Mittwald-API benötigen, wird nicht empfohlen, Nutzername und Passwort dauerhaft in der jeweiligen Anwendung zu speichern. Stattdessen empfehlen wir den Einsatz eines Access Tokens, welches nach einem (initialen) Login mit Nutzername und Passwort erstellt und im Anschluss anstelle dessen genutzt werden kann.

Hierzu wird zunächst ein reguläres API-Token benötigt, das per Nutzername und Passwort bezogen werden kann. Weder Nutzername+Passwort noch das damit bezogene API-Token müssen dauerhaft gespeichert werden. Sie dienen lediglich dazu, ein Access Token zu erstellen, welches im Anschluss dauerhaft in der Applikation gespeichert werden kann:

POST /v1/authentication/tokens HTTP/1.1
Host: api.mittwald.de
Content-Type: application/json

{  "description": "Meine Anwendung"
}

In der Antwort auf obige Anfrage ist das eigentliche Access Token und dessen ID enthalten (mit Beispiel-Daten):

HTTP/1.1 201 Created
Content-Type: application/json

{  "uuid": "2a91ce52-2058-404b-9959-ac7d2fbbbfbc",
  "token": "MW_aEQyz5j9YmTaamTq2N9X3d2sBDACLUoz",
  "crdate": "2021-08-23T14:06:17.580Z",
  "description": "Meine Anwendung"
}

uuid und token dieser Antwort können bei nachfolgenden Authentifzierungs-Vorgängen als Nutzername und Passwort genutzt werden.

Rate Limiting

Zur Sicherstellung der Systemstabilität sind einige API-Endpunkte in der Anzahl der durchführbaren Anfragen beschränkt. Die Limitierung bezieht sich dabei stets auf ein Zeitfenster von 15 Minuten.

Bei auf diese Weise zugriffsbeschränkten API-Endpunkten enthalten die HTTP-Antworten stets einen X-RateLimit-Header, welcher die maximale Anzahl der ausführbaren Anfragen enthält. Außerdem enthält jede Antwort einen X-RateLimit-Remaining-Header, welcher die aktuell noch verfügbaren Anfragen enthält: HTTP/1.1 200 OK Content-Type: application/json;charset=utf8 Content-Length: 1234 X-RateLimit: 1000 X-RateLimit-Remaining: 712

Caching

Einige Anfragen an die API können zwecks besserer Performance aus einem serverseitigen Cache beantwortet werden. Wurde eine Anfrage aus dem Cache beantwortet, enthält die Antwort einen X-Cache: HIT-Header.

Der Cache einer Ressource wird dann geleert, wenn ein POST-, PUT- oder DELETE-Request an dieselbe URI gesendet wird, oder bei einem GET-Request ein Cache-Control: no-cache-Header gesendet wird.

Authentifizierung

Authentifizierung

Auslesen von erstellten Application-Tokens

Diese Operation liefert alle bisher erstellten Application-Tokens aus.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Hinterlegen von neuen Application-Tokens

Diese Operation ermöglicht es neue Application-Tokens zu hinterlegen.

Request Body schema: application/json
required

Das Token sowie eine optionale Beschreibung

description
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
  • "crdate": "2019-08-24T14:15:22Z",
  • "token": "pa$$word",
  • "description": "string"
}

get new access token

get new access token

Responses

Response samples

Content type
application/json
{
  • "token": "string"
}

Löschen von Application-Tokens

Diese Operation ermöglicht es Application-Tokens zu löschen.

path Parameters
uuid
required
string

Die UUID des Tokens

Responses

User-Name des aktuellen Logins

Ließt aus dem JWT den aktuellen User-Namen aus

Responses

Response samples

Content type
application/json
{
  • "name": "string",
  • "type": "CUS",
  • "createdAt": 0
}

Verify an existing authentication token

This resource can be used to verify an existing JWT. This resource is just for convenience; clients can also use the /key resource to obtain this service's public key and verify the token's signature theirselves.

Request Body schema: application/json
required

The JWT to verify

string (EncodedJwt)

An encoded and signed JWT

Responses

Request samples

Content type
application/json
"string"

Accounts

Webhosting-Accounts

Account auslesen

Diese Operation liest genaue Daten eines einzelnen Accounts aus

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

Responses

Response samples

Content type
application/json
{
  • "uid": 0,
  • "customerNumber": 0,
  • "name": "string",
  • "activateShell": true,
  • "description": "string",
  • "disabled": true,
  • "ipAddresses": [
    ],
  • "status": "creating"
}

Account bearbeiten

Nehme Änderungen an dem Account vor. Ändere die Beschreibung oder aktiviere/deaktiviere diesen.

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

Request Body schema: application/json
name
string >= 4 characters

Neue Account Beschreibung

active
boolean

Account aktivieren oder deaktivieren. Geht nur bei Reseller Unteraccounts.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true
}

Response samples

Content type
application/json
{
  • "msg": "string"
}

Softwareinstallationen auslesen

Diese Operation liest alle Softwareinstallationen eines einzelnen Accounts aus

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

query Parameters
installPath
string

Filtert Software-Installationen nach Installationspfad (z.B. &installPath=%2Fhtml%2Ftypo3)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

PHP Updaten

PHP Version vom übergebenen Account auf neue Zielversion updaten

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

Request Body schema: application/json
required

Request Body des Update-Prozesses

version
required
string

Major & Minor Versions-Nummer, z.B. "8.1"

Responses

Request samples

Content type
application/json
{
  • "version": "string"
}

Response samples

Content type
application/json
{
  • "msg": "string"
}

Accounts eines Kunden

Diese Ressource enthält eine Sammlung aller Accounts eines Kunden.

path Parameters
customerNumber
required
integer

Kundennummer

query Parameters
advised
boolean
Default: false

Dieser Parameter steuert, ob auch Accounts zurückgeliefert werden sollen, für die eine Verwaltungsfreigabe besteht, aber nicht zur Kundennummer {customerNumber} gehören.'

owned
boolean
Default: true

Dieser Parameter steuert, ob Accounts zurückgeliefert werden sollen, die direkt der Kundennummer {customerNumber} gehören. Dieser Parameter hat standardmäßig den Wert true; über den Wert false können in Kombination mit dem Parameter advised ausschließlich Accounts abgefragt werden, für die eine Verwaltungsfreigabe besteht.

fields
string

Felder die beim Ergebnis inkludiert werden

Responses

Response samples

Content type
application/json
[
  • {
    }
]

getAccountVisitorStatistics

Liefert Statistiken zu Besucherzahlen eines Projekts

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "last_information_at": 0,
  • "limit": {
    },
  • "name": "string",
  • "skip_information": true,
  • "throttling": {
    },
  • "grace_period": { },
  • "visitor_information": {
    }
}

getAccountStatistics

Liefert Statistiken zur Speicherplatzauslastung eines Projekts

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

Responses

Response samples

Content type
application/json
{
  • "accounts": [
    ],
  • "meta": {
    }
}

Reseller

Reseller-Tarife

Reseller auslesen

Diese Operation liest genaue Daten eines einzelnen Resellers aus

path Parameters
resellerIdentifier
required
string

Name oder ID eines Resellers

Responses

Response samples

Content type
application/json
{
  • "uid": 0,
  • "name": "string",
  • "customerNumber": 0
}

Database

Datenbanken

Datenbanktypen

Datenbanktypen auslesen

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Domains

Domaindaten

Domains eines Accounts auslesen

Diese Operation liest die Domains eines einzelnen Accounts aus

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

query Parameters
limit
integer
Default: 20

Anzahl der zurückzuliefernden Domains.

offset
integer
Default: 0

Offset für die Limitierung der Suchergebnisse

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Domain registrieren/Transfer einleiten

Diese Operation kann genutzt werden, um für den gegebenen Account eine neue Domain zu registrieren oder einen Virtual Host Eintrag zu erstellen. Falls die Domain bereits vergeben ist, müssen ein Auth-Code und unter Umständen ein Authentifizierungsverfahren mitangegeben werden, um einen Domain-Transfer einzuleiten.

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

Request Body schema: application/json
required

Daten für eine Domain-Registrierung

object (Handles)
sld
required
string
tld
required
string
object (DomainNameTransfer)
external
boolean

Gesetzt, wenn es sich um einen Virtual Host Eintrag handeln soll

target
string

Bei Virtual Host Einträgen kann direkt das Zielverzeichnis mit angegeben werden

Responses

Request samples

Content type
application/json
{
  • "handles": {
    },
  • "sld": "string",
  • "tld": "string",
  • "domainNameTransfer": {
    },
  • "external": true,
  • "target": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Domain Proxies eines Accounts

Zeige alle aktiven Domain Proxies eines Accounts an

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Domain löschen/kündigen

Löscht bzw. kündigt eine bestehende Domain

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

domainIdentifier
required
string

Vollständiger Name der Domain

Responses

Auth-Code einer Domain auslesen

Liefert den Auth-Code einer Domain

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

domainIdentifier
required
string

Vollständiger Name der Domain

Responses

Response samples

Content type
application/json
{
  • "auth-code": "string"
}

Subdomains eines Accounts auslesen

Liefert alle verfügbaren Subdomains eines Accounts

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

domainIdentifier
required
string

Vollständiger Name der Domain

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Subdomain erstellen

Erstellt eine neue Subdomain

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

domainIdentifier
required
string

Vollständiger Name der Domain

Request Body schema: application/json
required

Daten der neuen Subdomain

Array
name
required
string
target
string

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
[
  • {
    }
]

Subdomain löschen

Löscht eine bestehende Subdomain

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

domainIdentifier
required
string

Vollständiger Name der Domain

Responses

Domainverfügbarkeit prüfen

Prüft ob eine Domain verfügbar ist

path Parameters
domainIdentifier
required
string

Domain

Responses

Öffentliche Toplevel-Domains auslesen

Liefert alle möglichen öffentlichen Topleveldomains aus

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Toplevel-Domains auslesen

Liefert alle möglichen Topleveldomains aus

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Toplevel-Domain auslesen

Liefert eine Topleveldomain aus

path Parameters
topLevelDomainIdentifier
required
string

Topleveldomain

query Parameters
fields
string

Auszuliefernde Felder, als kommaseparierte Liste.

Responses

Response samples

Content type
application/json
{
  • "uid": 0,
  • "name": "string",
  • "description": "string",
  • "articleNumber": 0,
  • "price": "string",
  • "agencyPrice": "string",
  • "setupFee": "string",
  • "isAllowedAsInclusiveDomain": true
}

Get domain overview

Get the data for the domain overview

path Parameters
accountIdentifier
required
string

Account name or uid.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get dns overview

Get the data for the dns overview

path Parameters
accountIdentifier
required
string

Account name or uid.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

IP Adressen des Accounts auslesen

gibt die IP Adressen des Accounts zurück, die sich alls DNS Records eignen

path Parameters
accountIdentifier
required
string

Account name oder uid.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update DNS information for a domain

Updates DNS records for all available types

path Parameters
accountIdentifier
required
string

Name or UID of the account

domainIdentifier
required
string

Name of the domain or subdomain

Request Body schema: application/json
required

Update DNS records of a specific domain

Array of ManualMxRecord (objects) or AutoMxRecordOption (string) (MxRecord)
CName (string) or IpRecord (object) (TargetRecord)
ns
Array of strings
txt
Array of strings
Array of objects (SrvRecord)

Responses

Request samples

Content type
application/json
{
  • "mx": [
    ],
  • "target": "mittwald.de",
  • "ns": [
    ],
  • "txt": [
    ],
  • "srv": [
    ]
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Mailadressen

Mailadressen

Mailadressen eines Accounts auslesen

Diese Operation liest die Mailadressen eines einzelnen Accounts aus

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

query Parameters
limit
integer
Default: 20

Anzahl der zurückzuliefernden Domains.

offset
integer
Default: 0

Offset für die Limitierung der Suchergebnisse

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Notification

Notifications

Notifications auslesen

Liste alle Notifications worauf der Login aktuell rechte hat aus

query Parameters
countOnly
boolean

Soll nur die ungelesenen Nachrichten gezählt werden? (Performance boost)

Responses

Response samples

Content type
application/json
{
  • "notifications": [
    ],
  • "unreadCount": 0
}

Notifications löschen

Löscht alle Notifications des eingeloggten Users

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Software

Softwaremanager

Unterstützte Software auslesen

Liest die mögliche Software für eine Neu-Bestellung aus

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Softwareinstallationen auslesen

Diese Operation liest alle Softwareinstallationen eines einzelnen Accounts aus

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

query Parameters
installPath
string

Filtert Software-Installationen nach Installationspfad (z.B. &installPath=%2Fhtml%2Ftypo3)

Responses

Response samples

Content type
application/json
[
  • {
    }
]

PHP Updaten

PHP Version vom übergebenen Account auf neue Zielversion updaten

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

Request Body schema: application/json
required

Request Body des Update-Prozesses

version
required
string

Major & Minor Versions-Nummer, z.B. "8.1"

Responses

Request samples

Content type
application/json
{
  • "version": "string"
}

Response samples

Content type
application/json
{
  • "msg": "string"
}

Details einer Softwareinstallation auslesen

Diese Operation liest Details zu einer ganz bestimmten Softwareinstallation aus

path Parameters
installationIdentifier
required
string

ID einer Software-Installation

Responses

Response samples

Content type
application/json
{
  • "uid": 0,
  • "software": {
    },
  • "version": {
    },
  • "installPath": "string",
  • "frontendUrl": "string",
  • "backendUrl": "string",
  • "documentRoot": "string",
  • "status": "creating",
  • "database": {
    }
}

Extensions einer Softwareinstallation auslesen

Diese Operation liest Extensions aus, die in einer bestimmten Softwareinstallation installiert sind.

Hinweis: Diese Daten werden in der Regel einmal täglich aktualisiert.

path Parameters
installationIdentifier
required
string

ID einer Software-Installation

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Kunden

Kunden- und Vertragsdaten

Details zu dem aktuellem Kunden

Liefert Details zum aktuellen Kunden.

Responses

Response samples

Content type
application/json
{
  • "customerNumber": 0,
  • "prospect": true
}

Details zum aktuell eingeloggten Kunden

Liefert Details zum aktuell eingeloggten Kunden

Responses

Response samples

Content type
application/json
{
  • "customerNumber": 0
}

Kundendetails auslesen

Diese Ressource enthält Detailinformationen zu einem bestimmten Kunden.

path Parameters
customerNumber
required
integer

Kundennummer

Responses

Response samples

Content type
application/json
{
  • "customerNumber": 0,
  • "prospect": true
}

Vertragspartner auslesen

Diese Operation liefert Details zum Vertragspartner eines Kunden zurück

path Parameters
customerNumber
required
integer

Kundennummer

Responses

Response samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "string",
  • "company": "string",
  • "address": {
    },
  • "contact": {
    }
}

Vertragspartner ändern

Über diese Operation können die Vertragspartnerdaten eines Kunden geändert werden

path Parameters
customerNumber
required
integer

Kundennummer

Request Body schema: application/json
required

Die zu ändernden Vertragspartnerdaten

firstName
string non-empty
lastName
string non-empty
title
string non-empty
salutation
string
Enum: "Herr" "Frau" "Divers"
street
string non-empty
houseNumber
string non-empty
zip
string non-empty
city
string non-empty
emailAddress
string <email>
phone
string^\+([0-9]{2,3}|1)\-[0-9]{2,5}\-[0-9]+$
fax
string^\+([0-9]{2,3}|1)\-[0-9]{2,5}\-[0-9]+$
country
string = 2 characters
vat
string

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "Herr",
  • "street": "string",
  • "houseNumber": "string",
  • "zip": "string",
  • "city": "string",
  • "emailAddress": "user@example.com",
  • "phone": "string",
  • "fax": "string",
  • "country": "st",
  • "vat": "string"
}

Response samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "string",
  • "company": "string",
  • "address": {
    },
  • "contact": {
    }
}

Ansprechpartner auslesen

Diese Operation liefert Details zum Ansprechpartner eines Kunden zurück. Der Ansprechpartner kann identisch mit dem Vertragspartner sein; in diesem Fall wird die Anfrage mit einem 303-Statuscode beantwortet, und der Location-Header enthält die URL des Vertragspartners, der in diesem Fall als Ansprechpartner gilt.

path Parameters
customerNumber
required
integer

Kundennummer

Responses

Response samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "string",
  • "company": "string",
  • "address": {
    },
  • "contact": {
    }
}

Ansprechpartner ändern

Über diese Operation lassen sich die Daten des Ansprechpartners eines Kunden ändern. Dabei kann der Ansprechpartner über den Request-Body-Parameter "identicalToDefaultAddress" ebenfalls identisch zum Vertragspartner gesetzt werden.

path Parameters
customerNumber
required
integer

Kundennummer

Request Body schema: application/json
required

Die zu ändernden Ansprechpartnerdaten

firstName
string non-empty
lastName
string non-empty
title
string non-empty
salutation
string
Enum: "Herr" "Frau" "Divers"
street
string non-empty
houseNumber
string non-empty
zip
string non-empty
city
string non-empty
emailAddress
string <email>
phone
string^\+([0-9]{2,3}|1)\-[0-9]{2,5}\-[0-9]+$
fax
string^\+([0-9]{2,3}|1)\-[0-9]{2,5}\-[0-9]+$
country
string = 2 characters
vat
string

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "Herr",
  • "street": "string",
  • "houseNumber": "string",
  • "zip": "string",
  • "city": "string",
  • "emailAddress": "user@example.com",
  • "phone": "string",
  • "fax": "string",
  • "country": "st",
  • "vat": "string"
}

Response samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "string",
  • "company": "string",
  • "address": {
    },
  • "contact": {
    }
}

Zahlungseinstellungen auslesen

path Parameters
customerNumber
required
integer

Kundennummer

Responses

Response samples

Content type
application/json
{ }

Zahlungseinstellungen ändern

path Parameters
customerNumber
required
integer

Kundennummer

Request Body schema: application/json
required

Neue Zahlungseinstellungen

object (CustomerPaymentSettings)

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{ }

Rechungsempfänger auslesen

path Parameters
customerNumber
required
integer

Kundennummer

Responses

Response samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "string",
  • "company": "string",
  • "address": {
    },
  • "contact": {
    }
}

Rechnungsempfänger ändern

path Parameters
customerNumber
required
integer

Kundennummer

Request Body schema: application/json
required

Neuer Rechnungsempfänger

firstName
string non-empty
lastName
string non-empty
title
string non-empty
salutation
string
Enum: "Herr" "Frau" "Divers"
street
string non-empty
houseNumber
string non-empty
zip
string non-empty
city
string non-empty
emailAddress
string <email>
phone
string^\+([0-9]{2,3}|1)\-[0-9]{2,5}\-[0-9]+$
fax
string^\+([0-9]{2,3}|1)\-[0-9]{2,5}\-[0-9]+$
country
string = 2 characters
vat
string

Responses

Request samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "Herr",
  • "street": "string",
  • "houseNumber": "string",
  • "zip": "string",
  • "city": "string",
  • "emailAddress": "user@example.com",
  • "phone": "string",
  • "fax": "string",
  • "country": "st",
  • "vat": "string"
}

Response samples

Content type
application/json
{
  • "firstName": "string",
  • "lastName": "string",
  • "title": "string",
  • "salutation": "string",
  • "company": "string",
  • "address": {
    },
  • "contact": {
    }
}

Rechnungsempfänger eines Kunden zurücksetzen

Diese Operation setzt den Rechnungsempfänger eines Kunden auf den Vertragspartner zurück

path Parameters
customerNumber
required
integer

Kundennummer

Responses

Rechungseinstellungen auslesen

path Parameters
customerNumber
required
integer

Kundennummer

Responses

Response samples

Content type
application/json
{
  • "vatID": "string",
  • "postalInvoices": true
}

Rechnungseinstellungen ändern

path Parameters
customerNumber
required
integer

Kundennummer

Request Body schema: application/json
required

Neue Zahlungseinstellungen

vatID
string
postalInvoices
required
boolean

Responses

Request samples

Content type
application/json
{
  • "vatID": "string",
  • "postalInvoices": true
}

Response samples

Content type
application/json
{
  • "vatID": "string",
  • "postalInvoices": true
}

Rechnungen eines Kunden

Diese Ressource enthält eine Sammlung aller Rechnungen eines Kunden

path Parameters
customerNumber
required
integer

Kundennummer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Accounts eines Kunden

Diese Ressource enthält eine Sammlung aller Accounts eines Kunden.

path Parameters
customerNumber
required
integer

Kundennummer

query Parameters
advised
boolean
Default: false

Dieser Parameter steuert, ob auch Accounts zurückgeliefert werden sollen, für die eine Verwaltungsfreigabe besteht, aber nicht zur Kundennummer {customerNumber} gehören.'

owned
boolean
Default: true

Dieser Parameter steuert, ob Accounts zurückgeliefert werden sollen, die direkt der Kundennummer {customerNumber} gehören. Dieser Parameter hat standardmäßig den Wert true; über den Wert false können in Kombination mit dem Parameter advised ausschließlich Accounts abgefragt werden, für die eine Verwaltungsfreigabe besteht.

fields
string

Felder die beim Ergebnis inkludiert werden

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Details zu einer gebuchten Leistung

Liefert Details zu einer gebuchten Leistung.

path Parameters
customerNumber
required
integer

Kundennummer

benefit
required
string

Leistung

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Status des AV-Vertrags eines Kunden mit mittwald

Liefert den Status des AV-Vertrages eines Kunden mit mittwald, falls kein Vertrag unterschrieben ist wird zusätzlich eine iFrameUrl zum Ausfüllen zurückgegeben

path Parameters
customerNumber
required
integer

Die Kundennummer

Responses

Response samples

Content type
application/json
{
  • "signed": true,
  • "iframeUrl": "string"
}

Hole Einstellungen eines Kunden.

Hole alle vom Kunden setzbare Einstellungen.

path Parameters
customerNumber
required
integer

Die Kundennummer

Responses

Response samples

Content type
application/json
{
  • "customerNumber": 0,
  • "language": "string"
}

Setze Einstellungen des Kunden.

Setze die Kunden Einstellungen, wie z.B. Sprache.

path Parameters
customerNumber
required
integer

Die Kundennummer

Request Body schema: application/json
required

Die zu ändernden Einstellungen.

language
required
string

Responses

Request samples

Content type
application/json
{
  • "language": "string"
}

Response samples

Content type
application/json
{
  • "customerNumber": 0,
  • "language": "string"
}

Rechnung eines Kunden

Diese Ressource repräsentiert eine einzelne Rechnung.

Über den Accept-Header kann gesteuert werden, ob die Daten dieser Rechnung als JSON-Dokument oder das tatsächliche Rechnungsdokument als PDF abgerufen werden sollen.

path Parameters
invoiceNumber
required
integer

Rechnungsnummer

header Parameters
Accept
string

Das erwünschte Format (application/json oder application/pdf)

Responses

Response samples

Content type
application/json
{
  • "invoiceNumber": 0,
  • "invoicedAt": "string",
  • "netTotal": {
    },
  • "grossTotal": {
    },
  • "items": [
    ]
}

Zahlungseingänge einer Rechnung

Liest erfasste Buchungen zu einer bestimmten Rechnung aus

path Parameters
invoiceNumber
required
integer

Rechnungsnummer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Flags (z.B. DSGVO)

Flags (z.B. DSGVO)

path Parameters
flagId
required
string

Responses

Response samples

Content type
application/json
{
  • "signed": "string"
}

Verträge

Verträge

Verträge auslesen

Liefert alle Verträge eines Kunden

path Parameters
customerNumber
required
integer

Die Kundennummer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Verträge eines Kunden, die sich aktuell im Kündigungsprozess befinden

Liefert alle Verträge eines Kunden, die aktuell gekündigt werden und sich noch nicht länger als 5 Tage in diesem Prozess befinden

path Parameters
customerNumber
required
integer

Die Kundennummer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Kündigung einleiten

Leitet die Kündigung für einen bestimmten Tarif ein

Request Body schema: application/json
required

Die Kündigungsdaten

contract
required
integer
Array of objects
message
string

Eine persönliche Nachricht zur Kündigung

call
boolean

Wahr, wenn der Kunde noch einmal angerufen werden möchte

reason
integer

ID des Kündigungsgrundes

Responses

Request samples

Content type
application/json
{
  • "contract": 0,
  • "domains": [
    ],
  • "message": "string",
  • "call": true,
  • "reason": 0
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Kündigungsbestätigung erneut senden

Löst eine erneute Versendung der Kündigungsbestätigung per E-Mail aus

path Parameters
cancellationIdentifier
required
integer

Die ID der bereits eingeleiteten Kündigung

Responses

Angebote

Angebotsmanagement

Neues Angebot anfordern

Über diese Operation kann ein neues Angebot angefordert werden

Request Body schema: application/json
required

Die Angebotsanfrage; diese enthält Daten zu den angefragten Artikeln sowie notwendige Kundenstammdaten

required
object (OfferRequestRecipient)
required
object (OfferRequestArticles)
isTechnicalAdminForRecipient
boolean
Default: false

Responses

Request samples

Content type
application/json
{
  • "recipient": {
    },
  • "articles": {
    },
  • "isTechnicalAdminForRecipient": false
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Angebot versenden

Erzeugt ein Angebot aus einem Warenkorb und verschickt dieses als PDF per Mail an den angegebenen Empfänger.

path Parameters
cartIdentifier
required
string

Warenkorb ID

Request Body schema: */*
required

Empfänger

firstName
required
string non-empty
lastName
required
string non-empty
title
string non-empty
salutation
required
string
Enum: "Herr" "Frau" "Divers"
street
required
string non-empty
houseNumber
required
string non-empty
zip
required
string non-empty
city
required
string non-empty
company
string
emailAddress
required
string <email>
country
required
string = 2 characters

iso country short code (ISO 3166-1 alpha-2)

fax
string

Responses

Warenkorbvorlage erstellen

Erstellt eine Vorlage aus einem Warenkorb. Vorlagen können nicht bearbeitet werden. Die Vorlage enthält keine Personenbezogenendaten.

path Parameters
cartIdentifier
required
string

Warenkorb ID

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "items": [
    ],
  • "jwt": "string",
  • "promotionCode": "string",
  • "newsletter": true,
  • "offer": 0,
  • "software": "string",
  • "os": "string",
  • "note": "string",
  • "mysqlVersion": "string",
  • "databasePartitionPercentage": 0,
  • "sourceAccount": "string",
  • "sourceReseller": "string",
  • "agencyServer": 0,
  • "stayOnHardware": true,
  • "testing": true,
  • "billingPeriod": 0,
  • "customerBillingPeriod": 0,
  • "commission": "string",
  • "isCommissionLocked": true,
  • "dueDate": 0,
  • "projectName": "string",
  • "projectPassword": "string",
  • "contractPartner": {
    },
  • "contactPerson": {
    },
  • "billingAddress": {
    },
  • "paymentSettings": { }
}

Warenkorbvorlage für Account-Ausgliederung erstellen

Erstellt eine Vorlage aus einem Warenkorb mit Account-Ausgliederung. Vorlagen können nicht bearbeitet werden. Die Vorlage enthält keine Personenbezogenendaten.

path Parameters
cartIdentifier
required
string

Warenkorb ID

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "pinCode": 0,
  • "expireDate": "string"
}

Überprüfe PIN-Code von Empfehlung

Überprüft den Pin-Code bei einer Empfehlung.

path Parameters
cartIdentifier
required
string

Warenkorb ID

Request Body schema: */*
required
pinCode
number

Der 6-stellige Pin-Code

sourceAccount
string

Name des Projektes

sourceReseller
string

Name des Resellers

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

Bestellungen

Bestellung neuer Artikel

Pre-Upgrade Check

Führt ein Check im Vorfeld aus, was sich bei einem Upgrade zu Artikel X ändern würde.

path Parameters
accountIdentifier
required
string

Name oder ID eines Accounts

articleNumber
required
string

Artikelnummer

Responses

Response samples

Content type
application/json
{
  • "ipChanges": true
}

Anmeldung am Partnerprogramm

Über diese Operation kann ein Kunde am Partnerprogramm angemeldet werden.

Achtung: Ist der Nutzer der API als Kunde authentifiziert (d.h. ein API-Token über den /authenticate-Endpunkt bezogen hat), ist die erneute Angabe von Kundenstammdaten im Request (hier über das customer-Attribut) nicht notwendig. Dennoch übergebene Kundenstammdaten werden zugunsten der bereits im System hinterlegten ignoriert.

Request Body schema: application/json
required

Die Bestellanfrage; diese enthält notwendige Kundenstammdaten

object (HostingOrderCustomer)
object (Billing)

Responses

Request samples

Content type
application/json
{
  • "customer": {
    },
  • "billing": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Bestellung eines Partnerbox

Über diese Operation kann ein neues Partnerbox bestellt werden.

Achtung: Ist der Nutzer der API als Kunde authentifiziert (d.h. ein API-Token über den /authenticate-Endpunkt bezogen hat), ist die erneute Angabe von Kundenstammdaten im Request (hier über das customer-Attribut) nicht notwendig. Dennoch übergebene Kundenstammdaten werden zugunsten der bereits im System hinterlegten ignoriert.

Request Body schema: application/json
required

Die Bestellanfrage; diese enthält notwendige Kundenstammdaten

object (HostingOrderCustomer)
object (Billing)

Responses

Request samples

Content type
application/json
{
  • "customer": {
    },
  • "billing": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Partner

Partnerprogramm & Partnerbox

Anmeldung am Partnerprogramm

Über diese Operation kann ein Kunde am Partnerprogramm angemeldet werden.

Achtung: Ist der Nutzer der API als Kunde authentifiziert (d.h. ein API-Token über den /authenticate-Endpunkt bezogen hat), ist die erneute Angabe von Kundenstammdaten im Request (hier über das customer-Attribut) nicht notwendig. Dennoch übergebene Kundenstammdaten werden zugunsten der bereits im System hinterlegten ignoriert.

Request Body schema: application/json
required

Die Bestellanfrage; diese enthält notwendige Kundenstammdaten

object (HostingOrderCustomer)
object (Billing)

Responses

Request samples

Content type
application/json
{
  • "customer": {
    },
  • "billing": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Bestellung eines Partnerbox

Über diese Operation kann ein neues Partnerbox bestellt werden.

Achtung: Ist der Nutzer der API als Kunde authentifiziert (d.h. ein API-Token über den /authenticate-Endpunkt bezogen hat), ist die erneute Angabe von Kundenstammdaten im Request (hier über das customer-Attribut) nicht notwendig. Dennoch übergebene Kundenstammdaten werden zugunsten der bereits im System hinterlegten ignoriert.

Request Body schema: application/json
required

Die Bestellanfrage; diese enthält notwendige Kundenstammdaten

object (HostingOrderCustomer)
object (Billing)

Responses

Request samples

Content type
application/json
{
  • "customer": {
    },
  • "billing": {
    }
}

Response samples

Content type
application/json
{
  • "message": "string"
}

Artikel

Artikelverwaltung

Suche nach Artikeln

Diese Operation liefert eine Liste von Artikeln zurück, die den angegebenen Suchparametern entsprechen.

query Parameters
fields
string

Auszuliefernde Felder, als kommaseparierte Liste. Beispiel: articleNumber,description

limit
integer
Default: 20

Anzahl der zurückzuliefernden Artikel.

offset
integer
Default: 0

Offset für die Limitierung der Suchergebnisse

articles
string

Kommaseparierte-Liste von Artiklenummern

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Artikeldetails

Artikeldetails auslesen

path Parameters
articleNumber
required
string

Artikelnummer

query Parameters
fields
string

Auszuliefernde Felder, als kommaseparierte Liste. Beispiel: articleNumber,description

Responses

Response samples

Content type
application/json
{
  • "articleNumber": 0,
  • "isOrderable": true,
  • "price": {
    },
  • "description": {
    },
  • "contract": {
    },
  • "billing": {
    },
  • "commission": {
    },
  • "articleGroups": [
    ],
  • "benefits": {
    },
  • "configurationData": {
    },
  • "articleOptions": {
    },
  • "crossSellingArticles": [
    ]
}

Cross-Selling Optionen

Liefert alle möglichen Cross-Selling Artikel aus

path Parameters
articleNumber
required
string

Artikelnummer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Artikel Upgrades

Liefert alle möglichen Upgrades für diesen Artikel aus

path Parameters
articleNumber
required
string

Artikelnummer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Warenkorb

Bestellung neuer Artikel

Warenkorb erstellen

Erstellt einen neuen Warenkorb

Request Body schema: */*
optional
forcePartnerId
string

Der Commission Code, welcher im weiteren Verlauf der Bestellstrecke nie wieder geändert werden kann.

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "items": [
    ],
  • "jwt": "string",
  • "promotionCode": "string",
  • "newsletter": true,
  • "offer": 0,
  • "software": "string",
  • "os": "string",
  • "note": "string",
  • "mysqlVersion": "string",
  • "databasePartitionPercentage": 0,
  • "sourceAccount": "string",
  • "sourceReseller": "string",
  • "agencyServer": 0,
  • "stayOnHardware": true,
  • "testing": true,
  • "billingPeriod": 0,
  • "customerBillingPeriod": 0,
  • "commission": "string",
  • "isCommissionLocked": true,
  • "dueDate": 0,
  • "projectName": "string",
  • "projectPassword": "string",
  • "contractPartner": {
    },
  • "contactPerson": {
    },
  • "billingAddress": {
    },
  • "paymentSettings": { }
}

Warenkorb auslesen

Liefert einen bestehenden Warenkorb aus

path Parameters
cartIdentifier
required
string

Warenkorb ID

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "items": [
    ],
  • "jwt": "string",
  • "promotionCode": "string",
  • "newsletter": true,
  • "offer": 0,
  • "software": "string",
  • "os": "string",
  • "note": "string",
  • "mysqlVersion": "string",
  • "databasePartitionPercentage": 0,
  • "sourceAccount": "string",
  • "sourceReseller": "string",
  • "agencyServer": 0,
  • "stayOnHardware": true,
  • "testing": true,
  • "billingPeriod": 0,
  • "customerBillingPeriod": 0,
  • "commission": "string",
  • "isCommissionLocked": true,
  • "dueDate": 0,
  • "projectName": "string",
  • "projectPassword": "string",
  • "contractPartner": {
    },
  • "contactPerson": {
    },
  • "billingAddress": {
    },
  • "paymentSettings": { }
}

Warenkorb bearbeiten

Aktualisiert einen bestehenden Warenkorb

path Parameters
cartIdentifier
required
string

Warenkorb ID

Request Body schema: */*
required

Der neue Warenkorb

_id
string
Array of objects (Article)
jwt
string

Set a new jwt for this cart.

promotionCode
string
newsletter
boolean
offer
number
software
string

The software to install for the order.

os
string

The operating system to install for the order.

note
string

Store a customer note for the order.

mysqlVersion
string

The MySQL-Version to use for the order.

databasePartitionPercentage
number

The database partition ratio. Must be between 20 & 80 %.

sourceAccount
string

Only for upgrades/extract: The UID or name of the source account.

sourceReseller
string

Only for upgrades/extract: The UID or name of the source reseller.

agencyServer
number

The UID of the target agency server.

stayOnHardware
boolean

Keep your existing hardware

testing
boolean

Is order an testaccount?

billingPeriod
number

Billing period for main order item

customerBillingPeriod
number

Billing period for whole customer

commission
string

The code from the partnerprogram

isCommissionLocked
boolean

If enabled, nobody can remove/change the commission code. Default=false

dueDate
number

Unix timestamp of the due date of the order (wish order execution date).

projectName
string

Your description for the account.

projectPassword
string

Your password for the account. Will be encrypted after setting this value.

object (Contact)
object (Contact)
object (Contact)
paymentSettings
object (PaymentSettings)

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "items": [