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

# Set Webhook

> Configure your webhook endpoint for event notifications

Set the URL where you want to receive webhook events. Returns a `webhookSecret` for [signature verification](/webhooks#signature-verification).

<ParamField header="Authorization" type="string" required>
  Bearer token. Example: `Bearer sk_staging_your_api_key`
</ParamField>

<ParamField body="webhookUrl" type="string" required>
  HTTPS URL to receive webhook events. Max 2048 characters.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://services-staging.getplu.com/api/v1/partner/profile/webhook \
    -H "Authorization: Bearer sk_staging_your_api_key" \
    -H "Content-Type: application/json" \
    -d '{
      "webhookUrl": "https://api.acme.com/webhooks/bitmama"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://services-staging.getplu.com/api/v1/partner/profile/webhook',
    {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer sk_staging_your_api_key',
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        webhookUrl: 'https://api.acme.com/webhooks/bitmama',
      }),
    }
  );
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "status": "success",
    "message": "Webhook endpoint configured",
    "data": {
      "webhookUrl": "https://api.acme.com/webhooks/bitmama",
      "webhookSecret": "whsec_abc123def456..."
    }
  }
  ```
</ResponseExample>

<Warning>
  Store the `webhookSecret` securely — it's only returned when you set or update your webhook URL. You'll need it to [verify webhook signatures](/webhooks#signature-verification).
</Warning>
