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

# Webhook events

> Event types sent by Kairo Shield

| Event | When it is sent |
| - | - |
| `transaction.scored` | Transaction scored with low/medium risk (standard decision) |
| `transaction.high_risk` | High risk or REVIEW decision by score |
| `transaction.blocked` | Transaction blocked (REJECT decision) |
| `alert.created` | Fraud alert created in the portal |
| `alert.status_changed` | Alert status changed |
| `alert.escalated` | Alert escalated |
| `feedback.received` | Confirmed feedback recorded via API |

> [!NOTE]
>
> For each scored transaction, **one** transaction event is emitted: the most specific available (`blocked` → `high_risk` → `scored`). If subscribed to several, you still receive a single POST per score.

## Delivery headers

| Header | Description |
| - | - |
| `Content-Type` | `application/json` |
| `X-Kairo-Signature` | `sha256={HMAC-SHA256 of raw body}` |
| `X-Kairo-Event` | Event name |
| `X-Kairo-Delivery` | Unique delivery ID |
| `X-Kairo-Timestamp` | ISO 8601 UTC timestamp |

## Example — transaction.scored

```json theme={null}
{
  "event": "transaction.scored",
  "timestamp": "2025-06-15T14:30:00Z",
  "data": {
    "transaction_id": "550e8400-e29b-41d4-a716-446655440000",
    "client_id": "fintech_a",
    "fraud_score": 0.15,
    "risk_level": "LOW",
    "decision": "APPROVE",
    "decision_source": "MODEL",
    "model_version": "kairo-shield",
    "threshold_used": {"low_max": 0.25, "medium_max": 0.55, "high_max": 0.80},
    "scored_at": "2025-06-15T14:30:01Z"
  }
}
```

Retries use exponential backoff per configured `retry_policy` (or platform defaults).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.