> ## Documentation Index
> Fetch the complete documentation index at: https://foliant-help.iforiti.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks an Ihr eigenes System senden

> Die Webhooks-Integration sendet ein signiertes JSON-Ereignis an Ihren eigenen Endpunkt, wenn Foliant ein Dokument erstellt oder einen Export abschließt.

Die Integration **Webhooks** richtet sich an Entwickler. Sie sendet ein JSON-Ereignis an eine HTTPS-Adresse Ihrer Wahl, sobald in Foliant etwas passiert. So kann Ihr eigenes System darauf reagieren, zum Beispiel indem es jede Rechnungs-PDF ablegt oder einen fertigen Export abholt.

Webhooks befindet sich in der Beta-Phase. Wenn Sie die Integration unter **Einstellungen › Integrationen** nicht sehen, ist sie für Ihren Shop noch nicht verfügbar. Wenden Sie sich an den Support, um Zugang anzufragen.

## Ereignisse

| Ereignis | Wird gesendet, wenn |
| - | - |
| `document.generated` (**Dokument erstellt**) | Foliant ein Dokument für eine Bestellung erstellt: ein Download, ein Export oder eine E-Mail mit PDF-Versand. |
| `export.completed` (**Export abgeschlossen**) | Ein Massenexport bereit ist. |

## Webhooks verbinden

1. Gehen Sie in Foliant zu **Einstellungen › Integrationen**.

2. Klicken Sie bei **Webhooks** auf **Verbinden**.

3. Füllen Sie die Einstellungen aus:

   | Feld | Was Sie eingeben |
   | - | - |
   | **Endpunkt-URL** | Die Adresse, an die Foliant Ereignisse sendet. Sie muss HTTPS verwenden, zum Beispiel `https://example.com/webhooks/foliant`. |
   | **Signaturschlüssel** | Optional. Mit einem Schlüssel wird jede Anfrage signiert, sodass Sie prüfen können, ob sie von Foliant stammt. |
   | **Ereignisse** | Die Ereignisse, die gesendet werden sollen. Standardmäßig sind beide ausgewählt. |

4. Klicken Sie auf **Verbinden**.

Sie können die URL, den Schlüssel und die Ereignisse später unter **Einstellungen** auf der Seite der Integration ändern.

## Was jede Anfrage enthält

Foliant sendet eine `POST`-Anfrage mit einem JSON-Body:

```json theme={null}
{
  "id": "a unique delivery id",
  "event": "document.generated",
  "created_at": "2026-10-11T09:30:00+00:00",
  "shop": "your-store.myshopify.com",
  "data": { }
}
```

### Daten von `document.generated`

* `template`: `uuid` und `name` der Vorlage.
* `document_type`: `invoice`, `credit_note`, `quote` oder leer bei anderen Dokumenten.
* `order`: deren `id`, `name` und `type` (Bestellungen oder Bestellentwürfe).
* `refund_id` und `fulfillment_id`, wenn das Dokument zu einer Rückerstattung oder einer Sendung gehört.
* `document_number` und `issued_at` bei nummerierten Dokumenten.
* `source`: wie das Dokument erstellt wurde, zum Beispiel `download`, `admin_download`, `export` oder `email`.
* `export`: die ID des Exports, wenn das Dokument Teil eines Exports ist.
* `generated_at`.

### Daten von `export.completed`

* `export`: dessen `uuid`, `order_type`, `template_uuids`, Anzahl der `orders`, `orders_skipped` (nach der Auswahl gelöscht) und `documents`, `requested_by` (`merchant` oder `customer`) und `completed_at`.
* `download_url`: ein Link zum Herunterladen des Exports, und `download_url_expires_at`: wann dieser Link nicht mehr funktioniert.
* `download_expires_at`: wann der Export selbst abläuft.

Ereignisse enthalten IDs und Anzahlen, keine E-Mail-Adressen von Kunden.

### Header

| Header | Enthält |
| - | - |
| `X-Foliant-Event` | Das Ereignis, zum Beispiel `document.generated`. |
| `X-Foliant-Delivery` | Die eindeutige ID der Zustellung (identisch mit `id` im Body). |
| `X-Foliant-Timestamp` | Den Sendezeitpunkt in Unix-Sekunden. |
| `X-Foliant-Signature` | `sha256=` gefolgt von der Signatur. Nur wenn Sie einen Signaturschlüssel festgelegt haben. |

## Signatur prüfen

Die Signatur ist ein hexadezimaler HMAC-SHA256 aus dem Zeitstempel, einem Punkt und dem unveränderten Request-Body (`<timestamp>.<body>`), mit Ihrem Signaturschlüssel als Schlüssel. Berechnen Sie ihn auf Ihrer Seite und vergleichen Sie ihn mit dem Wert nach `sha256=` in `X-Foliant-Signature`. Verwenden Sie den Body genau so, wie Sie ihn empfangen haben.

## Antworten und Wiederholungen

* Jede 2xx-Antwort gilt als zugestellt.
* Wenn Ihr Endpunkt einen 5xx-Fehler, 408 oder 429 zurückgibt oder nicht innerhalb von 10 Sekunden antwortet, versucht Foliant es später erneut, mit jeweils längerer Wartezeit, bis zu 5 Versuche.
* Andere 4xx-Antworten sind endgültig: Foliant wiederholt sie nicht.
* Jedes Ereignis wird pro Dokument oder Export einmal zugestellt. Nach einer erfolgreichen Zustellung senden Wiederholungen es nie ein zweites Mal.

Jede Zustellung erscheint unter **Aktivität** auf der Seite der Integration. Dort können Sie eine fehlgeschlagene Zustellung mit **Erneut versuchen** wiederholen. Siehe [Integrationsaktivität](https://foliant-help.iforiti.com/de/integrations/integration-activity.md).

## Verwandte Artikel

* [Eine Integration verbinden und verwalten](https://foliant-help.iforiti.com/de/integrations/connect-an-integration.md)
* [Integrationsaktivität](https://foliant-help.iforiti.com/de/integrations/integration-activity.md)
* [Mit Shopify Flow automatisieren](https://foliant-help.iforiti.com/de/integrations/shopify-flow.md)
* [PDFs exportieren](https://foliant-help.iforiti.com/de/exports/export-pdfs.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.