Error Handling

DExchange API uses conventional HTTP response codes to indicate the success or failure of API requests. Here’s a comprehensive guide to our error codes and how to handle them.

HTTP Status Codes

Status CodeDescription
200Success - The request was processed successfully
201Created - The resource was created successfully
400Bad Request - Invalid request parameters or validation failed
401Unauthorized - Invalid or missing API key
403Forbidden - Valid API key but insufficient permissions
404Not Found - The requested resource doesn’t exist
429Too Many Requests - Rate limit exceeded
500Internal Server Error - Something went wrong on our end

Error Response Format

{
  "message": ["Error description"],
  "success": false
}

Common Error Scenarios

Authentication Errors

{
  "message": ["Invalid API KEY"],
  "success": false
}

Validation Errors

{
  "message": ["Amount should not exceed 1,000,000 FCFA"],
  "success": false
}

Transaction Errors

{
  "message": ["Invalid transactionId or OTP expired"],
  "success": false
}

Best Practices for Error Handling

  1. Always Check Response Status
    • Verify HTTP status code before processing response
    • Handle both success and error cases
  2. Implement Retry Logic
    • Retry failed requests with exponential backoff
    • Only retry idempotent operations
    • Respect rate limits
  3. Log Error Details
    • Store error responses for debugging
    • Include transaction IDs in logs
    • Monitor error patterns
  4. User-Friendly Messages
    • Display appropriate error messages to end-users
    • Translate technical errors into user-friendly language
    • Provide clear next steps when possible
  5. Security Considerations
    • Never expose sensitive information in error messages
    • Validate all input data
    • Handle timeouts gracefully

Maintenance Mode

When the API is under maintenance:
{
  "message": ["DEXCHANGE-API is under maintenance"],
  "success": false
}

Rate Limiting

  • Requests are limited per API key
  • Rate limit headers included in responses
  • Implement proper backoff when limits are reached

Support

If you encounter persistent errors or need assistance: