Get Employee List
ดึงรายการพนักงานทั้งหมด รองรับการกรองข้อมูลตามเงื่อนไขต่างๆ เช่น บริษัท สาขา แผนก ตำแหน่ง สถานะ และรองรับการแบ่งหน้า (Pagination)
API นี้เหมาะสำหรับแสดงรายการพนักงานในหน้า List View หรือ Dashboard ถ้าต้องการข้อมูลครบถ้วนรายบุคคล ใช้ Get Employee Info แทน
Convention ID: พารามิเตอร์ที่ลงท้าย _id ต้องส่งเป็น Base64-encoded string (เช่น base64_encode("20241225C3024958C974") → MjAyNDEyMjVDMzAyNDk1OEM5NzQ=). Response คืนค่า ID เป็น raw string — เมื่อนำไปใช้ใน request อื่นที่รับ *_id ต้อง encode เป็น Base64 ก่อนส่ง
Endpoint
GET /api/v1/open-apis/employee/get-employee-listQuery Parameters
พารามิเตอร์การค้นหา
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
keyword | string | No | คำค้นหา (รหัส, ชื่อ, นามสกุล, ชื่อเล่น) | สมชาย |
พารามิเตอร์การกรอง (Filter)
พารามิเตอร์ที่ลงท้าย _id ต้องส่งเป็น Base64-encoded ของ raw internal ID
| Parameter | Type | Required | Description | Example (Base64) |
|---|---|---|---|---|
company_id | string | No | กรองตาม ID บริษัท | MjAyNDEyMjVDMzAyNDk1OEM5NzQ= |
branch_id | string | No | กรองตาม ID สาขา | MjAyNDEyMjU0MzU4NjQ2QjM0RTQ= |
department_id | string | No | กรองตาม ID แผนก/ฝ่าย | MjAyNDEyMjVGNTIwQUM4NDU2RUQ= |
division_id | string | No | กรองตาม ID ส่วน | - |
section_id | string | No | กรองตาม ID งาน | - |
position_id | string | No | กรองตาม ID ตำแหน่ง | MjAyNDEyMjU4N0MyMTZEQTJDMTk= |
employee_type_code | string | No | กรองตามประเภทพนักงาน (01-04) | 01 |
employee_type_group_id | string | No | กรองตามกลุ่มประเภทพนักงาน | MjAyNDEyMjU1NkQzMjkxM0Y1MUU= |
employee_status | string | No | กรองตามสถานะ (01=ทำงาน, 02=ไม่ทำงาน, 03=ลาออก) | 01 |
พารามิเตอร์เพิ่มเติม
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
include_salary | string | No | รวมข้อมูลเงินเดือน (Y=รวม, N=ไม่รวม) | Y |
sort_by | string | No | เรียงข้อมูลตามฟิลด์ | employee_code |
sort_order | string | No | ลำดับการเรียง (ASC, DESC) | ASC |
sort_by Options:
employee_code- รหัสพนักงานemployee_name- ชื่อพนักงานcreated- วันที่สร้างbegin_dt- วันที่เริ่มงานจริงeffective_dt- วันที่เริ่มงาน
พารามิเตอร์ Pagination
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
_PAGE | number | No | หน้าที่ต้องการ (เริ่มต้นที่ 1) | 1 |
_NUMBER_PER_PAGE | number | No | จำนวนรายการต่อหน้า (1-1000) | 50 |
ถ้าไม่ระบุ _PAGE และ _NUMBER_PER_PAGE จะแสดงข้อมูลทั้งหมด ควรใช้ Pagination สำหรับข้อมูลจำนวนมาก
Response Format
Success Response (HTTP 200)
ค่า field ที่ลงท้าย _id ใน response เป็น raw string (ไม่ใช่ Base64) เมื่อนำไปใช้ใน request อื่นต้อง encode เป็น Base64 ก่อนส่ง
{
"code": 200,
"message": "สำเร็จ",
"payload": [
{
"employee_id": "20260121FC89F3BB9120",
"employee_code": "EMP0001",
"employee_name": "สมชาย",
"employee_last_name": "ใจดี",
"employee_nickname": "ชาย",
"employee_status": "01",
"employee_status_name": "ทำงาน",
"employee_type_code": "01",
"employee_type_name": "พนักงานรายเดือน",
"employee_type_group_id": "2024122556D32913F51E",
"employee_type_group_name": "พนักงานประจำ",
"company_id": "20241225C3024958C974",
"company_name": "บริษัท ABC จำกัด",
"branch_id": "202412254358646B34E4",
"branch_name": "สาขากรุงเทพ",
"department_id": "20241225F520AC8456ED",
"department_name": "ฝ่ายบริหาร",
"position_id": "2024122587C216DA2C19",
"position_name": "ผู้จัดการ",
"effective_dt": "2024-01-15",
"effective_dt_age": "2 ปี 0 เดือน 0 วัน",
"begin_dt": "2024-01-15",
"begin_dt_age": "2 ปี 0 เดือน 0 วัน",
"created": "2024-01-10 10:30:00"
}
],
"_PAGINATION": {
"_TOTAL_RECORDS": 100,
"_PAGE": 1,
"_NUMBER_PER_PAGE": 50
}
}Response with Salary (include_salary=Y)
{
"code": 200,
"message": "สำเร็จ",
"payload": [
{
"employee_id": "20260121FC89F3BB9120",
"employee_code": "EMP0001",
"employee_name": "สมชาย",
"employee_last_name": "ใจดี",
"company_id": "20241225C3024958C974",
"company_name": "บริษัท ABC จำกัด",
"salary": 30000,
"salary_amt": 30000,
"total_salary": 30000,
"total_income": 35000,
"total_expense": 3000,
"empNodes": [...],
"tax_list": [...]
}
]
}Error Response (HTTP 400)
{
"code": 400,
"message": "ไม่สำเร็จ",
"errors": [
"'employee_status' must be one of: 01 (Active), 02 (Inactive), 03 (Resigned)",
"'_PAGE' must be a positive number"
]
}Response Fields
ข้อมูลพนักงาน
| Field | Type | Description |
|---|---|---|
employee_id | string | ID ของพนักงาน |
employee_code | string | รหัสพนักงาน |
employee_name | string | ชื่อพนักงาน (ตามภาษาที่เลือก) |
employee_last_name | string | นามสกุลพนักงาน |
employee_nickname | string | ชื่อเล่น |
employee_status | string | สถานะพนักงาน (01, 02, 03) |
employee_status_name | string | ชื่อสถานะพนักงาน |
employee_type_code | string | ประเภทพนักงาน (01-04) |
employee_type_name | string | ชื่อประเภทพนักงาน |
employee_type_group_id | string | ID กลุ่มประเภทพนักงาน |
employee_type_group_name | string | ชื่อกลุ่มประเภทพนักงาน |
ข้อมูลองค์กร
| Field | Type | Description |
|---|---|---|
company_id | string | ID ของบริษัท |
company_name | string | ชื่อบริษัท |
branch_id | string | ID ของสาขา |
branch_name | string | ชื่อสาขา |
department_id | string | ID ของแผนก |
department_name | string | ชื่อแผนก |
division_id | string | ID ของส่วน |
division_name | string | ชื่อส่วน |
section_id | string | ID ของงาน |
section_name | string | ชื่องาน |
position_id | string | ID ของตำแหน่ง |
position_name | string | ชื่อตำแหน่ง |
ข้อมูลวันที่
| Field | Type | Description |
|---|---|---|
effective_dt | date | วันที่เริ่มงาน |
effective_dt_age | string | อายุงาน (นับจาก effective_dt) |
begin_dt | date | วันที่เริ่มงานจริง |
begin_dt_age | string | อายุงาน (นับจาก begin_dt) |
created | datetime | วันเวลาที่สร้างข้อมูล |
ข้อมูลเงินเดือน (เมื่อ include_salary=Y)
| Field | Type | Description |
|---|---|---|
salary | number | เงินเดือนพื้นฐาน |
salary_amt | number | เงินเดือนรายเดือน |
salary_daily | number | เงินเดือนรายวัน |
total_salary | number | รวมเงินเดือน |
total_income | number | รวมรายรับ |
total_expense | number | รวมรายจ่าย |
Pagination
| Field | Type | Description |
|---|---|---|
_PAGINATION._TOTAL_RECORDS | number | จำนวนรายการทั้งหมด |
_PAGINATION._PAGE | number | หน้าปัจจุบัน |
_PAGINATION._NUMBER_PER_PAGE | number | จำนวนรายการต่อหน้า |
Code Examples
cURL
# ดึงรายการพนักงานทั้งหมด
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/employee/get-employee-list" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"
# ดึงพร้อม Filter และ Pagination (company_id ส่งเป็น Base64)
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/employee/get-employee-list?company_id=MjAyNDEyMjVDMzAyNDk1OEM5NzQ=&employee_status=01&_PAGE=1&_NUMBER_PER_PAGE=50" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"
# ค้นหาด้วย Keyword
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/employee/get-employee-list?keyword=สมชาย" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"
# รวมข้อมูลเงินเดือน
curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/employee/get-employee-list?include_salary=Y" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"Validation Rules
| Parameter | Rule |
|---|---|
employee_status | ต้องเป็น 01, 02, หรือ 03 |
employee_type_code | ต้องเป็น 01, 02, 03, หรือ 04 |
include_salary | ต้องเป็น Y หรือ N |
sort_by | ต้องเป็น employee_code, employee_name, created, begin_dt, หรือ effective_dt |
sort_order | ต้องเป็น ASC หรือ DESC |
_PAGE | ต้องเป็นตัวเลขบวก (≥ 1) |
_NUMBER_PER_PAGE | ต้องเป็นตัวเลข 1-1000 |
Notes
Performance Tips:
- ใช้ Filter เพื่อจำกัดขอบเขตข้อมูล
- ใช้ Pagination ไม่เกิน 100 รายการต่อหน้า
- หลีกเลี่ยง
include_salary=Yถ้าไม่จำเป็น
Keyword Search
keyword จะค้นหาใน:
- รหัสพนักงาน (employee_code)
- ชื่อ (employee_name)
- นามสกุล (employee_last_name)
- ชื่อเล่น (employee_nickname)
Include Salary
เมื่อ include_salary=Y:
- รวมข้อมูลเงินเดือนและรายรับ/รายจ่าย
- รวม
empNodes(รายการประเภทพนักงานทั้งหมด) - รวม
tax_list(รายการวิธีคำนวณภาษี)
ข้อมูลเงินเดือนเป็นข้อมูลที่มีความละเอียดอ่อน ใช้ด้วยความระมัดระวัง
Language Support
- API รองรับทั้งภาษาไทย (TH) และภาษาอังกฤษ (EN)
- ฟิลด์ที่รองรับหลายภาษาจะแสดงตามภาษาที่เลือก
Related APIs
- Get Employee Info - ดึงข้อมูลพนักงานรายบุคคล (ข้อมูลครบถ้วน)
- Add Employee - เพิ่มพนักงานใหม่
- Get Organization Structure - ดึงโครงสร้างองค์กร
- Get Position List - ดึงรายการตำแหน่ง