Docs

Quickstart: Receive Webhooks with Fasthook

In this quickstart, you will receive webhooks with FastHook by creating a public source URL, routing events to an HTTP destination, connecting the two pieces, and sending a test webhook request with curl.

The goal is to prove the complete webhook delivery path before adding production providers, filters, transformations, retries, deduplication, or rate limits.

You will create the pieces in the same order they exist in the FastHook event gateway: source, destination, connection, then a test request.

What You Will Build

You will build a minimal webhook route that accepts an inbound HTTP request and forwards it to a destination endpoint. This is the smallest useful FastHook workflow for testing webhook ingestion and delivery.

  • A source URL that receives webhook requests.
  • An HTTP destination that receives routed event payloads.
  • A connection that links the source to the destination.
  • A curl request that confirms FastHook can receive and route the webhook.

Before You Begin

You only need a FastHook dashboard session, a destination endpoint that can receive HTTP POST requests, and a terminal with curl installed. For the destination, a staging API, a local tunnel, or a temporary webhook testing endpoint is enough.

If you do not have a real receiver yet, create the FastHook objects first and come back to the destination URL when your endpoint is ready.

1. Create A Source

A source is the public ingress endpoint that receives webhook traffic. Create it first so you have a stable URL to give to Stripe, GitHub, Shopify, an internal service, or a curl command.

  • Open Sources in the FastHook dashboard.
  • Create a Webhook source named quickstart-source.
  • Save the source and copy the generated Source URL.
  • Keep this URL nearby. You will use it in the final curl step.
Create a source. FastHook will generate the inbound Source URL after saving.

2. Create A Destination

A destination is the HTTP endpoint that receives events after FastHook accepts them. For the first pass, use a test receiver or staging endpoint that returns a successful 2xx response.

  • Open Destinations in the dashboard.
  • Create an HTTP destination named quickstart-destination.
  • Set the destination URL to your receiver endpoint.
  • Choose POST as the HTTP method unless your receiver expects another supported method.
Create a destination for the HTTP endpoint that should receive routed events.

3. Create A Connection

A connection links one source to one destination. Once the connection exists, FastHook knows where accepted webhook requests should be delivered.

  • Open Connections in the dashboard.
  • Create a connection named quickstart-connection.
  • Select quickstart-source as the source.
  • Select quickstart-destination as the destination.
  • Save the connection without filters, transformations, retries, or delays for now.
Create the connection by selecting the source and destination.
Review the connection settings before testing the route.

4. Send A Test Webhook With Curl

Send a POST request to the Source URL you copied in step 1. FastHook should accept the request, create a routed event, and deliver it through the connection to your destination.

This request acts like a provider webhook. The headers and JSON body are intentionally simple so you can verify the routing path before working with provider-specific signatures or payload formats.

  • Replace the URL with your actual Source URL.
  • Run the command from your terminal.
  • Open Requests to confirm FastHook received the webhook.
  • Open Events or your destination receiver to confirm delivery.
Shell
curl -X POST "https://hook-q6z62b6py5o79b.fasthook.io/" \
  -H "Content-Type: application/json" \
  -H "X-Event-Type: order.updated" \
  -d '{
    "id": "evt_quickstart_1",
    "type": "order.updated",
    "created_at": "2026-05-12T12:00:00Z",
    "data": {
      "order_id": "ord_123",
      "status": "paid"
    }
  }'

Verify The Webhook Delivery

After running the curl command, check both sides of the route. In FastHook, the inbound request should appear in Requests, and the routed delivery should appear as an event or attempt for the connection.

Then check your destination receiver. A successful quickstart means the receiver got the JSON payload and returned a successful HTTP response.

  • Use Requests to confirm FastHook received the webhook.
  • Use Events to inspect delivery status and attempts.
  • Use your destination logs to confirm the payload reached your service.
  • If delivery failed, inspect the response code and body from the destination.

Common Quickstart Issues

  • 404 or DNS errors usually mean the curl command is not using the generated Source URL.
  • A failed event usually means the destination URL is unreachable or returned a non-2xx response.
  • Missing JSON in your receiver often means the destination endpoint is not parsing application/json.
  • Duplicate test events are expected if you run the curl command multiple times.

Where To Go Next

Once the quickstart route works, you can replace the curl request with a real provider webhook. Put the FastHook Source URL into the provider dashboard, trigger a provider event, and inspect the request and delivery result in FastHook.

For production webhook infrastructure, add the controls your receiver needs: verification, retries, filters, transformations, deduplication, and throughput limits.

  • Add retry rules if the destination can fail temporarily.
  • Add filters when only some event types should be delivered.
  • Add transformations when the receiver needs a different payload shape.
  • Add deduplication when provider retries can repeat the same business event.

Next