Verification result
After a session reaches completed, you can retrieve a detailed result containing personal data, a confidence score and any rejection reasons.
/api/v1/verifications/{id}/resultComplete contract: result fields, statuses, confidence score and rejection reasons.Full contract in the API Reference
Endpoint
GET /api/v1/verifications/{id}/result
Example
curl https://hub.dpay.pl/api/v1/verifications/a1b2c3d4-e5f6-7890-abcd-ef1234567890/result \
-H "Authorization: Bearer deid_live_xxx"
Response (200 OK)
{
"data": {
"id": "f1e2d3c4-b5a6-7890-dcba-0987654321fe",
"verification_session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "verified",
"confidence_score": 0.95,
"verified_data": {
"first_name": "Jan",
"last_name": "Kowalski",
"pesel": "90010112345"
},
"rejection_reasons": null,
"verified_at": "2026-04-07T10:35:00+00:00",
"created_at": "2026-04-07T10:35:00+00:00"
}
}
Response fields
| Field | Type | Description |
|---|---|---|
id | uuid | Verification result ID |
verification_session_id | uuid | Verification session UUID |
status | string | Result status: verified, rejected or inconclusive |
confidence_score | number|null | Confidence score from 0 to 1, where 1 means 100% confidence |
verified_data | object|null | Verified personal data (PII); see PII |
rejection_reasons | array|null | Rejection reasons when status: rejected |
verified_at | datetime|null | Verification date |
created_at | datetime | Result record creation date |
Result statuses
| Status | Description |
|---|---|
verified | Identity confirmed; verified_data contains personal data |
rejected | Identity rejected; reasons are provided in rejection_reasons |
inconclusive | Inconclusive result that requires manual review |
See Statuses for details.
Confidence score
The confidence_score field, from 0 to 1, indicates verification confidence:
| Range | Interpretation |
|---|---|
0.95 - 1.0 | Very high confidence |
0.80 - 0.94 | High confidence |
0.50 - 0.79 | Medium confidence; consider additional verification |
< 0.50 | Low confidence; rejection or manual review is recommended |
For a verified result, the value is usually above 0.90. Lower values can occur with an inconclusive result.
Rejection reasons
When status: rejected, the rejection_reasons field contains a list of reason codes:
{
"data": {
"status": "rejected",
"confidence_score": 0.30,
"verified_data": null,
"rejection_reasons": [
"WRONG_AMOUNT",
"DATA_MISMATCH"
]
}
}
Available reasons depend on the provider. See the documentation for the relevant verification method.
Errors
| Code | Error | Description |
|---|---|---|
| 404 | RESULT_NOT_AVAILABLE | The result is not yet available because the session is in progress or does not exist |
404 error example
{
"error": {
"code": "RESULT_NOT_AVAILABLE",
"message": "Verification result is not yet available. Current status: processing"
}
}
When should I retrieve the result?
Best approach: receive a verification.completed or verification.failed webhook, then call GET /verifications/{id}/result to retrieve all data.
Alternative (polling): periodically call GET /verifications/{id} to check the session status, then retrieve the result after it reaches completed. This is less efficient and consumes your rate limit.
Security
The verified_data field contains personal data (PII) encrypted in the HUB database with AES-256-GCM. Store this data in compliance with GDPR requirements; see PII.