---
title: "Create or Update Webhook Configuration"
method: PUT
path: "/webhook-configurations"
tags: ["Webhook Configurations"]
---

# Create or Update Webhook Configuration

`PUT /webhook-configurations`

Create a new webhook configuration or update an existing one. Your `client_id` and `tenant_id` are automatically inferred from the bearer token on this request. To set up a webhook for a specific tenant, please ensure that the bearer token on this request as a `tenant_id` claim. If your bearer token lacks a `tenant_id`, the webhook will be created for your single-tenant environment.

- If a configuration already exists for the same client/tenant/webhook_type combination, it will be updated.
- If `tenant_id` is provided, your client must have a relationship with that tenant.
- Omit `tenant_id` to set the default callback URL for your client.

## Request body

- object
  - `webhook_type` 'ENRICHMENT_DATA' | 'ENRICHMENT_NOTIFICATION' | 'USER_TAGS_DATA' | 'USER_TAGS_NOTIFICATION' | 'INSIGHTS', required — The type of webhook to configure: - `ENRICHMENT_DATA`: Data-rich Transaction Enrichment webhooks (full payload) - `ENRICHMENT_NOTIFICATION`: Non-data-rich Enrichment webhooks (notification only, fetch data from the `/cleanup/{batch_request_id}` endpoint) - `USER_TAGS_DATA`: Data-rich User Tags webhooks (full payload) - `USER_TAGS_NOTIFICATION`: Non-data-rich User Tags webhooks (notification only) - `INSIGHTS`: Finsights/insights webhooks
  - `callback_url` string, uri, required — Valid HTTPS URL for webhook delivery.

## Response `200`

Webhook configuration created or updated successfully.

- object
  - `webhook_configuration` WebhookConfigurationsPut200Response
    - `id` integer — The unique identifier for this webhook configuration.
    - `client_id` string — Your client identifier.
    - `tenant_id` string, nullable — The tenant public ID for tenant-specific configurations. Null for default configurations.
    - `webhook_type` 'ENRICHMENT_DATA' | 'ENRICHMENT_NOTIFICATION' | 'USER_TAGS_DATA' | 'USER_TAGS_NOTIFICATION' | 'INSIGHTS' — The type of webhook to configure: - `ENRICHMENT_DATA`: Data-rich Transaction Enrichment webhooks (full payload) - `ENRICHMENT_NOTIFICATION`: Non-data-rich Enrichment webhooks (notification only, fetch data from the `/cleanup/{batch_request_id}` endpoint) - `USER_TAGS_DATA`: Data-rich User Tags webhooks (full payload) - `USER_TAGS_NOTIFICATION`: Non-data-rich User Tags webhooks (notification only) - `INSIGHTS`: Finsights/insights webhooks
    - `callback_url` string, uri — The HTTPS URL where webhooks will be delivered.
    - `created_at` string, date-time — The timestamp when this configuration was created.
    - `updated_at` string, date-time — The timestamp when this configuration was last updated.

## Other responses

- `400` — Bad request. Possible errors: - `client_id header is required` - `webhook_type is required` - `Invalid webhook_type` - `callback_url is required` - `callback_url must be a valid URL`
- `401` — Unauthorized.
- `403` — Forbidden. Possible errors: - Missing `enrichment` scope - Client does not have a relationship with the specified tenant

---

[API](https://skmtc.dev/fingoal/apis/insights-api.md) · [All operations](https://skmtc.dev/fingoal/apis/insights-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/fingoal/insights-api/revisions/00cf4dbd5441/schema)
