Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Approve Adjust

อนุมัติหรือปฏิเสธเอกสารขอเพิ่มเวลาทำงาน รองรับการอนุมัติแบบหลายขั้นตอน (Multi-level Approval)

ใช้ API นี้เพื่ออนุมัติ ปฏิเสธ หรือยกเลิกเอกสารขอเพิ่มเวลาทำงาน ระบบรองรับการอนุมัติแบบหลายขั้นตอนตามสายการอนุมัติที่บริษัทกำหนด

Endpoint

POST /api/v1/open-apis/time-adjust/approve

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
time_adjust_idstringYesรหัสเอกสาร (Base64)MjAyNjAyMTFBMjEyQ0Q0NTZFRg==
employee_codestringYesรหัสพนักงาน (สำหรับตรวจสอบสิทธิ์)EMP001
approve_flagstringYesสถานะการอนุมัติ (02-08)02
authorize_idstringYesรหัสผู้อนุมัติ (Base64)MjAyNjAyMTFBMjEyQ0Q0NTZFRg==

Optional Parameters

ParameterTypeDefaultDescription
approve_remarkstring""หมายเหตุ (บังคับสำหรับการปฏิเสธ)
authorize_linestring""เช็คสายอนุมัติตามลำดับ (true/false)
extra_roundstring"N"งวดพิเศษ (Y/N)
no_hr_permissionbooleanfalseระงับสิทธิพิเศษ HR

Option Values for approve_flag

ค่าสถานะ (TH)สถานะ (EN)การทำงาน
02อนุมัติApprovedอนุมัติขั้นสุดท้าย — ระบบจะบันทึกเวลาเข้าสู่ระบบอัตโนมัติ
03ไม่อนุมัติNot Approvedปฏิเสธเอกสาร
04หัวหน้าอนุมัติขั้นที่ 1Manager Approved Step 1ส่งต่อไปยังขั้นตอนถัดไป
05ยกเลิกCancelledยกเลิก/ถอนคืนเอกสาร
06หัวหน้าอนุมัติขั้นที่ 2Manager Approved Step 2ส่งต่อไปยังขั้นตอนถัดไป
07หัวหน้าอนุมัติขั้นที่ 3Manager Approved Step 3ส่งต่อไปยังขั้นตอนถัดไป
08หัวหน้าอนุมัติขั้นที่ 4Manager Approved Step 4ส่งต่อไปยังขั้นตอนถัดไป

authorize_line — เมื่อส่ง true ผู้ใช้ที่เป็น HR จะต้องผ่านกระบวนการอนุมัติตามลำดับเหมือนพนักงานทั่วไป (ไม่ bypass สายอนุมัติ)

no_hr_permission — เมื่อส่ง true ระบบจะระงับสิทธิพิเศษ HR ทำให้ต้องตรวจสอบกฎอย่างเคร่งครัด (เช่น cut-off date)

Request Body Example

{ "time_adjust_id": "MjAyNjAyMTFBMjEyQ0Q0NTZFRg==", "employee_code": "EMP001", "approve_flag": "02", "authorize_id": "MjAyNjAyMTFBMjEyQ0Q0NTZFRg==", "approve_remark": "อนุมัติ" }

Response Format

Success Response (HTTP 200)

{ "code": 200, "message": "สำเร็จ", "payload": { "time_adjust_id": "20260218AB123CD456EF", "employee_code": "EMP001", "time_adjust_dt": "2026-02-18", "approve_flag": "02", "approve_remark": "อนุมัติ", "approved_at": "2026-02-18 15:30:00" } }

Error Response - Validation Failed (HTTP 422)

{ "code": 422, "message": "Validation failed", "errors": [ "Missing required parameter: 'time_adjust_id'", "'approve_flag' must be 02-08" ] }

Error Response - Remark Required for Rejection (HTTP 422)

{ "code": 422, "message": "Validation failed", "errors": [ "'approve_remark' is required when approve_flag is '03'" ] }

Error Response - Document Not Found (HTTP 404)

{ "code": 404, "message": "ไม่สำเร็จ", "error": "Time adjust record not found" }

Error Response - Unauthorized (HTTP 403)

{ "code": 403, "message": "ไม่สำเร็จ", "error": "ไม่มีสิทธิ์อนุมัติเอกสารนี้" }

Error Response - Salary Period Closed (HTTP 400)

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

Error Response - Cut-off Date Exceeded (HTTP 400)

{ "code": 400, "message": "ไม่สำเร็จ", "error": "เกินวันที่ cut-off แล้ว" }

Response Fields

FieldTypeDescription
time_adjust_idstringรหัสเอกสาร
employee_codestringรหัสพนักงาน
time_adjust_dtstringวันที่ขอเพิ่มเวลา (YYYY-MM-DD)
approve_flagstringสถานะการอนุมัติ
approve_remarkstringหมายเหตุการอนุมัติ
approved_atstringวันเวลาที่อนุมัติ (YYYY-MM-DD HH:MM:SS)

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/time-adjust/approve" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "time_adjust_id": "MjAyNjAyMTFBMjEyQ0Q0NTZFRg==", "employee_code": "EMP001", "approve_flag": "02", "authorize_id": "MjAyNjAyMTFBMjEyQ0Q0NTZFRg==", "approve_remark": "อนุมัติ" }'

Validation Rules

ParameterValidationError Message
time_adjust_idต้องระบุและเป็น stringMissing required parameter: 'time_adjust_id'
employee_codeต้องระบุและเป็น stringMissing required parameter: 'employee_code'
approve_flagต้องระบุและเป็น 02-08'approve_flag' must be 02-08
authorize_idต้องระบุและเป็น stringMissing required parameter: 'authorize_id'
approve_remarkบังคับเมื่อ approve_flag = 03 (ปฏิเสธ)'approve_remark' is required when approve_flag is '03'
time_adjust_idต้องมีอยู่ในระบบTime adjust record not found

Business Rules

ข้อจำกัดการอนุมัติ:

  • ระบบคำนวณขั้นตอนถัดไปอัตโนมัติตามสายการอนุมัติที่กำหนด
  • เมื่ออนุมัติขั้นสุดท้าย (approve_flag = 02) ระบบจะบันทึกเวลาเข้าสู่ระบบอัตโนมัติ
  • การปฏิเสธ (approve_flag = 03) ต้องระบุ approve_remark เสมอ
  • HR สามารถข้ามการตรวจสอบ cut-off date ได้ (ยกเว้น no_hr_permission = true)
  • ต้องไม่อยู่ในงวดเงินเดือนที่ปิดแล้ว
  • ต้องมีสิทธิ์อนุมัติเอกสาร
  • ระบบจะส่งการแจ้งเตือนอัตโนมัติ

Error Handling

ErrorCauseSolution
Missing required parameter: 'time_adjust_id'ไม่ได้ส่ง time_adjust_idตรวจสอบ request body
Missing required parameter: 'approve_flag'ไม่ได้ส่ง approve_flagตรวจสอบ request body
'approve_flag' must be 02-08ค่า approve_flag ไม่ถูกต้องใช้ค่า 02-08 ตามตาราง Option Values
'approve_remark' is required when approve_flag is '03'ปฏิเสธโดยไม่ระบุหมายเหตุส่ง approve_remark เมื่อ approve_flag = 03
Time adjust record not foundไม่พบเอกสารตรวจสอบ time_adjust_id
ไม่มีสิทธิ์อนุมัติเอกสารนี้ไม่มีสิทธิ์อนุมัติตรวจสอบสิทธิ์ผู้อนุมัติ (authorize_id)
ไม่สามารถบันทึกได้ งวดเงินเดือนปิดแล้วงวดเงินเดือนปิดแล้วเลือกเอกสารในงวดที่เปิดอยู่
เกินวันที่ cut-off แล้วเกินวัน cut-offติดต่อ HR หรือส่ง no_hr_permission = false

Notes

Use Cases

  1. หัวหน้าอนุมัติคำขอ - อนุมัติเอกสารขอเพิ่มเวลาของพนักงานในสายงาน
  2. HR อนุมัติหรือปฏิเสธเอกสาร - อนุมัติหรือปฏิเสธเอกสารในฐานะ HR
  3. อนุมัติแบบหลายขั้นตอน - ส่ง approve_flag = 04-08 เพื่ออนุมัติในแต่ละขั้นตอน
  4. ยกเลิกเอกสาร - ส่ง approve_flag = 05 เพื่อยกเลิก/ถอนคืนเอกสาร

Approval Flow

  • 04 -> 06 -> 07 -> 08 -> 02 (ตามสายการอนุมัติที่กำหนด)
  • ระบบจะคำนวณขั้นตอนถัดไปอัตโนมัติ ไม่จำเป็นต้องส่ง approve_flag ถัดไปเอง
  • หากเป็นขั้นตอนสุดท้าย ระบบจะเปลี่ยนสถานะเป็น 02 (Approved) อัตโนมัติ

HR Special Permission

  • โดยปกติ HR สามารถข้ามการตรวจสอบ cut-off date ได้
  • หากต้องการให้ HR ปฏิบัติตามกฎเดียวกับพนักงานทั่วไป ให้ส่ง authorize_line = true และ/หรือ no_hr_permission = true
  • Submit Adjust - ยื่นเอกสารขอเพิ่มเวลา
  • Get Adjust Detail - ดึงรายละเอียดเอกสาร (ตรวจสอบข้อมูลก่อนอนุมัติ)
  • Get Adjust List - ดึงรายการเอกสารขอเพิ่มเวลา
  • Update Adjust - แก้ไขเอกสารขอเพิ่มเวลา
  • Delete Adjust - ลบเอกสารขอเพิ่มเวลา
Last updated on