Create inbound endpoint
POST /v1/inbound-endpoints
Create a new inbound webhook endpoint for receiving webhooks from external sources. The endpoint URL must be HTTPS and publicly accessible. A secret token and ingest URL are returned only in this response.
Important: The secret_token and ingest_url are only returned once. Store them securely.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
Friendly name for the inbound endpoint
Example
Stripe webhooksOptional description
Example
Receives Stripe payment eventsHTTPS URL of your endpoint that will receive forwarded webhooks. Must be publicly accessible. Internal/private IP addresses are blocked.
Example
https://myapp.com/webhooks/stripeEnable static token verification on incoming webhooks
Header name containing the static token (if verify_static_token is true)
Example
X-Webhook-TokenQuery parameter name containing the static token (alternative to header)
Example
tokenThe static token value (will be hashed for storage)
Example
my-secret-tokenEnable HMAC signature verification on incoming webhooks
Header name containing the HMAC signature (if verify_hmac is true)
Example
X-SignatureHMAC secret key (will be encrypted for storage)
Example
whsec_abc123Header name containing the request timestamp for replay protection
Example
X-Webhook-TimestampMaximum age in seconds for timestamp validation
Example
300Enable IP allowlist verification on incoming webhooks
CIDR blocks allowed to send webhooks (if verify_ip_allowlist is true)
Example
[ "203.0.113.0/24", "198.51.100.0/24"]Ordered list of header names to derive idempotency keys from incoming requests
Example
[ "X-Idempotency-Key"]HTTP status code returned to senders on successful ingestion
Example
202Enable HMAC signing on forwarded deliveries (secret auto-generated)
Examples
Basic inbound endpoint
{ "url": "https://myapp.com/webhooks/stripe", "name": "Stripe webhooks"}Endpoint with HMAC verification
{ "url": "https://myapp.com/webhooks/stripe", "name": "Stripe webhooks", "verify_hmac": true, "hmac_header_name": "Stripe-Signature", "hmac_secret": "whsec_abc123"}Endpoint with IP allowlist
{ "url": "https://myapp.com/webhooks/partner", "name": "Partner webhooks", "verify_ip_allowlist": true, "allowed_cidrs": [ "203.0.113.0/24", "198.51.100.0/24" ]}Responses
Section titled “ Responses ”Inbound endpoint created successfully
object
object
Unique inbound endpoint identifier (UUIDv7)
Example
01935abc-def0-7123-4567-890abcdef012Endpoint name
Example
Stripe webhooksForwarding URL
Example
https://myapp.com/webhooks/stripeShown only once! The full URL that external senders should POST webhooks to.
Example
https://receive.hookbridge.io/v1/webhooks/receive/01935abc-def0-7123-4567-890abcdef012/a1b2c3d4e5f6Shown only once! 32-character hex token embedded in the ingest URL.
Example
a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4Example
2025-12-06T12:00:00Zobject
Unique identifier for this request (useful for support)
Example
req_xyz123Example
{ "data": { "id": "01935abc-def0-7123-4567-890abcdef012", "name": "Stripe webhooks", "url": "https://myapp.com/webhooks/stripe", "ingest_url": "https://receive.hookbridge.io/v1/webhooks/receive/01935abc-def0-7123-4567-890abcdef012/a1b2c3d4e5f6", "secret_token": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4", "created_at": "2025-12-06T12:00:00Z" }, "meta": { "request_id": "req_xyz123" }}Invalid request
object
object
Machine-readable error code
Example
INVALID_REQUESTHuman-readable error message
Example
endpoint must be a valid HTTPS URLobject
Unique identifier for this request (useful for support)
Example
req_xyz123Examples
Endpoint not found
{ "error": { "code": "ENDPOINT_NOT_FOUND", "message": "endpoint not found" }, "meta": { "request_id": "req_xyz123" }}Invalid endpoint ID format
{ "error": { "code": "INVALID_REQUEST", "message": "endpoint_id must be in format ep_xxx" }, "meta": { "request_id": "req_xyz123" }}Invalid payload
{ "error": { "code": "INVALID_REQUEST", "message": "payload must be valid JSON" }, "meta": { "request_id": "req_xyz123" }}Invalid headers
{ "error": { "code": "INVALID_HEADERS", "message": "header 'Host' is forbidden and cannot be overridden" }, "meta": { "request_id": "req_xyz123" }}Unauthorized - Invalid or missing API key
object
object
Machine-readable error code
Example
INVALID_REQUESTHuman-readable error message
Example
endpoint must be a valid HTTPS URLobject
Unique identifier for this request (useful for support)
Example
req_xyz123Example
{ "error": { "code": "UNAUTHORIZED", "message": "Invalid or missing API key" }, "meta": { "request_id": "req_xyz123" }}Duplicate URL conflict
object
object
Machine-readable error code
Example
INVALID_REQUESTHuman-readable error message
Example
endpoint must be a valid HTTPS URLobject
Unique identifier for this request (useful for support)
Example
req_xyz123Example
{ "error": { "code": "DUPLICATE_URL", "message": "An inbound endpoint with this URL already exists in this project" }, "meta": { "request_id": "req_xyz123" }}Enter your credentials to populate code examples throughout the docs.