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

# WebhookInboundClient constructor

> Construct a standalone WebhookInboundClient with new WebhookInboundClient() using only a secret, no API key, for inbound signature checks.

<Badge color="purple">SDK</Badge> `new WebhookInboundClient(options: WebhookInboundClientOptions): WebhookInboundClient`

Creates a standalone inbound client without an API key.

<RequestExample>
  ```typescript Example theme={null}
  import { WebhookInboundClient } from "@alhwyn/luma";

  const webhook = new WebhookInboundClient({
    secret: process.env.LUMA_WEBHOOK_SECRET!,
  });
  ```
</RequestExample>

<ResponseExample>
  ```typescript Response theme={null}
  const webhook: WebhookInboundClient;
  ```
</ResponseExample>

### Parameters

<ParamField path="options" type="WebhookInboundClientOptions" required>
  Inbound client configuration.

  <Expandable title="WebhookInboundClientOptions properties">
    <ParamField path="secret" type="string" required>
      Webhook signing secret from `webhooks.create()`.
    </ParamField>

    <ParamField path="tolerance" type="number">
      Optional timestamp tolerance in seconds for signature verification.
    </ParamField>
  </Expandable>
</ParamField>

### Test it

```typescript theme={null}
const webhook = new WebhookInboundClient({
  secret: process.env.LUMA_WEBHOOK_SECRET!,
});
console.log("Inbound client ready");
```

Or create via the resource factory:

```typescript theme={null}
const webhook = new Luma(process.env.LUMA_API_KEY!).webhooks.client({
  secret: process.env.LUMA_WEBHOOK_SECRET!,
});
```
