Skip to main content
Webhook.php
$rawBody = file_get_contents("php://input");
$headers = getallheaders();
$secret = 'your-webhook-secret';

if (!validate_webhook($headers, $rawBody, $secret)) {
  http_response_code(400);
  echo json_encode(["error" => "Invalid signature"]);
  exit;
}

$event = $headers['X-Webhook-Event'] ?? '';
$body = json_decode($rawBody, true);

switch ($event) {
  case 'invoice.completed':
    // handleInvoiceCompleted($body);
    break;
  default:
    error_log("Unhandled event: $event");
    break;
}

http_response_code(200);
echo "OK";