Skip to Content
🚀 Welcome to Humansoft Open API Documentation

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

ParameterTypeRequiredDescriptionExample
year_monthstringYesรอบเงินเดือน (YYYY-MM)"2026-02"

Optional Parameters

ParameterTypeDefaultDescriptionExample
typestringnullประเภทการกรอง: "leave", "work_cycle", "holiday""leave"
time_leave_flagstringnullรหัสประเภทการลา (ใช้เมื่อ type = "leave")"01"
work_cycle_idstringnullรหัสกะการทำงาน (Base64 encoded — ใช้เมื่อ type = "work_cycle")"MjAyNjAxMjFGQzg5RjNCQjkxMjA="
holiday_flag_lvstringnullรหัสประเภทวันหยุด (ใช้เมื่อ type = "holiday")"01"
language_codestring"TH"ภาษา: TH หรือ EN"TH"
employee_codestringnullรหัสพนักงาน — ถ้าระบุจะ return เฉพาะข้อมูลของพนักงานคนนั้น"EMP001"

Filter Types (type)

ValueDescription
nullทั้งหมด — แสดงพนักงานทุกคนทุกวัน (default)
"leave"ลางาน — แสดงเฉพาะพนักงานที่ลางาน
"work_cycle"กะการทำงาน — แสดงพนักงานตามกะที่ระบุ (ต้องระบุ work_cycle_id)
"holiday"วันหยุด — แสดงเฉพาะพนักงานที่มีวันหยุด

Leave Types (time_leave_flag)

ValueNameDescription
"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)

ValueNameDescription
"00"วันทำงานWorkday
"01"วันหยุดนักขัตฤกษ์Public Holiday
"03"วันหยุดพนักงานEmployee Holiday
"04"วันหยุดพิเศษExtra Holiday

Validation Rules

RuleDescription
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_codeOptional — ถ้าระบุจะ 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

FieldTypeDescription
master_salary_monthstringรอบเดือน (YYYY-MM)
salary_report_start_dtstringวันที่เริ่มต้นรอบ (YYYY-MM-DD HH:mm:ss)
salary_report_end_dtstringวันที่สิ้นสุดรอบ (YYYY-MM-DD HH:mm:ss)
day_in_monthstringจำนวนวันในรอบ
salary_paid_dtstring | nullวันที่จ่ายเงิน (YYYY-MM-DD)

payload Structure

payload เป็น Object ที่มี key เป็นวันที่ (YYYY-MM-DD) และ value เป็น array ของพนักงานในวันนั้น

payload[date][] Fields (per employee per day)

FieldTypeDescription
employee_codestringรหัสพนักงาน
employee_name / employee_last_namestringชื่อ-นามสกุล (ตามภาษาที่เลือก)
employee_nicknamestring | nullชื่อเล่น (ตามภาษาที่เลือก)
employee_name_en / employee_last_name_en / employee_nickname_enstring | nullชื่อ-นามสกุล-ชื่อเล่น (ภาษาอังกฤษ)
photographstring | nullURL รูปภาพพนักงาน
position_name / department_namestring | nullตำแหน่ง / แผนก
organizationobjectข้อมูลองค์กร (company, branch, department แต่ละตัวมี {label, value})
work_datestringวันที่ทำงาน (YYYY-MM-DD)
work_cycle_codestring | nullรหัสกะ
work_cycle_start_time / work_cycle_end_timestring | nullเวลาเริ่ม-สิ้นสุดกะ (HH:mm:ss)
work_cycle_hourstring | nullชั่วโมงทำงานในกะ (HH:mm:ss)
work_total_cyele_limitstring | nullชั่วโมงทำงานสูงสุด (HH:mm:ss)
work_total_in_cyclestring | nullชั่วโมงทำงานจริง (HH:mm:ss)
absence_flag_lvstring | nullรหัสประเภทการลา ("00" = ไม่ลา)
absence_flag_namestring | nullชื่อประเภทการลา
day_statusstring | nullสถานะวัน (ดูด้านล่าง)

day_status Values

ValueDescription
"วันทำงาน"วันทำงานปกติ
"วันหยุดนักขัตฤกษ์"วันหยุดประจำปี (อาจมีชื่อวันหยุดต่อท้าย เช่น "วันหยุดนักขัตฤกษ์ (วันขึ้นปีใหม่)")
"ยังไม่ได้เริ่มงาน/ลาออกไปแล้ว"พนักงานยังไม่เริ่มงานหรือพ้นสภาพแล้ว

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 StatusDescription
400พารามิเตอร์ไม่ถูกต้อง / ไม่ได้ส่งพารามิเตอร์ที่จำเป็น
401API Key ไม่ถูกต้องหรือไม่ได้ส่ง
404ไม่พบรอบเดือนที่ระบุในระบบ

Code Examples

# ตัวอย่างที่ 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 ของพนักงาน
  • ใช้ type parameter เพื่อกรองข้อมูลและช่วยลดเวลาในการดึงข้อมูล
  • ระบุ employee_code เพื่อดูปฏิทินของพนักงานคนเดียว (แทนการดึงทุกคน)
  • แนะนำให้ cache ข้อมูลที่ได้ และแสดง loading indicator ขณะรอผลลัพธ์
  • time_leave_flag จะใช้งานได้เฉพาะเมื่อ type = "leave" เท่านั้น
  • work_cycle_id จะใช้งานได้เฉพาะเมื่อ type = "work_cycle" และต้อง Base64 encoded
  • holiday_flag_lv จะใช้งานได้เฉพาะเมื่อ type = "holiday" เท่านั้น

  • Get Calendar Month Filter - ดูปฏิทินตามช่วงวันที่ (ไม่จำกัดรอบเงินเดือน)
  • Current Month - ดูรอบเดือนปัจจุบันก่อนเรียก get_calendar_month
  • Daily In Month - ดูข้อมูลเวลาทำงานรายวัน
Last updated on