Webhooks
Webhooks ermoeglichen es Ihnen, HTTP-Callbacks in Echtzeit zu empfangen, wenn Ereignisse auf Ihren WhatsApp-Instanzen auftreten. Anstatt die API abzufragen, sendet Wappfy Ereignisse an Ihren Server, sobald sie eintreten.Unterstuetzte Ereignisse
Wappfy unterstuetzt 12 Webhook-Ereignistypen:Nachrichtenereignisse
Nachrichtenereignisse
| Ereignis | Beschreibung |
|---|---|
message.received | Eine neue eingehende Nachricht wurde empfangen. |
message.sent | Eine ausgehende Nachricht wurde erfolgreich gesendet. |
message.delivered | Eine gesendete Nachricht wurde an das Geraet des Empfaengers zugestellt (doppeltes Haekchen). |
message.read | Eine gesendete Nachricht wurde vom Empfaenger gelesen (blaue Haekchen). |
message.failed | Eine ausgehende Nachricht konnte nicht gesendet werden. |
message.reaction | Jemand hat auf eine Nachricht mit einem Emoji reagiert. |
Instanz-Ereignisse
Instanz-Ereignisse
| Ereignis | Beschreibung |
|---|---|
instance.connected | Eine Instanz hat sich erfolgreich mit WhatsApp verbunden. |
instance.disconnected | Eine Instanz hat die WhatsApp-Verbindung verloren. |
instance.qr | Ein neuer QR-Code steht zum Scannen bereit. |
Gruppen- & Kontakt-Ereignisse
Gruppen- & Kontakt-Ereignisse
| Ereignis | Beschreibung |
|---|---|
group.joined | Ein Teilnehmer ist einer Gruppe beigetreten (einschliesslich des Bots selbst). |
group.left | Ein Teilnehmer hat eine Gruppe verlassen. |
contact.created | Ein neuer Kontakt wurde gespeichert oder erkannt. |
Webhook erstellen
Registrieren Sie einen Webhook-Endpunkt, um Ereignisse zu empfangen.Konfigurationsoptionen
| Feld | Typ | Standard | Beschreibung |
|---|---|---|---|
url | string | erforderlich | Die HTTPS-URL, die Webhook-POST-Anfragen empfaengt. |
events | string[] | erforderlich | Array von Ereignistypen, die abonniert werden sollen. |
instance_id | string | null | Webhook auf eine bestimmte Instanz beschraenken. Bei null werden Ereignisse aller Instanzen empfangen. |
secret | string | null | Geheimnis zur Erzeugung von HMAC-Signaturen fuer die Payload-Verifizierung. |
retry_count | number | 3 | Anzahl der Wiederholungsversuche bei Zustellungsfehlern (0-5). |
timeout_ms | number | 10000 | Anfrage-Timeout in Millisekunden (1000-30000). |
Das Feld
instance_id ist optional. Wenn es weggelassen wird, empfaengt der Webhook Ereignisse von allen Instanzen in Ihrem Konto.Webhooks auflisten
Webhook aktualisieren
Aktualisieren Sie die URL, Ereignisse oder Konfiguration eines bestehenden Webhooks.Webhook loeschen
Zustellungs-Payload-Format
Wenn ein Ereignis eintritt, sendet Wappfy eine POST-Anfrage an Ihre Webhook-URL mit folgender Struktur:Payload-Felder
| Feld | Beschreibung |
|---|---|
id | Eindeutige Zustellungs-ID. Verwenden Sie diese zur Deduplizierung. |
event | Der Ereignistyp, der diese Zustellung ausgeloest hat. |
instance_id | Die Instanz, die das Ereignis erzeugt hat. |
timestamp | ISO-8601-Zeitstempel des Ereignisses. |
data | Ereignisspezifischer Payload. Der Inhalt variiert je nach Ereignistyp. |
HMAC-Signaturverifizierung
Wenn Sie beim Erstellen eines Webhooks einsecret angeben, enthaelt jede Zustellung einen X-Wappfy-Signature-Header mit einer HMAC-SHA256-Signatur des Anfrageinhalts.
Verifizieren Sie diese Signatur immer, um sicherzustellen, dass die Anfrage von Wappfy stammt und nicht manipuliert wurde.
Verifizierungsbeispiele
Wiederholungsverhalten
Wenn Ihr Server nicht innerhalb der konfiguriertentimeout_ms mit einem 2xx-Statuscode antwortet, wiederholt Wappfy die Zustellung.
| Versuch | Verzoegerung |
|---|---|
| 1. Wiederholung | 10 Sekunden |
| 2. Wiederholung | 60 Sekunden |
| 3. Wiederholung | 5 Minuten |
| 4. Wiederholung | 30 Minuten |
| 5. Wiederholung | 2 Stunden |
Wiederholungen werden gestoppt, wenn eine
2xx-Antwort empfangen wird oder die retry_count-Anzahl erschoepft ist. Der Standard-Wiederholungszaehler betraegt 3.Zustellungsverlauf einsehen
Pruefen Sie das Zustellungsprotokoll eines Webhooks, um vergangene Zustellungsversuche und deren Ergebnisse einzusehen.Beispiele fuer Ereignis-Payloads
message.received
message.received
message.delivered
message.delivered
message.read
message.read
message.reaction
message.reaction
instance.connected
instance.connected
instance.qr
instance.qr
group.joined
group.joined
Best Practices
Schnell antworten
Geben Sie innerhalb von 5 Sekunden einen
200-Status zurueck. Verarbeiten Sie das Ereignis asynchron, um Timeouts zu vermeiden.Deduplizieren
Verwenden Sie die Zustellungs-
id, um doppelte Zustellungen durch Wiederholungen zu erkennen und zu ueberspringen.Signaturen verifizieren
Validieren Sie immer den
X-Wappfy-Signature-Header, wenn Sie ein Geheimnis konfiguriert haben.HTTPS verwenden
Webhook-URLs muessen HTTPS verwenden. HTTP-Endpunkte werden abgelehnt.