Quickstart

Updated May 02, 2026

Before you start

You need a Splithook account. Sign up for free — no credit card required. The Free plan gives you one endpoint and 100 requests/day, which is plenty for this guide.

Step 1 — Create an endpoint

After registration, your workspace is created automatically. Click New endpoint in the sidebar and give it a name (e.g. stripe-dev). Splithook generates a unique slug:

https://splithook.com/e/ab3dkf7z

Copy that URL — it's what you'll point your provider at.

Step 2 — Send a test webhook

You don't need an actual Stripe account to try this. Fire a raw curl from your terminal:

curl -X POST https://splithook.com/e/ab3dkf7z \
  -H "Content-Type: application/json" \
  -H "X-GitHub-Event: push" \
  -d '{"ref":"refs/heads/main","commits":[{"id":"abc123","message":"fix: typo"}]}'

Switch back to the Splithook dashboard. The webhook appears instantly in the live feed — no refresh needed.

Step 3 — Inspect the payload

Click the event row. You get:

Step 4 — Forward to localhost

Now let's get the webhook to your local handler. You have two options:

Option A — HTTP destination (ngrok / cloudflare tunnel)

Start an existing tunnel and grab its public URL, then add a destination:

  1. Open the endpoint, click Add destination.
  2. Choose HTTP, enter your local URL (e.g. https://abc.ngrok.io/webhooks/github).
  3. Click Save.

Any new webhook that arrives at the endpoint is immediately forwarded there.

Option B — Splithook Tunnel (no ngrok needed)

Install the CLI and authenticate once:

# macOS / Linux
curl -fsSL https://splithook.com/install.sh | sh
splithook auth

Then start a tunnel that forwards directly to your local port:

splithook tunnel --endpoint ab3dkf7z --to localhost:3000

The CLI connects over a persistent Mercure channel. No open ports, no firewall rules.

Step 5 — Replay with re-signing

Replay any past event to your destination with one click:

  1. Click the event in the feed.
  2. Hit Replay (top right of the inspector).
  3. Splithook re-signs the payload with your destination's signing secret and fresh timestamp.
  4. Your handler receives a valid, verifiable webhook — as if it just arrived from the provider.

To configure re-signing, add a Signing secret to the destination: Settings → Signing secrets → New, then attach it in the destination editor.

What's next