---
title: "Stripe Webhook"
method: POST
path: "/webhooks/stripe"
---

# Stripe Webhook

`POST /webhooks/stripe`

## Request

- Base URL: `https://usemeridian.us` (the document declares no server; this is the origin it was published from)
- URL: `https://usemeridian.us/webhooks/stripe`
- Auth: none declared

Handle Stripe webhook events.

Verifies the ``Stripe-Signature`` header against ``STRIPE_WEBHOOK_SECRET``.
On ``checkout.session.completed`` or ``invoice.paid``:
  1. Upserts the tenant by email.
  2. Provisions a Neon DB if not already done.
  3. Creates an API bearer token and sends a welcome email.

Returns ``{"status": "ok"}`` on success or if the event type is ignored.
Returns 400 on signature verification failure.

## Response `200`

Successful Response

- object

---

[API](https://skmtc.dev/usemeridian/apis/meridian.md) · [All operations](https://skmtc.dev/usemeridian/apis/meridian/llms.txt) · [OpenAPI document](https://skmtc.dev/usemeridian/apis/meridian/revisions/f37a894bd374?raw)
