Push NotificationsNotification Endpoint

Đăng ký Endpoint

Đăng ký hoặc cập nhật endpoint nhận thông báo (upsert by owner-scope).

Endpoint

POST /v1/notificationendpoints/register

Body Parameters

TênKiểuBắt buộcMô tả
company_idintCóID công ty (phải trùng công ty của phiên đăng nhập)
owner_typeint | stringCóLoại chủ sở hữu. Khi gọi bằng JWT người dùng chỉ được phép 1/"user"
owner_idintCóID chủ sở hữu. Khi gọi bằng JWT người dùng phải là ID của chính người dùng đang đăng nhập
channel_typeintCóLoại kênh thông báo (VD: 9 = Push)
endpoint_valuestringCóGiá trị token/endpoint (VD: FCM registration token)
app_codestringCóMã ứng dụng (VD: pos, web, app)
providerstringNhà cung cấp dịch vụ push. Mặc định: fcm
platformstringNền tảng thiết bị (VD: android, ios, web)
device_idstringUUID thiết bị

Ví dụ JSON

{
  "company_id": 10311,
  "owner_type": 1,
  "owner_id": 789,
  "channel_type": 9,
  "provider": "fcm",
  "endpoint_value": "fcm_token_string...",
  "app_code": "pos",
  "platform": "android",
  "device_id": "device-uuid-string"
}

Lưu ý

creator_id trong body bị bỏ qua — hệ thống tự gán theo người dùng đang đăng nhập.

Workflow & Logic

  • Endpoint được upsert theo bộ (company_id, owner_type, owner_id, channel_type, app_code): nếu đã tồn tại (kể cả đang Disabled/Invalid) thì cập nhật token, provider, platform, device_id và đưa về status = 1; nếu chưa có thì tạo mới.
  • Nếu cùng endpoint_value đang được đăng ký cho chủ sở hữu khác, bản ghi cũ sẽ bị xóa (token được chuyển sang chủ sở hữu mới).

Response Schema

HTTP 200 - JSON Object

Trả về object Notification Endpoint vừa tạo/cập nhật.

Error Codes

HTTPCodeMô tả
422error_company_id_requiredID công ty không được để trống
422error_owner_type_requiredLoại chủ sở hữu không được để trống
422error_owner_type_invalidLoại chủ sở hữu không hợp lệ
422error_owner_id_requiredID chủ sở hữu không được để trống hoặc phải > 0
422error_channel_type_requiredLoại kênh không được để trống hoặc phải > 0
422error_endpoint_value_requiredGiá trị endpoint không được để trống
422error_app_code_requiredMã ứng dụng không được để trống
422error_not_permissioncompany_id không phải công ty của phiên đăng nhập
422error_owner_type_not_allowedNgười dùng chỉ được đăng ký endpoint với owner_type = 1 (user)
422error_owner_id_not_allowedowner_id không phải ID của người dùng đang đăng nhập
500error_register_endpointLỗi khi đăng ký endpoint

On this page