---
title: "Webhook Endpoint"
method: POST
path: "/api/psa/{team_key}/cw/{connection_key}/webhook"
tags: ["psa"]
---

# Webhook Endpoint

`POST /api/psa/{team_key}/cw/{connection_key}/webhook`

## Request

- Base URL: `https://api.superit.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.superit.ai/api/psa/{team_key}/cw/{connection_key}/webhook`
- Auth: none declared

Receive callback events from ConnectWise.

## Path parameters

- `team_key` string, required
- `connection_key` string, required

## Request body

- ConnectWiseWebhookBody: ConnectWise Manage callback payload. CW posts PascalCase keys (Action, Type, ID). Extra vendor fields are preserved for audit storage via ``extra="allow"``.
  - `Action` string, required
  - `Type` string, required
  - `ID` integer, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `400`: Invalid input
- `401`: Not authenticated
- `403`: Forbidden
- `404`: Not found
- `405`: Method not allowed
- `409`: Conflict
- `422`: Validation Error
- `429`: Intake saturated; ConnectWise retries.

---

[API](https://skmtc.dev/superit/apis/super-it-api.md) - [All operations](https://skmtc.dev/superit/apis/super-it-api/llms.txt) - [OpenAPI document](https://skmtc.dev/superit/apis/super-it-api/revisions/4944d556c2bb?raw)
