Skip to main content
POST /api/v1/webhooks/stripe Accepts Stripe webhook events, verifies the Stripe-Signature header, and applies idempotent subscription synchronization. No Bearer token is required — authentication is handled via the signature header.
Configure this URL in your Stripe dashboard under Developers → Webhooks. Togul uses the Stripe-Signature header to verify event authenticity.

Headers

Stripe-Signature
string
required
HMAC signature provided by Stripe. Used to verify the event payload.

Request body

A Stripe event object as JSON. The structure follows the Stripe Event object format.

Response

received
boolean
required
Always true when the event was accepted and queued for processing.

Errors

StatusWhen
400Payload could not be parsed
401Signature verification failed

Example

curl -X POST http://localhost:8080/api/v1/webhooks/stripe \
  -H "Content-Type: application/json" \
  -H "Stripe-Signature: t=1710432000,v1=abc123..." \
  -d '{"id": "evt_abc123", "type": "customer.subscription.updated", ...}'
{
  "received": true
}

Build docs developers (and LLMs) love