Skip to main content

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.

StatusDescriptionTerminal
createdThe session has been created and is waiting for the customerNo
pendingThe customer opened the link but has not started verificationNo
processingThe provider process is in progress, such as a transfer or mObywatel flowNo
completedThe session is complete and a result is availableYes
failedThe session ended unsuccessfullyYes
expiredThe session reached its TTL or was cancelledYes

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.

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

Difference between the statuses

These are two independent levels:

Session statusResult statusMeaning
completedverifiedPositive verification; PII is available
completedrejectedThe session is complete, but the identity was rejected
completedinconclusiveThe 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);
}