Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Submit OT

ยื่นคำขอ OT ใหม่

ใช้ API นี้เพื่อสร้างคำขอ OT ใหม่ ระบบจะตรวจสอบข้อมูลและส่งเข้าสู่ขั้นตอนการอนุมัติอัตโนมัติ

Endpoint

POST /api/v1/open-apis/overtime/submit

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
employee_codestringYesรหัสพนักงานEMP001
ot_work_dtstringYesวันที่ทำ OT (YYYY-MM-DD)2026-01-15
ot_work_start_hourstringYesเวลาเริ่มต้น (YYYY-MM-DD HH:mm:ss)2026-01-15 18:00:00
ot_work_end_hourstringYesเวลาสิ้นสุด (YYYY-MM-DD HH:mm:ss)2026-01-15 21:00:00
ot_work_type_lvstringYesประเภท OT (01-08)02

Optional Parameters

ParameterTypeRequiredDescriptionExample
ot_work_descstringNoรายละเอียด/เหตุผลทำงานเพิ่มเติมตามโปรเจค

Request Body Example

{ "employee_code": "EMP001", "ot_work_dt": "2026-01-15", "ot_work_start_hour": "2026-01-15 18:00:00", "ot_work_end_hour": "2026-01-15 21:00:00", "ot_work_type_lv": "02", "ot_work_desc": "ทำงานเพิ่มเติมตามโปรเจค" }

Response Format

Success Response (HTTP 200)

{ "code": 200, "message": "สำเร็จ", "payload": { "ot_work_id": "T1QwMDEyMw==", "employee_code": "EMP001", "ot_work_dt": "2026-01-15", "ot_work_start_hour": "2026-01-15 18:00:00", "ot_work_end_hour": "2026-01-15 21:00:00", "ot_work_type_lv": "02", "ot_work_hour": "3.00", "approve_flag": "01", "created": "2026-01-13 09:00:00" } }

Error Response - Validation Failed (HTTP 400)

{ "code": 400, "message": "Validation failed", "errors": [ "Missing required parameter: 'employee_code'", "'ot_work_dt' must be in Y-m-d format" ] }

Error Response - Employee Not Found (HTTP 400)

{ "code": 400, "message": "ไม่สำเร็จ", "error": "Employee not found: EMP999" }

Error Response - OT Type Not Enabled (HTTP 400)

{ "code": 400, "message": "ไม่สำเร็จ", "error": "OT type '05' is not enabled for this company" }

Error Response - Salary Period Closed (HTTP 400)

{ "code": 400, "message": "ไม่สำเร็จ", "error": "ไม่สามารถบันทึกได้ งวดเงินเดือนปิดแล้ว" }

Response Fields

FieldTypeDescription
ot_work_idstringID ของคำขอที่สร้าง
employee_codestringรหัสพนักงาน
ot_work_dtstringวันที่ทำ OT
ot_work_start_hourdatetimeเวลาเริ่มต้น
ot_work_end_hourdatetimeเวลาสิ้นสุด
ot_work_type_lvstringประเภท OT
ot_work_hourstringจำนวนชั่วโมง OT
approve_flagstringสถานะการอนุมัติ
createddatetimeวันเวลาที่สร้าง

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/overtime/submit" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "employee_code": "EMP001", "ot_work_dt": "2026-01-15", "ot_work_start_hour": "2026-01-15 18:00:00", "ot_work_end_hour": "2026-01-15 21:00:00", "ot_work_type_lv": "02", "ot_work_desc": "ทำงานเพิ่มเติมตามโปรเจค" }'

Validation Rules

ParameterValidationError Message
employee_codeต้องระบุและเป็น stringMissing required parameter: 'employee_code'
ot_work_dtต้องระบุและรูปแบบ YYYY-MM-DD'ot_work_dt' must be in Y-m-d format
ot_work_start_hourต้องระบุและรูปแบบ YYYY-MM-DD HH:mm:ss'ot_work_start_hour' must be in Y-m-d H:i:s format
ot_work_end_hourต้องระบุและรูปแบบ YYYY-MM-DD HH:mm:ss'ot_work_end_hour' must be in Y-m-d H:i:s format
ot_work_end_hourต้อง > ot_work_start_hour'ot_work_end_hour' must be after 'ot_work_start_hour'
ot_work_type_lvต้องระบุและเป็น 01-08'ot_work_type_lv' must be one of: 01, 02, 03, 04, 05, 06, 07, 08

Business Rules

ข้อจำกัดการยื่นคำขอ:

  • ไม่สามารถยื่นคำขอในงวดเงินเดือนที่ปิดแล้ว
  • เวลาสิ้นสุดต้องมากกว่าเวลาเริ่มต้น
  • ประเภท OT ต้องเปิดใช้งานในบริษัท
  • ต้องตรวจสอบว่าพนักงานมีอยู่ในระบบ
  • ระบบจะคำนวณชั่วโมง OT อัตโนมัติจากเวลาเริ่มต้นและสิ้นสุด

Side Effects

เมื่อสร้างคำขอสำเร็จ ระบบจะ:

  1. Calculate OT Hours - คำนวณชั่วโมง OT
  2. Set Initial Status - ตั้งสถานะเป็น Pending (01)
  3. Create Notification - แจ้งเตือนผู้อนุมัติ
  4. Create Feed - สร้าง feed สำหรับพนักงาน

Error Handling

ErrorCauseSolution
Missing required parameter: 'employee_code'ไม่ได้ส่ง employee_codeตรวจสอบ request body
Employee not found: XXXไม่พบพนักงานตรวจสอบ employee_code
OT type 'XX' is not enabled for this companyประเภท OT ไม่เปิดใช้ใช้ Get OT Types ดูประเภทที่ใช้ได้
ไม่สามารถบันทึกได้ งวดเงินเดือนปิดแล้วงวดเงินเดือนปิดแล้วเลือกวันที่ในงวดที่เปิดอยู่
'ot_work_end_hour' must be after 'ot_work_start_hour'เวลาไม่ถูกต้องตรวจสอบเวลาเริ่มต้น/สิ้นสุด

Notes

Use Cases

  1. พนักงานยื่นคำขอ OT - สร้างคำขอผ่าน Self-service
  2. HR สร้างคำขอแทน - สร้างคำขอให้พนักงานที่ไม่มี access
  3. Batch Submit - สร้างคำขอหลายรายการพร้อมกัน

Time Format

  • ot_work_dt ใช้รูปแบบ YYYY-MM-DD เช่น 2026-01-15
  • ot_work_start_hour และ ot_work_end_hour ใช้รูปแบบ YYYY-MM-DD HH:mm:ss เช่น 2026-01-15 18:00:00
Last updated on