# FraudReviewData

A model the API reference uses in a request or a response. The operation pages link every field typed as this model here.

Durable record of a transaction held for manual fraud review: when the hold started, when it
expires, what triggered it, and the disposition a human (or the expiry sweep) eventually reached.

## Fields
- `heldAtUtc` (string(date-time)): UTC instant the transaction was parked for review. Stamped once by the screening stage. (nullable)
- `deadlineUtc` (string(date-time)): UTC instant by which a `Pending` hold must be resolved  before the expiry sweep dispositions it on the merchant's behalf. (nullable)
- `triggeringProviderId` (string): Identifier of the screening provider whose verdict triggered the hold, matching  `ExternalScreeningResult.ProviderId`. `null` when the hold came from a  platform rule rather than an external provider. (nullable)
- `triggeringProviderName` (string): Display name of the triggering provider as it stood at park time, snapshotted so the record  still reads correctly after the merchant renames or removes the profile. (nullable)
- `score` (number(double)): The normalized risk score that drove the hold, when the trigger reported one. (nullable)
- `disposition` ([FraudReviewDisposition](https://devportal.demo.winkpg.io/docs/api/models/FraudReviewDisposition.md)): Where the hold currently sits in its disposition lifecycle. (nullable)
  Values:
  - `Pending`: Held and awaiting a human decision. The state the park step writes.
  - `Approved`: An operator released the transaction to continue processing.
  - `Declined`: An operator rejected the transaction.
  - `ExpiredApproved`: The hold deadline elapsed with no reviewer decision and the merchant's configured expiry action released the transaction to continue processing. Only the parked flow itself can produce this: approving on expiry means going on to authorize the payment.
  - `ExpiredDeclined`: The hold deadline elapsed with no reviewer decision and the transaction was rejected. Either the merchant configured a decline on expiry, or the backstop sweep reclaimed a hold whose flow did not survive to honor an approval. DispositionReasonCode tells the two apart.
- `dispositionAtUtc` (string(date-time)): UTC instant `disposition` last moved off `Pending`.  `null` while the hold is still awaiting a decision. (nullable)
- `dispositionByUserId` (string(uuid)): The operator who dispositioned the hold. `null` when the expiry sweep decided  it, which is exactly what distinguishes a human decision from an automatic one in the audit  trail. (nullable)
- `dispositionReasonCode` (string): Why the hold was dispositioned the way it was: a stable gateway-authored code, or short  operator-entered text. (nullable)

## See also

- [All documentation](https://devportal.demo.winkpg.io/llms.txt): the machine-readable index of every public page on this site.
