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

# Webhooks & notifications

> Receive real-time notifications when monitored entities change. TIC supports webhook, email, and SMS delivery.

<Info>
  This page explains the shared notification model and the **v1 API** URL examples. For the full **LENS (v2)** watchlist surface — CRUD, members, subscriptions, event types, dashboard, and bulk acknowledge — see [Watchlists in the v2 API](/api-lens/watchlists).
</Info>

## Concepts

TIC uses three concepts for change notifications. Keeping them straight makes the rest of this page easier to follow.

| Term                     | Meaning                                                                                                                                                                                        |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Watchlist**            | A list of entities you want to monitor (companies, persons, addresses, properties, vehicles).                                                                                                  |
| **Notification trigger** | A destination attached to a watchlist that receives notifications. A trigger has a **type** (`webhook`, `email`, or `sms`) and a **destination** (URL, email address, or mobile phone number). |
| **Event**                | A detected change to a watchlist member (e.g. new address, new beneficial owner). Events are delivered to every enabled trigger on the watchlist.                                              |

A webhook is one *type* of notification trigger — specifically, one whose destination is an HTTPS URL. Email and SMS triggers carry a narrower summary; **only webhook triggers receive the full event payload**.

<Tip>
  Use webhook triggers when you need the full event data. Use email/SMS when a human just needs to be alerted that *something* changed.
</Tip>

## Creating a notification trigger

Before a trigger becomes active it must be **confirmed**. Confirmation behavior depends on the trigger type:

### Webhook trigger (URL)

Auto-confirms when the destination URL responds with a successful HTTP status code to the initial confirmation request. Retries up to three times.

### Email trigger

An email is sent to the destination address with a confirmation link. The trigger activates once the recipient clicks it.

### SMS trigger

A text message is sent to the destination mobile number with a confirmation link. The trigger activates once the recipient clicks it.

## Example — creating a webhook trigger

The example below adds a webhook trigger to watchlist `6` that reacts to changes in address, annual reports, intelligence, representatives, and status.

```bash cURL theme={null}
curl \
  --request POST \
  --header "Content-Type: application/json" \
  --header "x-api-key: your_api_key" \
  --data '
    {
      "Destination": "https://webhook.site/cf728358-1738-4ffe-be04-f14a9d28a4de",
      "DestinationType": "webhook",
      "Address": true,
      "AnnualReport": true,
      "Intelligence": true,
      "Representatives": true,
      "Status": true
    }
  ' \
  https://api.tic.io/watchlists/6/triggers
```

```json Response theme={null}
{
  "teamWatchListTriggerId": 2,
  "destination": "https://webhook.site/cf728358-1738-4ffe-be04-f14a9d28a4de",
  "destinationType": "webhook",
  "address": true,
  "annualReport": true,
  "intelligence": true,
  "representatives": true,
  "status": true,
  "hasBeenValidated": false,
  "lastMessageSentAtUtc": null,
  "lastUpdatedAtUtc": "2024-12-22T10:29:39.1746639Z"
}
```

A confirmation notification is then POSTed to the destination URL using the same payload format shown below.

```json Webhook payload theme={null}
[
  {
    "teamWatchListMemberEventId": 1,
    "teamWatchListMemberId": 1,
    "teamWatchListId": 1,
    "externalId": "EXTERNAL ID 1",
    "companyId": 3503318,
    "watchListMemberEventType": "companyAddress",
    "eventDate": "2024-02-02T10:49:24",
    "lastUpdatedAtUtc": "2025-05-02T11:30:09"
  }
]
```

## Testing a webhook trigger

You can test webhook triggers to verify your endpoint handles the payload correctly.

```bash cURL theme={null}
curl \
  --request POST \
  --header "Content-Type: application/json" \
  --header "x-api-key: your_api_key" \
  https://api.tic.io/watchlists/6/triggers/test
```

The test POST carries an array of sample events. Since **2025-05-02**, every event in the array includes the source of the change.

```json Test payload theme={null}
[
  {
    "teamWatchListMemberEventId": 1,
    "teamWatchListMemberId": 9029,
    "teamWatchListId": 18,
    "externalId": "MY_NUMBER_1",
    "companyId": 12345678,
    "watchListMemberEventType": "companyAddress",
    "eventDate": "2024-02-02T10:49:24",
    "lastUpdatedAtUtc": "2025-05-02T11:30:09"
  },
  {
    "teamWatchListMemberEventId": 2,
    "teamWatchListMemberId": 9029,
    "teamWatchListId": 18,
    "externalId": "MY_NUMBER_2",
    "companyId": 12345678,
    "watchListMemberEventType": "companyRegistration",
    "eventDate": "2025-04-09T15:21:04",
    "lastUpdatedAtUtc": "2025-05-02T11:30:09"
  },
  {
    "teamWatchListMemberEventId": 3,
    "teamWatchListMemberId": 9029,
    "teamWatchListId": 18,
    "externalId": "MY_NUMBER_3",
    "companyId": 12345678,
    "watchListMemberEventType": "companyIntelligence",
    "eventDate": "2025-04-13T15:47:27",
    "lastUpdatedAtUtc": "2025-05-02T11:30:09"
  },
  {
    "teamWatchListMemberEventId": 4,
    "teamWatchListMemberId": 9029,
    "teamWatchListId": 18,
    "externalId": "MY_NUMBER_4",
    "companyId": 12345678,
    "watchListMemberEventType": "companyFinancialDocument",
    "eventDate": "2025-02-25T08:51:23",
    "lastUpdatedAtUtc": "2025-05-02T11:30:09"
  }
]
```

## Event types

The `watchListMemberEventType` field identifies what changed. Valid values:

| Type                     | Description                                                         |
| ------------------------ | ------------------------------------------------------------------- |
| companyAddress           | New information about one or more company addresses                 |
| companyName              | New information about the company's legal or trade names            |
| companyStatus            | New information about company status                                |
| companyRegistration      | New information about registration (VAT, payroll, tax, etc.)        |
| companyIntelligence      | New intelligence flags or signals                                   |
| companyBeneficialOwner   | New information about beneficial owners                             |
| companyWorkplace         | New information about one or more workplaces owned by the company   |
| companyPerson            | New information about company representatives                       |
| companyRegisteredOffice  | New information about the registered office                         |
| companyShareCapital      | New information about share capital                                 |
| companyPurpose           | New information about the company's registered purpose              |
| companyDebtBalance       | Changes to the debt balance                                         |
| companyOrderToPayCase    | New information about one or more order-to-pay cases                |
| companyFinancialDocument | New financial documents such as annual reports                      |
| companyCase              | New information about cases (*inneliggande ärenden*)                |
| personAddress            | New information about person addresses                              |
| personName               | New information about person names                                  |
| personStatus             | New information about person status                                 |
| personCompany            | New information about the person's role as a company representative |
