Error Codes
Representative error codes you'll encounter across the API. Every error follows the shape described in Errors & Response Format: { "errorCode": <int>, "errorDescription": "<message>" } at the listed HTTP status.
Not globally unique
The same numeric code isn't guaranteed to mean the same thing everywhere in the API — always read the error table on the specific endpoint you're calling first. The list below is the fuller reference for when you need it.
Request/validation
| Code |
HTTP |
Meaning |
11001 |
400 |
Malformed request body / failed field validation — errorDescription names the specific field |
Authentication & tokens
| Code |
HTTP |
Meaning |
8005 |
401 |
Unauthorized |
8004 |
401 |
MFA/QR re-scan required |
1012 |
401 |
Malformed, expired, or otherwise invalid JWT |
1011 |
401 |
Privileged user blocked from this action |
1901 |
403 |
Access denied (business-rule, not routing) |
Organizations & members
| Code |
HTTP |
Meaning |
8008 |
402 |
User not in organization |
8008 |
404 |
No such organization |
8008 |
43 |
User already registered |
8009 |
404 |
Organization member doesn't exist |
16004 |
400 |
Organization name already in use |
16005 |
400 |
Owner attempted to leave while other members remain |
16006 |
400 |
Invalid invite request |
16007 |
400 |
An invite is already pending for this org/user pair |
16008 |
402 |
User already belongs to this organization |
16009 |
403 |
eIDAS not enabled for this organization |
Business Apps
| Code |
HTTP |
Meaning |
| — |
409 |
CLIENT_ID_ALREADY_EXISTS — clientId already registered |
| — |
409 |
APP_NAME_ALREADY_EXISTS — appName already registered |
Templates & folders
| Code |
HTTP |
Meaning |
1008 |
409 |
Template already exists (name collision) |
| — |
404 |
Template does not exist |
| — |
400 |
Template is already in its target folder (no-op move rejected) |
1008 |
409 |
Folder already exists |
| — |
404 |
Folder does not exist |
| — |
400 |
Folder is not empty (delete rejected) |
| — |
400 |
Folder role-access configuration invalid |
Credits, packages & billing
| Code |
HTTP |
Meaning |
16001 |
400 |
Insufficient credit balance to perform this action |
16002 |
400 |
Finance settings not configured for this organization |
16003 |
400 |
Organization's package has expired |
Certificates / crypto
| Code |
HTTP |
Meaning |
| — |
— |
WRONG_KEYPAIR_CERTIFICATE — key/cert mismatch |
| — |
— |
CRYPTO_KEY_NOT_EXIST — referenced key not found |
| — |
— |
INVALID_ALGORITHM |
| — |
— |
NOT_QUALIFIED_CERTIFICATE — cert doesn't meet QES requirements |
2009 |
401 |
Crypto profile login failed |
| — |
— |
CRYPTO_PROFILE_NOT_EXIST |
CSC / remote signing (SAD)
| Code |
HTTP |
Meaning |
12001 |
422 |
Invalid SAD (Signature Activation Data) |
12004 |
422 |
Expired SAD |