Error code

Lỗi trả về theo chuẩn problem+json (RFC 9457). Lỗi do cổng API sinh ra có thêm header X-Error-Source: gateway.

Thân lỗi

401
HTTP/1.1 401 Unauthorized
Content-Type: application/problem+json
X-Error-Source: gateway

{
  "type": "https://nextx.vn/errors/unauthorized",
  "title": "Vui lòng đăng nhập để tiếp tục.",
  "status": 401,
  "traceId": "0HN7…",
  "errorCode": "gateway.unauthorized",
  "retryable": false
}

errorCode ổn định để máy đọc; title là câu cho người đọc; retryable cho biết gọi lại có thể thành công; gửi kèm traceId khi nhờ hỗ trợ.

Bảng mã HTTP

HTTPÝ nghĩaXử lý
400 oauth2.missing_client_idThiếu client_id khi lấy token (tương tự oauth2.missing_client_secret, oauth2.missing_workspace_id)Gửi đủ client_id, client_secret, workspace_id dạng form
400 oauth2.unsupported_grant_typegrant_type không hỗ trợDùng grant_type=client_credentials
401 oauth2.invalid_clientSai client_id / client_secret, hoặc client không phải loại confidentialKiểm tra lại cặp khoá; liên hệ NextX nếu cần cấp lại secret
401 oauth2.client_suspendedApp đã bị NextX đình chỉLiên hệ hỗ trợ NextX
403 oauth2.app_not_installedWorkspace chưa cài app (chưa consent) — KHÔNG phải 404Workspace vào Ứng dụng kết nối để cài app và đồng ý scope
403 oauth2.module_not_subscribedSau khi lọc theo phân hệ workspace đang mua, không còn scope nàoXin scope thuộc phân hệ workspace đã mua, hoặc mua thêm phân hệ
401 gateway.unauthorizedBearer token / API key thiếu, hết hạn hoặc sai (problem+json, errorCode gateway.unauthorized)Lấy token mới (TTL 3600s, phản hồi có refresh_token nhưng rỗng)
403 insufficient_scopeChỉ ở ~25 route trong bản đồ scope của gateway: body { error: insufficient_scope, required: <scope> }Xin thêm scope trong required + workspace consent
403 Permission required: <scope>Route còn lại do service kiểm: thiếu scope trả 403 với detail "Permission required: <scope>"Xin thêm scope nêu trong detail
404Tài nguyên không tồn tạiKiểm tra id / đường dẫn
429Vượt rate-limit (mặc định 600 req/phút mỗi app)Giãn nhịp gọi, đọc header Retry-After

Thiếu quyền (403)

Tuyến do cổng kiểm trả error: insufficient_scope kèm required (quyền cần). Tuyến do phân hệ kiểm trả detail dạng Permission required: <scope>.

403
{ "error": "insufficient_scope", "required": "crm.contacts.view" }

Khi nào nên gọi lại

Chỉ gọi lại khi retryable: true (429, 502, 503, 504), giãn cách tăng dần. Lệnh ghi gửi kèm Idempotency-Key để gọi lại không tạo bản ghi trùng.