Webhook Endpoint
A webhook endpoint is the URL on your server that Stripe sends event notifications to, configured with its own secret and list of subscribed events.
A webhook endpoint is the specific URL on your server that Stripe delivers webhook notifications to. It's the receiving end of the connection: a publicly reachable HTTPS address that accepts POST requests carrying event data.
What defines an endpoint
Each endpoint you register in Stripe has three key properties:
- A URL — where events are sent, e.g.
https://api.yourapp.com/stripe/webhooks. - A list of enabled events — you subscribe to specific types like
payment_intent.succeededorcharge.dispute.created, or to everything. - A signing secret — a value starting with
whsec_, unique to that endpoint, used to verify that a request genuinely came from Stripe. See signature verification.
Test vs live endpoints
Endpoints are scoped to a mode. An endpoint created in test mode only receives test events and has its own signing secret; a live-mode endpoint receives real events with a different secret. Mixing them up — verifying a live event against a test secret — is a common cause of verification failures.
Reliability
Your endpoint should respond quickly with a 2xx status and do heavy work asynchronously, because Stripe treats a slow or non-2xx response as a failure and retries it. If an endpoint keeps failing, Stripe may eventually disable it and notify you. Keeping the handler fast and returning success immediately — then processing in the background — is the standard pattern.
Rather than run and monitor your own endpoint for common payment alerts, many teams let ChargeBell receive the events and post plain-English updates to Slack, avoiding the maintenance of a listener entirely.
Related terms
Updated July 6, 2026