PlanDocket
Fortgeschritten 15 min

Webhooks einrichten

Echtzeit-Benachrichtigungen für Ereignisse konfigurieren.

Voraussetzungen

  • Ein API-Schlüssel mit den erforderlichen Bereichen
  • Ein aktiver PlanDocket-Account
1

Webhook-Endpunkt erstellen

Erstellen Sie einen Endpunkt auf Ihrem Server, der POST-Anfragen empfangen kann.

2

Webhook registrieren

Registrieren Sie Ihren Webhook-Endpunkt über die API.

curl -X POST "https://your-tenant.plandocket.com/api/v1/webhooks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://your-server.com/webhook",
    "events": ["participant.added", "invoice.paid"]
  }'
3

Signatur validieren

Validieren Sie die Webhook-Signatur, um die Authentizität sicherzustellen.

<?php
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';
$timestamp = $_SERVER['HTTP_X_WEBHOOK_TIMESTAMP'] ?? '';
$secret = 'your_webhook_secret';

// Signature format: v1=<hmac>
if (!str_starts_with($signature, 'v1=')) {
    http_response_code(401);
    exit('Invalid signature format');
}

// Verify timestamp is recent (max 5 minutes)
if (!is_numeric($timestamp) || abs(time() - (int) $timestamp) > 300) {
    http_response_code(401);
    exit('Timestamp expired');
}

$signedPayload = $timestamp . '.' . $payload;
$expected = hash_hmac('sha256', $signedPayload, $secret);

if (!hash_equals($expected, substr($signature, 3))) {
    http_response_code(401);
    exit('Invalid signature');
}

$event = json_decode($payload, true);
API Version v1.0
Esc zum Schließen