---
title: "Stripe Webhook"
method: POST
path: "/v1/billing/webhook"
tags: ["billing"]
---

# Stripe Webhook

`POST /v1/billing/webhook`

Stripe webhook handler — processes subscription events.

This endpoint does NOT require Bearer auth. Instead, Stripe signs
the payload with the webhook secret, which we verify.

Handled events:
  - checkout.session.completed  — activate plan
  - customer.subscription.updated — update plan on change
  - customer.subscription.deleted — downgrade to free
  - invoice.paid — reset quota on billing cycle renewal
  - invoice.payment_failed — log warning

IMPORTANT: ``invoice.paid`` must be registered in the Stripe
Dashboard webhook settings for monthly quota reset to work.

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/sigmanticai/apis/sigmanticai-gateway.md) · [All operations](https://skmtc.dev/sigmanticai/apis/sigmanticai-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/sigmanticai/apis/sigmanticai-gateway/revisions/15fa2b3394e5?raw)
