---
title: "Stripe webhook"
method: POST
path: "/api/stripe/webhooks"
tags: ["Billing"]
---

# Stripe webhook

`POST /api/stripe/webhooks`

## Request

- Base URL: `https://api.xpoz.ai`
- URL: `https://api.xpoz.ai/api/stripe/webhooks`
- Auth: none required

Receives Stripe events. The raw body is verified against the `stripe-signature` header.

## Headers

- `stripe-signature` string, required

## Request body

- StripeWebhookEvent: Raw Stripe event payload. Handled types: `customer.subscription.created`, `customer.subscription.updated`, `customer.subscription.deleted`, `checkout.session.completed`, `payment_intent.succeeded`, `payment_intent.payment_failed`.

## Response `200`

Received.

- object
  - `received` true, required

## Other responses

- `400`: Missing or invalid signature.
- `500`: Server error.

---

[API](https://skmtc.dev/xpoz/apis/xpoz-api.md) · [All operations](https://skmtc.dev/xpoz/apis/xpoz-api/llms.txt) · [OpenAPI document](https://skmtc.dev/xpoz/apis/xpoz-api/revisions/c18261f587a4?raw)
