---
title: "Handle B2B Stripe Webhook"
method: POST
path: "/api/b2b/webhooks/stripe"
tags: ["b2b-webhooks"]
---

# Handle B2B Stripe Webhook

`POST /api/b2b/webhooks/stripe`

## Request

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

Handle Stripe webhook events for B2B subscriptions.

**Supported Events:**
- `customer.subscription.created` - New subscription
- `customer.subscription.updated` - Status/tier changes
- `customer.subscription.deleted` - Cancellation
- `invoice.payment_succeeded` - Successful payment
- `invoice.payment_failed` - Failed payment
- `customer.subscription.trial_will_end` - Trial ending notification

**Security:**
Requires valid Stripe signature verification.

**Returns:**
- 200: Event processed successfully
- 400: Invalid signature or payload
- 500: Internal error

## Headers

- `Stripe-Signature` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/sig/apis/ai-visibility-intelligence-api.md) · [All operations](https://skmtc.dev/sig/apis/ai-visibility-intelligence-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sig/apis/ai-visibility-intelligence-api/revisions/3ec39f9be9e0?raw)
