6
SECHSMETER

Webhooks & Integrationen

Webhooks schicken bei bestimmten Ereignissen in deinem Team einen signierten POST-Request an eine von dir hinterlegte URL — z. B. an Zapier, Make, n8n oder einen eigenen Server. Einrichten kannst du sie unter Einstellungen → Integrationen (nur für Trainer/Team-Owner sichtbar).

Verfügbare Events

EventAuslöserFelder in data
event.createdEin neuer Termin (Training/Spiel/Sonstiges) wurde angelegt.eventId, type, title, date, time
event.cancelledEin Termin wurde abgesagt.eventId, type, title, date, time
rsvp.updatedEin Spieler hat seine Zu-/Absage geändert.eventId, title, date, playerName, status
fine.createdEine neue Strafe wurde in der Mannschaftskasse gebucht.fineId, playerName, amount, reason, date
game.finishedEin Spielergebnis wurde im Archiv gespeichert.gameId, teamHome, teamAway, scoreHome, scoreAway, date

Pro Team kannst du bis zu 10 Webhooks anlegen, jeder kann mehrere Events abonnieren.

Payload-Format

Jede Zustellung ist ein JSON-Body mit derselben Hülle, unabhängig vom Event-Typ:

{
  "event": "game.finished",
  "teamId": "abc123",
  "timestamp": 1751360000000,
  "data": {
    "gameId": "g_42",
    "teamHome": "DJK SG Bösperde",
    "teamAway": "TV Wickede-Ruhr",
    "scoreHome": 28,
    "scoreAway": 24,
    "date": "2026-06-28"
  }
}

Signaturprüfung

Jede Anfrage trägt zwei Header: X-Sechsmeter-Event (der Event-Typ) und X-Sechsmeter-Signature — ein HMAC-SHA256 des rohen Body, signiert mit dem Secret, das du beim Anlegen des Webhooks einmalig angezeigt bekommst (danach nicht mehr abrufbar, nur regenerierbar). Prüfe die Signatur, bevor du dem Payload vertraust:

const crypto = require('crypto');

function isValid(rawBody, signatureHeader, secret) {
  const expected = 'sha256=' +
    crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(signatureHeader),
    Buffer.from(expected)
  );
}

Wichtig: verwende den rohen, unveränderten Request-Body für die Prüfung (vor jeglichem JSON-Parsing durch dein Framework) — sonst weicht die Signatur ab.

Zustellung & Limits

  • Nur https://-URLs werden akzeptiert.
  • Timeout pro Zustellversuch: 8 Sekunden. Antwortet dein Endpunkt nicht mit einem Erfolgs-Status, gilt die Zustellung als fehlgeschlagen.
  • Es gibt aktuell keine automatischen Wiederholungsversuche — ein fehlgeschlagener Event wird nicht erneut zugestellt.
  • Status der letzten Zustellung (Erfolg/Fehler + Fehlermeldung) siehst du direkt in den Einstellungen neben dem jeweiligen Webhook.
  • Über den „Test“-Button kannst du jederzeit ein Test-Event mit derselben Signatur-Logik an deinen Endpunkt schicken.
© 2026 Sechsmeter. Dominate the Game.