Get OT Round
ดูรายละเอียดของงวดโอทีหนึ่งรอบ พร้อมรายชื่อพนักงานในงวดและยอดโอทีของแต่ละคน
ใช้ตรวจว่ารอบนี้มีพนักงานคนใดอยู่บ้าง และผลคำนวณของแต่ละคนเป็นอย่างไร
Endpoint
POST /api/v1/open-apis/calculation-ot/get-ot-roundสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลเงินเดือนทั้งองค์กร (payroll:read:all)
Request Parameters
Optional Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
master_salary_ot_report_id | string | - | รหัสรอบโอที (Base64) — ระบุรอบตรง ๆ จำเป็นเมื่อเดือนนั้นมีมากกว่าหนึ่งรอบ |
year_month | string | - | งวดเดือนของรอบโอที (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
{
"master_salary_ot_report_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk="
}ระบุด้วยงวดเดือน
{
"year_month": "2026-09"
}Response Format
Success Response (HTTP 200)
{
"code": 200,
"message": "Get OT round (20251127D4573C421639) Accept",
"payload": {
"month": {
"master_salary_ot_report_id": "20251127D4573C421639",
"master_salary_ot_name": "งวดโอที ก.ย. 2026",
"ot_report_start_dt": "2026-08-21 00:00:00",
"ot_report_end_dt": "2026-09-20 23:59:59",
"read_only_flag": "N",
"salary_report_read_only_flag": "N"
},
"employee_lists": [
{
"employee_code": "EMP001",
"employee_name": "สมชาย",
"employee_last_name": "ใจดี",
"department_name": "ฝ่ายผลิต",
"position_name": "ช่างเทคนิค",
"total_ot": 1250.00
}
]
}
}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
| Field | Type | Description |
|---|---|---|
month | object | ข้อมูลของรอบโอที (ฟิลด์เดียวกับ List OT Rounds) |
month.read_only_flag | string | สถานะรอบโอที — Y = ปิดงวดโอทีแล้ว, N = เปิดอยู่ |
month.salary_report_read_only_flag | string | สถานะงวดเงินเดือนที่รอบสังกัด — Y = ปิดแล้ว แก้ไข/คำนวณรอบโอทีไม่ได้ |
employee_lists | array | รายชื่อพนักงานในรอบ พร้อมยอดโอทีของแต่ละคน |
employee_lists[].employee_code | string | รหัสพนักงาน |
employee_lists[].employee_name | string | ชื่อพนักงาน |
employee_lists[].department_name | string | หน่วยงาน |
employee_lists[].position_name | string | ตำแหน่ง |
employee_lists[].total_ot | number | ยอดเงินโอทีรวมของคนนั้นในรอบนี้ |
Code Examples
cURL
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/calculation-ot/get-ot-round" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"master_salary_ot_report_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk="
}'Validation Rules
| Parameter | Validation | Error Message |
|---|---|---|
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
- ชื่อพนักงานและหน่วยงานคืนตามภาษาที่ระบบตั้งไว้
- ถ้ายังไม่เคยสั่งคำนวณ ยอดโอทีของแต่ละคนจะเป็น 0
Related APIs
- List OT Rounds - หารหัสรอบของเดือนที่ต้องการ
- Calculate OT - สั่งคำนวณโอทีรายคนในรอบนี้
- Assign Employees - บันทึกรายชื่อพนักงานในงวด