---
title: "Manual decision for missing TRM"
method: POST
path: "/screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision"
tags: ["TRLink"]
---

# Manual decision for missing TRM

`POST /screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/screening/trlink/customers/integration/{customerIntegrationId}/transactions/{txId}/manual_decision`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/screening/trlink/customers/integration/:customerIntegrationId/transactions/:txId/manual_decision/post.ts> (a function with typed inputs; its response is checked against the schema)

Accept or reject destinations waiting for a Travel Rule message (missing TRM), without waiting for a TRP webhook or the missing-TRM policy timeout. You can submit before a destination enters the missing-TRM wait; if it can't be updated immediately, the decision is applied on the next processing attempt instead (status ACCEPTED). Check `status` in the response to see whether the decision has been applied.

## Path parameters

- `customerIntegrationId` string, uuid, required
- `txId` string, uuid, required

## Headers

- `Idempotency-Key` string

## Request body

- TRLinkManualDecisionRequest: Request to manually accept or reject destinations waiting for a Travel Rule message (missing TRM)
  - `action` 'ACCEPT' | 'REJECT', required: Decision action for destinations waiting for a Travel Rule message (missing TRM)
  - `reason` string: Optional reason for the manual decision (e.g. 'Internal KYC approved'). Do not include PII.

## Response `200`

Decision applied (status APPLIED), accepted for the next processing attempt (status ACCEPTED), or accepted early (status PRE_ACCEPTED).

- TRLinkManualDecisionResponse: Response containing the result of a manual missing-TRM decision (POST write or GET read).
  - `status` 'APPLIED' | 'ACCEPTED' | 'PRE_ACCEPTED', required: APPLIED - Decision applied to at least one destination immediately. ACCEPTED - Intent stored for deferred apply on the next processing attempt. PRE_ACCEPTED - Intent stored on the transaction before destinations entered the missing-TRM wait.
  - `action` 'ACCEPT' | 'REJECT', required: Decision action for destinations waiting for a Travel Rule message (missing TRM)
  - `source` 'manual' | 'policy', required: Source of the manual decision. Values are lowercase.
  - `txId` string, required: Transaction ID
  - `destinationsAffected` integer, required: Number of destinations where the decision was applied
  - `destinationsSkipped` integer, required: Number of destinations that were skipped
  - `details` TRLinkManualDecisionDestinationDetail[], required: Per-destination details
    - `destinationScreeningId` string, required: Destination screening record ID
    - `applied` boolean, required: Whether the decision was applied to this destination
    - `skipReason` string, nullable: Reason when applied is false. Common values: deferred apply (destination could not be updated immediately), already applied, status changed, trmId exists, destination not found.

## Other responses

- `404`: Customer integration not found or not owned by tenant (code 2125).
- `409`: Manual decision already final for this transaction (code 2127) or transaction screening already completed (code 2129).
- `425`: Too Early - screening has not started for this transaction yet.
- `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)
