Rejection reasons
Understanding detailed decision information in data blocks
As explained in the Core Concept section, each flow session provides an outcome 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
Data blocks from decision-making steps include fields indicating the outcome and, where available, the reasons behind it. The exact field names and structure vary by data block type:
- Some use
verdict(e.g.,DocumentVerification,ComparisonResults), others useresult(e.g.,AuthenticationResult,DeviceSignals,DigitalSignals) - Reasons may be a singular
reasonobject or areasonsarray depending on the data block type - A
scorefield is present only in certain data blocks (e.g.,DigitalSignals)
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 an outcome of "rejected", and the AuthenticationResult data block contains additional details.
{
"result": "failure",
"reason": {
"code": "FACE_NOT_MATCHED",
"details": "SERVER_FACE_DOES_NOT_MATCH"
}
}
Untrusted Digital Signals
The Email & phone verification step detects that a user is connecting through a proxy or VPN while attempting identity verification. The step flags this as suspicious, and the DigitalSignals data block contains multiple risk factors.
{
"result": "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.