# Webhooks

<details>

<summary>Hinweise zur Funktion</summary>

Bitte beachten Sie, dass die Webhooks beim Speichern einer Entität ausgelöst werden. Die Speicherfunktionen können den Webhook auch mehrfach auslösen (z. B. wenn eine verbundene Unter-Entität gespeichert wird). Die Webhooks können deshalb auch über Änderungen an Daten informieren, welche über die API nicht ermittelt werden können.&#x20;

Bei Endpunkten, welche sich über mehrere Entitäten erstrecken (z.B. Dokumente), kann die abzurufende Entität dem Schlüssel "additionalInfo" entnommen werden.

</details>

## Welche Webhooks bietet WOWIPORT:

Wir bieten derzeit Webhooks für folgende Entitäten an:

* Personen (Person)
* Verträge (LicenseAgreement)
* Wirtschaftseinheiten (EconomicUnit)
* Nutzungseinheiten (UseUnit)
* Darlehen (Loan)
* Aufträge (Commission)
* Vorgänge (CraftsProcess)
* Nachrichten (Ticket)
* Buchungen (Booking)
* Mitgliedschaft (CooperativeMembership)
* Dokumenterzeugung  (Document) ->Dokumente, welche in WOWIPORT erstellt wurden
* individuelle Dateien (File) -> Dateien, welche in WOWIPORT hochgeladen wurden
* Medien im Bestand (Media)
* Eingangsrechnung (InvoiceReceipt)
* Eingangsrechnung Zahlauftrag (InvoiceReceiptPaymentOrder)

Die Trigger-Events sind:

* created
* deleted
* updated

Der Payload folgt dem folgenden Beispielschema:

{% code title="Payload des Webhook" %}

```json
    "body": {
        "entityType": "file",
        "entityName": "individuelle Dateien",
        "id": 9999,
        "action": "updated",
        "nodeId": 7,
        "systemId": "openwowi-demo.wowiport.de",
        "instanceName": "wowiport-demo",
        "applicationBaseUrl": "https://openwowi-demo.wowiport.de",
        "userId": 412,
        "openWowiUrl": "/openWowi/v1.2/DocumentRead/UseUnit/FileData?...",
        "additionalInfo": UseUnit
    }
```

{% endcode %}

Der Webhook wird als POST Request ausgeführt.

## Einrichtung eines Webhooks

{% hint style="warning" %}
Um auf die Webhook-Konfiguration zugreifen zu können, wird das Benutzerrecht "Web Hook" benötigt. Zudem benötigen Sie das Recht "Web Hook Warteschlangeneintrag" um ausgeführte Webhooks nachvollziehen zu können.
{% endhint %}

Der Webhook wird für einen API-Key eingerichtet. Hierzu findet sich ein separater Tab in der API-Key-Konfiguration.

<figure><img src="/files/T2WIXUNdVCbiPXIBYaFk" alt=""><figcaption><p>Webhook Übersicht</p></figcaption></figure>

Um den Webhook einzurichten, benötigen Sie eine URL, welche den POST Request empfangen kann. Der Systemzweck wird üblicherweise "Echt" oder "Test" lauten. Der Webhook kann aktiviert oder deaktiviert werden.

<figure><img src="/files/PC0v7ibBUPnKqd6Cxdlu" alt=""><figcaption><p>Webhook Konfiguration</p></figcaption></figure>

Sie haben auch die Möglichkeit, den Webhook mit Authentifizierungsdaten abzusichern.

Mögliche Authentifizierungsmethoden sind:

* Keine
* Bearer (Header: "Bearer Token")
* Basic (Header: "Username" und "Password")
* Custom (Definition von "Header Name" und "Header Wert" ist individuell möglich.)&#x20;

Bitte beachten Sie, dass es sich bei dieser Authentifizierung lediglich um Header-Daten handelt, welche verhindern sollen, dass Ihre Systeme mit unzulässigen Callback Anfragen gestört werden.\
Die Daten sind in der WOWIPORT Oberfläche nicht obfuskiert und nicht verschlüsselt gespeichert.\
Bitte verwenden Sie keine User- / Passwortkombinationen, welche dazu verwendet werden können, sich in anderen Systemen zu authentifizieren.&#x20;

## Warum Webhooks und nicht WebSockets?

Die derzeit angebotenen Entitäten erfahren nur selten Änderungen. Sollte unser Kommunikationsmodul einmal als vollumfängliche Chat-Applikation eingeführt werden oder eine Live-Kommunikation mit hochfrequentem Datenaustausch nötig sein, werden wir diese Technologie in Erwägung ziehen.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.openwowi.de/grundlagen/webhooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
