Skip to content

Allow Expired Credentials

Follow this guide to turn off expiration enforcement so the verifier accepts credentials even after their validUntil or expirationDate has passed.

Before you start:

  • Sign in to the Vidos dashboard
  • Ensure you have permission to manage the target verifier instance
  • Prepare a credential with a past expiration date (the sample below works out of the box)
  • Open Verifiers in the dashboard and select your instance.

Step 1: Confirm expired credentials currently fail

Section titled “Step 1: Confirm expired credentials currently fail”
  1. Go to the Test tab.
  2. Paste an expired credential. You can copy the sample below.
    expired-credential.json
    {
    "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://www.w3.org/ns/credentials/examples/v2"
    ],
    "type": [
    "VerifiableCredential",
    "ExampleEmployeeCredential"
    ],
    "issuer": "did:key:zDnaekGZTbQBerwcehBSXLqAg6s55hVEBms1zFy89VHXtJSa9",
    "validFrom": "2023-06-01T09:25:48Z",
    "validUntil": "2025-06-01T09:25:48Z",
    "credentialSubject": {
    "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
    "employer": {
    "id": "did:example:c276e12ec21ebfeb1f712ebc6f1",
    "name": "Example Corporation"
    }
    },
    "proof": {
    "type": "DataIntegrityProof",
    "created": "2023-06-01T09:25:48Z",
    "verificationMethod": "did:key:zDnaekGZTbQBerwcehBSXLqAg6s55hVEBms1zFy89VHXtJSa9#zDnaekGZTbQBerwcehBSXLqAg6s55hVEBms1zFy89VHXtJSa9",
    "cryptosuite": "ecdsa-sd-2023",
    "proofPurpose": "assertionMethod",
    "proofValue": "u2V0BhVhA8zrF81ZNJ5If-X-ejI_U4GNp5lOIQoHcfOJihmW9hjRH0Y_JyVWfKOp27YIZRUP2lfdDMsAi_0qIpHw1ht9xcVgjgCQCurXhqc23OvW_atEphK7uzG7jHSkSZqoZPhGBGDNGbkeDWEA9oxz2Lm2eJZfuZs2gcNAlv3sUtWPVSi17dbnly8wIatzVZHvQGanARrHtehaK3xdEYpoUNHpUPalEGzqHza0wWEBMt-85F3OHCMdayRLC-EUlnA8Rp5ZcxbcxAQJhIdm3W1iT8mQeufRJ1IahSkq7Jdh56VmE_tnqGmvjg8N7ISoPWEDy1GSZBNofTyU3lP4X5b-saU3NLNTwblo35jsolH_F0hvhB-bYk7Ts40T69SKYzWPxYBnnLMjVzbLt8ZioyHDCoQBYIPSJjEj5O-r0lVRzcnF9RvRNuSjk08ay4THSOKOn3zFRhQIDBQYH"
    }
    }
  3. Select Verify and confirm the response fails with an expiration error. The response should resemble the following and highlight the notAfter policy failure:
    error-response.json
    {
    "type": "tag:verification-failed",
    "title": "Recheck credentials",
    "results": [
    ...,
    {
    "error": {
    "type": "https://vidos.id/docs/reference/errors/outside-validity-period",
    "title": "Outside of validity period",
    "detail": "The credential is outside of the validity period due to field '/validUntil'",
    "vidosType": "outside-validity-period",
    "errors": [
    {
    "detail": "status: failure, target: ..., reference: Sun Jun 01 2025 11:25:48 GMT+0200 (Central European Summer Time)"
    }
    ]
    },
    "path": [],
    "policy": "notAfter",
    "service": "verifier",
    "status": "error"
    }
    ]
    }
  1. Open Configuration for the verifier.
  2. Expand Policies > notAfter.
  3. Set skip to true to prevent expiration date being checked.
  4. Click Save.

Step 3: Validate expired credential acceptance

Section titled “Step 3: Validate expired credential acceptance”
  1. Switch to the Test tab for the same verifier.
  2. Paste the expired credential you used in step 1.
  3. Select Verify. Confirm the verification succeeds without expiration errors.
    {
    "results": [
    {
    "service": "verifier",
    "policy": "format",
    "path": [],
    "status": "success",
    "data": {...}
    },
    {
    "service": "verifier",
    "policy": "notAfter",
    "path": [],
    "status": "success",
    "data": {...}
    },
    {
    "service": "verifier",
    "policy": "notBefore",
    "path": [],
    "status": "success",
    "data": {...}
    },
    {
    "service": "verifier",
    "policy": "proof",
    "path": [],
    "status": "success",
    "data": {...}
    }
    ]
    }
    :::note Verification succeeds because verifier does not perform the notAfter check so you won’t find it in the result. :::
  1. When you need to block expired credentials again, return to Policies > notAfter.
  2. Set skip to false.
  3. Select Save and rerun the expired credential to confirm it fails.