# 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 for details.

See the Webhooks guide 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 to ensure the request is authentic and has not been tampered with.
    Example: "t7FMhk3OARMgwqz0LJXO..."

  - `X-Delivery-Id` (string)
    Unique identifier for this webhook delivery attempt.
    Example: "a1b2c3d4-e5f6-7890-abcd-ef1234567890"

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

## Request fields (application/json):

  - `schema_version` (string)
    Version of the event schema. Determined by the schema_version on your [webhook subscription](/api-reference/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"


