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

# Create a webhook endpoint

> Register a URL and the events it receives. The signing secret is returned once.

**url** `string` *required*

An HTTPS URL you control.

**enabled\_events** `string[]` *required*

Event types or wildcards, at least one. Unknown types are rejected.

**description** `string`

Up to 255 characters.

```bash cURL theme={null}
curl -X POST https://api.agentcard.sh/api/v2/webhook_endpoints \
  -H "Authorization: Bearer $ORG_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://your.app/agentcard/webhooks", "enabled_events": ["vault.card_stored", "checkout_authorization.*"], "description": "Production checkout events"}'
```

```json 201 theme={null}
{
  "id": "we_7h2k9p4m",
  "object": "webhook_endpoint",
  "url": "https://your.app/agentcard/webhooks",
  "enabled_events": ["vault.card_stored", "checkout_authorization.*"],
  "status": "active",
  "description": "Production checkout events",
  "secret": "whsec_…"
}
```

Store `secret` now. It is not returned again except through [Get the signing secret](/api-reference/webhook-endpoints/secret). The token decides the endpoint's mode, never the body.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.