Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Update Employee Worktime Config

บันทึกการตั้งค่าเวลาทำงานของพนักงาน แยกตามประเภท (key_type_lv) เช่น มาเช้า, มาสาย, กลับก่อน, OT

Endpoint

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

ระบบจะลบ config เดิมแล้วสร้างใหม่ทั้งชุดทุกครั้งที่บันทึก — ต้องส่งค่าทุกฟิลด์ที่ต้องการ

Query Parameters

ParameterTypeRequiredDescription
path_actionstringYesต้องเป็น save-config หรือ worktime-config

Request Body — ฟิลด์บังคับ

ParameterTypeRequiredDescription
employee_codestringYesรหัสพนักงาน เช่น "EMP001"
key_type_lvstringYesประเภทการตั้งค่า (ดูตาราง key_type_lv ด้านล่าง)
config_namestringNoชื่อ config เช่น "มาเช้า", "มาสาย", "OT 1.5x"

Request Body — ฟิลด์เปิด/ปิดตามประเภทพนักงาน

ParameterTypeDescription
key_type_valuestringเปิด/ปิด config ทั้งหมด (Y/N)
key_type_value_01stringเปิด/ปิดสำหรับพนักงานรายเดือน (employee_type_code 01)
key_type_value_02stringเปิด/ปิดสำหรับพนักงานรายวัน (employee_type_code 02)
key_type_value_03stringเปิด/ปิดสำหรับ Part-time (employee_type_code 03) — ใช้เฉพาะ OT
key_type_value_04stringเปิด/ปิดสำหรับเหมาจ่าย/Contractor (employee_type_code 04) — ใช้เฉพาะ OT

Request Body — ภาษี / ประกันสังคม / กองทุน / ปัดเศษ

ParameterDescription
tax_include_01 ~ 04คิดภาษี ("1" = คิด, "0" = ไม่คิด) แยกตามประเภทพนักงาน
sso_include_01 ~ 04คิดประกันสังคม แยกตามประเภทพนักงาน
provident_include_01 ~ 04คิดกองทุนสำรองเลี้ยงชีพ แยกตามประเภทพนักงาน
round_decimal_type_01 ~ 04ประเภทปัดเศษ ("N" = ไม่ปัด, "Y" = ปัด)

ฟิลด์ key_value_* มีความหมายต่างกันขึ้นกับ key_type_lv ดูรายละเอียดในตารางด้านล่าง


key_value ตามประเภท — late / early (มาสาย / กลับก่อน)

พนักงานรายเดือน (01)

FieldDescriptionExample
key_value_13นาทีที่อนุญาต (ค่าติดลบ = หักทันที)"30" หรือ "-30"
key_value_16นาทีเริ่มนับ"10"
key_value_4จำนวนเงินหัก/ค่าปรับ"30"
key_value_15จำนวนเงินส่วนเพิ่ม"15"
key_value_1วิธีคำนวณ: A = ตามเรทค่าแรง, B = จำนวนเงินต่อนาที, C = สูตรพิเศษ"A"
key_value_2ค่าหักถ้า A"100"
key_value_3ค่าหักถ้า B"250"

พนักงานรายวัน (02)

FieldDescriptionExample
key_value_14นาทีที่อนุญาต"0"
key_value_18นาทีเริ่มนับ"10"
key_value_9จำนวนเงินหัก/ค่าปรับ""
key_value_17จำนวนเงินส่วนเพิ่ม""
key_value_6วิธีคำนวณ: A / B / C"A"
key_value_7ค่าหักถ้า A""
key_value_8ค่าหักถ้า B""

key_value ตามประเภท — morning / underlunch / after / overlunch

โครงสร้างฟิลด์เหมือนกันทั้ง 4 ประเภท (แยกรายเดือน + รายวัน) ใช้สำหรับเงินพิเศษ

พนักงานรายเดือน (01)

FieldDescriptionExample
key_value_13นาทีขั้นต่ำ"30"
key_value_16นาทีเริ่มนับ"10"
key_value_4จำนวนเงินที่ได้"30"
key_value_15จำนวนเงินส่วนเพิ่ม"15"
key_value_1วิธีคำนวณ: A = ตามเรทค่าแรง, B = จำนวนเงิน, C = สูตรพิเศษ"B"
key_value_2ค่าจ่ายถ้า A""
key_value_3ค่าจ่ายถ้า B"250"

พนักงานรายวัน (02)

FieldDescriptionExample
key_value_14นาทีขั้นต่ำ"0"
key_value_18นาทีเริ่มนับ"10"
key_value_9จำนวนเงินที่ได้""
key_value_17จำนวนเงินส่วนเพิ่ม""
key_value_6วิธีคำนวณ: A / B / C"A"
key_value_7ค่าจ่ายถ้า A""
key_value_8ค่าจ่ายถ้า B""

key_value ตามประเภท — OT (OT_1_0, OT_1_5, OT_2_0, OT_3_0 ฯลฯ)

สำหรับ OT ต้องส่ง key_value_11 เป็นค่าเดียวกับ key_type_lv ด้วย เช่น "OT_1_5"

พนักงานรายเดือน (01)

FieldDescription
key_value_4อัตรา OT
key_value_1วิธีคำนวณ: A = ตามเรท, B = จำนวนเงิน, C = สูตรพิเศษ, D = แปลงเป็นวันหยุดพิเศษ
key_value_2ค่าถ้า A
key_value_3ค่าถ้า B
key_value_10ค่าถ้า D
key_value_12ประเภทชั่วโมง OT

พนักงานรายวัน (02)

FieldDescription
key_value_9อัตรา OT
key_value_6วิธีคำนวณ: A / B / C / D
key_value_7ค่าถ้า A
key_value_8ค่าถ้า B
key_value_15ค่าถ้า D
key_value_13ประเภทชั่วโมง OT

key_type_lv ทั้งหมด

key_type_lvชื่อลักษณะ
morningมาเช้าเงินพิเศษ (จ่าย)
underlunchก่อนพักเที่ยงเงินพิเศษ (จ่าย)
afterบ่ายเงินพิเศษ (จ่าย)
overlunchหลังพักเที่ยงเงินพิเศษ (จ่าย)
lateมาสายหักเงิน
earlyกลับก่อนหักเงิน
OT_1_0OT 1.0xOT อัตรา 1.0 เท่า
OT_1_5OT 1.5xOT อัตรา 1.5 เท่า
OT_2_0OT 2.0xOT อัตรา 2.0 เท่า
OT_3_0OT 3.0xOT อัตรา 3.0 เท่า
OT_4_0 ~ OT_7_0OT 4.0x-7.0xOT อัตราพิเศษ

Response Format

Success Response

{ "code": 200, "message": "Save Config [morning] Success", "payload": { "employee_config_id": "202602135FE6F1CB3A4F", "employee_id": "20260121FC89F3BB9120", "config_name": "มาเช้า", "key_type_lv": "morning", "key_type_value": "Y", "key_type_value_01": "Y", "key_type_value_02": "Y", "key_type_value_03": null, "key_type_value_04": null, "key_value_1": "B", "key_value_2": "", "key_value_3": 250, "key_value_4": 30, "key_value_13": 30, "key_value_15": 15, "key_value_16": 10, "key_value_17": "", "key_value_18": 10, "tax_include_01": "1", "tax_include_02": "1", "sso_include_01": "1", "sso_include_02": "1", "provident_include_01": "1", "provident_include_02": "1", "round_decimal_type_01": "N", "round_decimal_type_02": "N" } }

Error Response

{ "code": 400, "message": "ข้อมูลไม่ถูกต้อง", "errors": ["กรุณาระบุ 'employee_code'", "กรุณาระบุ 'key_type_lv'"] }
เงื่อนไขError Message
ไม่ส่ง employee_code หรือว่างกรุณาระบุ 'employee_code'
ไม่ส่ง key_type_lv หรือว่างกรุณาระบุ 'key_type_lv'
หา employee ไม่เจอEmployee not found with code: xxx
employee_id ว่างหลัง resolveไม่สามารถบันทึกการตั้งค่า [key_type_lv] ได้

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/employee/update-employee-setting?path_action=save-config" \ -H "Content-Type: application/json" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -d '{ "employee_code": "EMP001", "config_name": "มาเช้า", "key_type_lv": "morning", "key_type_value": "Y", "key_type_value_01": "Y", "key_type_value_02": "Y", "key_value_13": 30, "key_value_16": 10, "key_value_4": 30, "key_value_15": 15, "key_value_1": "B", "key_value_2": "", "key_value_3": 250, "key_value_14": 0, "key_value_18": 10, "key_value_9": "", "key_value_17": "", "key_value_6": null, "key_value_7": "", "key_value_8": "", "sso_include_01": "1", "tax_include_01": "1", "provident_include_01": "1", "round_decimal_type_01": "N", "sso_include_02": "1", "tax_include_02": "1", "provident_include_02": "1", "round_decimal_type_02": "N" }'

Last updated on