> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fincelo.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Fincelo webhook endpoints — receive ticket events from external platforms.

## Overview

Fincelo exposes webhook endpoints that external platforms can push events to — enabling real-time ticket intelligence without polling.

***

## Ticket Intelligence Webhook

Receives ticket events from any external support platform.

```
POST https://app.fincelo.app/api/webhooks/tickets?connectorId=YOUR_CONNECTOR_ID
```

### Headers

| Header                | Required | Description                            |
| --------------------- | -------- | -------------------------------------- |
| `Content-Type`        | Yes      | `application/json`                     |
| `x-hub-signature-256` | Optional | HMAC-SHA256 signature for verification |

### Payload Format

Fincelo accepts any JSON payload. It auto-detects common fields:

```json theme={null}
{
  "ticket": {
    "id": "12345",
    "subject": "Login not working",
    "description": "Users unable to login since update",
    "status": "open",
    "priority": "high",
    "requester_email": "cfo@customer.com",
    "created_at": "2026-07-01T09:00:00Z"
  }
}
```

Also accepts: `issue`, `case`, `conversation` as the root object.

### Response

```json theme={null}
{
  "ok": true,
  "status": "received",
  "connector": "Acme Zendesk"
}
```

Fincelo always returns 200 immediately and processes asynchronously.

***

## Google Chat Webhook

Receives button click events from Google Chat cards.

```
POST https://app.fincelo.app/api/webhooks/google-chat
```

***

## Slack Webhook

Receives interactive component events from Slack.

```
POST https://app.fincelo.app/api/webhooks/slack
```

Handles: URL verification challenge, button clicks, app mentions.

***

## WhatsApp Webhook

Receives inbound messages from CSMs replying via WhatsApp.

```
GET  https://app.fincelo.app/api/webhooks/whatsapp  ← Meta verification
POST https://app.fincelo.app/api/webhooks/whatsapp  ← Inbound messages
```

***

## Signature Verification

For security, verify that webhook payloads come from the expected source:

```typescript theme={null}
import { createHmac } from 'crypto'

function verify(secret: string, payload: string, signature: string): boolean {
  const expected = 'sha256=' + createHmac('sha256', secret).update(payload).digest('hex')
  return expected === signature
}
```

Set your webhook secret in **Settings → Support Intelligence → \[Connector] → Webhook Secret**.
