Kunden erstellen
Erstellt einen neuen Kunden und weist über packageType ein organisationsdefiniertes Paket zu.
POST /api/customers
Authentifizierung
Dieser Endpoint erfordert Authentifizierung.
BASE_URL="https://uptimeify.io"
TOKEN="wsm_<dein-api-token>"Anfrage (Request Body)
{
"name": "Kundenname",
"email": "kunde@deinkunde.com",
"packageType": "business", // konfigurierter packageType oder Display-Name aus der Paket-Konfiguration der Organisation
"organizationId": 1, // optional (nur für Global Admins erforderlich)
"status": "active", // optional, Standard: active
"monthlyReportsEnabled": true, // optional, Standard ist monthlyReportsDefault des Pakets
"customFields": { ... } // optional
}Hinweise:
packageTypekann den konfigurierten Paket-Key oder den Display-Namen des Pakets enthalten. Bekannte Alias-Schreibweisen wieaquisition_testwerden automatisch normalisiert.monthlyReportsEnabledist optional. Ohne Angabe übernimmt der neue Kunde den WertmonthlyReportsDefaultdes zugewiesenen Pakets (siehe Paket-Konfiguration erstellen/aktualisieren); existiert für dieses Paket keine Konfiguration in der Organisation, gilttrue. Ein ausdrücklich gesendeter Wert gewinnt immer, allein das Kundenfeld entscheidet, ob ein Bericht versendet wird.- Wenn kein konfiguriertes Paket dazu passt, wird der Request mit
400 Bad Requestabgelehnt. - Für normale Benutzer wird
organizationIdaus der Session/dem Token abgeleitet und darf nicht überschrieben werden. - Für Global Admins muss
organizationIdexplizit angegeben werden.
Ownership- & Berechtigungs-Overrides (optional)
Diese Felder steuern die Managed-vs.-Self-Service-Berechtigungen des Kunden und die Kanal-Typ-Policy. Sie sind org-write-gated: Nur Organisations-Admins (oder Global-Admins) können sie setzen. Werte eines Nicht-Admin-Aufrufers werden ignoriert, es gelten die Schema-Standards.
null (oder das Weglassen des Felds) bedeutet von der Paket-Konfiguration des Kunden erben.
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
allowSelfService | boolean|null | null (erben) | Ob der Kunde self_service-Monitore anlegen und verwalten darf |
maxSelfServiceUrls | number|null | null (erben) | Obergrenze für die Gesamtzahl der self_service-Monitore des Kunden über alle Monitor-Typen |
canEditManaged | boolean | false | Ausnahme: erlaubt diesem Kunden, managed-Monitore zu bearbeiten (Klassen-Wechsel bleiben org-only). Vergaben werden ins Audit-Log geschrieben. |
enableEmailAlerts | boolean|null | null (erben) | Kanal-Typ-Policy-Override: E-Mail-Alarme |
enableSmsAlerts | boolean|null | null (erben) | Kanal-Typ-Policy-Override: SMS-Alarme |
enableWebhookAlerts | boolean|null | null (erben) | Kanal-Typ-Policy-Override: Webhooks |
enableIntegrationAlerts | boolean|null | null (erben) | Kanal-Typ-Policy-Override: Integrationen |
enablePostRequestEscalation | boolean|null | null (erben) | Kanal-Typ-Policy-Override: POST-Request-Eskalation |
Der Legacy-notificationChannels-JSONB-Override ist deprecated: Die Kanal-Typ-Policy liegt in den enable*-Feldern oben.
Response
{
"success": true,
"customer": {
"id": 64,
"publicId": "6d74c32b-a97c-49b9-be3e-2b5e24bed826",
"organizationId": 2,
"name": "Example Customer",
"email": "example@deinkunde.com",
"notificationPhoneNumber": null,
"notificationEmail": null,
"packageId": 7,
"packageType": "essential",
"status": "active",
"allowedCheckCountryCodes": null,
"cancellationDate": null,
"cancelledAt": null,
"customFields": {
"region": "EU",
"planOwner": "Operations"
},
"monthlyReportsEnabled": true,
"notificationChannels": null,
"notificationTargets": null,
"notificationRules": null,
"smsUsageCurrentMonth": 0,
"createdAt": "2026-04-04T12:27:13.415Z",
"updatedAt": "2026-04-04T12:27:13.415Z"
}
}