Skip to Content
🚀 Welcome to Humansoft Open API Documentation
DocumentationAPI ReferenceAPI Permissions (สิทธิ์การเข้าถึง)

API Permissions (สิทธิ์การเข้าถึง)

API Key แต่ละตัวจะได้รับ สิทธิ์ (Permission) ตามกลุ่มข้อมูลที่เปิดให้ตอนตั้งค่าการเชื่อมต่อ แต่ละ Endpoint จะตรวจสิทธิ์ของ API Key ก่อนทำงาน หากไม่มีสิทธิ์ที่ต้องการจะได้รับ HTTP 403

การเปิดสิทธิ์ทำได้ที่เมนู ตั้งค่า → ตั้งค่าผู้ใช้ → ตั้งค่ากลุ่มผู้ใช้ → ตั้งค่าการเชื่อมต่อ (ต้องใช้สิทธิ์ HR หรือ Admin) ดูขั้นตอนได้ที่ Get Started

รายการสิทธิ์ทั้งหมด (Available Permissions)

Permissionชื่อกลุ่มข้อมูลครอบคลุม API
org:manageกลุ่มข้อมูลองค์กรOrganization, Holiday, Work Cycle
document:manageข้อมูลการยื่นเอกสารDocument (ทุกชนิด), Overtime, Time Adjust, Time Leave, Holiday Change, Work Cycle Change, Report
employee:read:basicข้อมูลพนักงานพื้นฐานEmployee — ดู/จัดการข้อมูลทั่วไป, ข้อมูลตั้งค่า และจัดการสถานะพนักงาน
employee:read:personalข้อมูลส่วนตัวพนักงานEmployee — เพิ่ม/แก้ไข/ลบข้อมูลประวัติส่วนตัวและข้อมูลการเงิน
payroll:read:selfข้อมูลเงินเดือนของพนักงานSalary › Time Table — ข้อมูลเงินเดือน/เวลาทำงานรายคน, สลิป, สรุป
payroll:read:allข้อมูลเงินเดือนทั้งองค์กรSalary › Payroll Import, การปิด/เปิดงวด และประมวลผลทั้งงวด
attendance:readข้อมูลการลงเวลาTime Attendance

การตรวจสิทธิ์เป็นแบบ ตรงตัว (exact match) — การมี employee:read:personal ไม่ได้รวมสิทธิ์ employee:read:basic โดยอัตโนมัติ หาก Endpoint ต้องการสิทธิ์ใด API Key ต้องได้รับสิทธิ์นั้นโดยตรง

เมื่อไม่มีสิทธิ์ที่ต้องการ

หากเรียก API โดย API Key ไม่มีสิทธิ์ที่ต้องการ ระบบจะตอบกลับ HTTP status 403 พร้อม payload:

{ "code": 403, "message": "Forbidden: Insufficient permissions", "error": { "type": "PERMISSION_DENIED", "required_permission": "document:manage", "resource": "document:manage" } }

การกรองข้อมูลตามสิทธิ์ (Field-Level Filtering)

นอกจากการคุมการเข้าถึง Endpoint แล้ว บาง Endpoint ของโมดูล Employee จะ กรองฟิลด์ใน response อัตโนมัติ ตามสิทธิ์ของ API Key แม้เรียก Endpoint ได้สำเร็จ ฟิลด์ที่ไม่ได้รับอนุญาตจะถูกตัดออกหรือคืนค่าเป็น null:

ถ้าไม่มีสิทธิ์ฟิลด์ที่ถูกกรองออก
employee:read:personalข้อมูลส่วนตัว เช่น id_no, mobilephone, emailaddress, ข้อมูลที่อยู่ และรายการประวัติส่วนตัว (family_lists, education_lists, ability_lists, ฯลฯ)
payroll:read:self หรือ payroll:read:allข้อมูลการเงิน เช่น บัญชีธนาคาร (bank_id, bank_code, bank_account_code), ข้อมูลภาษี/ประกันสังคม (sso_no, tax_method_lv), รายการการเงิน (fund_lists, tax_lists, loan_lists, ฯลฯ) และอัตราเงินเดือน

Endpoint ที่มีการกรองข้อมูลระดับฟิลด์จะระบุไว้ในหน้าของ Endpoint นั้นๆ เช่น Get Employee Info, Get Employee List, Get Employee Data

Last updated on