Get Calendar Month
ดึงปฏิทินการทำงานทั้งเดือนตามรอบเงินเดือน แสดงรายการพนักงานที่ทำงาน/ลา/หยุดในแต่ละวัน พร้อมกรองตามประเภท (ลา, กะการทำงาน, วันหยุด)
Endpoint
GET /api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_monthสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลเงินเดือนของพนักงาน (payroll:read:self)
Request Parameters
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
year_month | string | Yes | รอบเงินเดือน (YYYY-MM) | "2026-02" |
Optional Parameters
| Parameter | Type | Default | Description | Example |
|---|---|---|---|---|
type | string | null | ประเภทการกรอง: "leave", "work_cycle", "holiday" | "leave" |
time_leave_flag | string | null | รหัสประเภทการลา (ใช้เมื่อ type = "leave") | "01" |
work_cycle_id | string | null | รหัสกะการทำงาน (Base64 encoded — ใช้เมื่อ type = "work_cycle") | "MjAyNjAxMjFGQzg5RjNCQjkxMjA=" |
holiday_flag_lv | string | null | รหัสประเภทวันหยุด (ใช้เมื่อ type = "holiday") | "01" |
language_code | string | "TH" | ภาษา: TH หรือ EN | "TH" |
employee_code | string | null | รหัสพนักงาน — ถ้าระบุจะ return เฉพาะข้อมูลของพนักงานคนนั้น | "EMP001" |
Filter Types (type)
| Value | Description |
|---|---|
null | ทั้งหมด — แสดงพนักงานทุกคนทุกวัน (default) |
"leave" | ลางาน — แสดงเฉพาะพนักงานที่ลางาน |
"work_cycle" | กะการทำงาน — แสดงพนักงานตามกะที่ระบุ (ต้องระบุ work_cycle_id) |
"holiday" | วันหยุด — แสดงเฉพาะพนักงานที่มีวันหยุด |
Leave Types (time_leave_flag)
| Value | Name | Description |
|---|---|---|
"01" | ลากิจได้รับค่าจ้าง | Leave with paid |
"02" | ลากิจไม่ได้รับค่าจ้าง | Leave without paid |
"03" | ลาป่วยมีใบรับรองแพทย์ | Medical Leave |
"04" | ลาคลอดได้รับค่าจ้าง | Maternity Leave with paid |
"05" | ลาคลอดไม่ได้รับค่าจ้าง | Maternity Leave without paid |
"06" | ลาพักร้อน | Annual Leave |
"07" | ลาฝึกอบรม | Training Leave |
"08" | ลาเพื่อทำหมัน | Sterilization Leave |
"09" | ขาดงาน | Lost |
Holiday Types (holiday_flag_lv)
| Value | Name | Description |
|---|---|---|
"00" | วันทำงาน | Workday |
"01" | วันหยุดนักขัตฤกษ์ | Public Holiday |
"03" | วันหยุดพนักงาน | Employee Holiday |
"04" | วันหยุดพิเศษ | Extra Holiday |
Validation Rules
| Rule | Description |
|---|---|
year_month | ต้องเป็นรูปแบบ YYYY-MM และต้องมีรอบเดือนนั้นในระบบ |
type | ต้องเป็น "leave", "work_cycle", "holiday" หรือ null เท่านั้น |
time_leave_flag | ใช้ได้เฉพาะเมื่อ type = "leave" |
work_cycle_id | ใช้ได้เฉพาะเมื่อ type = "work_cycle" และต้อง Base64 encoded |
holiday_flag_lv | ใช้ได้เฉพาะเมื่อ type = "holiday" |
language_code | รองรับเฉพาะ TH หรือ EN (case-insensitive) |
employee_code | Optional — ถ้าระบุจะ return เฉพาะพนักงานคนนั้น |
Response Format
Success Response
{
"code": 200,
"message": "Get Calendar Month (2026-02) Accept",
"month": {
"master_salary_month": "2026-02",
"salary_report_start_dt": "2026-01-26 00:00:00",
"salary_report_end_dt": "2026-02-25 23:59:59",
"day_in_month": "31",
"salary_paid_dt": "2026-02-28"
},
"payload": {
"2026-02-01": [
{
"employee_code": "EMP001",
"employee_name": "สมชาย",
"employee_last_name": "ใจดี",
"employee_nickname": "ชาย",
"employee_name_en": "Somchai",
"employee_last_name_en": "Jaidee",
"employee_nickname_en": "Chai",
"photograph": "https://example.com/photo.jpg",
"position_name": "โปรแกรมเมอร์",
"department_name": "ฝ่ายพัฒนา",
"organization": {
"company": { "label": "บริษัท", "value": "บริษัท ตัวอย่าง จำกัด" },
"branch": { "label": "สาขา", "value": "สำนักงานใหญ่" },
"department": { "label": "แผนก", "value": "ฝ่ายพัฒนา" }
},
"work_date": "2026-02-01",
"work_cycle_code": "SHIFT_A",
"work_cycle_start_time": "08:00:00",
"work_cycle_end_time": "17:00:00",
"work_cycle_hour": "08:00:00",
"work_total_cyele_limit": "08:00:00",
"work_total_in_cycle": "08:00:00",
"absence_flag_lv": "00",
"absence_flag_name": "",
"day_status": "วันทำงาน"
}
]
}
}month Fields
| Field | Type | Description |
|---|---|---|
master_salary_month | string | รอบเดือน (YYYY-MM) |
salary_report_start_dt | string | วันที่เริ่มต้นรอบ (YYYY-MM-DD HH:mm:ss) |
salary_report_end_dt | string | วันที่สิ้นสุดรอบ (YYYY-MM-DD HH:mm:ss) |
day_in_month | string | จำนวนวันในรอบ |
salary_paid_dt | string | null | วันที่จ่ายเงิน (YYYY-MM-DD) |
payload Structure
payload เป็น Object ที่มี key เป็นวันที่ (YYYY-MM-DD) และ value เป็น array ของพนักงานในวันนั้น
payload[date][] Fields (per employee per day)
| Field | Type | Description |
|---|---|---|
employee_code | string | รหัสพนักงาน |
employee_name / employee_last_name | string | ชื่อ-นามสกุล (ตามภาษาที่เลือก) |
employee_nickname | string | null | ชื่อเล่น (ตามภาษาที่เลือก) |
employee_name_en / employee_last_name_en / employee_nickname_en | string | null | ชื่อ-นามสกุล-ชื่อเล่น (ภาษาอังกฤษ) |
photograph | string | null | URL รูปภาพพนักงาน |
position_name / department_name | string | null | ตำแหน่ง / แผนก |
organization | object | ข้อมูลองค์กร (company, branch, department แต่ละตัวมี {label, value}) |
work_date | string | วันที่ทำงาน (YYYY-MM-DD) |
work_cycle_code | string | null | รหัสกะ |
work_cycle_start_time / work_cycle_end_time | string | null | เวลาเริ่ม-สิ้นสุดกะ (HH:mm:ss) |
work_cycle_hour | string | null | ชั่วโมงทำงานในกะ (HH:mm:ss) |
work_total_cyele_limit | string | null | ชั่วโมงทำงานสูงสุด (HH:mm:ss) |
work_total_in_cycle | string | null | ชั่วโมงทำงานจริง (HH:mm:ss) |
absence_flag_lv | string | null | รหัสประเภทการลา ("00" = ไม่ลา) |
absence_flag_name | string | null | ชื่อประเภทการลา |
day_status | string | null | สถานะวัน (ดูด้านล่าง) |
day_status Values
| Value | Description |
|---|---|
"วันทำงาน" | วันทำงานปกติ |
"วันหยุดนักขัตฤกษ์" | วันหยุดประจำปี (อาจมีชื่อวันหยุดต่อท้าย เช่น "วันหยุดนักขัตฤกษ์ (วันขึ้นปีใหม่)") |
"ยังไม่ได้เริ่มงาน/ลาออกไปแล้ว" | พนักงานยังไม่เริ่มงานหรือพ้นสภาพแล้ว |
Error Responses
Missing Required Parameter (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"errors": {
"year_month": "year_month is required"
}
}Invalid Year Month Format (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"errors": {
"year_month": "Invalid format. Expected YYYY-MM"
}
}Invalid Type Parameter (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"errors": {
"type": "Invalid type. Expected: leave, work_cycle, holiday, or null"
}
}Invalid work_cycle_id Format (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"errors": {
"work_cycle_id": "Invalid base64 format or length"
}
}Month Not Found (HTTP 404)
{
"code": 404,
"message": "Exception Invalid Request No Month Valid"
}| HTTP Status | Description |
|---|---|
400 | พารามิเตอร์ไม่ถูกต้อง / ไม่ได้ส่งพารามิเตอร์ที่จำเป็น |
401 | API Key ไม่ถูกต้องหรือไม่ได้ส่ง |
404 | ไม่พบรอบเดือนที่ระบุในระบบ |
Code Examples
cURL
# ตัวอย่างที่ 1: ดูปฏิทินทั้งเดือน (ไม่กรอง)
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month&year_month=2026-02&language_code=TH" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"
# ตัวอย่างที่ 2: ดูเฉพาะพนักงานที่ลางาน
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month&year_month=2026-02&type=leave&language_code=TH" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"
# ตัวอย่างที่ 3: ดูเฉพาะลาป่วย (ใบรับรองแพทย์)
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month&year_month=2026-02&type=leave&time_leave_flag=03&language_code=TH" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"
# ตัวอย่างที่ 4: ดูเฉพาะกะที่ระบุ
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month&year_month=2026-02&type=work_cycle&work_cycle_id=MjAyNjAxMjFGQzg5RjNCQjkxMjA%3D&language_code=TH" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"
# ตัวอย่างที่ 5: ดูเฉพาะวันหยุดนักขัตฤกษ์
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month&year_month=2026-02&type=holiday&holiday_flag_lv=01&language_code=TH" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"
# ตัวอย่างที่ 6: ดูปฏิทินของพนักงานคนเดียว
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=get_calendar_month&year_month=2026-02&employee_code=EMP001&language_code=TH" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"Notes
payloadเป็น Object ที่มี key เป็นวันที่ (YYYY-MM-DD) และ value เป็น array ของพนักงาน- ใช้
typeparameter เพื่อกรองข้อมูลและช่วยลดเวลาในการดึงข้อมูล - ระบุ
employee_codeเพื่อดูปฏิทินของพนักงานคนเดียว (แทนการดึงทุกคน) - แนะนำให้ cache ข้อมูลที่ได้ และแสดง loading indicator ขณะรอผลลัพธ์
time_leave_flagจะใช้งานได้เฉพาะเมื่อtype = "leave"เท่านั้นwork_cycle_idจะใช้งานได้เฉพาะเมื่อtype = "work_cycle"และต้อง Base64 encodedholiday_flag_lvจะใช้งานได้เฉพาะเมื่อtype = "holiday"เท่านั้น
Related APIs
- Get Calendar Month Filter - ดูปฏิทินตามช่วงวันที่ (ไม่จำกัดรอบเงินเดือน)
- Current Month - ดูรอบเดือนปัจจุบันก่อนเรียก
get_calendar_month - Daily In Month - ดูข้อมูลเวลาทำงานรายวัน
Last updated on