Error Codes Reference
This page lists every public error code returned by the SlaunchX API. The Code column is the string returned in the code field of the error response. The HTTP column is the HTTP status code accompanying the error. The Message column is the default English message.
All error responses follow the standard Response Format with success: false.
Authentication
Errors related to login, credentials, MFA, and password operations.
| Code | HTTP | Message |
|---|---|---|
AUTH.INVALID_CREDENTIALS | 401 | Invalid credentials |
AUTH.SESSION_NOT_FOUND | 404 | Authentication session was not found |
AUTH.ACCOUNT_LOCKED | 403 | Account is locked |
AUTH.ACCOUNT_SUSPENDED | 403 | Account is suspended |
AUTH.ACCOUNT_REJECTED | 403 | Account registration has been rejected |
AUTH.MFA_CODE_INVALID | 400 | Verification code is invalid |
AUTH.MFA_SEND_COOLDOWN | 429 | Please wait before requesting another verification code |
AUTH.TOO_MANY_ATTEMPTS | 429 | Too many verification attempts |
AUTH.FINGERPRINT_MISMATCH | 403 | Authentication request context does not match the active session |
AUTH.MFA_EMAIL_IMMUTABLE | 409 | Email verification cannot be disabled or reconfigured |
AUTH.OTP_SETUP_SESSION_INVALID | 400 | OTP setup session is invalid or has expired |
AUTH.PASSWORD_RESET_TOKEN_INVALID | 400 | Password reset token is invalid |
AUTH.PASSWORD_RESET_TOKEN_EXPIRED | 400 | Password reset token has expired |
AUTH.CURRENT_PASSWORD_INCORRECT | 400 | Current password is incorrect |
Access Control
Errors related to authorization, tokens, and permissions.
| Code | HTTP | Message |
|---|---|---|
ACCESS.UNAUTHORIZED | 401 | Authentication required |
ACCESS.TOKEN_MISSING | 401 | Authentication token is required |
ACCESS.PERMISSION_DENIED | 403 | Access denied |
ACCESS.RISK_CHALLENGE_REQUIRED | 403 | Additional verification is required |
ACCESS.MFA_REQUIRED | 403 | Transaction MFA verification is required |
ACCESS.MFA_TOKEN_EXPIRED | 403 | MFA verification token has expired |
ACCESS.MFA_TOKEN_INVALID | 403 | MFA verification token is invalid |
ACCESS.MFA_CHALLENGE_EXPIRED | 400 | MFA challenge has expired or was not found |
ACCESS.MFA_CODE_INVALID | 400 | MFA verification code is invalid |
ACCESS.MFA_TOO_MANY_ATTEMPTS | 429 | Too many MFA verification attempts |
ACCESS.MFA_NOT_CONFIGURED | 400 | Multi-factor authentication is not configured for this account |
Validation
Errors related to request parameters and input validation.
| Code | HTTP | Message |
|---|---|---|
VALIDATION.INVALID_PARAMETER | 400 | Invalid request parameters |
Resource
Errors related to resource lookup.
| Code | HTTP | Message |
|---|---|---|
RESOURCE.NOT_FOUND | 404 | Resource not found |
Request
Errors related to request handling, rate limiting, and conflicts.
| Code | HTTP | Message |
|---|---|---|
REQUEST.METHOD_NOT_ALLOWED | 405 | HTTP method is not allowed for this endpoint |
REQUEST.RATE_LIMITED | 429 | Too many requests |
REQUEST.CONFLICT | 409 | Request conflict |
Secure Channel
Errors related to the Secure Channel encryption protocol.
| Code | HTTP | Message |
|---|---|---|
SECURE_CHANNEL.INVALID_PAYLOAD | 400 | Invalid payload format |
Workspace
Errors related to workspace membership, roles, and invitations.
| Code | HTTP | Message |
|---|---|---|
WORKSPACE.MEMBER_ALREADY_EXISTS | 409 | User is already a workspace member |
WORKSPACE.INVITATION_EXPIRED | 409 | Invitation has expired |
WORKSPACE.INVITATION_ALREADY_PROCESSED | 409 | Invitation has already been processed |
WORKSPACE.DUPLICATE_PENDING_INVITATION | 409 | A pending invitation already exists for this email |
WORKSPACE.CROSS_INSTITUTION_INVITATION | 403 | Cross-institution invitations are not allowed |
WORKSPACE.CROSS_PORTAL_ACCEPT | 403 | Cross-portal invitation acceptance is not allowed |
WORKSPACE.INVITATION_CANCEL_FORBIDDEN | 403 | Only the inviter or workspace owner can cancel this invitation |
WORKSPACE.ROLE_NAME_EXISTS | 409 | Workspace role name already exists |
WORKSPACE.ROLE_IN_USE | 409 | Workspace role is still assigned to members |
WORKSPACE.OWNER_ROLE_PROTECTED | 409 | Workspace owner role cannot be changed |
Wallet
Errors related to wallet accounts and balances.
| Code | HTTP | Message |
|---|---|---|
WALLET.ACCOUNT.NOT_FOUND | 404 | Wallet account was not found |
WALLET.INSUFFICIENT_BALANCE | 409 | Wallet balance is insufficient |
WALLET.CURRENCY_NOT_SUPPORTED | 400 | Wallet currency is not supported |
WALLET.RECHARGE_CHANNEL_NOT_FOUND | 404 | Recharge channel was not found |
Transfer
Errors related to fund transfers.
| Code | HTTP | Message |
|---|---|---|
TRANSFER.WALLET_NOT_FOUND | 404 | Transfer wallet was not found |
TRANSFER.CURRENCY_MISMATCH | 409 | Transfer wallets use incompatible currencies |
TRANSFER.SAME_WALLET | 409 | Source and target wallet must be different |
TRANSFER.TARIFF_NOT_CONFIGURED | 409 | Transfer tariff is not configured |
TRANSFER.TARIFF_TENANT_MISMATCH | 403 | Transfer tariff does not belong to the active tenant |
Notification
Errors related to notification channels.
| Code | HTTP | Message |
|---|---|---|
NOTIFICATION.CHANNEL_NOT_FOUND | 404 | Notification channel was not found |
NOTIFICATION.CHANNEL_NAME_DUPLICATE | 409 | Notification channel name already exists |
File
Errors related to file operations.
| Code | HTTP | Message |
|---|---|---|
FILE.NOT_FOUND | 404 | File was not found |
FILE.SIZE_EXCEEDED | 400 | File size exceeds the allowed limit |
FILE.TYPE_NOT_ALLOWED | 400 | File type is not allowed |
Currency
Errors related to currency configuration.
| Code | HTTP | Message |
|---|---|---|
CURRENCY.CONFIG_NOT_FOUND | 404 | Currency configuration was not found |
CURRENCY.CONFIG_ALREADY_EXISTS | 409 | Currency configuration already exists |
CURRENCY.DISABLED | 409 | Currency is disabled |
Institution
Errors related to institution management.
| Code | HTTP | Message |
|---|---|---|
INSTITUTION.NOT_FOUND | 404 | Institution was not found |
INSTITUTION.DISABLED | 403 | Institution is disabled |
INSTITUTION.ACCESS_CODE_INVALID | 400 | Institution access code is invalid |
System
Catch-all errors for unexpected failures.
| Code | HTTP | Message |
|---|---|---|
SYSTEM.INTERNAL_ERROR | 500 | Internal server error |
Error Response Example
{
"version": "2.0.0",
"timestamp": 1711929600000,
"success": false,
"code": "AUTH.INVALID_CREDENTIALS",
"message": "Invalid credentials",
"data": null
}Notes
- Error messages are localized based on the
Accept-Languageheader. The messages listed above are the default English messages. - When
successisfalse, thecodefield contains the dot-separated error code from this reference. - Multiple internal error conditions may map to the same public error code. For example, various password validation failures all return
VALIDATION.INVALID_PARAMETER.