Skip to main content

Cấu trúc response lỗi

Với lỗi 401, code luôn là UNAUTHORIZED — không phải API_KEY_INVALID hay các mã cụ thể khác. Nguyên nhân chi tiết chỉ nằm trong message.Nghĩa là: với 4xx khác thì rẽ nhánh theo code; riêng 401 phải đọc message (hoặc đơn giản là coi mọi 401 là “thông tin xác thực có vấn đề” và kiểm tra lại API Key).

400 — Dữ liệu đầu vào


401 — Xác thực

Mọi lỗi 401 đều trả code: "UNAUTHORIZED". Phân biệt nguyên nhân qua message:
Key bị thu hồi và key hết hạn đều trả về cùng thông báo “API key không hợp lệ” — hệ thống không phân biệt hai trường hợp này ra ngoài. Đây là chủ đích để không lộ trạng thái key cho bên gọi không hợp lệ.
Không gửi header X-API-Key thì không nhận được 401 của API Key. Request rơi xuống tầng xác thực JWT và trả về 401 chung chung. Nếu gặp 401 khó hiểu, việc đầu tiên cần kiểm tra là header đã được gửi đi hay chưa (proxy hoặc API gateway có thể đã lược bỏ).
Xem thêm: Xác thực.

413 / 415 / 502 — Lỗi khi tải file từ fileUrl

Khi tạo hồ sơ với files[].source = "url", server tự tải file về. Các lỗi ở bước này có status riêng, không phải 400:
Hệ thống nhận diện PDF bằng chữ ký nhị phân đầu file, không dựa vào header Content-Type. File có Content-Type đúng nhưng nội dung không phải PDF vẫn bị từ chối với 415; ngược lại, file PDF hợp lệ phục vụ dưới application/octet-stream vẫn được chấp nhận.

404 — Không tìm thấy

FILE_NOT_FOUND gộp hai trường hợp “không tồn tại” và “thuộc tổ chức khác” một cách có chủ đích, để không lộ thông tin về dữ liệu của tổ chức khác.

409 — Xung đột