Skip to content
Hardcount
Run it locally
Pre-1.0 · one maintainer · Stripe and cards only · no SDKs (client libraries) yet · no production users yet. Docs describe v0.9.1 (29 Oct 2026) · What’s new →

Update webhook endpoint (no secret rotation)

PATCH
/v1/webhook-endpoints/endpoints/{id}
curl --request PATCH \
--url http://localhost:8080/v1/webhook-endpoints/endpoints/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "url": "example", "description": "example", "events": [ "example" ], "active": true }'

Mutates url / description / events / active WITHOUT rotating the signing secret — the receiver keeps verifying while the target or event set changes. Fields omitted are left unchanged; events are validated against the emit catalog.

id
required
string
Idempotency-Key
string

Makes the call safe to retry. Send a unique value (a UUID works) and the same value on every retry. For 24 hours, a repeat with the same key, method, path and body gets the first response again, with an Idempotent-Replayed: true header, instead of running again. The error cases are in docs/api-surface.md. The usage routes do not take it: each usage event carries its own idempotency_key.

Media typeapplication/json
object
url
string
description
string
events
Array<string>
active
boolean

Example generated

{
"url": "example",
"description": "example",
"events": [
"example"
],
"active": true
}

Updated endpoint

Media typeapplication/json
object
id
required
string
tenant_id
string
livemode
required
boolean
url
required
string
description
string
secret_last4
required
string
events
required

Subscribed event types. * means all.

Array<string>
active
required

False = paused.

boolean
secondary_secret_last4

The previous signing secret, during a rotation grace period.

string
secondary_secret_expires_at
string format: date-time
created_at
required
string format: date-time
updated_at
required
string format: date-time

Example generated

{
"id": "example",
"tenant_id": "example",
"livemode": true,
"url": "example",
"description": "example",
"secret_last4": "example",
"events": [
"example"
],
"active": true,
"secondary_secret_last4": "example",
"secondary_secret_expires_at": "2026-04-15T12:00:00Z",
"created_at": "2026-04-15T12:00:00Z",
"updated_at": "2026-04-15T12:00:00Z"
}

Endpoint not found

Invalid URL or unknown event type