Skip to main content

Verification result

After a session reaches completed, you can retrieve a detailed result containing personal data, a confidence score and any rejection reasons.

GET/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

FieldTypeDescription
iduuidVerification result ID
verification_session_iduuidVerification session UUID
statusstringResult status: verified, rejected or inconclusive
confidence_scorenumber|nullConfidence score from 0 to 1, where 1 means 100% confidence
verified_dataobject|nullVerified personal data (PII); see PII
rejection_reasonsarray|nullRejection reasons when status: rejected
verified_atdatetime|nullVerification date
created_atdatetimeResult record creation date

Result statuses

StatusDescription
verifiedIdentity confirmed; verified_data contains personal data
rejectedIdentity rejected; reasons are provided in rejection_reasons
inconclusiveInconclusive result that requires manual review

See Statuses for details.

Confidence score

The confidence_score field, from 0 to 1, indicates verification confidence:

RangeInterpretation
0.95 - 1.0Very high confidence
0.80 - 0.94High confidence
0.50 - 0.79Medium confidence; consider additional verification
< 0.50Low 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

CodeErrorDescription
404RESULT_NOT_AVAILABLEThe 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

danger

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.