cURL
curl --request GET \
--url https://public.api.live.turrisfi.com/v1/webhooks \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public.api.live.turrisfi.com/v1/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://public.api.live.turrisfi.com/v1/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "6650a1b2c3d4e5f6a7b8c9d0",
"types": [
"SURPLUS_LINES_FILING_STATUS_CHANGE",
"SURPLUS_LINES_FILING_ACTION_REQUIRED"
],
"url": "https://example.com/webhooks/turris",
"clientSecretLastFour": "a1b2",
"createdAt": "2025-06-01T12:00:00.000Z"
}
],
"requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
"timestamp": "2025-11-12T20:49:03.293Z"
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}Webhooks
List Webhooks
List the webhooks registered by the authenticated upstream entity
GET
/
v1
/
webhooks
cURL
curl --request GET \
--url https://public.api.live.turrisfi.com/v1/webhooks \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public.api.live.turrisfi.com/v1/webhooks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://public.api.live.turrisfi.com/v1/webhooks"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": [
{
"id": "6650a1b2c3d4e5f6a7b8c9d0",
"types": [
"SURPLUS_LINES_FILING_STATUS_CHANGE",
"SURPLUS_LINES_FILING_ACTION_REQUIRED"
],
"url": "https://example.com/webhooks/turris",
"clientSecretLastFour": "a1b2",
"createdAt": "2025-06-01T12:00:00.000Z"
}
],
"requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
"timestamp": "2025-11-12T20:49:03.293Z"
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}Returns the webhooks registered by your upstream entity, so you can discover the
id of a webhook and then fire a self-test against it (see Send Test Event). The signing secret is never returned; only its last four characters are exposed for reconciliation.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | No | Filter to a single webhook type. Omit to return all of your webhooks. Allowed values: AGENT_COMPLIANCE_STATUS_CHANGE, AML_OFAC_CHECK_STATUS_CHANGE, DOWNSTREAM_ENTITY_COMPLIANCE_STATUS_CHANGE, DOWNSTREAM_ENTITY_CREATED, DOWNSTREAM_ENTITY_DELETED, DOWNSTREAM_ENTITY_UPDATED, ENTITY_COMPLIANCE_DATA_SYNCHRONIZED, PRODUCER_AGREEMENT_EXECUTED, SURPLUS_LINES_FILING_STATUS_CHANGE, SURPLUS_LINES_FILING_ACTION_REQUIRED. See Available Webhook Events. |
Filtering Examples
# All of your webhooks
GET /v1/webhooks
# Only surplus lines filing status webhooks
GET /v1/webhooks?type=SURPLUS_LINES_FILING_STATUS_CHANGE
Response Shape
All successful responses are wrapped in the standard response envelope. See Request/Response Conventions.
{
"statusCode": 200,
"data": [
{
"id": "6650a1b2c3d4e5f6a7b8c9d0",
"type": "SURPLUS_LINES_FILING_STATUS_CHANGE",
"url": "https://example.com/webhooks/turris",
"clientSecretLastFour": "a1b2",
"createdAt": "2025-06-01T12:00:00.000Z"
}
],
"timestamp": "2025-06-01T12:05:00.000Z"
}
Response Fields
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier of the webhook. Use this in the Send Test Event path. |
type | string | Event type the webhook is subscribed to (for example SURPLUS_LINES_FILING_STATUS_CHANGE). See Available Webhook Events. |
url | string | Destination URL that receives the signed delivery |
clientSecretLastFour | string | Last four characters of the signing secret, for reconciliation only |
createdAt | string | ISO 8601 timestamp when the webhook was registered |
Error Scenarios
Bad Request (400)
Returned whentype is not one of the allowed webhook types.
{
"statusCode": 400,
"errorType": "validation_error",
"errorMessage": ["Invalid value for type"],
"requestId": "dev-abc123",
"timestamp": "2025-06-01T12:00:00.000Z"
}
Unauthorized (401)
Missing or invalid authentication token. See Authentication.Authorizations
bearerrestricted-access-token
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
Filter to webhooks subscribed to ANY of these event types. Repeat the parameter or pass a comma-separated list. Omit to return all of your webhooks.
Available options:
AGENT_COMPLIANCE_STATUS_CHANGE, AGENT_LICENSE_EXPIRED, AGENT_LICENSE_EXPIRING, AGENT_REGULATORY_ACTION_ADDED, AGENT_REGULATORY_ACTION_UPDATED, AML_OFAC_CHECK_STATUS_CHANGE, DILIGENT_EFFORT_REQUEST_STATUS_CHANGE, DOWNSTREAM_ENTITY_COMPLIANCE_STATUS_CHANGE, DOWNSTREAM_ENTITY_CREATED, DOWNSTREAM_ENTITY_DELETED, DOWNSTREAM_ENTITY_LICENSE_EXPIRED, DOWNSTREAM_ENTITY_LICENSE_EXPIRING, DOWNSTREAM_ENTITY_REGULATORY_ACTION_ADDED, DOWNSTREAM_ENTITY_REGULATORY_ACTION_UPDATED, DOWNSTREAM_ENTITY_UPDATED, ENTITY_COMPLIANCE_DATA_SYNCHRONIZED, PRODUCER_AGREEMENT_EXECUTED, SURPLUS_LINES_FILING_STATUS_CHANGE, SURPLUS_LINES_FILING_ACTION_REQUIRED Was this page helpful?