Skip to main content

Rejection reasons

Understanding detailed decision information in data blocks

As explained in the Core Concept section, each flow session provides a decisionOutcome parameter representing the final flow result. While this high-level outcome is always available, certain steps provide additional detailed information about how that outcome was reached.


Where to find

Detailed decision information is typically available in data blocks generated by decision-making steps that produce verdicts and may trigger flow branching. You can access this information as part of the data block produced when calling, for example, the GET /v1/{environment}/sessions/{sessionId}/datablocks endpoint.


Data structure

Each data block follows a consistent structure:

{
"verdict": "enum", // The final, qualitative outcome of a step
"score": "number", // A optional, numerical score as a percentage (e.g., 71.6)
"reasons": [
// Factors that significantly influenced the score or verdict
{
"code": "string", // Machine-readable code (e.g., "RE029")
"details": "string" // Human-readable explanation
}
]
}
info

Data blocks may provide varying levels of detail. Some steps return complete decision information, while others provide only partial results or no detailed breakdown. The available data depends on the step type, IDnow's internal logic, and any availability of third-party results .:::


Examples

Failed Biometric Authentication

A flow uses the Biometric Authentication step to authenticate a user, but the captured face does not match the enrolled one. The flow reaches a decisionOutcome of "rejected", and the AuthenticationResult data block contains additional details. In this example, both score and code parameters are empty as they are not provided by the third party.

{
"verdict": "failure",
"score": "",
"reasons": [
{
"code": "",
"details": "SERVER_FACE_DOES_NOT_MATCH"
}
]
}

Untrusted Device Signals

The Device intelligence step detects that a user is connecting through a proxy or VPN while attempting identity verification. The step flags this as suspicious, and the DeviceSignals data block contains multiple risk factors.

{
"verdict": "not_trusted",
"score": 28.3,
"reasons": [
{
"code": "RC004",
"details": "The country associated to the ip address does not match with the country of the phone number"
},
{
"code": "RE011",
"details": "This email address is present in much more data breach than usual, indicating a shared email"
}
]
}

Detailed rejection and failure reasons

For detailed reasons such as available parameters, possible values, third-party providers, and links to external documentation, please refer to the Data block overview.