---
title: "Register a webhook subscription"
method: POST
path: "/v1/webhooks"
tags: ["Webhooks"]
---

# Register a webhook subscription

`POST /v1/webhooks`

## Request

- Base URL: `https://api.nashboard.ai`
- URL: `https://api.nashboard.ai/v1/webhooks`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Required scope: `webhooks:write`. The `secret` is stored encrypted at rest and NEVER returned. Use it client-side to verify HMAC-SHA256 signatures on incoming deliveries (X-Nashboard-Signature header). See docs/webhooks-quickstart.md.

## Headers

- `X-Nashboard-Version` '2026-06-13'

## Request body

- WebhookCreateRequest
  - `endpoint_url` string, uri, required: HTTPS endpoint to receive delivery POSTs. Must not be a private/loopback host.
  - `secret` string, required: Shared secret for HMAC-SHA256 signature verification. Never returned after creation.
  - `event_types` string[], required: Event types to subscribe to (e.g. receipt.parsed, receipt.failed).

## Response `201`

Subscription created.

- WebhookSubscription
  - `id` string, uuid, required
  - `endpoint_url` string, uri, required
  - `event_types` string[], required
  - `active` boolean, required
  - `failure_count` integer
  - `last_success_at` string, date-time, nullable
  - `last_failure_at` string, date-time, nullable
  - `created_at` string, date-time

## Other responses

- `400`: Bad request (invalid JSON, invalid ID, invalid cursor, etc.)
- `401`: Missing, malformed, or invalid API key.
- `403`: Insufficient scope or scope escalation attempt.
- `404`: Resource not found.
- `409`: Conflict (e.g. email already taken).
- `413`: Request body too large.
- `415`: Unsupported media type.
- `422`: Request body failed schema validation.
- `429`: Rate limited, quota exceeded, or DP budget exhausted.
- `500`: Internal server error.
- `502`: Upstream dependency error (e.g. receipt image storage unavailable — code storage_failure).

---

[API](https://skmtc.dev/nashboard/apis/nashboard-b2b-api.md) · [All operations](https://skmtc.dev/nashboard/apis/nashboard-b2b-api/llms.txt) · [OpenAPI document](https://skmtc.dev/nashboard/apis/nashboard-b2b-api/revisions/a51f5ab22ec5?raw)
