---
title: "Handle Stripe webhook events."
method: POST
path: "/usage/v2/stripe-webhook/"
tags: ["usage"]
---

# Handle Stripe webhook events.

`POST /usage/v2/stripe-webhook/`

## Request

- Base URL: `http://localhost:8000`
- URL: `http://localhost:8000/usage/v2/stripe-webhook/`
- Auth: one of:
  - API key in header `X-Api-Key`
  - API key in header `X-Secret-Key`

No auth — Stripe authenticates via signature header.
APIView.as_view() auto-applies csrf_exempt.

## Request body

- StripeWebhookRequest
  - `id` string
  - `type` string
  - `data` object

## Response `200`

OK

- StripeWebhookResponse
  - `status` string, required
  - `result` StripeWebhookResult
    - `event_type` string
    - `action` string
    - `status` string
    - `message` string

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error
- `default`: Default error response

---

[API](https://skmtc.dev/futureagi/apis/future-agi-management-api.md) · [All operations](https://skmtc.dev/futureagi/apis/future-agi-management-api/llms.txt) · [OpenAPI document](https://skmtc.dev/futureagi/apis/future-agi-management-api/revisions/c8684118e142?raw)
