| Error Key | User-facing Message | When Triggered | Error Code |
|---|---|---|---|
| CRYPTOGRAPHIC_ERROR | A security issue occurred. Please try again. | RSA handshake or payload encryption/decryption failed. | 400 |
| SESSION_ERROR | We couldn’t load your session. Please try again. | Session ID or token is missing, expired, or invalid. | 400 |
| INVALID_REQUEST | Something’s wrong with the request. Please try again. | The API received a malformed or incomplete request payload. | 400 |
| INVALID_CONFIGURATION | System setup error. Please try again. | Channel configuration is missing or misconfigured on the backend. | 400 |
| TIMEOUT | Request timed out. Please try again. | The backend did not respond within the expected time window. | 408 |
| DB_ERROR | Something went wrong. Please try again. | A database-level error occurred on the backend. | 500 |
| ENGINE_ERROR | System error. Please try again. | The biometric or document processing engine encountered an error. | 500 |
| INTERNAL_ERROR | An unexpected error occurred. | An unhandled exception on the backend or in the SDK pipeline. | 500 |
| INVALID_OPERATION | Please scan again. | Operation not permitted in the current state (e.g. invalid QR re-scan). | 400 |
| INVALID_DATA | Please check your input and try again. | Provided data failed validation — document number format, image quality, etc. | 400 |
| SDK_INTERNAL_ERROR | SDK Internal Error. | init() was not called or failed before a data method was invoked. | 400 |
| UNAUTHORIZED_ACCESS | Unauthorized access. Please login again. | Authentication failed due to invalid credentials, expired token, or missing authorization header. | 401 |
| JOURNEY_ERROR | Unable to complete the verification journey. Please try again. | The verification journey failed due to an invalid state transition or backend journey processing issue. | 400 |
2. Error Handling
Errors should be accessed from theerrors array when code !== 200.
Recommended Pattern
Message key matches a known SDK error, it is mapped to a human-readable message before being returned in errors[0].message.
If the message key is not recognised, the SDK falls back to:
- The backend
Detailsfield - A generic fallback message
3. Session Handling
UseQuepass.isSessionTimedOut() to check whether the current session has expired.
If the session is timed out, re-initialize the SDK before making additional requests.
4. Close SDK
CallQuepass.closeSDKProcess() to properly terminate the SDK process when required.
5. SDK Capabilities
UseQuepass.getSdkCapabilities() to retrieve SDK metadata such as version details.
If the backend returns a Message key not in ERROR_CODES, the SDK falls back to the Details field of the response, then to a generic fallback string.