---
title: "Clerk Account Webhook"
method: POST
path: "/api/webhooks/clerk"
tags: ["clerk-webhooks"]
---

# Clerk Account Webhook

`POST /api/webhooks/clerk`

## Request

- Base URL: `https://app.thinqos.com` (the document declares no server; this is the origin it was published from)
- URL: `https://app.thinqos.com/api/webhooks/clerk`
- Auth: none declared

Reconcile a person's `is_active` with Clerk's authoritative account state.

Disabled (503) when `clerk_account_sync_enabled` is false or the webhook
secret is unset - both are configuration states, not signature failures,
and 503 (not 200 or 404) is what tells Clerk's dashboard "this endpoint is
not ready" rather than "delivered fine".

The payload's own `data` is used ONLY to find which Clerk user id the
event is about; every flag/timestamp it carries is deliberately ignored -
the worker re-fetches Clerk's CURRENT state under a row lock instead of
trusting anything the delivery itself claims. This is what makes a stale
or reordered delivery, and a `user.deleted` event for a user recreated
under the same id, both safe to apply.

## Response `200`

Successful Response

- object

---

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