---
title: "Kunden erstellen"
description: "Erstellt einen neuen Kunden und weist über packageType ein organisationsdefiniertes Paket zu."
---

`POST /api/customers`

## Authentifizierung

Dieser Endpoint erfordert Authentifizierung.

```bash
BASE_URL="https://uptimeify.io"
TOKEN="wsm_<dein-api-token>"
```

## Anfrage (Request Body)

```json
{
  "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:

- `packageType` kann den konfigurierten Paket-Key oder den Display-Namen des Pakets enthalten. Bekannte Alias-Schreibweisen wie `aquisition_test` werden automatisch normalisiert.
- `monthlyReportsEnabled` ist optional. Ohne Angabe übernimmt der neue Kunde den Wert `monthlyReportsDefault` des zugewiesenen Pakets (siehe [Paket-Konfiguration erstellen/aktualisieren](/de/api/organization/upsert-package-config)); existiert für dieses Paket keine Konfiguration in der Organisation, gilt `true`. 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 Request` abgelehnt.
- Für normale Benutzer wird `organizationId` aus der Session/dem Token abgeleitet und darf nicht überschrieben werden.
- Für Global Admins muss `organizationId` explizit angegeben werden.

## Ownership- & Berechtigungs-Overrides (optional)

Diese Felder steuern die [Managed-vs.-Self-Service](/de/monitoring/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

```json
{
  "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"
  }
}
```

