Error Code Structure
Error codes follow a consistent format that provides information about the source and type of error:SSCEESS
Where:
- SS: Service identifier (2 digits)
- C: Error category (2 digits)
- EE: Error sequence (2 digits)
100001 indicates a generic validation error (Service ID: 10, Category: 00, Sequence: 01).
Service Identifiers
Service Identifiers
| Service ID | Description |
|---|---|
| 10 | Generic Services |
| 20 | Authentication |
| 30 | User Management |
| 40 | Transaction Processing |
| 50 | Account Management |
| 60 | Wallet Services |
| 70 | System Infrastructure |
Error Categories
Error Categories
| Category ID | Description |
|---|---|
| 00 | Validation Error |
| 01 | Authentication Error |
| 02 | Authorization Error |
| 03 | Not Found Error |
| 04 | Service Unavailable |
| 05 | Inactive Resource |
Error Response Format
All error responses follow a consistent JSON structure:Error Code Reference
Generic Errors (10xxxx)
Generic Errors (10xxxx)
| Code | Error | Description |
|---|---|---|
| 100001 | FIELD_VALIDATION_ERROR | Fields provided are either missing or invalid |
| 100002 | METHOD_NOT_ALLOWED | Method not allowed |
| 100003 | INVALID_VERSION | Invalid version |
| 100004 | DEPRECATED_RESOURCE | This resource has been deprecated |
| 100005 | RESOURCE_CONFLICT | Resource conflict, please try different request id |
Authentication Errors (20xxxx)
Authentication Errors (20xxxx)
| Code | Error | Description |
|---|---|---|
| 200001 | INVALID_API_KEY | Invalid API key |
| 200201 | PRODUCTION_NOT_ENABLED | Production is not enabled for this profile |
| 200202 | USER_ROLE_NOT_ALLOWED | User role not allowed to perform this action |
| 200203 | UNAUTHORIZED | Unauthorized |
| 200204 | PROFILE_FROZEN | Profile is not authorized to access this resource |
| 200301 | BILLING_CONFIG_NOT_FOUND | Billing configuration not found |
| 200301 | KEY_DOES_NOT_EXIST | Key does not exist |
User Management Errors (30xxxx)
User Management Errors (30xxxx)
| Code | Error | Description |
|---|---|---|
| 300001 | USER_ALREADY_EXISTS | User already exists |
| 300201 | USER_ACTION_NOT_ALLOWED | User is not allowed to perform this action |
| 300201 | USER_COMPLIANCE_VERIFICATION_FAILED | User compliance information is not approved |
| 300202 | USER_COMPLIANCE_DATA_INVALID | User compliance data is invalid |
| 300202 | USER_FROZEN | User is not authorized to access this resource |
| 300301 | USER_NOT_FOUND | User not found |
Transaction Errors (40xxxx)
Transaction Errors (40xxxx)
| Code | Error | Description |
|---|---|---|
| 400001 | INVALID_TRANSACTION_ROUTE | Invalid transaction route (combination of currency, crypto, and rail) |
| 400002 | INVALID_ACCOUNT_FOR_TRANSACTION | Invalid bank account for the transaction |
| 400003 | TRANSACTION_REQUEST_ALREADY_EXISTS | Transaction request already exists |
| 400005 | QUOTE_NOT_READY | Quote is not ready yet |
| 400006 | INVALID_QUOTE | Expired or invalid quote |
| 400301 | TRANSACTION_NOT_FOUND | Transaction not found |
| 400302 | QUOTE_NOT_FOUND | Quote not found |
| 400401 | INSUFFICIENT_BALANCE | Insufficient balance for transaction |
| 400402 | INSUFFICIENT_CREDIT_BALANCE | Insufficient credit balance for transaction fee |
| 400403 | TRANSACTION_INITIATION_FAILED | Transaction initiation failed |
Account Management Errors (50xxxx)
Account Management Errors (50xxxx)
| Code | Error | Description |
|---|---|---|
| 500001 | INVALID_ACCOUNT_DATA | Invalid bank account data provided |
| 500301 | ACCOUNT_NOT_FOUND | Bank account ID not found |
| 500501 | INACTIVE_ACCOUNT | Bank account is not active |
Wallet Management Errors (60xxxx)
Wallet Management Errors (60xxxx)
| Code | Error | Description |
|---|---|---|
| 600001 | INVALID_WALLET_CONFIG | Invalid wallet configuration provided |
| 600001 | WALLET_ALREADY_EXISTS | Wallet already exists for this configuration |
| 600301 | WALLET_NOT_FOUND | Wallet not found for the user |
| 600501 | INACTIVE_WALLET | Wallet is not active |
System/Infrastructure Errors (70xxxx)
System/Infrastructure Errors (70xxxx)
| Code | Error | Description |
|---|---|---|
| 700401 | INTERNAL_SERVER_ERROR | Internal server error |
Usage Examples
JavaScript
HTTP Response Example
Best Practices
Error Handling
- Always check error codes before displaying generic error messages
- Implement retry logic for transient errors (5xx status codes)
- Log errors for debugging and monitoring purposes
- Provide user-friendly messages based on error codes
Common Error Scenarios
- Authentication Issues: Check API key validity and permissions
- User Not Found: Verify user exists and is properly created
- Insufficient Balance: Check account balances before transactions
- Invalid Routes: Ensure currency/crypto/rail combinations are supported
Error Code Patterns
- 1xxxxx: Generic validation and system errors
- 2xxxxx: Authentication and authorization issues
- 3xxxxx: User-related problems
- 4xxxxx: Transaction processing errors
- 5xxxxx: Account management issues
- 6xxxxx: Wallet service problems
- 7xxxxx: System infrastructure errors