Schnittstellen für Mittwald-Kunden
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.
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.
Anforderung eines neuen API-Tokens
Diese Operation erlaubt die Ausstellung eines neuen API-Tokens. Für die Ausstellung des Tokens müssen die Zugangsdaten des Mittwald-Kundencenters im Body des Requests übermittelt werden.
Request Body schema: application/json
Die Zugangsdaten, mit denen die Authentifizierung erfolgen soll.
username required | string Der Kundencenter-Benutzername |
password required | string Das Password |
Responses
Request samples
- Payload
{- "username": "string",
- "password": "string"
}
Response samples
- 200
- 403
{- "token": "string",
- "expires": "string"
}
Hinterlegen von neuen Application-Tokens
Diese Operation ermöglicht es neue Application-Tokens zu hinterlegen.
Request Body schema: application/json
Das Token sowie eine optionale Beschreibung
description required | string |
Responses
Request samples
- Payload
{- "description": "string"
}
Response samples
- 201
{- "uuid": "095be615-a8ad-4c33-8e9c-c7612fbf6c9f",
- "crdate": "2019-08-24T14:15:22Z",
- "token": "pa$$word",
- "description": "string"
}
Account auslesen
Diese Operation liest genaue Daten eines einzelnen Accounts aus
path Parameters
accountIdentifier required | string Name oder ID eines Accounts |
Responses
Response samples
- 200
- 403
{- "uid": 0,
- "customerNumber": 0,
- "name": "string",
- "activateShell": true,
- "description": "string",
- "disabled": true,
- "ipAddresses": [
- {
- "address": "string",
- "scope": "internal",
- "version": 4
}
], - "status": "creating"
}
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. |
Responses
Response samples
- 200
[- {
- "uid": 0,
- "software": {
- "uid": 0,
- "identifier": "string",
- "name": "string"
}, - "version": {
- "uid": 0,
- "number": "string"
}, - "installPath": "string",
- "frontendUrl": "string",
- "backendUrl": "string",
- "documentRoot": "string",
- "status": "creating",
- "database": {
- "uid": 0,
- "name": "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
|
owned | boolean Default: true Dieser Parameter steuert, ob Accounts zurückgeliefert werden sollen, die
direkt der Kundennummer |
Responses
Response samples
- 200
[- {
- "uid": 0,
- "customerNumber": 0,
- "name": "string",
- "activateShell": true,
- "description": "string",
- "disabled": true,
- "ipAddresses": [
- {
- "address": "string",
- "scope": "internal",
- "version": 4
}
], - "status": "creating"
}
]
getAccountVisitorStatistics
Liefert Statistiken zu Besucherzahlen eines Projekts
path Parameters
accountIdentifier required | string Name oder ID eines Accounts |
Responses
Response samples
- 200
{- "id": "string",
- "last_information_at": 0,
- "limit": {
- "article": {
- "name": "string",
- "number": 0
}, - "maximum": 0,
- "maximum_updated_at": "2019-08-24T14:15:22Z",
- "usage": 0,
- "usage_absolute": 0
}, - "name": "string",
- "skip_information": true,
- "throttling": {
- "enabled": true
}, - "grace_period": null,
- "visitor_information": {
- "daily": [
- {
- "count": 0,
- "date": "2019-08-24T14:15:22Z"
}
], - "monthly": [
- {
- "count": 0,
- "date": "2019-08-24T14:15:22Z"
}
]
}
}
getAccountStatistics
Liefert Statistiken zur Speicherplatzauslastung eines Projekts
path Parameters
accountIdentifier required | string Name oder ID eines Accounts |
Responses
Response samples
- 200
{- "accounts": [
- {
- "details": {
- "backups": {
- "items": [
- {
- "itemName": "string",
- "itemSize": 0,
- "itemUpdatedAt": 0
}
], - "summary": 0
}, - "dbspace": {
- "items": [
- {
- "itemName": "string",
- "itemSize": 0,
- "itemUpdatedAt": 0
}
], - "summary": 0
}, - "mail": {
- "items": [
- {
- "itemName": "string",
- "itemSize": 0,
- "itemUpdatedAt": 0
}
], - "summary": 0
}, - "snapshot": {
- "items": [
- {
- "itemName": "string",
- "itemSize": 0,
- "itemUpdatedAt": 0
}
], - "summary": 0
}, - "system": {
- "items": [
- {
- "itemName": "string",
- "itemSize": 0,
- "itemUpdatedAt": 0
}
], - "summary": 0
}, - "template": {
- "items": [
- {
- "itemName": "string",
- "itemSize": 0,
- "itemUpdatedAt": 0
}
], - "summary": 0
}, - "webspace": {
- "items": [
- {
- "itemName": "string",
- "itemSize": 0,
- "itemUpdatedAt": 0
}
], - "summary": 0
}
}, - "limit": 0,
- "name": "string",
- "percent": 0,
- "summary": 0
}
], - "meta": {
- "limit": 0,
- "percent": 0,
- "summary": 0
}
}
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
- 200
- 403
[- {
- "name": "string",
- "fullname": "string",
- "registryStatus": "string",
- "tld": "string"
}
]
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
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
- Payload
{- "handles": {
- "owner": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "admin": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}
}, - "sld": "string",
- "tld": "string",
- "domainNameTransfer": {
- "authcode": "string",
- "authInfoProcedure": 1
}, - "external": true,
- "target": "string"
}
Response samples
- 201
[- {
- "name": "string",
- "fullname": "string",
- "registryStatus": "string",
- "tld": "string"
}
]
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
- 200
[- {
- "uid": 0,
- "domain": {
- "uid": 0,
- "name": "string"
}, - "subDomain": {
- "uid": 0,
- "name": "string"
}, - "sourceAccount": {
- "uid": 0,
- "name": "string"
}, - "destinationAccount": {
- "uid": 0,
- "name": "string"
}, - "expireDate": {
- "date": "string",
- "timezone_type": 0,
- "timezone": "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
- 200
[- {
- "uid": 0,
- "fullName": "string",
- "target": "string",
- "name": "string"
}
]
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
Daten der neuen Subdomain
name required | string |
target | string |
Responses
Request samples
- Payload
[- {
- "name": "string",
- "target": "string"
}
]
Response samples
- 201
[- {
- "uid": 0,
- "fullName": "string",
- "target": "string",
- "name": "string"
}
]
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
- 200
{- "uid": 0,
- "name": "string",
- "description": "string",
- "articleNumber": 0,
- "price": "string",
- "agencyPrice": "string",
- "setupFee": "string",
- "isAllowedAsInclusiveDomain": true
}
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
- 200
- 403
[- {
- "uid": 0,
- "fullName": "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. |
Responses
Response samples
- 200
[- {
- "uid": 0,
- "software": {
- "uid": 0,
- "identifier": "string",
- "name": "string"
}, - "version": {
- "uid": 0,
- "number": "string"
}, - "installPath": "string",
- "frontendUrl": "string",
- "backendUrl": "string",
- "documentRoot": "string",
- "status": "creating",
- "database": {
- "uid": 0,
- "name": "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
- 200
{- "uid": 0,
- "software": {
- "uid": 0,
- "identifier": "string",
- "name": "string"
}, - "version": {
- "uid": 0,
- "number": "string"
}, - "installPath": "string",
- "frontendUrl": "string",
- "backendUrl": "string",
- "documentRoot": "string",
- "status": "creating",
- "database": {
- "uid": 0,
- "name": "string"
}
}
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
- 200
[- {
- "uid": 0,
- "key": "string",
- "name": "string",
- "version": "string"
}
]
Vertragspartner auslesen
Diese Operation liefert Details zum Vertragspartner eines Kunden zurück
path Parameters
customerNumber required | integer Kundennummer |
Responses
Response samples
- 200
- 403
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "string",
- "company": "string",
- "address": {
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "country": {
- "isoShort": "string",
- "isoLong": "string",
- "euMember": true,
- "name": {
- "de": "string",
- "en": "string"
}
}
}, - "contact": {
- "telephone": "string",
- "fax": "string",
- "email": "user@example.com"
}
}
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
Die zu ändernden Vertragspartnerdaten
firstName | string non-empty |
lastName | string non-empty |
title | string non-empty |
salutation | string Enum: "Herr" "Frau" "Mr." "Ms." |
street | string non-empty |
houseNumber | string non-empty |
string or integer non-empty | |
city | string non-empty |
company | string |
emailAddress | string <email> |
phone | string^\+([0-9]{2,3}|1)\-[0-9]{2,5}\-[0-9]+$ |
country | string = 2 characters |
vat | string |
Responses
Request samples
- Payload
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "phone": "string",
- "country": "st",
- "vat": "string"
}
Response samples
- 200
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "string",
- "company": "string",
- "address": {
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "country": {
- "isoShort": "string",
- "isoLong": "string",
- "euMember": true,
- "name": {
- "de": "string",
- "en": "string"
}
}
}, - "contact": {
- "telephone": "string",
- "fax": "string",
- "email": "user@example.com"
}
}
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
- 200
- 403
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "string",
- "company": "string",
- "address": {
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "country": {
- "isoShort": "string",
- "isoLong": "string",
- "euMember": true,
- "name": {
- "de": "string",
- "en": "string"
}
}
}, - "contact": {
- "telephone": "string",
- "fax": "string",
- "email": "user@example.com"
}
}
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
Die zu ändernden Ansprechpartnerdaten
identicalToDefaultAddress | boolean Wahr, wenn der Ansprechpartner identisch zum Vertragspartner gesetzt ist |
firstName | string non-empty |
lastName | string non-empty |
title | string non-empty |
salutation | string Enum: "Herr" "Frau" "Mr." "Ms." |
street | string non-empty |
houseNumber | string non-empty |
string or integer non-empty | |
city | string non-empty |
company | string |
emailAddress | string <email> |
phone | string^\+([0-9]{2,3}|1)\-[0-9]{2,5}\-[0-9]+$ |
country | string = 2 characters |
vat | string |
Responses
Request samples
- Payload
{- "identicalToDefaultAddress": true,
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "phone": "string",
- "country": "st",
- "vat": "string"
}
Response samples
- 200
- 403
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "string",
- "company": "string",
- "address": {
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "country": {
- "isoShort": "string",
- "isoLong": "string",
- "euMember": true,
- "name": {
- "de": "string",
- "en": "string"
}
}
}, - "contact": {
- "telephone": "string",
- "fax": "string",
- "email": "user@example.com"
}
}
Zahlungseinstellungen ändern
path Parameters
customerNumber required | integer Kundennummer |
Request Body schema: application/json
Neue Zahlungseinstellungen
billingType required | string Value: "INVOICE" |
Responses
Request samples
- Payload
{- "billingType": "SEPA",
- "accountHolder": "string",
- "iban": "string",
- "bic": "string"
}
Response samples
- 200
{- "billingType": "SEPA",
- "accountHolder": "string",
- "iban": "string",
- "bic": "string"
}
Response samples
- 200
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "string",
- "company": "string",
- "address": {
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "country": {
- "isoShort": "string",
- "isoLong": "string",
- "euMember": true,
- "name": {
- "de": "string",
- "en": "string"
}
}
}, - "contact": {
- "telephone": "string",
- "fax": "string",
- "email": "user@example.com"
}
}
Rechnungsempfänger ändern
path Parameters
customerNumber required | integer Kundennummer |
Request Body schema: application/json
Neuer Rechnungsempfänger
firstName required | string Vorname |
lastName required | string Nachname |
title | string (Akademischer) grad |
salutation required | string Grußformel, z.B. Herr oder Frau |
company | string Firmenname, oder |
required | object (CustomerAddress) |
required | object (CustomerContactData) |
Responses
Request samples
- Payload
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "string",
- "company": "string",
- "address": {
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "country": {
- "isoShort": "string"
}
}, - "contact": {
- "telephone": "string",
- "fax": "string",
- "email": "user@example.com"
}
}
Response samples
- 200
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "string",
- "company": "string",
- "address": {
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "country": {
- "isoShort": "string",
- "isoLong": "string",
- "euMember": true,
- "name": {
- "de": "string",
- "en": "string"
}
}
}, - "contact": {
- "telephone": "string",
- "fax": "string",
- "email": "user@example.com"
}
}
Rechnungseinstellungen ändern
path Parameters
customerNumber required | integer Kundennummer |
Request Body schema: application/json
Neue Zahlungseinstellungen
vatID | string |
postalInvoices required | boolean |
Responses
Request samples
- Payload
{- "vatID": "string",
- "postalInvoices": true
}
Response samples
- 200
{- "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
- 200
[- {
- "invoiceNumber": 0,
- "invoicedAt": "string",
- "netTotal": {
- "amount": null,
- "currency": "EUR"
}, - "grossTotal": {
- "amount": null,
- "currency": "EUR"
}, - "vat": null,
- "items": [
- {
- "title": "string",
- "text": "string",
- "netTotal": {
- "amount": null,
- "currency": "EUR"
}, - "quantity": {
- "amount": 0,
- "unit": "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
|
owned | boolean Default: true Dieser Parameter steuert, ob Accounts zurückgeliefert werden sollen, die
direkt der Kundennummer |
Responses
Response samples
- 200
[- {
- "uid": 0,
- "customerNumber": 0,
- "name": "string",
- "activateShell": true,
- "description": "string",
- "disabled": true,
- "ipAddresses": [
- {
- "address": "string",
- "scope": "internal",
- "version": 4
}
], - "status": "creating"
}
]
Details zu einer gebuchten Leistung
Liefert Details zu einer gebuchten Leistung.
path Parameters
customerNumber required | integer Kundennummer |
benefit required | string Leistung |
Responses
Response samples
- 200
[- {
- "benefit": {
- "identifier": "string",
- "uid": 0
}, - "exceedance": 0,
- "uid": 0,
- "usage": 0,
- "value": 0
}
]
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 Enum: "application/json" "application/pdf" Das erwünschte Format ( |
Responses
Response samples
- 200
{- "invoiceNumber": 0,
- "invoicedAt": "string",
- "netTotal": {
- "amount": null,
- "currency": "EUR"
}, - "grossTotal": {
- "amount": null,
- "currency": "EUR"
}, - "vat": null,
- "items": [
- {
- "title": "string",
- "text": "string",
- "netTotal": {
- "amount": null,
- "currency": "EUR"
}, - "quantity": {
- "amount": 0,
- "unit": "string"
}
}
]
}
Zahlungseingänge einer Rechnung
Liest erfasste Buchungen zu einer bestimmten Rechnung aus
path Parameters
invoiceNumber required | integer Rechnungsnummer |
Responses
Response samples
- 200
[- {
- "recordedAt": "string",
- "amount": {
- "amount": null,
- "currency": "EUR"
}, - "kind": {
- "description": "string"
}
}
]
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
- 200
[- {
- "title": "string",
- "startDate": "string",
- "contractDuration": "string"
}
]
Kündigung einleiten
Leitet die Kündigung für einen bestimmten Tarif ein
Request Body schema: application/json
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
- Payload
{- "contract": 0,
- "domains": [
- {
- "domain": "string",
- "transfer": true,
- "transit": true,
- "cancellationDate": 0
}
], - "message": "string",
- "call": true,
- "reason": 0
}
Response samples
- 403
{- "message": "string"
}
Neues Angebot anfordern
Über diese Operation kann ein neues Angebot angefordert werden
Request Body schema: application/json
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
- Payload
{- "recipient": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "phone": "string",
- "country": "st"
}, - "articles": {
- "main": {
- "articleNumber": 0
}, - "additional": [
- {
- "articleNumber": 0
}
]
}, - "isTechnicalAdminForRecipient": false
}
Response samples
- 400
- 403
- 500
{- "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: application/json
Empfänger
firstName required | string non-empty |
lastName required | string non-empty |
title | string non-empty |
salutation required | string Enum: "Herr" "Frau" "Mr." "Ms." |
street required | string non-empty |
houseNumber required | string non-empty |
required | string or integer 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
Request samples
- Payload
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}
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
- 200
{- "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: application/json
pinCode | number Der 6-stellige Pin-Code |
sourceAccount | string Name des Projektes |
sourceReseller | string Name des Resellers |
Responses
Request samples
- Payload
{- "pinCode": 0,
- "sourceAccount": "string",
- "sourceReseller": "string"
}
Response samples
- 200
- 400
- 404
{- "message": "string"
}
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
- 200
- 400
- 403
{- "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
Die Bestellanfrage; diese enthält notwendige Kundenstammdaten
object (HostingOrderCustomer) | |
object (Billing) |
Responses
Request samples
- Payload
{- "customer": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "phone": "string",
- "country": "st"
}, - "billing": {
- "vatRegNumber": "string"
}
}
Response samples
- 400
- 403
- 500
{- "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
Die Bestellanfrage; diese enthält notwendige Kundenstammdaten
object (HostingOrderCustomer) | |
object (Billing) |
Responses
Request samples
- Payload
{- "customer": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "phone": "string",
- "country": "st"
}, - "billing": {
- "vatRegNumber": "string"
}
}
Response samples
- 400
- 403
- 500
{- "message": "string"
}
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
Die Bestellanfrage; diese enthält notwendige Kundenstammdaten
object (HostingOrderCustomer) | |
object (Billing) |
Responses
Request samples
- Payload
{- "customer": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "phone": "string",
- "country": "st"
}, - "billing": {
- "vatRegNumber": "string"
}
}
Response samples
- 400
- 403
- 500
{- "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
Die Bestellanfrage; diese enthält notwendige Kundenstammdaten
object (HostingOrderCustomer) | |
object (Billing) |
Responses
Request samples
- Payload
{- "customer": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "phone": "string",
- "country": "st"
}, - "billing": {
- "vatRegNumber": "string"
}
}
Response samples
- 400
- 403
- 500
{- "message": "string"
}
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: |
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
- 200
[- {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
]
Artikeldetails
Artikeldetails auslesen
path Parameters
articleNumber required | string Artikelnummer |
query Parameters
fields | string Auszuliefernde Felder, als kommaseparierte Liste. Beispiel:
|
Responses
Response samples
- 200
{- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
Cross-Selling Optionen
Liefert alle möglichen Cross-Selling Artikel aus
path Parameters
articleNumber required | string Artikelnummer |
Responses
Response samples
- 200
[- {
- "default": true,
- "price": "string",
- "article": {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
}
]
Warenkorb erstellen
Erstellt einen neuen Warenkorb
Request Body schema: application/json
forcePartnerId | string Der Commission Code, welcher im weiteren Verlauf der Bestellstrecke nie wieder geändert werden kann. |
Responses
Request samples
- Payload
{- "forcePartnerId": "string"
}
Response samples
- 201
{- "_id": "string",
- "items": [
- {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
], - "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": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "contactPerson": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "billingAddress": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "paymentSettings": {
- "billingType": "INVOICE",
- "postalInvoice": true
}
}
Warenkorb auslesen
Liefert einen bestehenden Warenkorb aus
path Parameters
cartIdentifier required | string Warenkorb ID |
Responses
Response samples
- 200
{- "_id": "string",
- "items": [
- {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
], - "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": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "contactPerson": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "billingAddress": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "paymentSettings": {
- "billingType": "INVOICE",
- "postalInvoice": true
}
}
Warenkorb aus Vorlage erstellen
Erstellt einen neuen Warenkorb aus einer Vorlage
path Parameters
cartIdentifier required | string Warenkorb ID |
Responses
Response samples
- 200
{- "_id": "string",
- "items": [
- {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
], - "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": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "contactPerson": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "billingAddress": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "paymentSettings": {
- "billingType": "INVOICE",
- "postalInvoice": true
}
}
Warenkorb bearbeiten
Aktualisiert einen bestehenden Warenkorb
path Parameters
cartIdentifier required | string Warenkorb ID |
Request Body schema: application/json
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) or PaymentSettings (object) (PaymentSettings) |
Responses
Request samples
- Payload
{- "_id": "string",
- "items": [
- {
- "articleNumber": 0
}
], - "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": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "contactPerson": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "billingAddress": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "paymentSettings": {
- "billingType": "INVOICE",
- "postalInvoice": true
}
}
Response samples
- 200
{- "_id": "string",
- "items": [
- {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
], - "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": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "contactPerson": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "billingAddress": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "paymentSettings": {
- "billingType": "INVOICE",
- "postalInvoice": true
}
}
Warenkorb-Position hinzufügen
Fügt ein neues Item in den Warenkorb
path Parameters
cartIdentifier required | string Warenkorb ID |
Request Body schema: application/json
Das hinzuzufügende Item
identifier required | string |
sourceIdentifier | string |
Responses
Request samples
- Payload
{- "identifier": "string",
- "sourceIdentifier": "string"
}
Response samples
- 200
{- "_id": "string",
- "items": [
- {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
], - "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": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "contactPerson": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "billingAddress": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "paymentSettings": {
- "billingType": "INVOICE",
- "postalInvoice": true
}
}
Warenkorb-Position löschen
Löscht ein Item aus dem Warenkorb
path Parameters
cartIdentifier required | string Warenkorb ID |
itemIdentifier required | string Item ID |
Responses
Response samples
- 200
{- "_id": "string",
- "items": [
- {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
], - "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": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "contactPerson": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "billingAddress": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "paymentSettings": {
- "billingType": "INVOICE",
- "postalInvoice": true
}
}
Warenkorb-Domainposition hinzufügen
Fügt eine Domain dem Warenkorb hinzu
path Parameters
cartIdentifier required | string Warenkorb ID |
Request Body schema: application/json
Die hinzuzufügende Domain
name required | string |
authCode | string |
transfer | boolean |
Responses
Request samples
- Payload
{- "name": "string",
- "authCode": "string",
- "transfer": true
}
Response samples
- 200
{- "_id": "string",
- "items": [
- {
- "articleNumber": 0,
- "isOrderable": true,
- "price": "string",
- "description": "string",
- "contract": {
- "contractDuration": 0,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "billing": {
- "billingPeriod": 0,
- "allowDurationModification": true,
- "unit": {
- "key": "string",
- "value": "string"
}
}, - "commission": "string",
- "articleGroups": [
- {
- "href": "string",
- "title": "string"
}
], - "benefits": "string",
- "configurationData": {
- "limits": {
- "max_cores": 0,
- "max_documents": 0,
- "memory": 0
}
}, - "articleOptions": "string",
- "crossSellingArticles": [
- {
- "href": "string",
- "articleNumber": 0,
- "sorting": 0
}
]
}
], - "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": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "contactPerson": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "billingAddress": {
- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}, - "paymentSettings": {
- "billingType": "INVOICE",
- "postalInvoice": true
}
}
Bestellung abschließen
Erzeugt eine Bestellung aus einem Warenkorb
path Parameters
cartIdentifier required | string Warenkorb ID |
Request Body schema: application/json
pinCode | number Der PinCode, der für den Kundennummer-Wechsel Ihres Bestandspaketes notwendig ist. |
Responses
Request samples
- Payload
{- "pinCode": 0
}
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: application/json
Empfänger
firstName required | string non-empty |
lastName required | string non-empty |
title | string non-empty |
salutation required | string Enum: "Herr" "Frau" "Mr." "Ms." |
street required | string non-empty |
houseNumber required | string non-empty |
required | string or integer 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
Request samples
- Payload
{- "firstName": "string",
- "lastName": "string",
- "title": "string",
- "salutation": "Herr",
- "street": "string",
- "houseNumber": "string",
- "zip": "string",
- "city": "string",
- "company": "string",
- "emailAddress": "user@example.com",
- "country": "st",
- "fax": "string"
}
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
- 200
{- "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: application/json
pinCode | number Der 6-stellige Pin-Code |
sourceAccount | string Name des Projektes |
sourceReseller | string Name des Resellers |
Responses
Request samples
- Payload
{- "pinCode": 0,
- "sourceAccount": "string",
- "sourceReseller": "string"
}
Response samples
- 200
- 400
- 404
{- "message": "string"
}
SMS-Verifizierung starten
Fragt eine SMS-Verifizierung an. Der Empfänger erhält eine SMS mit einem Code.
path Parameters
cartIdentifier required | string Warenkorb ID |
Request Body schema: application/json
recipient | string Die Mobilfunknummer des Empfängers |
Responses
Request samples
- Payload
{- "recipient": "string"
}
Promotioncode validieren
Validiert einen Promotion-Code für eine Bestellung
path Parameters
promotionCode required | string PromotionCode |
Request Body schema: application/json
Die zu bestellenden Artikel und ob der Hauptartikel einen monatliche Abrechnungsperiode hat. Nur die Artikelnummer wird zwingend benötigt.
Array of objects (Article) | |
monthly | boolean |
Responses
Request samples
- Payload
{- "articles": [
- {
- "articleNumber": 0
}
], - "monthly": true
}
Konvertiert Bankdaten in das IBAN / BIC Format
Liefert zu einer gegebenen Kontonummer und BLZ die entsprechende IBAN und BIC
Request Body schema: application/json
Die zu konvertierenden Bankdaten
bankAccountNumber | string Die zu konvertierende Kontonummer |
bankCode | string Die zu konvertierende BLZ |
Responses
Request samples
- Payload
{- "bankAccountNumber": "string",
- "bankCode": "string"
}
Response samples
- 200
{- "iban": "string",
- "bic": "string"
}
Registriert einen neuen Webhook
Registriert einen neuen Webhook für einen bestimmten Login
Request Body schema: application/json
Die Webhook-Konfiguration
url required | string <uri> |
method required | string Enum: "GET" "POST" "PUT" "DELETE" "PATCH" |
eventType required | string Value: "DOMAIN_REGISTRATION_STATUS" |
headers | object |
object (WebhookParameter) |
Responses
Request samples
- Payload
{- "method": "GET",
- "eventType": "DOMAIN_REGISTRATION_STATUS",
- "headers": { },
- "parameters": {
- "key": "string",
- "value": "string"
}
}
Response samples
- 200
{- "uid": "string",
- "method": "GET",
- "eventType": "DOMAIN_REGISTRATION_STATUS",
- "headers": { },
- "parameters": {
- "key": "string",
- "value": "string"
}
}
Liefert einen bestimmten Webhook
Liefert die Daten eines bestimmten Webhooks
path Parameters
webhookIdentifier required | string Die ID des Webhooks |
Responses
Response samples
- 200
- 403
{- "uid": "string",
- "method": "GET",
- "eventType": "DOMAIN_REGISTRATION_STATUS",
- "headers": { },
- "parameters": {
- "key": "string",
- "value": "string"
}
}
Updated den gewünschten Webhook
Updated die Daten des gewünschten Webhooks
path Parameters
webhookIdentifier required | string Die ID des Webhooks |
Request Body schema: application/json
Die Webhook-Konfiguration
url required | string <uri> |
method required | string Enum: "GET" "POST" "PUT" "DELETE" "PATCH" |
eventType required | string Value: "DOMAIN_REGISTRATION_STATUS" |
headers | object |
object (WebhookParameter) |
Responses
Request samples
- Payload
{- "method": "GET",
- "eventType": "DOMAIN_REGISTRATION_STATUS",
- "headers": { },
- "parameters": {
- "key": "string",
- "value": "string"
}
}
Response samples
- 200
- 403
{- "uid": "string",
- "method": "GET",
- "eventType": "DOMAIN_REGISTRATION_STATUS",
- "headers": { },
- "parameters": {
- "key": "string",
- "value": "string"
}
}
Kündigung einleiten
Leitet die Kündigung für einen bestimmten Tarif ein
Request Body schema: application/json
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
- Payload
{- "contract": 0,
- "domains": [
- {
- "domain": "string",
- "transfer": true,
- "transit": true,
- "cancellationDate": 0
}
], - "message": "string",
- "call": true,
- "reason": 0
}
Response samples
- 403
{- "message": "string"
}
PDF - Vertrags-PDF hochladen
Lädt einen eigens geschlossenen Vertrag hoch. Dabei werden nur PDF Dateien unterstützt
Request Body schema: application/json
name required | string |
pdf required | string <binary> |
Responses
Request samples
- Payload
{- "name": "string",
- "pdf": "string"
}
Response samples
- 201
{- "name": "string",
- "creationDate": "string"
}