Skip to main content
Headless CLIWebhooks + replay
Headless CLI

Webhooks + replay

Manage webhook endpoints and replay deliveries without leaving your terminal.

Register endpoints, inspect deliveries, replay failed deliveries, develop locally with a tunnel.

The CLI is the fastest way to register, inspect, and replay webhook deliveries — useful when iterating on a receiver or when production misses an event.

Register an endpoint

bash
aly-store-cli webhooks create \  --site-slug acme \  --url https://my-app.example/aly/webhooks \  --event order.created \  --event order.fulfilled \  --event order.refunded

The output includes the endpoint id and a secret string. Save the secret — it's shown once, and you'll need it to verify HMAC signatures.

List

bash
aly-store-cli webhooks list --site-slug acme --json

Inspect deliveries

bash
# Last 25 deliveriesaly-store-cli webhooks deliveries list wh_8c... --limit 25 --json # Failed onlyaly-store-cli webhooks deliveries list wh_8c... --status failed

Replay

bash
# Replay one deliveryaly-store-cli webhooks deliveries replay wh_8c... del_3f... # Replay every failed delivery in the last houraly-store-cli webhooks deliveries list wh_8c... --status failed --since 1h --json \  | jq -r '.[].id' \  | xargs -I{} aly-store-cli webhooks deliveries replay wh_8c... {}
Replay is idempotent — for you
The receiver sees a fresh delivery (new X-Aly-Delivery-Idand signature) but the event payload is identical, including event.id. Your handler should dedupe on event.id; replays then become safe.

Test locally

Use any tunnel — cloudflared, ngrok, Tailscale Funnel — to expose localhost:3000. Register that URL with the CLI and trigger an event from the dashboard or another aly-store-cli command. Replay through the CLI to debug.

bash
# In one terminalcloudflared tunnel --url http://localhost:3000 # In anotheraly-store-cli webhooks create \  --site-slug acme \  --url https://your-tunnel.trycloudflare.com/aly/webhooks \  --event order.created

Delete

bash
aly-store-cli webhooks delete wh_8c...
Updated

Was this page helpful?