Webhook RelayQuickstart

TypeScript SDK

@philiprehberger/webhook-relay-client

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

Install

shell
npm i @philiprehberger/webhook-relay-client

Send an event

typescript
import { WebhookRelayClient } from "@philiprehberger/webhook-relay-client";

const relay = new WebhookRelayClient({
  apiKey: process.env.WEBHOOK_RELAY_KEY!,    // whk_live_... / whk_test_... / whk_sandbox_...
});

const event = await relay.ingest({
  type: "order.created",
  payload: { orderId: 42 },
  idempotencyKey: "order-42-created",
});

console.log(event.id, event.deliveries_summary);

Verify on the receiver

typescript
import { verifySignature } from "@philiprehberger/webhook-relay-client";

const body = await request.text();    // raw bytes — DO NOT JSON.parse first
const ok = verifySignature(
  process.env.WEBHOOK_SECRET!,
  body,
  request.headers.get("x-webhook-signature"),
);
if (!ok) return new Response("Bad signature", { status: 400 });