---
Source: https://docs.microblink.com/verify/v2/response
Title: Interpret the response
Description: How to interpret and act on BlinkID Verify API responses
---

# Interpret the response

The first two fields in the response are `processingStatus` and `verification`, and they give you the primary actionable insight.

```json
{
  "processingStatus": "Completed",
  "verification": {
    "recommendedOutcome": "Accept",
    "result": "Pass",
    "certaintyLevel": "High",
    "performedChecks": 34,
    "type": "DetailedCheck"
  },
  // ...
```

## Check if processing is complete

Before reading the verification result, check `processingStatus`.
It tells you whether processing completed and, if not, what stopped it.

Only a `Completed` status means that the full verification pipeline ran.

You can see the full list of possible processing statuses [in the API reference](/verify/api/ref/v2#model/ProcessingStatus).

## Pass or fail a document

The `verification` group contains the overall fraud verdict for the document.
Its primary field is `recommendedOutcome`.

### Check the recommended outcome

```json
{
  "recommendedOutcome": "Accept",
  "result": "Pass",
  "certaintyLevel": "High",
  "performedChecks": 34,
  "type": "DetailedCheck"
}
```

`verification.recommendedOutcome` is the field your integration should branch on.
It accounts for the fraud verdict, image quality, document support, and your configured [use case](./configuration.md#use-cases).

- `Accept`: the document is genuine and live—let the user proceed.
- `Reject`: the document is not genuine or not live—block or flag the user.
- `Retry`: the document was found but image conditions weren't good enough to reach a verdict—prompt the user to recapture.
- `ManuallyReview`: the result is ambiguous—route to a human reviewer. 
  You still receive a full verdict and detailed check results to assist the review. 
  Requires manual review to be enabled in your [use case](./configuration.md#use-cases).
- `Undeterminable`: the system could not find a supported document in the images at all—the document type may be unsupported, or image quality was too poor to detect any document. 
  Do not automatically retry.

## See what was checked on the document

The root-level `checks` array provides a structured breakdown of each individual verification check.
This is useful when `recommendedOutcome` is `Reject` and you need to understand why, or when building a manual review interface.

The top-level checks are:

- `VisualCheck`
- `DataCheck`
- `DocumentLivenessCheck`
- `DocumentValidityCheck`
- `ImageQualityCheck`
- `OverallFraudCheck`

Each check resolves to `Pass`, `Fail`, or `NotPerformed`.
Checks are hierarchical: each top-level check groups lower-level checks, which in turn group the underlying models and heuristics.

For pass/fail decision branching, `verification.recommendedOutcome` is sufficient.
`checks` is primarily useful for logging, debugging, and manual review workflows.

For more details about checks, see [Checks](./check.md).

## Other response groups

- `processIndicators`: an array of indicators about image and capture conditions; blur, crop, clarity, and similar factors that affected the result without being direct fraud signals.
- `extraction`: personal data extracted from the document.
- `messages`: human-readable explanations for integrators, present when the verification behaved unexpectedly. 
  See [Response messages](./messages.md).
- `optionsUsed` and `useCaseUsed`: the configuration used with the request.
- `runtime`: timing, version, and trace ID.


Last updated on Aug 3, 2026
