[PERS SDK - v2.3.26](/sdk-reference/readme) / [Exports](/sdk-reference/modules) / WebhookService

# Class: WebhookService

Webhook Service - Business logic layer for webhook operations

Provides higher-level operations on top of WebhookApi including:

- Validation and error handling
- Convenience methods for common patterns
- Async workflow support with callbacks


Note: Trigger operations require projectKey which is obtained from SDK config.

## Table of contents

### Constructors

- [constructor](/sdk-reference/classes/webhookservice#constructor)


### Methods

- [getWebhooks](/sdk-reference/classes/webhookservice#getwebhooks)
- [getActiveWebhooks](/sdk-reference/classes/webhookservice#getactivewebhooks)
- [getWebhookById](/sdk-reference/classes/webhookservice#getwebhookbyid)
- [createWebhook](/sdk-reference/classes/webhookservice#createwebhook)
- [updateWebhook](/sdk-reference/classes/webhookservice#updatewebhook)
- [enableWebhook](/sdk-reference/classes/webhookservice#enablewebhook)
- [disableWebhook](/sdk-reference/classes/webhookservice#disablewebhook)
- [deleteWebhook](/sdk-reference/classes/webhookservice#deletewebhook)
- [triggerWebhook](/sdk-reference/classes/webhookservice#triggerwebhook)
- [post](/sdk-reference/classes/webhookservice#post)
- [get](/sdk-reference/classes/webhookservice#get)
- [triggerAndWait](/sdk-reference/classes/webhookservice#triggerandwait)
- [getExecutions](/sdk-reference/classes/webhookservice#getexecutions)
- [getWebhookExecutions](/sdk-reference/classes/webhookservice#getwebhookexecutions)
- [getFailedExecutions](/sdk-reference/classes/webhookservice#getfailedexecutions)
- [getExecutionById](/sdk-reference/classes/webhookservice#getexecutionbyid)
- [sendCallback](/sdk-reference/classes/webhookservice#sendcallback)


## Constructors

### constructor

• **new WebhookService**(`webhookApi`, `projectKey`): [`WebhookService`](/sdk-reference/classes/webhookservice)

#### Parameters

| Name | Type |
|  --- | --- |
| `webhookApi` | [`WebhookApi`](/sdk-reference/classes/webhookapi) |
| `projectKey` | `string` |


#### Returns

[`WebhookService`](/sdk-reference/classes/webhookservice)

#### Defined in

[webhook/services/webhook-service.ts:33](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L33)

## Methods

### getWebhooks

▸ **getWebhooks**(`options?`): `Promise`<`PaginatedResponseDTO`<`WebhookDTO`>>

Get all webhooks with optional filters

#### Parameters

| Name | Type |
|  --- | --- |
| `options?` | [`WebhookQueryOptions`](/sdk-reference/interfaces/webhookqueryoptions) |


#### Returns

`Promise`<`PaginatedResponseDTO`<`WebhookDTO`>>

#### Defined in

[webhook/services/webhook-service.ts:45](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L45)

### getActiveWebhooks

▸ **getActiveWebhooks**(): `Promise`<`PaginatedResponseDTO`<`WebhookDTO`>>

Get active webhooks only

#### Returns

`Promise`<`PaginatedResponseDTO`<`WebhookDTO`>>

#### Defined in

[webhook/services/webhook-service.ts:52](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L52)

### getWebhookById

▸ **getWebhookById**(`webhookId`): `Promise`<`WebhookDTO`>

Get webhook by ID

#### Parameters

| Name | Type |
|  --- | --- |
| `webhookId` | `string` |


#### Returns

`Promise`<`WebhookDTO`>

#### Defined in

[webhook/services/webhook-service.ts:59](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L59)

### createWebhook

▸ **createWebhook**(`webhook`): `Promise`<`WebhookDTO`>

Create a new webhook

#### Parameters

| Name | Type |
|  --- | --- |
| `webhook` | `WebhookCreateRequestDTO` |


#### Returns

`Promise`<`WebhookDTO`>

#### Defined in

[webhook/services/webhook-service.ts:66](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L66)

### updateWebhook

▸ **updateWebhook**(`webhookId`, `webhook`): `Promise`<`WebhookDTO`>

Update a webhook

#### Parameters

| Name | Type |
|  --- | --- |
| `webhookId` | `string` |
| `webhook` | `WebhookUpdateRequestDTO` |


#### Returns

`Promise`<`WebhookDTO`>

#### Defined in

[webhook/services/webhook-service.ts:88](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L88)

### enableWebhook

▸ **enableWebhook**(`webhookId`): `Promise`<`WebhookDTO`>

Enable a webhook

#### Parameters

| Name | Type |
|  --- | --- |
| `webhookId` | `string` |


#### Returns

`Promise`<`WebhookDTO`>

#### Defined in

[webhook/services/webhook-service.ts:105](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L105)

### disableWebhook

▸ **disableWebhook**(`webhookId`): `Promise`<`WebhookDTO`>

Disable a webhook

#### Parameters

| Name | Type |
|  --- | --- |
| `webhookId` | `string` |


#### Returns

`Promise`<`WebhookDTO`>

#### Defined in

[webhook/services/webhook-service.ts:112](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L112)

### deleteWebhook

▸ **deleteWebhook**(`webhookId`): `Promise`<{ `message`: `string` ; `hookId`: `string`  }>

Delete a webhook

#### Parameters

| Name | Type |
|  --- | --- |
| `webhookId` | `string` |


#### Returns

`Promise`<{ `message`: `string` ; `hookId`: `string`  }>

#### Defined in

[webhook/services/webhook-service.ts:119](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L119)

### triggerWebhook

▸ **triggerWebhook**(`request`): `Promise`<`WebhookTriggerResponseDTO`<`unknown`>>

Trigger a webhook with full control over request parameters

#### Parameters

| Name | Type |
|  --- | --- |
| `request` | [`WebhookTriggerRequest`](/sdk-reference/interfaces/webhooktriggerrequest) |


#### Returns

`Promise`<`WebhookTriggerResponseDTO`<`unknown`>>

#### Defined in

[webhook/services/webhook-service.ts:131](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L131)

### post

▸ **post**(`hookId`, `body`): `Promise`<`WebhookTriggerResponseDTO`<`unknown`>>

Simple POST trigger with JSON body

#### Parameters

| Name | Type |
|  --- | --- |
| `hookId` | `string` |
| `body` | `any` |


#### Returns

`Promise`<`WebhookTriggerResponseDTO`<`unknown`>>

#### Defined in

[webhook/services/webhook-service.ts:138](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L138)

### get

▸ **get**(`hookId`, `queryParams?`): `Promise`<`WebhookTriggerResponseDTO`<`unknown`>>

Simple GET trigger

#### Parameters

| Name | Type |
|  --- | --- |
| `hookId` | `string` |
| `queryParams?` | `Record`<`string`, `string`> |


#### Returns

`Promise`<`WebhookTriggerResponseDTO`<`unknown`>>

#### Defined in

[webhook/services/webhook-service.ts:149](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L149)

### triggerAndWait

▸ **triggerAndWait**(`hookId`, `body`, `timeoutMs?`): `Promise`<`WebhookTriggerResponseDTO`<`unknown`>>

Trigger and wait for async callback (for workflow systems like n8n)

#### Parameters

| Name | Type | Default value | Description |
|  --- | --- | --- | --- |
| `hookId` | `string` | `undefined` | Webhook ID to trigger |
| `body` | `any` | `undefined` | Request body |
| `timeoutMs` | `number` | `30000` | How long to wait for callback (default: 30000ms) |


#### Returns

`Promise`<`WebhookTriggerResponseDTO`<`unknown`>>

#### Defined in

[webhook/services/webhook-service.ts:164](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L164)

### getExecutions

▸ **getExecutions**(`options?`): `Promise`<`PaginatedResponseDTO`<`WebhookExecutionDTO`>>

Get execution history with filters

#### Parameters

| Name | Type |
|  --- | --- |
| `options?` | [`WebhookExecutionQueryOptions`](/sdk-reference/interfaces/webhookexecutionqueryoptions) |


#### Returns

`Promise`<`PaginatedResponseDTO`<`WebhookExecutionDTO`>>

#### Defined in

[webhook/services/webhook-service.ts:185](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L185)

### getWebhookExecutions

▸ **getWebhookExecutions**(`webhookId`, `options?`): `Promise`<`PaginatedResponseDTO`<`WebhookExecutionDTO`>>

Get executions for a specific webhook

#### Parameters

| Name | Type |
|  --- | --- |
| `webhookId` | `string` |
| `options?` | `Omit`<[`WebhookExecutionQueryOptions`](/sdk-reference/interfaces/webhookexecutionqueryoptions), `"webhookId"`> |


#### Returns

`Promise`<`PaginatedResponseDTO`<`WebhookExecutionDTO`>>

#### Defined in

[webhook/services/webhook-service.ts:192](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L192)

### getFailedExecutions

▸ **getFailedExecutions**(`options?`): `Promise`<`PaginatedResponseDTO`<`WebhookExecutionDTO`>>

Get failed executions

#### Parameters

| Name | Type |
|  --- | --- |
| `options?` | `Omit`<[`WebhookExecutionQueryOptions`](/sdk-reference/interfaces/webhookexecutionqueryoptions), `"status"`> |


#### Returns

`Promise`<`PaginatedResponseDTO`<`WebhookExecutionDTO`>>

#### Defined in

[webhook/services/webhook-service.ts:202](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L202)

### getExecutionById

▸ **getExecutionById**(`executionId`): `Promise`<`WebhookExecutionDTO`>

Get execution details by ID

#### Parameters

| Name | Type |
|  --- | --- |
| `executionId` | `string` |


#### Returns

`Promise`<`WebhookExecutionDTO`>

#### Defined in

[webhook/services/webhook-service.ts:209](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L209)

### sendCallback

▸ **sendCallback**(`executionId`, `callback`): `Promise`<`WebhookExecutionDTO`>

Send a callback result for an execution
Normally this is called by external systems like n8n

#### Parameters

| Name | Type |
|  --- | --- |
| `executionId` | `string` |
| `callback` | `WebhookCallbackDTO` |


#### Returns

`Promise`<`WebhookExecutionDTO`>

#### Defined in

[webhook/services/webhook-service.ts:221](https://github.com/eXplorins/PERS-sdks/blob/main/packages/pers-sdk/packages/pers-sdk/src/webhook/services/webhook-service.ts#L221)