Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Search Time Attendance Full

ค้นหาประวัติการลงเวลาทำงานแบบ HRS full search รองรับการกรองหลายพนักงาน หลายบริษัท หลายสาขา หลายแผนก และ filter lists อื่น ๆ

ใช้ API นี้สำหรับค้นหาประวัติลงเวลาในภาพรวม (ไม่จำกัดเฉพาะพนักงานคนเดียว) เหมาะกับการดึงข้อมูลแบบ batch สำหรับ HR/Admin หรือก่อนนำรายการไปแก้ไข

Endpoint

POST /api/v1/open-apis/salary/get-data-filter?path_action=search_time_attendance_full

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

Request Parameters

Required Parameters

ParameterTypeRequiredDescriptionExample
date_fromstringYesวันที่เริ่มต้น (YYYY-MM-DD)"2026-05-21"
date_tostringYesวันที่สิ้นสุด (YYYY-MM-DD)"2026-05-21"

Filter Parameters

ParameterTypeDefaultDescriptionExample
employee_listsarray[]กรองพนักงาน (object ที่มี id เป็น base64)[{"id":"BASE64_EMPLOYEE_ID"}]
company_listsarray[]กรองบริษัท[{"id":"BASE64_COMPANY_ID"}]
branch_listsarray[]กรองสาขา[{"id":"BASE64_BRANCH_ID"}]
department_listsarray[]กรองแผนก[{"id":"BASE64_DEPARTMENT_ID"}]
division_listsarray[]กรอง division[{"id":"BASE64_DIVISION_ID"}]
section_listsarray[]กรอง section[{"id":"BASE64_SECTION_ID"}]
section_lists_lv01array[]กรอง section ระดับ 1[{"id":"BASE64_SECTION_LV01_ID"}]
section_lists_lv02array[]กรอง section ระดับ 2[{"id":"BASE64_SECTION_LV02_ID"}]
section_lists_lv03array[]กรอง section ระดับ 3[{"id":"BASE64_SECTION_LV03_ID"}]
section_lists_lv04array[]กรอง section ระดับ 4[{"id":"BASE64_SECTION_LV04_ID"}]
section_lists_lv05array[]กรอง section ระดับ 5[{"id":"BASE64_SECTION_LV05_ID"}]
position_listsarray[]กรองตำแหน่ง[{"id":"BASE64_POSITION_ID"}]
keywordstring""ค้นหาพนักงานก่อนดึงเวลา (ชื่อ, รหัสพนักงาน, รหัสลายนิ้วมือ, เลขบัตร)"EMP001"
searchstring""ค้นหาจาก location_name, time_attendance_type_lv, employee_code, employee_name (partial match)"ธาวัน"
location_namestring""กรองตามชื่อสถานที่ (ตรงตัว)"สำนักงานใหญ่"
time_attendance_type_lvstring""กรองตามประเภทการบันทึก (ดู Attendance Types ด้านล่าง)"Manual"
hashtagsarray[]กรอง hashtag พนักงาน["fulltime"]
language_codestring"TH"ภาษาของข้อมูลพนักงาน (TH หรือ EN)"TH"

Pagination & Limit

ParameterTypeDefaultDescriptionExample
_PAGEinteger1หน้าที่ต้องการ (เริ่มที่ 1)1
_NUMBER_PER_PAGEinteger10จำนวนรายการต่อหน้า (1-100)10
check_count_of_employeebooleanfalseเปิดการตรวจจำนวนพนักงานเกิน limittrue
count_of_employee_limitinteger5000จำนวนพนักงานสูงสุดเมื่อเปิด check_count_of_employee5000

List Parameter Format

ทุก *_lists parameter ใช้ array ของ object ที่มี id เป็น Base64 encoded:

[ { "id": "Q09NUDAwMQ==" }, { "id": "Q09NUDAwMg==" } ]

Attendance Types

ValueDescription (TH)Description (EN)
Beaconเช็คอินผ่านอุปกรณ์ BeaconCheck-in via Beacon Device
Checkinเช็คอินผ่านระบบCheck-in via System
Facialสแกนใบหน้าFacial Recognition
Fingerprintสแกนลายนิ้วมือFingerprint Scanner
Importนำเข้าข้อมูลจากไฟล์Imported from File
LINE-Checkinเช็คอินผ่าน LINECheck-in via LINE
LINE-QRเช็คอินผ่าน QR Code บน LINECheck-in via LINE QR Code
Managerผู้จัดการบันทึกเวลาให้Manager Recorded
Manualบันทึกด้วยมือโดย HR/AdminManual Entry by HR/Admin
Offlineบันทึกขณะออฟไลน์Offline Recording
QRเช็คอินผ่าน QR CodeCheck-in via QR Code
Time Adjustปรับแก้เวลาTime Adjustment
TimeAppบันทึกผ่านแอปพลิเคชันRecorded via Mobile App
Wifiเช็คอินผ่านเครือข่าย Wi-FiCheck-in via Wi-Fi

Validation Rules

กฎรายละเอียด
date_from, date_toต้องระบุและรูปแบบ YYYY-MM-DD
date_from ≤ date_toวันที่เริ่มต้นต้องไม่มากกว่าวันที่สิ้นสุด
language_codeรองรับ TH หรือ EN (ค่าเริ่มต้น TH)
_PAGEถ้าน้อยกว่า 1 ระบบปรับเป็น 1
_NUMBER_PER_PAGEจำกัดในช่วง 1-100 (ค่าเริ่มต้น 10)
count_of_employee_limitถ้าเปิด check_count_of_employee และจำนวนพนักงานเกิน limit จะตอบ 413 Payload Too Large

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/salary/get-data-filter?path_action=search_time_attendance_full" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "date_from": "2026-05-21", "date_to": "2026-05-21", "language_code": "TH", "_PAGE": 1, "_NUMBER_PER_PAGE": 10 }'

Response Format

Success Response (HTTP 200)

{ "code": 200, "message": "Search Time Attendance Full (1) Accept", "payload": [ { "time_attendance_transac_id": "20260521AABBCC", "time_attendance_type_lv": "Fingerprint", "time_attendance_id": "", "employee_id": "202503219741427917A0", "device_sn": "SN001", "attendance_date": "2026-05-21", "attendance_datetime": "2026-05-21 08:30:00", "work_type_lv": "1", "latitude": null, "longitude": null, "location_id": null, "temperature": "0.00", "image_path": null, "attendance_inout": null, "attendance_remark": null, "employee_code": "EMP001", "fing_code": "EMP001", "employee_name": "สมชาย", "employee_last_name": "ทดสอบ", "employee_nickname": "ชาย", "employee_name_en": "Somchai", "employee_last_name_en": "Test", "employee_nickname_en": "Chai", "employee_title_lv": "01", "company_id": "20241225C3024958C974", "branch_id": "202412254358646B34E4", "department_id": "20251006192FE88E97A5", "division_id": null, "section_id": null, "section_lv01_id": null, "section_lv02_id": null, "section_lv03_id": null, "section_lv04_id": null, "section_lv05_id": null, "position_id": "2024122587C216DA2C19", "photograph": "images/userPlaceHolder.png", "location_name": "สำนักงานใหญ่", "device_name": "Device 01", "device_sys_del_flag": "N" } ], "_PAGINATION": { "_TOTAL_RECORDS": 42, "_PAGE": 1, "_NUMBER_PER_PAGE": 10 } }

Pagination Fields

FieldTypeDescription
_PAGINATION._TOTAL_RECORDSintegerจำนวนรายการทั้งหมดหลังกรอง (ก่อนแบ่งหน้า)
_PAGINATION._PAGEintegerหน้าปัจจุบัน
_PAGINATION._NUMBER_PER_PAGEintegerจำนวนรายการต่อหน้า

Key Response Fields

FieldTypeDescription
time_attendance_transac_idstringรหัสรายการลงเวลา (unique) — ใช้สำหรับ Edit Time API
time_attendance_type_lvstringประเภทการลงเวลา
attendance_datestringวันที่ลงเวลา (YYYY-MM-DD)
attendance_datetimestringวันเวลาที่ลงเวลา (YYYY-MM-DD HH:mm:ss)
work_type_lvstringรอบการทำงาน: "1" (เช้า), "2" (บ่าย), null (ไม่ระบุ)
attendance_inoutstringทิศทาง: "IN", "OUT", หรือ null
latitude / longitudestringพิกัด GPS (มีค่าเมื่อเช็คอินผ่าน GPS)
location_namestringชื่อสถานที่
employee_codestringรหัสพนักงาน
employee_namestringชื่อ (ภาษาตาม language_code)
employee_name_enstringชื่อ (EN) — ส่งมาเสมอ
device_namestringชื่ออุปกรณ์ที่ใช้ลงเวลา
device_sys_del_flagstringสถานะอุปกรณ์: "N" = ปกติ, null = ไม่ผ่าน device

Error Responses

Validation Failed (HTTP 400)

{ "code": 400, "message": "ValidationException: Missing or invalid 'date_from' (YYYY-MM-DD)", "payload": [] }

Payload Too Large (HTTP 413)

{ "code": 413, "message": "Payload Too Large", "payload": [] }

จะเกิดเมื่อเปิด check_count_of_employee แล้วจำนวนพนักงานที่ match เกิน count_of_employee_limit — แนะนำให้แคบลงด้วย filter lists

Notes

  • API นี้ไม่บังคับ employee_code — ถ้าต้องการเจาะจงพนักงานให้ใช้ employee_lists
  • การค้นหาด้วย search จะ match แบบ partial (LIKE) ส่วน location_name กรองแบบตรงตัว
  • ระบบจะซ่อนรายการที่ถูกลบโดยอัตโนมัติ (ตรวจสอบจาก device_sys_del_flag)
  • Pagination ไม่กระทบ employee filter — เพื่อป้องกันการตัดรายชื่อพนักงานก่อนดึง attendance
  • Search Time Attendance - ค้นหาประวัติลงเวลาของพนักงานคนเดียวด้วย employee_code
  • Get Detail - ดูรายละเอียดรายการเดียว
  • Edit Time - แก้ไขรายการลงเวลา (ใช้ time_attendance_transac_id)
  • Add Time Attendance - เพิ่มรายการลงเวลาใหม่
Last updated on