Error Response Format
Every Verification REST API error uses one envelope:Response Fields
Request-body validation failures (a missing or mistyped field) use the lowercase code
validation_error and list the problems under details.validation_errors. Everything else uses the uppercase codes below.Error Code Structure
Codes are domain-prefixed:AUTH_*: authentication and accessVALIDATION_*: request validationSESSION_*: verification session statePROVIDER_*: eID provider and connection availabilityRESOURCE_*: referenced resources (workflows, connection instances)SYSTEM_*: system errors
Authentication Errors
error
Code:
AUTH_INVALID_CREDENTIALS
HTTP Status: 401The Authorization header is missing, is not Basic, is malformed, or the App ID / App Secret pair is wrong.Common Causes:- Sending a Workspace
Bearerkey to a Verification REST endpoint - Using credentials from a different app
- The secret has been rotated
error
Code:
AUTH_DATA_PROTECTED
HTTP Status: 403Tokens and user data cannot be released for this session. Not reachable for sessions created with the REST API.The OIDC token endpoint (
/v2/token) does not use this envelope. It answers with standard OAuth 2.0 errors, { "error": "...", "error_description": "..." }: for example 400 invalid_grant when the authorization code has expired (5 minutes), was already used, or the PKCE verifier does not match, and 401 invalid_client when client authentication fails. See Token.Validation Errors
error
Code:
VALIDATION_INVALID_PARAMETER
HTTP Status: 400A parameter is present but not acceptable. details.parameter names it and error.message explains why.Common Causes:- An unknown
workflowIdwas supplied at session creation - The app is not provisioned for v2 verification
- Not exactly one of
connectionId,connectionInstanceId, andproviderIdwas sent,credentialIdwas sent withoutproviderId, or the provider key is ambiguous - The connection is not activated for the app or not available in its environment
- The connection is not available in this app environment (sandbox or production)
- A required
userInputfield is missing, or aselectfield has a value outside its options
error
Code:
VALIDATION_INVALID_USER_DATA
HTTP Status: 422A userInput value is present but the connection or its provider rejected it, for example an ng-nin nationalIdentityNumber that is not 11 digits. details.required names the expected input and details.hint explains the rule. A missing required field returns 400 VALIDATION_INVALID_PARAMETER instead.error
Code:
VALIDATION_REDIRECT_URI_REQUIRED
HTTP Status: 400The verification would start a redirect flow, but the request has no redirectUri. REST creation does not fall back to the app’s redirect URI allowlist. Send redirectUri in the Create Verification body.error
Code:
validation_error
HTTP Status: 400The request body does not match the schema, for example connectionInstanceId is a number instead of a string.Example Response:Session Errors
error
Code:
SESSION_VERIFICATION_NOT_FOUND
HTTP Status: 404No verification with this id is visible to your app.Common Causes:- Wrong or expired verification id
- The session belongs to another app
- The stored session environment does not match the authenticated app
Foreign-app and environment-mismatched lookups return the same response as an unknown ID.
error
Code:
SESSION_INVALID_STATUS_TRANSITION
HTTP Status: 409The session is not in a state that allows the operation. details.currentStatus and details.allowed_statuses explain the mismatch.Common Causes:- Calling
/userinfobefore the status iscompleted - Cancelling a session that is already
completed,failed, orcancelled
error
Code:
SESSION_INVALID_FLOW
HTTP Status: 400The requested flow cannot be started for this connection.Workflow configuration
409 WORKFLOW_NOT_CONFIGURED means the app has no workflow. Create one before starting a verification. Get Connections remains available but returns instances as disabled until a workflow enables them.
Provider and Connection Errors
error
Code:
PROVIDER_DISABLED_IN_WORKFLOW
HTTP Status: 403The connection is activated for your app but is not enabled in the workflow this verification resolved to. Enable it on the workflow’s Connections tab, or pass a workflowId where it is enabled.Example Response:error
Code:
PROVIDER_INITIALIZATION_FAILED
HTTP Status: 502The eID provider did not accept the new session. The verification is recorded as failed. Start a new one.Common Causes:- Provider outage or timeout
- Provider rejected the request data
error
Code:
PROVIDER_ERROR
HTTP Status: 502Generic provider error during the session.Code:
PROVIDER_UNAVAILABLE
HTTP Status: 503The provider service is temporarily unavailable. Retry with backoff.The v1 codes
PROVIDER_NOT_FOUND and PROVIDER_NOT_ACTIVATED do not occur on v2 endpoints. On v2 you reference a connection instance that already exists because it was activated. An unknown or foreign instance id answers RESOURCE_NOT_FOUND instead.Resource Errors
error
Code:
RESOURCE_NOT_FOUND
HTTP Status: 404A referenced resource does not exist. details.resource is Workflow, Connection, or ConnectionInstance.Common Causes:workflowIddoes not exist for this app on Get Connections. Create Verification reports this as400 VALIDATION_INVALID_PARAMETERconnectionIdis not a known catalog connection, orconnectionInstanceIdis unknown or belongs to another app
System Errors
error
Code:
SYSTEM_INTERNAL_ERROR
HTTP Status: 500Unexpected server error. Retry once after a short delay. If it persists, contact support with the request_id.Error Categories
Error Handling Best Practices
Retry Strategy
- Retryable Errors
- Non-Retryable Errors
User Communication
Error Context
Always log therequest_id together with your own context:
Support
For persistent errors or issues not covered here:Developer Support
Email: support@hopae.comInclude in your report:
- Error code and
request_id - Timestamp
- Verification ID (if available)
- Application environment (sandbox / production)

