Verification policies
A verification policy defines what a presentation must prove. You name a policy when starting a verification; DiligenceID turns it into the protocol request.
List
curl -sS "$DILIGENCE_BASE_URL/v1/verification-policies" \
-H "Authorization: ApiKey $DILIGENCE_API_KEY"
Scope: verification-policies.read.
Read one
curl -sS "$DILIGENCE_BASE_URL/v1/verification-policies/verified-employee" \
-H "Authorization: ApiKey $DILIGENCE_API_KEY"
Scope: verification-policies.read. Policies are addressed by the policyIdentifier you chose — internal
references are never required from, or exposed to, a public caller.
Create
curl -sS -X POST "$DILIGENCE_BASE_URL/v1/verification-policies" \
-H "Authorization: ApiKey $DILIGENCE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"policyIdentifier": "verified-employee",
"displayName": "Verified employee",
"organisationReference": "acme-ltd",
"credentialConfigurations": ["ccr_example"],
"requireActiveCredentialStatus": true,
"requireHolderBinding": false
}'
Scope: verification-policies.manage. Returns 201.
| Field | Required | Notes |
|---|---|---|
policyIdentifier |
yes | Your stable identifier; this is what you name when verifying |
displayName |
yes | Shown to the holder as the purpose of the request |
organisationReference |
yes | The organisation the policy belongs to |
credentialConfigurations |
yes | The configurationReference values a presentation may satisfy |
requireActiveCredentialStatus |
no | Default true — a revoked credential fails |
failClosedOnStatusFailure |
no | Default true — if status cannot be checked, fail rather than accept |
requireHolderBinding |
no | Default false |
maximumCredentialAgeSeconds |
no | Reject credentials older than this |
activate |
no | Default true — created and activated in one call |
Pass "activate": false to leave the policy in Draft. A Draft policy cannot start a verification.
Suspend and reactivate
curl -sS -X POST "$DILIGENCE_BASE_URL/v1/verification-policies/verified-employee/suspend" \
-H "Authorization: ApiKey $DILIGENCE_API_KEY"
Scope: verification-policies.manage.
A suspended policy cannot start new verifications — an attempt returns 400. Verifications already in flight
are unaffected. reactivate reverses it.
Suspending is the right tool when a policy is wrong or a credential programme is paused; it is reversible, unlike credential revocation.
Defaults worth understanding
requireActiveCredentialStatus and failClosedOnStatusFailure both default to true, which means a
credential whose status cannot be confirmed is rejected rather than accepted. That is the safe default, and it
means an outage in a status endpoint surfaces as verification failures rather than as silently weakened checks.
Not yet available
Claim constraints and issuer pinning exist in the underlying policy model but are not yet in the public create
request. A policy created through /v1 accepts any trusted, active issuer currently authorised for the named
credential configurations. Use Diligence Admin where you need narrower rules.