> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blueplant.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# Kontaktperson anlegen

> Legt eine Kontaktperson an und ordnet sie optional einem Kunden zu.



## OpenAPI

````yaml api/openapi.json POST /customer/contact-person
openapi: 3.1.0
info:
  title: blueplant API
  version: v1
  description: >-
    Öffentliche REST-API von blueplant zum Anlegen von Stammdaten (Kunden,
    Standorte, Kontaktpersonen, Pflanzen, Behälter und Produkte) aus anderen
    Systemen. Authentifiziert wird mit deinem API-Schlüssel aus den
    Mandanten-Einstellungen.
servers:
  - url: https://api.blueplant.app/api/v1
    description: Produktiv
security:
  - ApiKey: []
paths:
  /customer/contact-person:
    post:
      tags:
        - Kunden & Standorte
      summary: Kontaktperson anlegen
      description: Legt eine Kontaktperson an und ordnet sie optional einem Kunden zu.
      operationId: createContactPerson
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                customerId:
                  type: string
                  format: uuid
                  description: ID des Kunden, zu dem die Kontaktperson gehört.
                salutation:
                  type: string
                  enum:
                    - female
                    - male
                    - guess
                  description: Anrede. `guess` überlässt blueplant die Ableitung.
                firstName:
                  type: string
                  description: Vorname.
                lastName:
                  type: string
                  description: Nachname.
                phoneNumberLandline:
                  type: string
                  description: Festnetznummer.
                phoneNumberMobile:
                  type: string
                  description: Mobilnummer.
                emailAddress:
                  type: string
                  format: email
                  description: E-Mail-Adresse.
                function:
                  type: string
                  description: Funktion bzw. Rolle der Person beim Kunden.
                isMainContact:
                  type: boolean
                  default: false
                  description: Ob diese Person der Hauptansprechpartner ist.
                validFrom:
                  type: string
                  format: date
                  description: Beginn der Gültigkeit.
                validUntil:
                  type: string
                  format: date
                  description: Ende der Gültigkeit.
      responses:
        '201':
          description: Kontaktperson angelegt.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdResponse'
        '400':
          $ref: '#/components/responses/ValidationError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  schemas:
    IdResponse:
      type: object
      description: Antwort mit der ID des angelegten Objekts.
      properties:
        id:
          type: string
          format: uuid
          description: ID des angelegten Objekts.
    ValidationError:
      type: object
      description: Validierungsfehler mit feldbezogenen Meldungen.
      properties:
        message:
          type: string
          example: invalid input
        errors:
          type: array
          description: Liste der fehlerhaften Felder mit Meldungen.
          items:
            type: object
  responses:
    ValidationError:
      description: Ungültiges Request-Payload (Validierungsfehler).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ValidationError'
    Unauthorized:
      description: Authentifizierung fehlgeschlagen – prüfe deinen API-Schlüssel.
    TooManyRequests:
      description: Zu viele Anfragen – versuche es später erneut.
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: ApiKey
      description: >-
        Dein API-Schlüssel aus den Mandanten-Einstellungen, gesendet im Header
        `ApiKey`.

````