Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Get OT Detail

ดูผลโอทีของพนักงานหนึ่งคนในงวด ทั้งสลิปสรุปและรายการรายวัน

ใช้ตรวจผลหลังสั่งคำนวณ หรือตรวจว่าวันไหนมีโอทีเข้ามาบ้าง

Endpoint

POST /api/v1/open-apis/calculation-ot/get-ot-round-detail

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

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
employee_codestringYesรหัสพนักงานEMP001

Optional Parameters

ParameterTypeDefaultDescription
master_salary_ot_report_idstring-รหัสรอบโอที (Base64) — ระบุรอบตรง ๆ จำเป็นเมื่อเดือนนั้นมีมากกว่าหนึ่งรอบ
year_monthstring-งวดเดือนของรอบโอที (YYYY-MM) ระบบจะหารอบให้เอง ใช้ได้เมื่อเดือนนั้นมีรอบเดียว

การระบุรอบโอที: ต้องส่ง master_salary_ot_report_id หรือ year_month อย่างน้อยหนึ่งอย่าง หากเดือนนั้นมีรอบโอทีมากกว่าหนึ่งรอบ ระบบจะไม่เลือกรอบให้ แต่จะตอบ error ให้ระบุ master_salary_ot_report_id เพื่อป้องกันการทำรายการผิดรอบ ถ้าส่งมาทั้งคู่ ระบบใช้ master_salary_ot_report_id หารอบโดยไม่ตรวจว่าตรงกับเดือนใน year_month หรือไม่ แต่ year_month ยังต้องถูกรูปแบบ YYYY-MM — ดูรหัสรอบที่มีอยู่ได้จาก List OT Rounds

Request Body Example

{ "employee_code": "EMP001", "year_month": "2026-09" }

Response Format

Success Response (HTTP 200)

{ "code": 200, "message": "Get OT detail (EMP001) Accept", "payload": { "month": { "master_salary_ot_report_id": "20251127D4573C421639", "master_salary_ot_name": "งวดโอที ก.ย. 2026", "read_only_flag": "N", "salary_report_read_only_flag": "N" }, "employee": { "employee_code": "EMP001" }, "slip": { "employee_code": "EMP001", "employee_name": "สมชาย", "department_name": "ฝ่ายผลิต", "position_name": "ช่างเทคนิค", "ot_1_5_day": 1, "ot_1_5_sum_time": "05:00:00", "ot_1_5_total": 1250.00, "total_ot": 1250.00 }, "daily": [ { "work_date": "2026-09-01", "ot_1_5_sum_time": "05:00:00", "ot_1_5_total": 1250.00 } ] } }

Error Response - Employee Not Found (HTTP 400)

{ "code": 400, "message": "Employee not found with code: EMP001", "payload": [] }

วิธีแก้: ตรวจสอบรหัสพนักงานให้ตรงกับที่แสดงในระบบ

Error Response - Round Not Found (HTTP 400)

{ "code": 400, "message": "ไม่พบรอบการคำนวณ OT ของเดือน 2026-09", "payload": [] }

วิธีแก้: ตรวจสอบว่าสร้างรอบโอทีของเดือนนั้นแล้ว หรือเรียก List OT Rounds เพื่อดูรอบที่มีอยู่

Error Response - Multiple Rounds in Month (HTTP 400)

{ "code": 400, "message": "ไม่สำเร็จ", "errors": [ "เดือน 2026-09 มีรอบ OT มากกว่าหนึ่งรอบ กรุณาระบุ 'master_salary_ot_report_id'" ] }

วิธีแก้: ส่ง master_salary_ot_report_id ของรอบที่ต้องการแทน year_month

Error Response - Round ID Not Base64-Encoded (HTTP 400)

{ "code": 400, "message": "ไม่พบรอบการคำนวณ OT: 20251127D4573C421639", "payload": [] }

วิธีแก้: เกิดจากส่ง master_salary_ot_report_id เป็นค่า raw ที่ยังไม่ได้เข้ารหัส ระบบจึงอ่านรหัสไม่ได้และแจ้งว่าไม่พบรอบ โดยข้อความจะแสดงค่าที่ส่งมาให้ตรวจสอบ — ต้องเข้ารหัส Base64 ก่อนเสมอ เช่น 20251127D4573C421639 → MjAyNTExMjdENDU3M0M0MjE2Mzk=

Error Response - Unauthorized (HTTP 401)

{ "code": 401, "message": "Unauthorized", "payload": [] }

วิธีแก้: ตรวจสอบว่า API Key ถูกต้องและมีสิทธิ์ตามที่ระบุไว้ด้านบน — ดูวิธีตั้งค่าได้ที่ Get Started

Response Fields

FieldTypeDescription
monthobjectข้อมูลรอบโอที
month.read_only_flagstringสถานะรอบโอที — Y = ปิดงวดโอทีแล้ว, N = เปิดอยู่
month.salary_report_read_only_flagstringสถานะงวดเงินเดือนที่รอบสังกัด — Y = ปิดแล้ว
employeeobjectข้อมูลพนักงาน
slipobjectสลิปสรุปโอทีของพนักงานคนนี้ในรอบนี้ แยกยอดตามอัตรา
slip.total_otnumberยอดเงินโอทีรวมทุกอัตรา
dailyarrayรายการโอทีรายวันตลอดช่วงของรอบ

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/calculation-ot/get-ot-round-detail" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "employee_code": "EMP001", "year_month": "2026-09" }'

Validation Rules

ParameterValidationError Message
employee_codeต้องระบุและมีอยู่จริงในระบบEmployee not found with code: EMP001
master_salary_ot_report_id / year_monthต้องระบุอย่างน้อยหนึ่งอย่างกรุณาระบุ 'master_salary_ot_report_id' หรือ 'year_month' (รูปแบบ YYYY-MM)
year_monthต้องเป็นรูปแบบ YYYY-MM'year_month' ต้องเป็นรูปแบบ YYYY-MM

Notes

  • ยอดในสลิปแยกตามอัตรา ot_1_0 / ot_1_5 / ot_2_0 / ot_3_0 … แต่ละอัตรามีทั้งจำนวนวัน (_day), เวลารวม (_sum_time) และยอดเงิน (_total)
  • ถ้ายังไม่เคยสั่งคำนวณ ยอดทั้งหมดจะเป็น 0 ให้เรียก Calculate OT ก่อน
  • Calculate OT - สั่งคำนวณโอทีรายคนในรอบนี้
  • Get OT Round - ดูรายละเอียดงวดและรายชื่อพนักงานในงวด
  • List OT Rounds - หารหัสรอบของเดือนที่ต้องการ
Last updated on