Error Codes Reference
Total error codes: 439
This page lists every error code returned by the SlaunchX API, grouped by domain. 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.
Account (User)
Source: UserError -- prefix U
| Code | HTTP | Description |
|---|---|---|
U1010 | 400 | Portal type does not allow self-registration |
U1011 | 400 | Invalid or deactivated referral code |
U1012 | 400 | Referral code not found |
U1013 | 400 | Account pending approval |
U1014 | 400 | Portal type does not allow approval operations |
U1015 | 400 | Invalid status transition |
U1016 | 400 | Status does not allow rejection |
U1017 | 400 | Referral code already exists for this partner |
U1018 | 400 | Account is not a partner type |
U1019 | 400 | Referral association not found |
U1020 | 400 | Account not found |
U1021 | 400 | Email already exists |
U1022 | 400 | Invalid parent account for sub-account creation |
U1023 | 400 | Sub-account not found under parent |
U1030 | 400 | Default workspace can only be created by system |
U1031 | 400 | Default workspace cannot be modified or deleted |
U1032 | 400 | Portal cannot create additional workspaces |
U1033 | 400 | Exceeded workspace limit for account |
U1040 | 400 | Invitation not found |
U1041 | 400 | Invitation expired |
U1042 | 400 | Invitation already processed |
U1043 | 400 | Invitation token invalid |
U1044 | 400 | Duplicate pending invitation for email |
U1045 | 400 | Cannot invite existing workspace member |
U1046 | 400 | Only workspace owner can invite members |
U1050 | 400 | Platform institution already exists |
U1051 | 400 | Parent institution required for this type |
U1052 | 400 | Invalid parent institution type |
U1053 | 400 | Institution not found |
U1060 | 400 | Session not found or expired |
U1061 | 400 | Verification code send cooldown |
U1062 | 400 | Invalid verification code |
U1063 | 400 | Too many verification attempts |
U1064 | 400 | Email already registered |
U1065 | 400 | Invalid credentials |
U1066 | 400 | Account locked |
U1067 | 400 | Account suspended |
U1068 | 400 | Account closed |
U1069 | 400 | Client fingerprint mismatch |
U1070 | 400 | Workspace role name already exists |
U1071 | 400 | Owner role cannot be modified |
U1072 | 400 | Owner role cannot be deleted |
U1073 | 400 | Workspace role has active members |
U1074 | 400 | Owner role permissions cannot be configured |
U1075 | 400 | Permission code not found |
U1076 | 400 | Owner role cannot be changed |
U1077 | 400 | Role does not belong to this workspace |
U1078 | 400 | Cannot assign owner role to member |
U1080 | 400 | No update fields provided |
U1081 | 400 | Account already exists |
U1082 | 400 | Invalid session password data |
U1083 | 400 | Invalid account status transition |
U1084 | 400 | Parameter required |
U1085 | 400 | Missing security context |
U1086 | 400 | Invalid OTP code |
U1087 | 400 | Email MFA is immutable base verification |
U1088 | 400 | OTP setup session invalid or expired |
U1089 | 400 | Account rejected |
U1090 | 400 | Verification code send failed |
U1091 | 400 | Password init session not found |
U1092 | 400 | Password init session expired |
Account (Password)
Source: PasswordError -- prefix P
| Code | HTTP | Description |
|---|---|---|
P1001 | 500 | Invalid email format |
P1002 | 500 | Turnstile validation failed |
P1003 | 500 | Rate limit exceeded |
P1004 | 500 | Password reset token invalid |
P1005 | 500 | Password reset token expired |
P1006 | 500 | Password too weak |
P1007 | 500 | Current password incorrect |
P1008 | 500 | New password same as current |
P1009 | 500 | Account not found |
P1010 | 500 | Account status does not allow this operation |
P1011 | 500 | Session invalid |
API Key
Source: ApiKeyError -- prefix AK
| Code | HTTP | Description |
|---|---|---|
AK1001 | 500 | Owner role required |
AK1002 | 500 | Access denied for this API key |
AK1003 | 500 | Workspace not accessible |
AK1006 | 500 | API key not found |
AK1007 | 500 | API key disabled |
AK1008 | 500 | API key deleted |
AK1009 | 500 | API key status does not allow this operation |
AK1011 | 500 | API key name required |
AK1012 | 500 | API key name duplicate |
AK1013 | 500 | Invalid or disabled permission code |
AK1014 | 500 | Invalid IP whitelist format |
AK1015 | 500 | API key quota exceeded |
AK1016 | 500 | Signature invalid |
AK1017 | 500 | Timestamp expired |
AK1018 | 500 | Nonce already used |
AK1019 | 500 | IP not in whitelist |
AK1020 | 500 | Workspace disabled |
AK1021 | 500 | API key mode does not match workspace type |
Common
Source: CommonError -- prefix C
| Code | HTTP | Description |
|---|---|---|
C0001 | 500 | Internal server error |
C0002 | 503 | Service temporarily unavailable |
C0003 | 504 | Request timeout |
C0004 | 500 | Configuration error |
C0005 | 500 | Database error |
C0100 | 400 | Invalid parameter value |
C0101 | 400 | Missing required parameter |
C0102 | 400 | Invalid format |
C0103 | 400 | Value out of range |
C0104 | 400 | Invalid request ID |
C0105 | 409 | Idempotent conflict -- request already processed |
C0106 | 400 | Invalid idempotent key |
C0200 | 401 | Unauthorized -- authentication required |
C0201 | 403 | Forbidden -- insufficient permissions |
C0202 | 401 | Token expired |
C0203 | 401 | Invalid token |
C0204 | 401 | Invalid credentials |
C0205 | 403 | Account locked |
C0206 | 401 | Session expired |
C0300 | 404 | Resource not found |
C0301 | 409 | Resource conflict |
C0302 | 409 | Resource already exists |
C0303 | 400 | Invalid resource state for this operation |
C0304 | 410 | Resource deleted |
C0400 | 502 | External service error |
C0401 | 504 | External service timeout |
C0402 | 503 | External service unavailable |
C0403 | 502 | External service authentication failed |
C0500 | 429 | Rate limit exceeded |
C0501 | 429 | Daily limit exceeded |
C0502 | 429 | Concurrent request limit exceeded |
Currency
Source: CurrencyError -- prefix CUR
| Code | HTTP | Description |
|---|---|---|
CUR1001 | 500 | Currency configuration not found |
CUR1002 | 500 | Currency configuration already exists |
CUR1003 | 500 | Currency not in enum definition |
CUR1004 | 500 | Currency disabled |
CUR1005 | 500 | Currency not available for new users |
CUR1006 | 500 | Currency not available for expansion |
CUR2001 | 500 | Enable currency failed |
CUR2002 | 500 | Disable currency failed |
CUR2003 | 500 | Update currency configuration failed |
CUR2004 | 500 | Sync currency configuration failed |
Email
Source: EmailError -- prefix E
| Code | HTTP | Description |
|---|---|---|
E1001 | 401 | Invalid credentials provided |
E1002 | 401 | Authentication token expired |
E1003 | 401 | Credentials type not compatible with provider |
E1004 | 400 | No suitable authentication strategy found |
E1005 | 401 | OAuth2 token refresh failed |
E1099 | 401 | Authentication failed (general) |
E2001 | 503 | Failed to connect to mail server |
E2002 | 504 | Connection timeout |
E2003 | 503 | Server not found or unreachable |
E2004 | 503 | SSL/TLS handshake failed |
E2005 | 503 | Connection refused by server |
E2006 | 503 | Connection closed unexpectedly |
E3001 | 500 | Failed to send email |
E3002 | 400 | Invalid recipient address |
E3003 | 400 | Invalid sender address |
E3004 | 413 | Message too large |
E3005 | 400 | Attachment error |
E3006 | 429 | Send rate limit exceeded |
E3007 | 400 | Recipient rejected by server |
E4001 | 500 | Failed to receive emails |
E4002 | 404 | Folder not found |
E4003 | 404 | Message not found |
E4004 | 500 | Failed to parse message |
E4005 | 403 | Folder access denied |
E5001 | 400 | Invalid email configuration |
E5002 | 400 | Missing required configuration |
E5003 | 400 | Invalid SMTP configuration |
E5004 | 400 | Invalid IMAP configuration |
E5006 | 400 | Invalid auth type for provider |
E5007 | 400 | Provider not supported |
E9001 | 500 | Email operation failed (general) |
E9002 | 400 | Invalid email address format |
E9003 | 501 | Unsupported operation |
E9999 | 500 | Internal error |
Exchange
Source: ExchangeError -- prefix EX
| Code | HTTP | Description |
|---|---|---|
EX1001 | 404 | Exchange rate not found |
EX1002 | 400 | Currency pair not configured |
EX1003 | 404 | Fee configuration not found |
EX1004 | 409 | Rate configuration already exists |
EX1005 | 409 | Fee configuration already exists |
EX1006 | 400 | Invalid fee configuration |
EX1007 | 400 | Currency not granted |
EX1008 | 404 | Wallet not found |
EX1009 | 400 | Wallet inactive |
EX1010 | 400 | Invalid amount |
EX1011 | 404 | Order not found |
EX1012 | 400 | Insufficient balance |
EX1013 | 400 | Source and target currency are the same |
Export
Source: ExportError -- prefix EP
| Code | HTTP | Description |
|---|---|---|
EP1001 | 400 | Invalid export type |
EP1002 | 404 | Export task not found |
EP1003 | 409 | Export task not ready |
EP1004 | 410 | Export task expired |
EP1005 | 400 | Invalid export parameters |
EP1006 | 500 | Export parameter serialization failed |
EP1007 | 500 | Export execution failed |
File
Source: FileError -- prefix F
| Code | HTTP | Description |
|---|---|---|
F1001 | 404 | File not found |
F1002 | 400 | File business ID required |
F1020 | 400 | File is empty |
F1021 | 400 | File size exceeded limit |
F1022 | 400 | File type not allowed |
F1040 | 500 | File upload failed |
F1041 | 500 | File download failed |
F1042 | 500 | Failed to get presigned URL |
Funding Account
Source: FundingAccountError -- prefix FA
| Code | HTTP | Description |
|---|---|---|
FA1001 | 400 | Category not supported |
FA1002 | 400 | Region not supported |
FA1003 | 400 | Payment rail not supported |
FA1004 | 400 | Crypto network not supported |
FA1005 | 400 | Invalid channel configuration |
FA1006 | 404 | Schema not found |
FA1007 | 400 | Invalid fee configuration |
FA1008 | 500 | Fee configuration parse failed |
Gateway Auth
Source: ApiAuthError -- prefix GA
| Code | HTTP | Description |
|---|---|---|
GA2001 | 500 | Missing X-Api-Key header |
GA2002 | 500 | Missing X-Signature header |
GA2003 | 500 | Missing X-Timestamp header |
GA2004 | 500 | Missing X-Nonce header |
GA2011 | 500 | API key invalid or not found |
GA2012 | 500 | Signature verification failed |
GA2013 | 500 | Request timestamp exceeds validity period (60s) |
GA2014 | 500 | Nonce already used (replay protection) |
GA2015 | 500 | Timestamp format invalid |
GA2021 | 500 | API key disabled |
GA2022 | 500 | Request IP not in whitelist |
GA2023 | 500 | API key bound workspace disabled |
GA2024 | 500 | API key lacks permission for requested resource |
GA2031 | 500 | Missing workspace path variable |
GA2032 | 500 | Workspace not found |
GA2033 | 500 | Workspace inactive |
GA2034 | 500 | User is not a workspace member |
GA2035 | 500 | Owner permission required |
GA2036 | 500 | Workspace does not belong to current institution |
GA2041 | 500 | Portal institution ID mismatch |
GA2042 | 500 | Portal type mismatch |
Institution
Source: InstitutionError -- prefix IN
| Code | HTTP | Description |
|---|---|---|
IN1001 | 500 | Institution not found |
IN1002 | 500 | Institution disabled |
IN1003 | 500 | Institution name already exists |
IN1004 | 500 | Institution status invalid |
IN1005 | 500 | Unsupported portal type |
IN1020 | 500 | Access code invalid |
IN1021 | 500 | Access code already used |
IN1022 | 500 | Access code already exists |
IN1040 | 500 | Admin initialization failed |
IN1041 | 500 | Partner initialization failed |
IN1042 | 500 | Init token invalid |
IN1043 | 500 | System institution cannot be suspended or closed |
IN1044 | 500 | Closed institution status cannot be changed |
IN1045 | 500 | No update fields provided |
IN1046 | 500 | Institution config serialization failed |
IN1047 | 500 | Admin account already exists |
IN1048 | 500 | Partner account already exists |
IN1049 | 500 | Only TENANT type institution can be created |
IN1050 | 500 | Institution type mismatch -- expected TENANT |
Money
Source: MoneyException -- prefix M
| Code | HTTP | Description |
|---|---|---|
M6001 | 400 | Currency not supported |
M6002 | 503 | Exchange rate not available |
M6003 | 400 | Invalid money amount |
M6004 | 400 | Currency mismatch |
Notification
Source: NotificationError -- prefix N
| Code | HTTP | Description |
|---|---|---|
N1001 | 500 | Notification channel not found |
N1002 | 500 | Channel name duplicate in portal |
N1003 | 500 | Notification channel not active |
N1004 | 500 | Notification channel not configured |
N1005 | 500 | No active channel available |
N1006 | 500 | No active email channel for portal |
N1008 | 500 | Channel business ID required |
N1009 | 500 | Notification channel host required |
N1010 | 500 | Cannot delete/deactivate last active channel |
N1020 | 500 | Channel type not found |
N1040 | 500 | Email send failed |
N1060 | 500 | Request cannot be null |
N1061 | 500 | Email configuration required for EMAIL type channel |
N1062 | 500 | SMTP host address required |
N1063 | 500 | SMTP port must be between 1-65535 |
N1064 | 500 | Sender email address required |
N1065 | 500 | SMTP username required |
N1066 | 500 | SMTP password required |
N1067 | 500 | Email config serialization failed |
Portal Access
Source: PortalAccessError -- prefix PT
| Code | HTTP | Description |
|---|---|---|
PT1001 | 401 | Missing security context |
PT1002 | 400 | OTP setup session invalid |
PT1003 | 400 | Invalid OTP code |
PT1004 | 403 | Missing workspace context |
PT1005 | 403 | Owner permission required |
PT1006 | 401 | Operator context required |
PT1007 | 403 | Institution context required |
PT1008 | 403 | Operator context mismatch |
Recharge
Source: RechargeError -- prefix RC
| Code | HTTP | Description |
|---|---|---|
RC1001 | 404 | Recharge channel not found |
RC1002 | 409 | Assignment already exists |
RC1003 | 400 | Channel inactive |
RC1004 | 404 | Assignment not found |
RC1005 | 400 | Invalid fee configuration |
RC1006 | 400 | Assignment inactive |
RC1007 | 400 | Invalid amount |
RC1008 | 404 | Wallet not found |
RC1009 | 400 | Wallet inactive |
RC1010 | 400 | Wallet currency mismatch |
RC1011 | 404 | Order not found |
RC1012 | 409 | Invalid order status |
RC1013 | 400 | Currency not granted |
Settlement
Source: SettlementError -- prefix ST
| Code | HTTP | Description |
|---|---|---|
ST1001 | 409 | Optimistic lock conflict on settlement account update |
ST1002 | 404 | Settlement account not found |
ST1003 | 403 | Settlement account workspace mismatch |
ST1004 | 400 | Settlement account currency mismatch |
ST1005 | 400 | Unsupported flow type for settlement transaction |
System
Source: SystemError -- prefix S
| Code | HTTP | Description |
|---|---|---|
S001 | 500 | Internal error |
S002 | 500 | Service unavailable |
S003 | 500 | Timeout |
S004 | 500 | Invalid request |
S005 | 500 | Unauthorized |
S006 | 500 | Forbidden |
S007 | 500 | Not found |
S011 | 500 | Validation error |
S012 | 500 | Invalid parameter |
S013 | 500 | Missing parameter |
S021 | 500 | File not found |
S022 | 500 | File size exceeded |
S023 | 500 | Invalid file type |
S024 | 500 | File upload failed |
S031 | 500 | Data not found |
S032 | 500 | Data already exists |
S033 | 500 | Data integrity error |
S034 | 500 | Concurrent modification |
Tariff
Source: TariffErrorCode -- prefix T (T001-T007)
| Code | HTTP | Description |
|---|---|---|
T001 | 404 | Tariff specification not found |
T002 | 404 | Band not found |
T003 | 500 | Resolver not found |
T004 | 400 | Invalid amount |
T005 | 400 | Specification disabled |
T006 | 500 | Calculation error |
T007 | 500 | Configuration error |
Transfer
Source: TransferError -- prefix T (T1001-T1061)
| Code | HTTP | Description |
|---|---|---|
T1001 | 500 | Source wallet not found |
T1002 | 500 | Target wallet not found |
T1003 | 500 | Source wallet inactive |
T1004 | 500 | Target wallet inactive |
T1005 | 500 | Currency mismatch between source and target wallets |
T1006 | 500 | Cannot transfer to the same wallet |
T1007 | 500 | Transfer amount must be positive |
T1008 | 500 | Insufficient balance |
T1009 | 500 | Transfer amount exceeds maximum limit |
T1010 | 500 | Target wallet frozen |
T1011 | 500 | Source wallet frozen |
T1020 | 500 | Transfer order not found |
T1021 | 500 | Transfer order already finalized |
T1022 | 500 | Invalid status transition |
T1023 | 500 | Duplicate transfer request (idempotency) |
T1040 | 500 | Transfer execution failed |
T1041 | 500 | Ledger operation failed |
T1042 | 500 | Fee calculation failed |
T1043 | 500 | Tariff specification not found |
T1044 | 500 | Transfer tariff not configured for wallet |
T1045 | 500 | Tariff does not belong to this tenant |
T1046 | 500 | Template does not belong to this tenant |
T1047 | 500 | Transfer order state invalid |
T1060 | 500 | Missing workspace security context |
T1061 | 500 | Transfer order does not belong to current workspace |
Wallet
Source: WalletError -- prefix W
| Code | HTTP | Description |
|---|---|---|
W1001 | 500 | Account not found |
W1002 | 500 | Account inactive |
W1003 | 500 | Account frozen |
W1004 | 500 | Account already exists |
W1005 | 500 | Invalid portal type |
W2001 | 500 | Order not found |
W2002 | 500 | Order processing failed |
W3001 | 500 | Insufficient balance |
W3002 | 500 | Balance frozen |
W3003 | 500 | Insufficient available balance |
W3004 | 500 | Insufficient frozen balance to unfreeze |
W3005 | 500 | Optimistic lock conflict |
W3006 | 500 | Invalid transaction command parameters |
W4001 | 500 | Recharge channel not found |
W5002 | 500 | Exchange rate not found |
W5005 | 500 | Currency not supported |
W6003 | 500 | Withdrawal limit exceeded |
W7001 | 500 | Wallet already initialized |
W7002 | 500 | Wallet initialization failed |
W7003 | 500 | Invalid wallet creation parameters |
W8001 | 500 | Cannot reset wallet with non-zero balance |
W8002 | 500 | Wallet reset failed |
W9001 | 500 | Expansion failed -- currency not enabled |
W9003 | 500 | Wallet expansion failed |
W9004 | 500 | Missing workspace context |
Wallet (Currency Grant)
Source: CurrencyGrantError -- prefix W (W5006-W5009)
| Code | HTTP | Description |
|---|---|---|
W5006 | 500 | Currency grant not found |
W5007 | 500 | Currency already granted for institution |
W5008 | 500 | Currency grant already revoked |
W5009 | 500 | Institution currency not granted/enabled |
Withdrawal
Source: WithdrawalError -- prefix WD
| Code | HTTP | Description |
|---|---|---|
WD1001 | 404 | Withdrawal channel not found |
WD1002 | 409 | Not pending approval |
WD1003 | 400 | Currency not granted |
WD1004 | 409 | Channel already approved |
WD1005 | 400 | Invalid fee configuration |
WD1006 | 404 | Wallet not found |
WD1007 | 400 | Wallet inactive |
WD1008 | 400 | Wallet currency mismatch |
WD1009 | 400 | Invalid amount |
WD1010 | 400 | Insufficient balance |
WD1011 | 404 | Order not found |
WD1012 | 400 | Channel inactive |
Workspace
Source: WorkspaceError -- prefix WS
| Code | HTTP | Description |
|---|---|---|
WS1001 | 400 | Workspace not found |
WS1002 | 400 | Workspace disabled |
WS1003 | 400 | Workspace name already exists |
WS1004 | 400 | Workspace status invalid |
WS1020 | 400 | Member already exists in workspace |
WS1021 | 400 | Member not found |
WS1022 | 400 | Invitation not found |
WS1023 | 400 | Invitation expired |
WS1024 | 400 | Invitation already used |
WS1025 | 400 | Cannot remove workspace owner |
WS1040 | 400 | Role not found |
WS1041 | 400 | Role name already exists |
WS1042 | 400 | Cannot delete system role |
WS1043 | 400 | Workspace must have an owner |
WS1044 | 400 | Permission not found |
WS1045 | 400 | Owner role cannot be modified |
WS1046 | 400 | Owner role cannot be deleted |
WS1047 | 400 | Role has active members, cannot delete |
WS1048 | 400 | Owner role permissions cannot be configured |
WS1049 | 400 | Owner role cannot be changed |
WS1050 | 400 | Role does not belong to this workspace |
WS1051 | 400 | Cannot assign owner role to member |
WS1060 | 400 | Referral code invalid |
WS1061 | 400 | Referral code exhausted |
WS1062 | 400 | Cross-institution invitation not allowed |
WS1063 | 400 | Only workspace member can invite |
WS1064 | 400 | Only invitee can operate on this invitation |
WS1065 | 400 | Only inviter or owner can cancel invitation |
WS1066 | 400 | Invitation cannot be accepted |
WS1067 | 400 | Invitation email mismatch |
WS1068 | 400 | Cross-institution accept not allowed |
WS1069 | 400 | Cross-portal accept not allowed |
WS1070 | 400 | Missing operator context |
WS1071 | 400 | Not a workspace member |
WS1072 | 400 | Cross-institution workspace access not allowed |
WS1073 | 400 | Institution ID required |
WS1074 | 400 | Account not found |
WS1075 | 400 | Duplicate pending invitation for email |
WS1076 | 400 | Invitation token invalid |
WS1077 | 400 | Invitation already processed |
WS1078 | 400 | Sandbox workspace not enabled |
WS1079 | 400 | Only CONSUMER can access sandbox workspace |
WS1080 | 400 | Sandbox workspace cannot be set as default |
WS1081 | 400 | Only TENANT admin can manage sandbox workspace |
WS1082 | 400 | Target workspace must be a sandbox workspace |
WS1083 | 400 | Consumer must belong to target sandbox workspace |
WS1084 | 400 | Tenant workspace context required |
WS1085 | 400 | Tenant workspace context mismatch |
WS1086 | 400 | Target workspace must be a LIVE tenant workspace |
WS1087 | 400 | Workspace context required |
WS1088 | 400 | Workspace context mismatch with request path |
WS1089 | 400 | Institution not found |
WS1090 | 400 | Portal cannot create new workspace |
WS1091 | 400 | Exceeded workspace ownership limit |
WS1092 | 400 | Referral code not found |
WS1093 | 400 | Referral code already exists |
WS1094 | 400 | Account is not a partner type |
WS1095 | 400 | Referral association not found |