# Simulate a sanction case

Simulates the creation or closure of a sanction case for testing partner integrations.
When `status` is `OPEN`, a new sanction case is created with the specified type and subtype.
When `status` is `CLOSE`, an existing case (identified by `caseId`) is closed with the specified reason.
This endpoint is only available in sandbox environments.

Endpoint: POST /simulation/sanction-cases
Version: 2026Q4
Security: UserToken

## Security:

  - `UserToken` (unknown)
    http bearer JWT

## Header parameters:

  - `X-External-Correlation-Id` (string)
    Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. [Learn more](/guides/developer/headers/correlation-id).

## Request fields (application/json):

  - `transferId` (integer, required)
    The ID of the transfer associated with the sanction case.

  - `profileId` (integer, required)
    The profile ID linked to the transfer.

  - `sanctionType` (string, required)
    The type of sanction. Currently only `SANCTION` is supported.
    Enum: "SANCTION"

  - `simulationSanctionSubType` (string)
    The specific subtype of sanction case to simulate. Required when `sanctionType` is `SANCTION`.
- `REFERENCE_SANCTION_HIT`: Sanction hit on the transfer reference/sender
- `RECIPIENT_SANCTION_HIT`: Sanction hit on the recipient
- `REFERENCE_LOCATION_HIT`: Location-based hit on the reference/sender
- `RECIPIENT_LOCATION_HIT`: Location-based hit on the recipient
- `DEPOSIT_SANCTION_HIT`: Sanction hit on an incoming deposit
    Enum: "REFERENCE_SANCTION_HIT", "RECIPIENT_SANCTION_HIT", "REFERENCE_LOCATION_HIT", "RECIPIENT_LOCATION_HIT", "DEPOSIT_SANCTION_HIT"

  - `status` (string, required)
    The action to perform.
- `OPEN`: Create a new sanction case
- `CLOSE`: Close an existing sanction case
    Enum: "OPEN", "CLOSE"

  - `caseId` (integer)
    The self-service case ID to close. Required when `status` is `CLOSE`.
When `status` is `OPEN`, this can optionally be provided to specify the case ID;
otherwise, one will be auto-generated.

  - `closingReason` (string)
    The reason for closing the case. Required when `status` is `CLOSE`.
- `EXPIRED`: The case expired without resolution
- `INVALIDATED`: The case was determined to be invalid
- `ABORTED`: The case was aborted/cancelled
- `COMPLETED`: The case was successfully resolved
    Enum: "EXPIRED", "INVALIDATED", "ABORTED", "COMPLETED"

## Request examples:

  - `Open a reference sanction hit case` (unknown)

  - `Open a recipient location hit case` (unknown)

  - `Close an existing case` (unknown)

## Response 200:

  - `200` (unknown)
    Sanction case successfully closed.

## Response 200 fields (application/json):

  - `eventId` (string)
    The unique identifier for this simulation event.

  - `caseId` (integer)
    The ID of the case in the partner support system. May be null if the case hasn't been fully processed yet.
    Example: {"eventId":"550e8400-e29b-41d4-a716-446655440000","caseId":42}

## Response 200 headers (application/json):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 201:

  - `201` (unknown)
    Sanction case successfully created.

## Response 201 fields (application/json):

  - `eventId` (string)
    The unique identifier for this simulation event.

  - `caseId` (integer)
    The ID of the case in the partner support system. May be null if the case hasn't been fully processed yet.
    Example: {"eventId":"550e8400-e29b-41d4-a716-446655440000","caseId":42}

## Response 201 headers (application/json):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 400:

  - `400` (unknown)
    Bad request - validation error.

## Response 400 headers:

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 429:

  - `429` (unknown)
    Rate limit exceeded. Retry after the number of seconds specified in the `Retry-After` header.

## Response 429 headers (application/json):

  - `Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 5

  - `X-Rate-Limited-By` (string)
    Identifies the rate limiter that triggered the 429 response.
    Example: wise-public-api

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 400 examples:

  - `Missing sanctionSubType` (unknown)

  - `Missing caseId for CLOSE` (unknown)

  - `Missing closingReason for CLOSE` (unknown)

  - `Invalid closingReason` (unknown)

