# Webhooks, Zapier, API und KI-Assistenten anbinden

> Webhook einrichten und absichern, fehlgeschlagene Aufrufe nachvollziehen, Zapier verbinden, die API mit einem Schlüssel ansprechen und einen KI-Assistenten per MCP andocken.

https://rabbit-checkout.de/hilfe/anleitungen/webhooks-und-api/ · Aktualisiert: 2026-08-28

---


Vier Wege, Rabbit Checkout mit anderen Systemen zu verbinden, vom einfachsten
zum flexibelsten.

## Webhooks

Ein Webhook ruft eine Adresse bei dir auf, sobald etwas passiert.

### Einrichten

1. **Einstellungen → Webhooks** → **Neu**.
2. **Webhook-Name** vergeben (nur zur Orientierung).
3. **Webhook-Endpunkt** eintragen: die Adresse, die aufgerufen werden soll.
4. Unter **Ereignistypen** ankreuzen, worauf reagiert werden soll.
5. **Speichern**.

Pro Shop darf jede Endpunkt-Adresse nur einmal vorkommen. Mit dem Schalter
**Aktiviert?** kannst du einen Webhook stilllegen, ohne ihn zu löschen.

Ein **Secret** trägst du nicht selbst ein: Rabbit Checkout erzeugt es beim
Anlegen automatisch. Du liest es später in der Webhook-Liste über **Show
Secret** aus — siehe „Signatur prüfen" weiter unten.

### Ereignistypen auswählen

Ein Webhook kann auf **beliebig viele Ereignisse** hören — kreuze einfach alle
an, die dieselbe Adresse aufrufen sollen. Welches Ereignis den Aufruf ausgelöst
hat, steht dann im Feld `type` des Aufrufs, sodass dein Endpunkt die Fälle
auseinanderhalten kann.

Ob du einen Webhook pro Ereignis anlegst oder einen für alle, ist
Geschmackssache. Ein Webhook mit mehreren Ereignissen ist übersichtlicher;
getrennte Webhooks lassen sich einzeln abschalten.

![Der Dialog „Webhook" im Dashboard. Oben der Schalter „Aktiviert?" (an), darunter das Feld „Webhook-Name" mit „Zapier – Bestellungen" und das Feld „Webhook-Endpunkt" mit „https://hooks.zapier.com/hooks/catch/1839207/uy41k3f". Darunter die Liste „Ereignistypen" mit Ankreuzfeldern: ORDER_CREATED (leer), ORDER_PAYED (angekreuzt), ORDER_REFUNDED (angekreuzt), ORDER_FAILED, SUBSCRIPTION_CREATED, SUBSCRIPTION_ACTIVATED und SUBSCRIPTION_PAUSED (alle leer); die Liste lässt sich weiter scrollen. Unten die Schaltflächen „Schließen" und „Speichern".](/assets/img/hilfe/webhook-ereignistypen.webp "Mehrere Ereignisse pro Webhook sind möglich — hier ORDER_PAYED und ORDER_REFUNDED an dieselbe Zapier-Adresse.")

Fährst du mit der Maus über einen Ereignistyp, erklärt eine Kurzbeschreibung,
wann er ausgelöst wird und wofür er sich eignet.

![Derselbe Webhook-Dialog, daneben eine dunkle Sprechblase am Eintrag ORDER_PAYED mit dem Text: „Die Zahlung wurde bestätigt und die Bestellung ist bezahlt. Dieses Ereignis ist das richtige, um ein Produkt auszuliefern oder dein System zu benachrichtigen. Die Payload enthält Bestellung, Rechnung und Zahlung."](/assets/img/hilfe/webhook-ereignis-beschreibung.webp "Jeder Ereignistyp erklärt sich beim Überfahren mit der Maus.")

### Die Ereignisse im Einzelnen

| Ereignis | Ausgelöst wenn |
| --- | --- |
| `ORDER_CREATED` | die Bestellung im Checkout angelegt wird — **bevor** die Zahlung bestätigt ist |
| `ORDER_PAYED` | die Zahlung bestätigt und die Bestellung bezahlt ist |
| `ORDER_REFUNDED` | ganz oder teilweise erstattet wurde, über das Dashboard oder per Widerruf |
| `ORDER_FAILED` | die Zahlung gescheitert oder abgebrochen ist |
| `SUBSCRIPTION_CREATED` | ein Abo im Checkout angelegt wurde; die erste Zahlung kann noch ausstehen |
| `SUBSCRIPTION_ACTIVATED` | ein Abo aktiv wird, etwa nach dem Fortsetzen einer Pause |
| `SUBSCRIPTION_PAUSED` | ein Abo pausiert wird |
| `SUBSCRIPTION_CANCELED` | ein Abo gekündigt wurde und nicht erneut abgerechnet wird |
| `SUBSCRIPTION_EXPIRED` | ein Abo sein Ende erreicht hat und nicht verlängert wurde |
| `PRODUCT_ACCESS_GRANTED` | ein Kunde Zugang zu einem Produkt erhält |
| `PRODUCT_ACCESS_REVOKED` | einem Kunden der Zugang zu einem Produkt entzogen wird |

<div class="docs-warn">
Für „jemand hat gekauft und soll jetzt etwas bekommen" ist
<code>ORDER_PAYED</code> oder <code>PRODUCT_ACCESS_GRANTED</code> das richtige
Ereignis — <strong>nicht</strong> <code>ORDER_CREATED</code>. Das feuert schon
beim Absenden des Checkouts, wenn noch kein Geld geflossen ist. Wer darauf
ausliefert, verschenkt sein Produkt an jeden abgebrochenen Kauf.
</div>

Wann Zugänge kommen und gehen, hängt an den Abo-Ereignissen: `PAUSED`,
`CANCELED` und `EXPIRED` entziehen den Produktzugang, `ACTIVATED` gibt ihn
wieder frei. Jedes Mal folgt zusätzlich ein `PRODUCT_ACCESS_*`-Ereignis. Wenn
dich nur der Zugang interessiert und nicht der Grund, reichen die beiden
`PRODUCT_ACCESS_*`-Ereignisse.

### Testereignis senden, bevor du verkauft hast

Make, n8n, Zapier und ähnliche Dienste lassen sich meist erst einrichten,
**nachdem** sie einmal einen Aufruf empfangen haben — vorher kennen sie die
Feldnamen nicht. Bisher hieß das: erst verkaufen, dann automatisieren.

Auf der Webhook-Seite gibt es dafür **Simulieren**. Du wählst einen der
Ereignistypen, die der Webhook abonniert hat, Rabbit Checkout schickt ein
Beispiel an deine Adresse und zeigt dir, **was dein Endpunkt geantwortet hat**
(Statuscode und Antworttext).

Das Beispiel hat **dieselbe Struktur wie ein echtes Ereignis**, damit deine
Zuordnung später nicht bricht.

| | Echter Aufruf | Testereignis |
| --- | --- | --- |
| **Signatur** | ✓ | ✓ — dieselbe, du kannst also auch deine Prüfung testen |
| **Kennzeichnung** | – | Header `x-webhook-test: true` und `test: true` im Körper |
| **Im Ereignisprotokoll** | ✓ | – |
| **Wiederholungen bei Fehler** | ✓ | – ein Versuch, kein Retry |
| **Andere Webhooks des Shops** | werden mit aufgerufen | bleiben unberührt |

<div class="docs-warn">
Filtere Testereignisse in deiner Automatisierung aus, bevor sie etwas ausliefert
oder verbucht — über <code>test</code> im Körper oder den Header
<code>x-webhook-test</code>. Sonst legt dein erstes Testereignis einen echten
Vorgang an.
</div>

### Was im Aufruf steht

Der Körper ist ein JSON-Objekt mit einem festen Umschlag; das Feld `type`
nennt das Ereignis, `payload` enthält die Daten:

```json
{ "id": 4711, "storeId": 1, "type": "ORDER_PAYED", "payload": { "order": { "…": "…" } } }
```

Welche Felder je Ereignis in `payload` stehen, an welchem Pfad die
Käufer-Adresse liegt und welche Header mitkommen →
[Webhook-Payloads](/hilfe/referenz/webhook-payloads/).

### Signatur prüfen

Jeder Webhook bekommt beim Anlegen automatisch ein **Secret**. Du findest es in
der Webhook-Liste über **Show Secret**. Rabbit Checkout schickt damit bei jedem
Aufruf zwei Header mit:

```
x-webhook-id: <id des Webhooks>
x-signature:  <HMAC-SHA256 über den Rohkörper, hex>
```

Berechne dieselbe Signatur mit deinem Secret über den **unveränderten**
Anfragekörper und vergleiche. In Node.js:

```js
const crypto = require('node:crypto')

const expected = crypto
  .createHmac('sha256', SECRET)
  .update(rawBody)          // der Rohkörper, nicht das geparste JSON
  .digest('hex')

const ok = expected === request.headers['x-signature']
```

<div class="docs-warn">
Ohne diese Prüfung ist dein Endpunkt für jeden aufrufbar, der die Adresse kennt.
Wenn der Webhook etwas auslöst, das Geld oder Zugang bedeutet, prüfe die
Signatur — das Secret allein schützt nicht, solange du es nicht vergleichst.
</div>

### Wiederholungen und Fehlersuche

Antwortet dein Endpunkt nicht mit Erfolg, wird der Aufruf **bis zu dreimal**
mit wachsendem Abstand wiederholt. Bleibt es erfolglos, bekommst du eine
Benachrichtigung („Webhook-Aufruf fehlgeschlagen"), sofern unter
**Einstellungen → Benachrichtigungen** aktiviert.

Unter **Einstellungen → Ereignisse** siehst du jedes Ereignis mit seinen
Zustellversuchen: Ziel-Adresse, gesendeter Inhalt, Antwortstatus und
Antworttext. Von dort lässt sich ein Aufruf auch erneut auslösen.

<div class="docs-note">
Testbestellungen erzeugen ganz normale Ereignisse. Im Datensatz steht
<code>isTest</code>, filtere darauf, wenn deine Automatisierung
Testbestellungen ignorieren soll →
<a href="/hilfe/grundlagen/checkout-flow-status/">Status Test, Live,
Deaktiviert</a>.
</div>

## Zapier

Rabbit Checkout hat eine Zapier-App. Verbunden wird sie mit einem **API-Key**
(siehe unten).

Als Auslöser stehen zur Verfügung:

- **Produktzugang erteilt**
- **Produktzugang entzogen**

Das deckt den häufigsten Fall ab: „Kunde hat gekauft → trag ihn in mein
E-Mail-Tool ein". Für alles Darüberhinausgehende sind Webhooks der flexiblere
Weg: Die meisten Automatisierungswerkzeuge (Zapier, Make, n8n) können einen
Webhook als Auslöser entgegennehmen.

## API

1. Im Dashboard oben rechts über das Menü zu **Konto**.
2. **API-Key erstellen** und den Schlüssel sicher notieren.
3. Den Schlüssel gegen ein Zugriffstoken tauschen:

```http
POST https://dashboard.rabbit-checkout.de/api/auth/token
Content-Type: application/json

{ "apiKey": "DEIN_API_KEY" }
```

4. Weitere Aufrufe mit dem Token:

```http
GET https://dashboard.rabbit-checkout.de/api/stores
Authorization: Bearer DEIN_TOKEN
```

Die vollständige, immer aktuelle Referenz mit allen Endpunkten und Feldern liegt
unter:

```
https://dashboard.rabbit-checkout.de/api/docs
```

<div class="docs-note">
Die öffentlich dokumentierte API ist bewusst schlank: Konto, Stores,
Store-Adresse, Produktzugänge und die Verwaltung von Webhooks. Für Reaktionen
auf Verkäufe sind Webhooks der vorgesehene Weg, nicht regelmäßiges Abfragen.
</div>

## KI-Assistenten anbinden (MCP)

Rabbit Checkout stellt einen **MCP-Server** bereit, mit dem ein KI-Assistent
wie Claude oder ChatGPT in deinem Shop arbeiten kann. Die Adresse steht unter
**Einstellungen → Integrationen → MCP**:

```
https://dashboard.rabbit-checkout.de/api/mcp
```

Diese Adresse trägst du im Assistenten als eigenen Connector ein und meldest
dich einmal an. Der Umfang ist groß: **lesen und ändern**, über Produkte,
Checkout-Seiten und -Flows, Erfolgs- und Upsell-Seiten, Bump-Angebote,
Gutscheine und Kurslektionen. Bestellungen und Abonnements kann er nur lesen.

Einrichtung Schritt für Schritt, was der Assistent genau darf, die Reichweite
der Freigabe und wie du sie widerrufst →
[KI-Assistenten verbinden (MCP)](/hilfe/anleitungen/ki-assistent-mcp/).

### Fragen zur Bedienung beantworten lassen

Wenn du deinen Assistenten stattdessen zu **Anleitungen** befragen willst
(„Wie erstelle ich einen Gutschein?"), brauchst du keinen Connector. Gib ihm
diese Adresse:

```
https://rabbit-checkout.de/llms.txt
```

Dort stehen alle Hilfeseiten als reines Markdown verlinkt. Der Assistent liest
sich von dort weiter. Einzelseiten gibt es jeweils auch direkt, etwa
`https://rabbit-checkout.de/hilfe/anleitungen/gutschein-erstellen.md`.


## Häufige Fragen

**Wie richte ich einen Webhook in Rabbit Checkout ein?**

Einstellungen → Webhooks → Neu. Name und Endpunkt-URL eintragen und unter Ereignistypen ankreuzen, worauf reagiert werden soll. Das Secret, mit dem jede Anfrage signiert wird, erzeugt Rabbit Checkout automatisch.

**Kann ein Webhook auf mehrere Ereignisse hören?**

Ja. Unter Ereignistypen kannst du beliebig viele Ereignisse gleichzeitig ankreuzen. Welches Ereignis den Aufruf ausgelöst hat, steht im Feld type des Aufrufs.

**Woher weiß ich, was ein Ereignistyp bedeutet?**

Fahre im Webhook-Dialog mit der Maus über einen Ereignistyp. Eine Kurzbeschreibung erklärt, wann er ausgelöst wird und wofür er sich eignet.

**Wie prüfe ich, ob ein Webhook-Aufruf echt ist?**

Jeder Webhook hat ein Secret, einsehbar in der Webhook-Liste über Show Secret. Rabbit Checkout schickt den Header x-signature mit einer HMAC-SHA256-Signatur über den Rohkörper der Anfrage. Berechne dieselbe Signatur mit deinem Secret und vergleiche.

**Was passiert, wenn mein Endpunkt nicht erreichbar ist?**

Der Aufruf wird bis zu dreimal mit wachsendem Abstand wiederholt. Bleibt er erfolglos, wirst du benachrichtigt, und der Versuch ist unter Ereignisse einsehbar.

**Wie erkenne ich Testbestellungen in einem Webhook?**

Im Datensatz steht das Merkmal isTest. Filtere darauf, wenn deine Automatisierung Testbestellungen ignorieren soll.

**Gibt es eine API?**

Ja. Du erzeugst im Dashboard unter Konto einen API-Key, tauschst ihn gegen ein Zugriffstoken und rufst die Endpunkte mit Bearer-Token auf. Die Referenz liegt unter https://dashboard.rabbit-checkout.de/api/docs.


## Passend dazu

- [Referenz: Status und Ereignisse](https://rabbit-checkout.de/hilfe/referenz/status-und-ereignisse/)
- [Anleitung: sevDesk und Lexware anbinden](https://rabbit-checkout.de/hilfe/anleitungen/buchhaltung-sevdesk-lexware/)
