Status and diagnostics
Poll these endpoints for outcomes, or let webhooks tell you when a document is issued or a check completes. Debug failures with the diagnostics timeline.
Verification result
status is initiated, success, failure or expired; claims land in sharedClaims. See Verify a credential. In Intermediary mode sharedClaims is null and the values go to your result endpoint.
Issuance status
Request
curl "$LUTRAID_API/v1/organizations/$ORG/issuers/$ISSUER/credential-offers/$OFFER_ID/status" \
-H "X-API-Key: $LUTRAID_KEY"
{
"id": "3c9e…",
"status": "claimed",
"failureReason": null,
"claimedAt": "…",
"firstIssuedAt": null,
"lastIssuedAt": null,
"expiresAt": "…"
}
status | Means |
|---|---|
pending | offer created, wallet has not exchanged the code |
claimed | code exchanged, credential not yet fetched |
issued | credential delivered to the wallet |
expired | offer's 10-minute window closed |
failed | failureReason is set |
Poll a few seconds apart, or wait for the document.issued webhook.
Diagnostics timeline
Available for both issuance offers and verifications. Query with page (0-based), limit (max 200) and order. The response holds session, events[], total, page, limit and order — each event carries eventType, severity, statusCode, errorCode, durationMs, requestId and traceId, covering the whole protocol run.
Request
curl "$LUTRAID_API/v1/organizations/$ORG/issuers/$ISSUER/credential-offers/$OFFER_ID/diagnostics?page=0&limit=50&order=asc" \
-H "X-API-Key: $LUTRAID_KEY"
The same shape works on a verification: swap the path for .../verifiers/{verifierId}/verifications/{verificationId}/diagnostics.
Diagnostics are an operator-side setting and are off unless enabled for the
deployment; the endpoints return 404 when disabled. That 404 is a plain
{"message": "…"} body — the one place on this surface that doesn't use the
Problem Details shape. Payloads are redacted and
truncated — tokens, credentials and presentations never appear.
Correlating requests
Every response carries X-Request-ID. Send a W3C traceparent and its trace id is threaded through logs and diagnostic events — quote both when reporting a problem.