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.succeeded or charge.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