Inyo

Manual Review

A decision of in_review means a person at Inyo decides the outcome. It is not a failure and not a final answer, and it reaches you on either entry point β€” including on a server-to-server verification, whose assessment can land on it like any other.

Manual review exists only under managed decisioning. Under non-managed decisioning there is no decision field, nothing is queued, and this page does not apply to you.


Why a Verification Is in_review

Your account decides which score bands are sent to a reviewer. Nothing is queued unless you ask β€” by default a verification is final as scored.

The session's status is completed throughout: it is finished, and only the decision is outstanding.

decisionWhat happened
in_reviewThe session landed in a band you asked to have reviewed. A person is deciding
approved / declined / inconclusiveEither the score settled it, or a reviewer did β€” the field reads the same either way

Which bands are sent for review is set for your account β€” talk to your Inyo contact to change it.


The Trust Index

Every result carries trustIndex, the verification's score from 0 to 100. The boundaries it is scored against are configuration for your account and are not published on the result.

severity on each check row β€” critical, high, medium or low, heaviest first β€” names how much that check weighs. Both the weights and the boundaries are set for your account and can change, so read decision for the outcome rather than deriving one from the score.


How the Decision Reaches You

When an analyst decides, the stored result is updated in place and re-delivered.

ChannelBehavior
WebhookWith a webhookUrl configured, the decided result is POSTed to it β€” signed exactly like any other delivery. This covers redirect-mode sessions and server-to-server verifications too, via result notifications
ReadGET /v1/sessions/{sessionId} for a widget session, GET /v1/verifications/{verificationId} for a verification, each returning the live status and result. This is what you have if you have no webhookUrl

The decision changes from in_review to the reviewer's outcome. Nothing else about the payload changes shape:

{
  "sessionId": "9f1c8e42-7c3e-4f2b-9d7a-2b1e5c8f4a10",
  "status": "completed",
  "decision": "approved",
  "notifiedAt": "2026-07-31T14:41:09.882Z"
}

The result does not say who decided or why. That record is kept, and is available to Inyo staff handling a query about the session β€” it is not part of the tenant-facing payload.


Completed Outcomes Can Change

A verification whose decision already reads approved or declined can be reversed later by a quality-control override. It arrives through the same channel, as a new decision on the same session.

This is why ordering matters: apply the highest notifiedAt and ignore anything older (see Receiving Results). A session can have two deliveries in flight at once β€” one still retrying while a newer decision is dispatched.


What to Build

RequirementWhy
A pending state in your own model, distinct from approved and rejectedAn in_review decision is neither
An idempotent result handler keyed on sessionId, resolving by notifiedAtThe same session's result legitimately arrives more than once
The ability to reverse a decision you already acted onA quality-control override can flip a completed outcome

Build the pending state even if you send nothing for review: a decided verification can still be reopened by a quality-control override, which arrives as in_review.


Next Steps