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

# Stripe Webhook

`POST /v1/billing/stripe/webhook`

## Request

- Base URL: `https://api.evidenso.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.evidenso.com/v1/billing/stripe/webhook`
- Auth: none declared

Receive a Stripe webhook. NO auth dependency — the signature is the auth.

Two try blocks, and the split between them is the whole safety argument:
the FIRST covers only parsing of an untrusted payload and answers 4xx; the
SECOND covers our own I/O (Stripe, Postgres) and answers 5xx. A single
combined block was the earlier shape and was wrong — a TypeError raised
while reading Stripe's own re-fetched object (say, another change to where
`current_period_end` lives) would have been reported as "bad payload" and
the event dropped for good.

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/evidenso/apis/persona-rag-api.md) - [All operations](https://skmtc.dev/evidenso/apis/persona-rag-api/llms.txt) - [OpenAPI document](https://skmtc.dev/evidenso/apis/persona-rag-api/revisions/86408c178d4f?raw)
