Error Response Format
All Upwell API errors follow a consistent format to help you quickly identify and resolve issues:HTTP Status Codes
| Status Code | Description | Common Causes |
|---|---|---|
200 | Success | Request completed successfully |
201 | Created | Resource created successfully |
400 | Bad Request | Invalid request parameters or format |
401 | Unauthorized | Missing or invalid API key |
403 | Forbidden | Insufficient permissions for the requested operation |
404 | Not Found | Requested resource does not exist |
409 | Conflict | Resource already exists or conflicting operation |
422 | Unprocessable Entity | Valid request format but invalid business logic |
429 | Too Many Requests | Rate limit exceeded |
500 | Internal Server Error | Server-side error occurred |
503 | Service Unavailable | API temporarily unavailable |
Common Error Codes
Authentication Errors
INVALID_API_KEY
INVALID_API_KEY
HTTP Status: 401
Description: The provided API key is invalid or expired
Solution: Verify your API key and regenerate if necessary
MISSING_AUTHORIZATION
MISSING_AUTHORIZATION
Validation Errors
VALIDATION_ERROR
VALIDATION_ERROR
HTTP Status: 400
Description: Request contains invalid or missing required parameters
Solution: Check the details field for specific validation issues
INVALID_DATE_FORMAT
INVALID_DATE_FORMAT
HTTP Status: 400
Description: Date parameter is not in the expected format
Solution: Use ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ)
Resource Errors
RESOURCE_NOT_FOUND
RESOURCE_NOT_FOUND
HTTP Status: 404
Description: The requested resource does not exist
Solution: Verify the resource ID and ensure it exists
RESOURCE_ALREADY_EXISTS
RESOURCE_ALREADY_EXISTS
HTTP Status: 409
Description: Attempting to create a resource that already exists
Solution: Use PUT to update existing resource or check for duplicates
Business Logic Errors
INVOICE_ALREADY_APPROVED
INVOICE_ALREADY_APPROVED
HTTP Status: 422
Description: Attempting to modify an invoice that has already been approved
Solution: Only draft invoices can be modified
INSUFFICIENT_CREDIT_LIMIT
INSUFFICIENT_CREDIT_LIMIT
HTTP Status: 422
Description: Customer’s credit limit would be exceeded
Solution: Increase credit limit or collect payment before proceeding
Rate Limiting Errors
RATE_LIMIT_EXCEEDED
RATE_LIMIT_EXCEEDED
HTTP Status: 429
Description: Too many requests in a short time period
Solution: Implement exponential backoff and respect rate limits
Rate Limiting
The Upwell API implements rate limiting to ensure fair usage and system stability:- Standard Rate Limit: 100 requests per hour per API key
- Burst Limit: 10 requests per minute
- Rate Limit Headers: Check response headers for current limits
Error Handling Best Practices
1. Implement Retry Logic
2. Validate Input Data
3. Handle Specific Error Codes
Getting Help
If you encounter persistent errors or need assistance:- Check this documentation for common solutions
- Review API logs for detailed error information
- Contact support at [email protected]
- Include error details and request IDs when reporting issues
- API endpoint being called
- Complete error response
- Request timestamp
- Your API key (last 4 characters only)

