Statuses
DPay Web EID distinguishes between two types of status: the session status, which describes the process, and the result status, which describes the verification outcome.
Session status (VerificationSession.status)
This status describes the current stage of the verification process.
| Status | Description | Terminal |
|---|---|---|
created | The session has been created and is waiting for the customer | No |
pending | The customer opened the link but has not started verification | No |
processing | The provider process is in progress, such as a transfer or mObywatel flow | No |
completed | The session is complete and a result is available | Yes |
failed | The session ended unsuccessfully | Yes |
expired | The session reached its TTL or was cancelled | Yes |
For a complete description of transitions, see Lifecycle.
Result status (VerificationResult.status)
This status describes the verification outcome and is available only for a session in completed state.
| Status | Description |
|---|---|
verified | Identity confirmed; verified_data contains personal data |
rejected | Identity rejected; the reasons are in rejection_reasons |
inconclusive | Inconclusive result that requires manual review |
Difference between the statuses
These are two independent levels:
| Session status | Result status | Meaning |
|---|---|---|
completed | verified | Positive verification; PII is available |
completed | rejected | The session is complete, but the identity was rejected |
completed | inconclusive | The session is complete, but the result is inconclusive |
failed | (none) | The session did not reach the result stage because of a technical error |
expired | (none) | The session expired before completion |
tip
A completed session does not mean positive verification. Always check result.status === 'verified' before accepting the customer's identity.
PHP check example
<?php
$session = getVerificationSession($id);
if ($session['status'] !== 'completed') {
// The session is still in progress or has failed
return;
}
$result = getVerificationResult($id);
if ($result['status'] === 'verified') {
// OK - the customer can be accepted
$verifiedData = $result['verified_data'];
saveCustomerData($verifiedData);
} elseif ($result['status'] === 'rejected') {
// Reject - reasons are listed in rejection_reasons
logRejection($result['rejection_reasons']);
} else {
// inconclusive - requires manual review
flagForManualReview($id);
}