---
title: "Receive an issue.comment_created event"
method: POST
path: "issue.comment_created"
tags: ["Webhooks"]
---

# Receive an issue.comment_created event

`POST issue.comment_created` (webhook)

Beta: webhook event coverage and payload schemas may evolve. See /docs/integrations/webhooks for supported events and delivery limits. Captured after a local issue comment is created. GitCafe POSTs an immutable version 1 snapshot to an eligible active endpoint. Verify the timestamp and HMAC-SHA256 over timestamp + '.' + the unchanged UTF-8 request body using the indicated current signing-key generation. The signature value is sha256=<lowercase hex>. Retries reuse body and delivery identity but refresh timestamp and signing key. Delivery attempts are at least once; deduplicate by the signed body event id within each receiver subscription. The delivery header is an inspection identifier and is not covered by the signature. No ordering is promised. A 2xx response acknowledges acceptance. Network failures, 408, 425, 429 and 5xx retry within eight attempts or 24 hours; redirects and other statuses terminate. Retry-After is capped at one hour. See /docs/integrations/webhooks for configuration and failure recovery. This contract does not prove deployed transport qualification.

## Headers

- `X-GitCafe-Event` 'issue.comment_created', required
- `X-GitCafe-Delivery` string, required
- `X-GitCafe-Timestamp` string, required
- `X-GitCafe-Key-Version` string, required
- `X-GitCafe-Signature` string, required

## Payload

- object: Beta: webhook event coverage and payload schemas may evolve. See /docs/integrations/webhooks for supported events and delivery limits.
  - `type` 'issue.comment_created', required
  - `commentId` string, required
  - `comment` object
    - `id` string, required
    - `body` string, nullable, required
    - `bodyTruncated` boolean
    - `authorActorId` string, required
    - `version` integer, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `id` string, required
  - `version` '1', required
  - `createdAt` string, date-time, required
  - `actor` object
    - `id` string, required
  - `repository` object, required
    - `id` string, required
    - `orgId` string, required
    - `owner` string
    - `name` string
  - `installation` object
    - `id` string, required
  - `issue` IssueWebhookSnapshot, required: Beta: webhook event coverage and payload schemas may evolve. See /docs/integrations/webhooks for supported events and delivery limits.
    - `id` string, required
    - `number` integer, required
    - `title` string, required
    - `description` string, nullable
    - `assigneeIds` string[]
    - `labelIds` string[]
    - `state` 'triage' | 'backlog' | 'unstarted' | 'started' | 'completed' | 'canceled'
    - `version` integer
    - `priority` integer
    - `dueDate` string, date-time, nullable
    - `milestoneId` string, nullable
    - `locked` boolean
    - `pinned` boolean
    - `closedReason` string, nullable
    - `lockReason` string, nullable

## Acknowledgement `200`

The receiver accepted the event. Any 2xx status has this meaning.

## Other responses

- `429`: Retry within the delivery budget; Retry-After is capped at one hour.
- `503`: Temporary receiver failure; retry within the delivery budget.
- `default`: 408, 425 and other 5xx are retryable. Redirects and all other non-2xx statuses terminate this delivery.

---

[API](https://skmtc.dev/gitcafe/apis/git-cafe-api.md) - [All operations](https://skmtc.dev/gitcafe/apis/git-cafe-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gitcafe/apis/git-cafe-api/revisions/9fa233d2986d?raw)
