---
title: "POST Handle incoming webhooks for a specific provider and connection"
description: "Receives webhook payloads, verifies signatures if configured, and processes them through the appropriate integration handler."
last_updated: "2026-05-06T07:33:49.382244+00:00"
canonical_url: "https://www.doc0.dev/docs/49c89830-117b-4def-8edc-b5bcc50766e0/api/webhooks/webhookcontroller-handlewebhook"
---

<APIEndpoint
  method={"POST"}
  path={"/integrations/webhooks/:providerSlug/:connectionId"}
  summary={"Handle incoming webhooks for a specific provider and connection"}
  description={"Receives webhook payloads, verifies signatures if configured, and processes them through the appropriate integration handler."}
  deprecated={false}
  baseUrl={""}
/>

## Parameters

<APIParameters parameters={[{"name":"providerSlug","in":"path","required":true,"description":"The slug of the integration provider (e.g., 'github', 'jira').","schema":{"type":"string"}},{"name":"connectionId","in":"path","required":true,"description":"The ID of the connection associated with the webhook.","schema":{"type":"string"}},{"name":"headers","in":"header","required":true,"description":"All incoming request headers, used for signature verification and event type extraction.","schema":{"type":"object"}}]} />

## Request Body

The payload of the webhook, which can be any JSON object.

<APIRequestBody
  contentType={"application/json"}
  required={true}
  schema={{"type":"object"}}
/>

## Responses

<APIResponse
  statusCode={"200"}
  description={"Webhook processed successfully."}
  contentType={"application/json"}
  schema={{"type":"object"}}
/>

<APIResponse
  statusCode={"400"}
  description={"Bad Request - e.g., provider does not support webhooks, or connection is not active."}
  contentType={"application/json"}
/>

<APIResponse
  statusCode={"401"}
  description={"Unauthorized - Invalid signature."}
  contentType={"application/json"}
/>

<APIResponse
  statusCode={"404"}
  description={"Not Found - Unknown provider or connection not found."}
  contentType={"application/json"}
/>

## Try It

<APIPlayground
  method={"POST"}
  path={"/integrations/webhooks/:providerSlug/:connectionId"}
  parameters={[{"name":"providerSlug","in":"path","required":true,"description":"The slug of the integration provider (e.g., 'github', 'jira').","schema":{"type":"string"}},{"name":"connectionId","in":"path","required":true,"description":"The ID of the connection associated with the webhook.","schema":{"type":"string"}},{"name":"headers","in":"header","required":true,"description":"All incoming request headers, used for signature verification and event type extraction.","schema":{"type":"object"}}]}
  requestBody={{"contentType":"application/json","required":true,"description":"The payload of the webhook, which can be any JSON object.","schema":{"type":"object"}}}
  baseUrl={""}
/>


## Sitemap

See the full [sitemap](https://www.doc0.dev/docs/49c89830-117b-4def-8edc-b5bcc50766e0/llms.txt) for all pages in this wiki.
