---
title: "Create Webhook Endpoint"
method: POST
path: "/partner/webhook_endpoints"
tags: ["WebhookEndpoint"]
---

# Create Webhook Endpoint

`POST /partner/webhook_endpoints`

## Request

- Base URL: `https://api.sandbox.hint.com/api`
- URL: `https://api.sandbox.hint.com/api/partner/webhook_endpoints`
- Auth: API key in header `AUTHORIZATION`

Registers a URL to receive events for every integration tied to this partner.
There is no per-endpoint event filter — a registered endpoint receives the
full set of events the partner's integrations emit. Each event is delivered
as `POST <webhook_url>` with a JSON body shaped like:
```json
{
  "id":          "evt-...",
  "type":        "patient.created",
  "practice_id": "prc-...",
  "created_at":  "2026-05-26T14:23:00.000Z",
  "object":      { ...full resource snapshot... }
}
```
The `object` field carries the resource snapshot; its shape matches the
corresponding `GET /api/provider/<resource>/:id` response.
Each request carries an `X-Hint-Signature: sha256=<hmac>` header — HMAC-SHA256
of the raw request body, keyed by the partner's webhook signature key
(Partner Portal → API Keys → Webhooks Signature Key, mirrored to the
`HINT_WEBHOOK_SECRET` env var on Hosted Mode deploys). Endpoints should
compute the expected signature themselves and reject requests whose
signature doesn't match.
**Discover the current event-type list at `GET /partner/webhook_events`** —
it returns the `resource.action` strings your pinned API version publishes.
Implementations should ignore unknown event types; new resource/action pairs
may be added without a version bump.

## Request body

- PartnerWebhookEndpointsControllerCreateBody
  - `webhook_url` string, required: HTTPS URL that will receive event payloads. The endpoint must respond with a 2xx within ~10 s; non-2xx responses are retried with backoff and surfaced via `last_delivered_at` + `WebhookRequest`.
  - `backend` string: The owning backend's public id (`pbnd-...`). Omit to register the endpoint on the partner's default backend.

## Response `200`

Successful response

- PublicWebhookEndpointBlueprintOne
  - `id` string
  - `created_at` string
  - `last_delivered_at` string
  - `updated_at` string
  - `webhook_url` string
  - `partner_backend` PublicBackendBlueprintMin
    - `id` string
    - `name` string

## Changes

- **2026-11-03** `c9bda0d2dd87`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hint/apis/partner-endpoints/changes/partner/webhook_endpoints/post.md)

---

[API](https://skmtc.dev/hint/apis/partner-endpoints.md) - [All operations](https://skmtc.dev/hint/apis/partner-endpoints/llms.txt) - [OpenAPI document](https://skmtc.dev/hint/apis/partner-endpoints/revisions/c9bda0d2dd87?raw)
