# Hold limit breach update

Triggered whenever a hold limit breach is opened or closed for a profile. A hold limit breach occurs when a balance exceeds the regulatory hold limit (applicable in countries such as Singapore and Malaysia).
Use `data.state` to determine whether the breach has been opened or closed, and `data.closing_reason` to understand how it was resolved.
* Event type: `hold-limit-breach#update`
* Profile level subscriptions: Supported
* Application level subscriptions: Supported

Events may not be delivered in the order they occurred. Use `data.occurred_at` to reconcile the order.
See the [Event ordering guide](/guides/developer/webhooks/event-ordering) for details.
See the [Webhooks guide](/guides/developer/webhooks) for setup instructions, signature verification, and best practices.

Endpoint: POST hold-limit-breach#update

## Header parameters:

  - `X-Signature-SHA256` (string)
    RSA-SHA256 signature of the request body, Base64 encoded. Verify this against the [Wise public key](/guides/developer/webhooks/event-handling#requests) to ensure the request is authentic and has not been tampered with.

  - `X-Delivery-Id` (string)
    Unique identifier for this webhook delivery attempt.

  - `X-Test-Notification` (boolean)
    Present with the value `true` if this is a test notification sent to verify your callback URL during subscription setup.

## Request fields (application/json):

  - `schema_version` (string)
    Version of the event schema. Determined by the `schema_version` on your [webhook subscription](/api-reference/legacy/webhook).
    Enum: "4.0.0"

  - `subscription_id` (string)
    ID of the webhook subscription that triggered this event.
    Example: 01234567-89ab-cdef-0123-456789abcdef

  - `event_type` (string)
    Event type identifier
    Example: hold-limit-breach#update

  - `sent_at` (string)
    Timestamp when the event was sent.
    Example: 2024-06-01T08:00:00Z

  - `data` (object)

  - `data.resource` (object)

  - `data.resource.type` (string)
    Resource type. Always `hold-limit-breach`.
    Example: hold-limit-breach

  - `data.resource.hold_limit_breach_id` (integer)
    ID of the hold limit breach.
    Example: 1001

  - `data.resource.profile_id` (integer)
    ID of the profile that owns the breach.
    Example: 12321323

  - `data.amount` (number)
    Amount that exceeded the hold limit.
    Example: 500.5

  - `data.currency` (string)
    Currency code (ISO 4217) of the breach amount.
    Example: SGD

  - `data.state` (string)
    Current state of the breach.
    Enum: "OPEN", "CLOSED"

  - `data.closing_reason` (string | null)
    Reason the breach was closed. Null if state is `OPEN`.
    Enum: "AUTOMATICALLY_RESOLVED", "MANUALLY_RESOLVED", null

  - `data.created_at` (string)
    Timestamp when the breach was created (ISO 8601).
    Example: 2024-06-01T08:00:00Z

  - `data.updated_at` (string)
    Timestamp when the breach was last updated (ISO 8601).
    Example: 2024-06-01T08:00:00Z

  - `data.occurred_at` (string)
    Timestamp when the event occurred (ISO 8601). Use this field to reconcile out-of-order events.
    Example: 2024-06-01T08:00:00Z

## Response 200 fields (application/json):

  - `status` (string)
    Example: ok

