Webhook RelayQuickstart

PHP SDK

philiprehberger/php-webhook-relay-client

Generated client + hand-written signature verifier. View source on GitHub.

Install

shell
composer require philiprehberger/php-webhook-relay-client

Send an event

php
use PhilipRehberger\WebhookRelayClient\WebhookRelayClient;

$relay = new WebhookRelayClient(getenv('WEBHOOK_RELAY_KEY'));

$event = $relay->ingest(
    type: 'order.created',
    payload: ['order_id' => 42],
    idempotencyKey: 'order-42-created',
);

print $event['id'].PHP_EOL;

Verify on the receiver

php
use PhilipRehberger\WebhookRelayClient\Signer;

$body = file_get_contents('php://input');     // raw bytes — DO NOT json_decode + re-encode
$header = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';

if (! Signer::verify(getenv('WEBHOOK_SECRET'), $body, $header)) {
    http_response_code(400);
    exit('Bad signature');
}