---
title: "Billing webhook"
method: POST
path: "/billing/webhook"
tags: ["Billing"]
---

# Billing webhook

`POST /billing/webhook`

Receive a Creem subscription event. Authenticated by signature, not by session, and idempotent per event id.

## Response `200`

The event was accepted

- BillingWebhookResult
  - `processed` boolean, required
  - `duplicate` boolean, required — True when this event id was already applied, so the delivery was a safe no-op.

## Other responses

- `400` — Signature verification failed
- `404` — Billing is not enabled on this instance

## Changes

- **2026-08-24** `08bbb5bedb5d` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/billing/webhook/post.md)

---

[API](https://skmtc.dev/usekaneo/apis/kaneo-api.md) · [All operations](https://skmtc.dev/usekaneo/apis/kaneo-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/usekaneo/kaneo-api/revisions/08bbb5bedb5d/schema)
