---
title: "Configure project webhook"
method: POST
path: "/v1/invitations/webhook"
---

# Configure project webhook

`POST /v1/invitations/webhook`

## Request

- Base URL: `https://api.zavu.dev`
- URL: `https://api.zavu.dev/v1/invitations/webhook`
- Auth: HTTP bearer

Create or replace the project webhook for the project behind the API key, and activate it. The response carries the signing `secret`; an existing secret is kept.

This is where `invitation.status_changed` is delivered. Events are scoped to this project: when you onboard clients in sub-accounts, call this with each sub-account's API key.

## Request body

- ProjectWebhookCreateRequest
  - `url` string, uri, required
  - `events` ProjectWebhookEvent[], required

## Response `201`

Webhook configured.

- object
  - `webhook` ProjectWebhook, required: The project-level webhook. It receives project events such as `invitation.status_changed` for this project only: a parent project does not receive its sub-accounts' events, so configure one per sub-account with that sub-account's API key.
    - `url` string, uri, required
    - `events` ProjectWebhookEvent[], required
    - `secret` string: Signing secret for `X-Zavu-Signature`. Returned only by `POST /v1/invitations/webhook`.
    - `active` boolean, required

## Other responses

- `400`: Invalid URL or an event a project webhook cannot subscribe to.
- `401`: Unauthorized.

---

[API](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api.md) - [All operations](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zavudev/apis/zavu-unified-messaging-layer-api/revisions/75bc777b0ffb?raw)
