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);