SyncNexaSyncNexa
Docs
v1.0 (Latest)

Verification States & Proofs

v1.0

Reference of all verification session states, error codes, proof validation responses, and lifecycle transitions.

Last updated: August 2026

Every verification attempt in SyncNexa progresses through a strictly defined state machine to ensure auditability, replay protection, and deterministic outcomes.

Verification Session Lifecycle

A verification session begins in the pending state when created by a business or portal scanner, transitions to evaluating when the student submits their proof, and concludes in either completed, failed, or expired:

Session States Reference

Status CodeTerminal?DescriptionAction Required
pendingNoSession created and waiting for student interactionPresent QR code or prompt student to approve
evaluatingNoProof received; cryptographic verification in progressWait for validation outcome (< 200ms)
completedYesProof successfully validated; student status confirmedApply student discount / grant access
failedYesProof invalid, forged, or credential revokedPrompt user to retry or deny privilege
expiredYesSession TTL exceeded without receiving proofCreate a new verification session
cancelledYesSession explicitly cancelled by student or requesterAborted by user

Proof Payload Structure

When a verification session reaches the completed state, the verification response payload contains the proof verification metadata:

verification-result.jsonjson
1{
2 "sessionId": "sess_0a1b2c3d4e5f",
3 "status": "completed",
4 "verified": true,
5 "verifiedAt": "2026-08-20T12:15:30.124Z",
6 "issuer": {
7 "id": "did:syncnexa:uni:oxford",
8 "name": "University of Oxford",
9 "domain": "ox.ac.uk",
10 "trustScore": 1.0
11 },
12 "claims": {
13 "is_enrolled": true,
14 "enrollment_type": "Full-Time",
15 "academic_year": "2025/2026",
16 "valid_until": "2027-06-30T23:59:59Z"
17 },
18 "cryptography": {
19 "proofType": "Groth16",
20 "circuit": "student_enrollment_v1",
21 "signatureValid": true,
22 "nonce": "nonce_7f8a9b0c1d2e3f4a"
23 }
24}

Common Failure Reasons

Failure CodeUser-Facing ReasonRecommended Resolution
ERR_EXPIRED_CREDENTIALStudent enrollment has expiredStudent must request credential renewal from their university
ERR_REVOKED_CREDENTIALCredential has been revoked by the issuerStudent status is no longer in good standing
ERR_INVALID_SIGNATURECryptographic signature mismatchCheck if student device clock is out of sync
ERR_NONCE_REPLAYChallenge nonce already usedSession expired or screenshot replayed; scan fresh QR code
ERR_SESSION_TIMEOUT5-minute session window elapsedGenerate a new verification session
Was this page helpful?