Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Update Employee Leave Quota

บันทึกโควตาการลาของพนักงาน กำหนดโควตาแต่ละประเภทการลาในแต่ละปี รองรับหลายพนักงานในครั้งเดียว

Endpoint

POST /api/v1/open-apis/employee/update-employee-setting?path_action=quota

สิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลพนักงานพื้นฐาน (employee:read:basic)

Query Parameters

ParameterTypeRequiredDescription
path_actionstringYesต้องเป็น quota (หรือ save-quota)

Request Body

ParameterTypeRequiredDescription
employee_listsarrayYesรายการพนักงานและโควตาที่ต้องการบันทึก

employee_lists[]

FieldTypeRequiredDescription
employee_codestringConditionalรหัสพนักงาน (แนะนำ)
employee_idstringConditionalID ของพนักงาน (Base64) — ใช้แทน employee_code ได้
quotaarrayYesรายการโควตาแต่ละประเภทการลา

ต้องส่ง employee_code หรือ employee_id อย่างน้อยหนึ่งอย่าง — ถ้าส่งทั้งคู่ ระบบจะใช้ employee_code

employee_lists[].quota[]

FieldTypeRequiredDescription
quota_yearstringYesปีโควตาเป็น ปี ค.ศ. (YYYY) เช่น 2026
time_leave_flagstringYesรหัสประเภทการลา เช่น "01", "03"
time_leave_flag_quotastring/numberNoจำนวนโควตา (หน่วยตามประเภทการลา วัน/ชั่วโมง) — ถ้าไม่ส่งหรือส่งค่าว่าง ระบบจะใช้โควตาเริ่มต้นตามการตั้งค่าประเภทการลาขององค์กร

รหัส time_leave_flag ขึ้นกับการตั้งค่าของแต่ละองค์กร ดูรหัสได้จากฟิลด์ time_leave_flag ใน Get Quota หรือรายการทั้งหมดจาก Get Active Leave Types (ต้องมีสิทธิ์ payroll:read:self)


Example Request

{ "employee_lists": [ { "employee_code": "EMP001", "quota": [ { "quota_year": "2026", "time_leave_flag": "01", "time_leave_flag_quota": "6" }, { "quota_year": "2026", "time_leave_flag": "03", "time_leave_flag_quota": "30" } ] } ] }

Response Format

Success Response

{ "code": 200, "message": "Save Multi Employee Quota Success", "payload": { "processed": [ { "employee_id": "20251127D4573C421639", "quotas": [ { "quota_year": "2026", "time_leave_flag": "01", "quota": "6" }, { "quota_year": "2026", "time_leave_flag": "03", "quota": "30" } ] } ] } }

Response Fields

FieldTypeDescription
processedarrayรายการพนักงานที่บันทึกโควตาแล้ว เรียงตามลำดับใน employee_lists
processed[].employee_idstringID ของพนักงาน
processed[].quotasarrayรายการโควตาที่บันทึก
processed[].quotas[].quota_yearstringปีโควตา (ค.ศ.)
processed[].quotas[].time_leave_flagstringรหัสประเภทการลา
processed[].quotas[].quotastring/numberจำนวนโควตาที่บันทึก (กรณีใช้ค่าเริ่มต้น จะเป็นค่าที่ระบบคำนวณให้)

Error Response

ไม่ส่ง employee_lists

{ "code": 400, "message": "ข้อมูลไม่ถูกต้อง", "errors": [ "กรุณาระบุ 'employee_lists' สำหรับ action 'quota'" ] }

ข้อมูลในรายการไม่ครบ

{ "code": 400, "message": "ข้อมูลไม่ถูกต้อง", "errors": [ "ไม่พบ 'quota' (array) ในรายการที่ 0" ] }

ไม่พบพนักงาน

{ "code": 400, "message": "Employee not found" }

Validation Rules

เงื่อนไขError Message
ไม่ส่ง employee_lists หรือส่งค่าว่างกรุณาระบุ 'employee_lists' สำหรับ action 'quota' (ใน errors)
employee_lists ไม่ใช่ array'employee_lists' ต้องเป็น array (ใน errors)
รายการไม่มีทั้ง employee_code และ employee_idไม่พบ 'employee_id' หรือ 'employee_code' ในรายการที่ {index} (ใน errors)
รายการไม่มี quota หรือ quota ไม่ใช่ arrayไม่พบ 'quota' (array) ในรายการที่ {index} (ใน errors)
ไม่พบพนักงานตาม employee_code / employee_idEmployee not found (ใน message)

{index} คือลำดับของรายการใน employee_lists โดยเริ่มนับจาก 0


Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/employee/update-employee-setting?path_action=quota" \ -H "Content-Type: application/json" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -d '{ "employee_lists": [ { "employee_code": "EMP001", "quota": [ { "quota_year": "2026", "time_leave_flag": "01", "time_leave_flag_quota": "6" }, { "quota_year": "2026", "time_leave_flag": "03", "time_leave_flag_quota": "30" } ] } ] }'

Notes

  • ถ้ามีโควตาของพนักงาน ปี และประเภทการลาเดียวกันอยู่แล้ว ระบบจะแทนที่ด้วยค่าใหม่ (ไม่ได้บวกเพิ่ม) ถ้ายังไม่มีจะสร้างใหม่
  • การบันทึกทั้งคำขอเป็นแบบ all-or-nothing — ถ้าพนักงานรายการใดไม่พบ จะไม่มีโควตาใดในคำขอนั้นถูกบันทึก
  • API ไม่ตรวจสอบว่า time_leave_flag มีอยู่ในระบบหรือไม่ หากส่งรหัสที่ไม่ถูกต้อง คำขอจะสำเร็จแต่โควตานั้นจะไม่แสดงใน Get Quota — ควรตรวจสอบรหัสก่อนส่ง
  • ตรวจสอบโควตาหลังบันทึกได้ด้วย Get Quota

Last updated on