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

# Get one WebHook

> Retrieve a single WebHook record by its Id.

A **WebHook** sends an HTTP POST request to a specified URL whenever a particular event occurs within a location. Webhooks let external systems react to changes in real time without polling the API.

Each webhook is scoped to a single location (`BusinessId`) and is configured with an `Action` that identifies the triggering event (e.g. `CoworkerCreate`, `BookingCreate`, `CoworkerInvoicePaid`). Only one action can be assigned per webhook record — create separate webhook records if you need to react to multiple events.

Nexudus will POST a JSON payload to the configured `URL` every time the selected action fires. If the endpoint returns a non-2xx response, the error is recorded in `LastError` and `ErrorCount` is incremented. A webhook is automatically disabled after repeated failures.

Set `Active` to `false` to pause delivery without deleting the webhook. Use `LastTrigger` and `LastError` to monitor delivery health.

## Authentication

<Note>
  This endpoint requires OAuth2 authentication. Include a valid bearer token in the `Authorization` header.
  The authenticated user must be a full unrestricted administrator or have the **`WebHook-Read`** role.
</Note>

## Path Parameters

<ParamField path="id" type="integer" required>
  The Id of the WebHook record to retrieve.
</ParamField>

## Code Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X GET \
    "https://spaces.nexudus.com/api/sys/webhooks/87654321" \
    -H "Authorization: Bearer YOUR_TOKEN"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://spaces.nexudus.com/api/sys/webhooks/87654321',
    {
      headers: {
        'Authorization': 'Bearer YOUR_TOKEN'
      }
    }
  );

  const record = await response.json();
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://spaces.nexudus.com/api/sys/webhooks/87654321',
      headers={
          'Authorization': 'Bearer YOUR_TOKEN'
      }
  )

  record = response.json()
  ```
</CodeGroup>

## Response

### 200

<ResponseField name="BusinessId" type="integer">
  ID of the location this webhook belongs to.
</ResponseField>

<ResponseField name="Name" type="string">
  Display name for the webhook.
</ResponseField>

<ResponseField name="Action" type="integer">
  The event that triggers this webhook (e.g. CoworkerCreate, BookingCreate, CoworkerInvoicePaid). See `eWebhookAction` enum values: `1` = None, `2` = CoworkerUpdate, `3` = CoworkerCreate, `4` = BlogPostCreate, `5` = BlogPostUpdate, `6` = BookingCreate, `7` = BookingUpdate, `8` = BookingDelete, `9` = SendWelcomeEmail, `10` = CoworkerContractActivate, `11` = CoworkerContractCancel, `12` = CoworkerContractRenew, `13` = CoworkerContractUpgradeDowngrade, `14` = CoworkerContractActivateFirst, `15` = CoworkerInvoiceCreateFirst, `16` = CoworkerInvoiceCreate, `17` = CoworkerInvoiceDelete, `18` = CoworkerInvoiceUpdate, `19` = CoworkerInvoiceRefund, `20` = CoworkerInvoiceCreditNote, `21` = CoworkerInvoicePaid, `22` = CoworkerInvoiceFailedPayment, `23` = CoworkerInvoiceReceivedPayment, `24` = CoworkerInvoiceAwaitingPayment, `25` = CalendarEventCreate, `26` = CalendarEventUpdate, `27` = CalendarEventAttendeeDelete, `28` = CalendarEventAttendeeCreate, `29` = CalendarEventAttendeeUpdate, `30` = GlobalChatMessageCreate, `31` = NewsLetterSubscriberCreate, `32` = NewsLetterSubscriberSubscribed, `33` = NewsLetterSubscriberUnSubscribed, `34` = NewsLetterSubscriberRemovedFromGroup, `35` = CoworkerCheckout, `36` = CoworkerCheckin, `37` = CoworkerCheckinFailed, `38` = VisitorNotification, `39` = CommunityBoardNewThread, `40` = CommunityBoardNewReply, `41` = VisitorCheckedin, `42` = VisitorRegistered, `43` = BlogPostDelete, `44` = CalendarEventDelete, `45` = HelDeskMessageCreated, `46` = HelpDeskCommentCreated, `47` = CheckinCreated, `48` = CheckinUpdated, `49` = CheckinDeleted, `50` = CoworkerDelete, `51` = CoworkerMessageCreate, `52` = DeliveryCreated, `53` = DeliveryAssigned, `54` = ProposalCreated, `55` = ProposalUpdated, `56` = ProposalDeleted, `57` = TeamCreated, `58` = TeamUpdated, `59` = TeamDeleted, `60` = CoworkerContractUpdate, `61` = AccessControlUpdate, `62` = CoworkerContractCreate, `63` = FailedCheckin, `64` = VisitorDeleted, `65` = CoworkerInvoiceLedgerEntryCreate, `66` = CoworkerInvoiceLedgerEntryDelete, `67` = CoworkerInvoiceLedgerEntryUpdate, `68` = CoworkerProductCreate, `69` = CoworkerProductUpdate, `70` = CoworkerProductDelete, `71` = FloorPlanDeskCreate, `72` = FloorPlanDeskDelete, `73` = FloorPlanDeskUpdate, `74` = TariffCreate, `75` = TariffDelete, `76` = TariffUpdate, `77` = CoworkerContractDelete, `78` = FloorPlanCreate, `79` = FloorPlanDelete, `80` = FloorPlanUpdate, `81` = ProductCreate, `82` = ProductDelete, `83` = ProductUpdate, `84` = BusinessUpdate, `85` = CommunityGroupCreate, `86` = CommunityGroupDelete, `87` = CommunityGroupUpdate, `88` = CoworkerPaymentMethodCreate, `89` = CoworkerPaymentMethodDelete, `90` = CoworkerPaymentMethodUpdate.
</ResponseField>

<ResponseField name="Description" type="string">
  Optional description of the webhook's purpose.
</ResponseField>

<ResponseField name="URL" type="string">
  The endpoint URL that receives the HTTP POST payload when the webhook fires.
</ResponseField>

<ResponseField name="Active" type="boolean">
  Whether the webhook is enabled and will fire when the configured action occurs.
</ResponseField>

<ResponseField name="LastError" type="string">
  Error message from the most recent failed delivery attempt.
</ResponseField>

<ResponseField name="ErrorCount" type="integer">
  Number of consecutive delivery failures since the last successful call.
</ResponseField>

<ResponseField name="LastTrigger" type="string">
  Date and time the webhook last fired successfully.
</ResponseField>

<ResponseField name="Id" type="integer">
  Unique record identifier.
</ResponseField>

<ResponseField name="UniqueId" type="string">
  UUID of the record.
</ResponseField>

<ResponseField name="CreatedOn" type="string">
  Date and time the record was created (ISO 8601).
</ResponseField>

<ResponseField name="UpdatedOn" type="string">
  Date and time the record was last updated (ISO 8601).
</ResponseField>

<ResponseField name="UpdatedBy" type="string">
  Email of the user who last updated this record.
</ResponseField>

<ResponseField name="IsNew" type="boolean">
  Whether the record was recently created.
</ResponseField>

<ResponseField name="SystemId" type="string">
  External system identifier.
</ResponseField>

```json Example Response theme={null}
{
  "BusinessId": 0,
  "Name": "",
  "Action": 0,
  "Description": null,
  "URL": "",
  "Active": false,
  "LastError": null,
  "ErrorCount": 0,
  "LastTrigger": null,
  "Id": 87654321,
  "UpdatedOn": "2025-01-15T10:30:00Z",
  "CreatedOn": "2025-01-10T08:00:00Z",
  "UniqueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "UpdatedBy": "admin@example.com",
  "IsNew": false,
  "SystemId": null,
  "ToStringText": "WebHook Example",
  "LocalizationDetails": null,
  "CustomFields": null
}
```
