Create a destination
Add the customer's HTTPS endpoint and choose its rate and burst limits.
Publish an event through one API. Hookbridge stores the payload, signs the request, delivers it to the customer endpoint, and schedules retries when the destination is unavailable.
Hookbridge returns a message ID after the payload is stored and queued. Customer latency and retries stay outside your application request path.
Add the customer's HTTPS endpoint and choose its rate and burst limits.
Send the endpoint ID and JSON payload through an SDK or the HTTP API.
Review every attempt, retry pending messages, or replay retained deliveries.
The preview below follows the existing Endpoints page structure and fields. The endpoint values are examples.
Manage webhook delivery destinations
| Endpoint ID | URL | Status | Description | Created | Actions |
|---|---|---|---|---|---|
| ep_customer_billing | api.customer.comhttps://api.customer.com/webhooks | Active | Customer billing | Jul 12, 2026 | |
| ep_crm_events | events.customer.comhttps://events.customer.com/hookbridge | Active | CRM events | Jul 8, 2026 |
The SDKs wrap the same send API and return the Hookbridge message record.
Open the API referencecurl -X POST https://send.hookbridge.io/v1/webhooks/send \
-H "Authorization: Bearer $HOOKBRIDGE_KEY" \
-H "Content-Type: application/json" \
-d '{"endpoint_id":"ep_customer_billing","payload":{"event":"invoice.paid"}}'
# => {"data":{"message_id":"01935abc-...","status":"queued"}}import { HookBridge } from '@hookbridge/sdk';
const hookbridge = new HookBridge({ apiKey: process.env.HOOKBRIDGE_KEY });
const message = await hookbridge.send({
endpointId: 'ep_customer_billing',
payload: { event: 'invoice.paid' }
});
console.log(message.messageId);import os
from hookbridge import HookBridge
client = HookBridge(api_key=os.environ["HOOKBRIDGE_KEY"])
message = client.send(
endpoint_id="ep_customer_billing",
payload={"event": "invoice.paid"},
)
print(message.message_id)import hookbridge "github.com/hookbridge/hookbridge-go/v2"
client, _ := hookbridge.NewClient(os.Getenv("HOOKBRIDGE_KEY"))
message, _ := client.Send(ctx, hookbridge.SendRequest{
EndpointID: "ep_customer_billing",
Payload: map[string]any{"event": "invoice.paid"},
})
fmt.Println(message.MessageID)require "hookbridge"
client = HookBridge.new(api_key: ENV["HOOKBRIDGE_KEY"])
message = client.send(
endpoint_id: "ep_customer_billing",
payload: { event: "invoice.paid" }
)
puts message.message_id<?php
require 'vendor/autoload.php';
use HookBridge\HookBridge;
$client = new HookBridge(getenv('HOOKBRIDGE_KEY'));
$message = $client->send(
endpointId: 'ep_customer_billing',
payload: ['event' => 'invoice.paid']
);Retryable failures are handled automatically with exponential backoff and jitter.
Every outbound request can be verified using its timestamp and HMAC-SHA256 signature.
Attach an idempotency key when your application may repeat the same send request.
Control sustained delivery and short bursts independently for each destination.
Inspect DNS, TCP, TLS, time to first byte, and total response time.
Redeliver retained messages from the console or API after a customer fixes an endpoint.
Use the API or an SDK. No credit card is required.