Mã lỗi & Xử lý
Hiểu và xử lý lỗi API
Định dạng phản hồi lỗi
Tất cả các phản hồi lỗi sử dụng định dạng thống nhất:
{
"error": {
"code": "ERROR_CODE",
"message": "Thông báo lỗi dễ đọc",
"details": "Ngữ cảnh bổ sung (tùy chọn)"
}
} 💡 Sử dụng error.code làm điều kiện phân nhánh ổn định (message có thể thay đổi)
Mã trạng thái HTTP
200 OK
Yêu cầu thành công
201 Created
Tạo tài nguyên thành công
400 Bad Request
Tham số yêu cầu không hợp lệ
{
"code": "INVALID_REQUEST",
"message": "Định dạng yêu cầu không hợp lệ"
} 401 Unauthorized
Chưa xác thực hoặc API Key không hợp lệ
{
"code": "UNAUTHORIZED",
"message": "API key không hợp lệ hoặc đã hết hạn"
} 403 Forbidden
Số dư tài khoản không đủ hoặc không có quyền
{
"code": "INSUFFICIENT_BALANCE",
"message": "Số dư tài khoản không đủ"
} 404 Not Found
Không tìm thấy tài nguyên
{
"code": "ORDER_NOT_FOUND",
"message": "Không tìm thấy đơn hàng"
} 409 Conflict
Xung đột tài nguyên
{
"code": "ADDRESS_EXISTS",
"message": "Địa chỉ đã tồn tại"
} 429 Too Many Requests
Vượt quá giới hạn tốc độ yêu cầu API Key
{
"code": "RATE_LIMITED",
"message": "Đã vượt quá giới hạn tốc độ"
} 500 Internal Server Error
Lỗi máy chủ nội bộ
{
"code": "INTERNAL_ERROR",
"message": "Đã xảy ra lỗi không mong muốn"
} 503 Service Unavailable
Dịch vụ tạm thời không khả dụng (đang bảo trì)
{
"code": "SERVICE_UNAVAILABLE",
"message": "Dịch vụ tạm thời không khả dụng"
} Mã lỗi phổ biến
| Error Code | Status | Description | Solution |
|---|---|---|---|
| UNAUTHORIZED | 401 | API Key không hợp lệ, đã hết hạn hoặc bị thu hồi | Kiểm tra xem API Key có chính xác không, tạo mới nếu cần thiết |
| INSUFFICIENT_BALANCE | 403 | Số dư tài khoản không đủ | Nạp tiền vào tài khoản |
| INVALID_ADDRESS | 400 | Định dạng địa chỉ TRON không hợp lệ | Kiểm tra xem địa chỉ có phải là địa chỉ TRON hợp lệ không (bắt đầu bằng T) |
| INVALID_ENERGY_AMOUNT | 400 | Số lượng năng lượng không hợp lệ | Số lượng năng lượng phải là số nguyên dương, khuyến nghị 65000 cho chuyển USDT |
| INVALID_DURATION | 400 | Thời hạn thuê không hợp lệ | Sử dụng thời hạn hợp lệ: 1H, 1D, 3D, 7D, 14D, 30D |
| ORDER_NOT_FOUND | 404 | Đơn hàng không tồn tại | Kiểm tra xem ID đơn hàng có chính xác không |
| ADDRESS_EXISTS | 409 | Địa chỉ đã tồn tại | Kiểm tra xem địa chỉ đã được thêm chưa, hoặc sử dụng địa chỉ hiện có |
| RATE_LIMITED | 429 | Vượt quá giới hạn tốc độ yêu cầu API Key (hiện chỉ áp dụng cho POST /v1/wallet/recharges) | Triển khai thử lại backoff theo cấp số nhân, hoặc giảm tần suất gọi |
Cách xử lý
| Error | Handling |
|---|---|
| 401 UNAUTHORIZED | Kiểm tra/luân chuyển API Key |
| 403 INSUFFICIENT_BALANCE | Nạp tiền hoặc giảm số lượng yêu cầu |
| 409 ADDRESS_EXISTS | Chuyển sang truy vấn/xử lý idempotent |
| 429 RATE_LIMITED | Thử lại backoff (tuân theo Retry-After nếu có, nếu không thì backoff theo cấp số nhân) |
| 5xx | Thử lại + ghi log ngữ cảnh yêu cầu |
Hướng dẫn thử lại
- • số lần thử lại tối đa: 3
- • backoff: theo cấp số nhân (1s, 2s, 4s...)
- • chỉ thử lại 429/5xx
- • không thử lại 4xx (lỗi phía client)