> ## 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 makes Nexudus send an HTTP POST with a JSON payload to an external URL whenever one chosen event happens in a location, so other systems can react in real time without polling the API. Each record has exactly one Action, so a separate webhook is needed per event, and a webhook registered on a network parent location also receives events from that parent's child locations. Delivery is signed with the location's Webhooks.SharedSecret setting when one is configured, retried with an increasing delay after each failure, and skipped when the same record would be sent with an identical payload twice. Delivery health is visible in LastTrigger, LastError and ErrorCount; the webhook is deactivated automatically once ErrorCount passes 10 or the URL does not start with http, and it is deleted automatically if the endpoint answers 410 Gone. Set Active to false to pause delivery without deleting the record.

## 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 that owns this webhook. Events raised in this location trigger it, and a webhook registered on a network parent location also receives events from that parent's child locations..
</ResponseField>

<ResponseField name="Name" type="string">
  Display name used to identify this webhook in the location's webhook list; it is not sent to the endpoint..
</ResponseField>

<ResponseField name="Action" type="integer">
  The single event that triggers this webhook, such as CoworkerCreate, BookingCreate or CoworkerInvoicePaid. Only one action per webhook, so create a separate record for each event you need. Defaults to None, which never fires, so always set this explicitly.. 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 free-text note describing the webhook's purpose. It is not shown in the admin form and is not sent to the endpoint..
</ResponseField>

<ResponseField name="URL" type="string">
  Endpoint that receives the HTTP POST JSON payload when the webhook fires, up to 1024 characters. It must start with http or https; any other value records an error and deactivates the webhook on the first delivery attempt..
</ResponseField>

<ResponseField name="Active" type="boolean">
  Whether the webhook is enabled and will fire when its action occurs. Set false to pause delivery without deleting the record. Nexudus sets it to false automatically once ErrorCount passes 10, or when the URL does not start with http..
</ResponseField>

<ResponseField name="LastError" type="string">
  Message from the most recent failed delivery attempt, cleared at the start of each new attempt. Read-only diagnostic written by the delivery service; fix the endpoint rather than trying to change this value..
</ResponseField>

<ResponseField name="ErrorCount" type="integer">
  Consecutive failed delivery attempts. Reset to 0 after a successful call, incremented on each failure, and the webhook is deactivated once it passes 10. Read-only diagnostic written by the delivery service..
</ResponseField>

<ResponseField name="LastTrigger" type="string">
  UTC date and time of the most recent delivery attempt, recorded when the attempt starts rather than when it succeeds; check LastError and ErrorCount to tell whether that attempt succeeded. Read-only diagnostic written by the delivery service..
</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
}
```
