Bỏ qua để đến nội dung

Mã lỗi

Khi lỗi, hãy kiểm tra mã trạng thái HTTP và trường message.

Lỗi nghiệp vụ luôn trả về code đọc được bằng máy để xử lý theo chương trình. Tham số không hợp lệ (validation) và route không tồn tại trả về định dạng Laravel chuẩn: { “message”: ”…”, “errors”: { … } }. Hãy kiểm tra dữ liệu trước khi gửi.

{
"code": "insufficient_balance",
"message": "Insufficient balance. Please top up and try again."
}
codeHTTPMô tả
unauthorized401Khóa API thiếu, không hợp lệ hoặc đã bị vô hiệu hóa.
account_banned403Tài khoản bị tạm ngưng. Vui lòng liên hệ hỗ trợ.
invalid_realtime_request400Yêu cầu realtime không hợp lệ (ví dụ: số điện thoại thiếu tiền tố quốc tế + khi bỏ trống country).
idempotency_key_required400Yêu cầu realtime bắt buộc có header Idempotency-Key.
invalid_idempotency_key422Idempotency-Key không hợp lệ: 1-128 ký tự gồm chữ, số và . _ : -
idempotency_conflict409Cùng một Idempotency-Key được dùng cho nội dung yêu cầu khác.
request_in_progress409Yêu cầu realtime giống hệt vẫn đang được xử lý. Thử lại sau ít phút (Retry-After: 1).
empty_input422Tệp tải lên không có dòng dữ liệu nào dùng được.
product_not_found422Slug sản phẩm gửi lên không tồn tại hoặc đã tắt.
product_mode_not_supported422Endpoint này không nhận chế độ sản phẩm này (sản phẩm realtime không dùng cho endpoint hàng loạt).
invalid_country422Sản phẩm không hỗ trợ quốc gia đã gửi.
too_few_numbers422Số lượng gửi dưới mức tối thiểu của sản phẩm.
too_many_numbers422Số lượng gửi vượt mức tối đa của nền tảng.
insufficient_balance402Số dư không đủ. Vui lòng nạp tiền rồi thử lại.
realtime_disabled403Tài khoản này chưa được bật kiểm tra realtime.
realtime_rate_limited429Vượt giới hạn tần suất realtime. Hãy tuân theo retry_after.
product_pricing_unavailable503Sản phẩm này chưa được cấu hình giá. Liên hệ hỗ trợ.
detection_capacity_unavailable503Hiện không còn dung lượng kiểm tra. Vui lòng thử lại sau.
realtime_route_unavailable503Không có tuyến realtime khả dụng. Vui lòng thử lại sau.
realtime_fact_cache_unavailable503Dịch vụ phụ trợ realtime tạm thời không khả dụng. Vui lòng thử lại sau.
realtime_rate_limiter_unavailable503Bộ giới hạn tần suất tạm thời không khả dụng. Vui lòng thử lại sau.
internal_error500Lỗi máy chủ ngoài dự kiến. Có thể thử lại an toàn với cùng Idempotency-Key.

Không phải mọi lỗi đều có code. Các endpoint tác vụ báo bốn tình huống chỉ bằng mã HTTP và message, vì những lỗi đó phát sinh trước khi đi vào luồng lỗi nghiệp vụ:

HTTPTình huốngNội dung
404task_id không tồn tại hoặc thuộc về tài khoản khácchỉ message
404GET /v1/tasks/{token}/download — tệp kết quả không khả dụng, đã hết hạn hoặc không còn tải đượcchỉ message
422GET /v1/tasks/{token}/result — kết quả chưa sẵn sàng: tác vụ chưa hoàn tất, tệp chưa được tạo hoặc đã hết hạnchỉ message
422Các tham số yêu cầu không vượt qua kiểm tra hợp lệ{ "message": …, "errors": { … } }

Với những trường hợp này, hãy rẽ nhánh theo mã HTTP. message dành cho log và cho người đọc sự cố, không dùng cho luồng điều khiển.

Cách xử lý đúng khi gặp lỗi phụ thuộc vào việc lặp lại yêu cầu có thể cho ra kết quả khác hay không.

Thử lại nguyên trạng sẽ lặp lại đúng lỗi đó.

unauthorized, account_banned, invalid_realtime_request, idempotency_key_required, invalid_idempotency_key, idempotency_conflict, empty_input, product_not_found, product_mode_not_supported, invalid_country, too_few_numbers, too_many_numbers, insufficient_balance, realtime_disabled, product_pricing_unavailable

Tạm thời — cùng yêu cầu đó sẽ thành công về sau.

realtime_rate_limited, request_in_progress, detection_capacity_unavailable, realtime_route_unavailable, realtime_fact_cache_unavailable, realtime_rate_limiter_unavailable

Yêu cầu có thể đã được áp dụng hoặc chưa. Hãy thử lại với cùng khóa.

internal_error