---
title: "Trigger a Compliance Orchestrator screening"
method: POST
path: "/compliance/orchestrator/screenings"
tags: ["Compliance Orchestrator (Beta)"]
---

# Trigger a Compliance Orchestrator screening

`POST /compliance/orchestrator/screenings`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/compliance/orchestrator/screenings`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/compliance/orchestrator/screenings/post.ts> (a function with typed inputs; its response is checked against the schema)

Starts a compliance screening against an active workflow and returns a `screeningId`. The screening runs asynchronously — poll `GET /v1/compliance/orchestrator/screenings/{screeningId}` for the result.

Unlike the screening that applies automatically to submitted transactions under `/v1/screening`, this is called on demand, before anything exists on-chain.

## Headers

- `Idempotency-Key` string

## Request body

- TriggerScreeningRequest: Request to trigger a screening against an active workflow.
  - `workflowId` string, required: The workflow to screen against. Must be in `ACTIVE` status.
  - `input` ScreeningInput, required: What the caller wants screened, and how.
    - `operation` 'ADDRESS_SCREENING' | 'TRANSACTION_SCREENING' | 'REGISTER_TRANSACTION', required: What the caller wants Compliance Orchestrator to do. The target workflow must have a step configured for the operation; the error names the supported set when it does not. - `ADDRESS_SCREENING` — screen an address on its own, before anything exists on-chain. Answers whether the address itself carries risk. - `TRANSACTION_SCREENING` — screen a whole transfer: source and destination, amount and direction, not the destination alone. - `REGISTER_TRANSACTION` — record a confirmed transfer with the provider for ongoing monitoring. Not a gate: it files the transfer so the provider's own rules can raise alerts later, which is what feeds its AML model.
    - `payload` ScreeningPayload[], required: The screening subjects. Up to 100 per request — the provider's own batch limit for address screening — so a bulk check does not need one call per address.
      - `blockchain` string: The blockchain network of the asset being screened.
      - `asset` string: The asset identifier being screened.
      - `assetAmount` string: The amount of the asset involved in the transaction, as a string.
      - `usdValue` string: The USD value of the transaction amount, as a string.
      - `customerRefId` string: Customer-provided reference identifier for tracking.
      - `externalId` string: External identifier for the screening (provider-specific).
      - `address` string: The blockchain address to screen. Used for the `ADDRESS_SCREENING` operation.
      - `direction` 'INBOUND' | 'OUTBOUND': A transfer's direction relative to the workspace. Set for `TRANSACTION_SCREENING` and `REGISTER_TRANSACTION`; it has no meaning for `ADDRESS_SCREENING`, which screens an address on its own.
      - `sourceAddress` string[]: The source blockchain address(es) of the transaction.
      - `destinationAddress` string[]: The destination blockchain address(es) of the transaction.
      - `txHash` string: The transaction hash on the blockchain.

## Response `202`

Screening accepted

- TriggerScreeningResponse: Acknowledgement that a screening was accepted and is now running.
  - `screeningId` string, required: Identifier of the screening that was created. Poll `GET /v1/compliance/orchestrator/screenings/{screeningId}` with it for the verdict.
  - `screeningStatus` 'PENDING' | 'RUNNING' | 'COMPLETED' | 'FAILED', required: A screening's lifecycle status. - `PENDING` — accepted, not started - `RUNNING` — one or more steps in flight - `COMPLETED` — every step finished and the workflow outcome is set - `FAILED` — the screening could not be completed

## Other responses

- `400`: Invalid or missing required input fields.
- `404`: Workflow not found.
- `409`: Workflow is not active.
- `default`: Error Response

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
