Add Employee
เพิ่มพนักงานใหม่เข้าสู่ระบบ รองรับการระบุข้อมูลพื้นฐาน ข้อมูลองค์กร และข้อมูลส่วนตัวของพนักงาน พร้อมสร้างบัญชีผู้ใช้งานและข้อมูลเริ่มต้นอัตโนมัติ
เมื่อสร้างพนักงานใหม่ ระบบจะดำเนินการหลายอย่างอัตโนมัติ เช่น สร้างบัญชีผู้ใช้ กำหนดโควตาการลา ตั้งค่ากะการทำงาน ดูรายละเอียดที่ Auto Actions
Convention ID: พารามิเตอร์ที่ลงท้าย _id ต้องส่งเป็น Base64-encoded string ของ raw internal ID (เช่น base64_encode("20241225C3024958C974") → MjAyNDEyMjVDMzAyNDk1OEM5NzQ=). Response คืนค่า ID เป็น raw string — เมื่อนำไปใช้ใน request ถัดไปต้อง encode เป็น Base64 ก่อนส่ง
Endpoint
POST /api/v1/open-apis/employee/add-employeeRequest Body
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
employee_name | string | Yes | ชื่อพนักงาน | สมชาย |
employee_last_name | string | Yes | นามสกุลพนักงาน | ใจดี |
effective_dt | date | Yes | วันที่เริ่มงาน (YYYY-MM-DD) | 2026-01-15 |
company_id | string | Yes | ID ของบริษัท (Base64) | MjAyNDEyMjVDMzAyNDk1OEM5NzQ= |
branch_id | string | Yes | ID ของสาขา (Base64) | MjAyNDEyMjU0MzU4NjQ2QjM0RTQ= |
department_id | string | Yes | ID ของแผนก/ฝ่าย (Base64) | MjAyNDEyMjVGNTIwQUM4NDU2RUQ= |
position_id | string | Yes | ID ของตำแหน่งงาน (Base64) | MjAyNDEyMjU4N0MyMTZEQTJDMTk= |
Optional Parameters
ข้อมูลพื้นฐาน
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
employee_code | string | No | รหัสพนักงาน (auto-gen ถ้าไม่ระบุ) | EMP0001 |
employee_nickname | string | No | ชื่อเล่น | ชาย |
employee_name_en | string | No | ชื่อพนักงาน (อังกฤษ) | Somchai |
employee_last_name_en | string | No | นามสกุลพนักงาน (อังกฤษ) | Jaidee |
employee_nickname_en | string | No | ชื่อเล่น (อังกฤษ) | Chai |
employee_gender | string | No | เพศ (01=ชาย, 02=หญิง) | 01 |
employee_type_code | string | No | ประเภทพนักงาน (01-04) | 01 |
ข้อมูลส่วนตัว
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
id_no | string | No | เลขบัตรประชาชน (13 หลัก) | 1234567890123 |
mobilephone | string | No | เบอร์โทรศัพท์มือถือ | 0812345678 |
emailaddress | string | No | อีเมล | somchai@example.com |
address | string | No | ที่อยู่ตามทะเบียนบ้าน | 123 หมู่ 1 |
current_address | string | No | ที่อยู่ปัจจุบัน | 456 หมู่ 2 |
sso_no | string | No | เลขประกันสังคม | 1234567890123 |
ข้อมูลองค์กรเพิ่มเติม
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
division_id | string | No | ID ของส่วน/แผนก (Base64) | MjAyNDEyMjVBMUI2QjNENEU1RjY= |
section_id | string | No | ID ของงาน/ส่วนงาน (Base64) | MjAyNDEyMjVDNEQ1RTZGNzA4QTk= |
employee_type_group_id | string | No | ID กลุ่มประเภทพนักงาน (Base64) | MjAyNDEyMjU1NkQzMjkxM0Y1MUU= |
ข้อมูลธนาคาร
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
bank_id | string | No | ID ของธนาคาร (Base64) | MjAyNDEyMjVEOEU5RjBBMUIyQzM= |
bank_account_code | string | No | เลขบัญชีธนาคาร | 1234567890 |
ข้อมูลอื่นๆ
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
tax_start_month | string | No | เดือนเริ่มต้นคำนวณภาษี (YYYY-MM) | 2026-01 |
trial_range | number | No | ระยะเวลาทดลองงาน (วัน) | 90 |
Response Format
Success Response (HTTP 200)
{
"code": 200,
"message": "สำเร็จ",
"payload": {
"employee_id": "20260121FC89F3BB9120",
"employee_code": "EMP0001",
"employee_name": "สมชาย",
"employee_last_name": "ใจดี",
"employee_nickname": "ชาย",
"company_id": "20241225C3024958C974",
"branch_id": "202412254358646B34E4",
"department_id": "20241225F520AC8456ED",
"position_id": "2024122587C216DA2C19",
"effective_dt": "2026-01-15",
"user_name": "emp0001",
"created": "2026-01-12 14:30:00"
}
}Error Response (HTTP 400)
{
"code": 400,
"message": "Validation failed",
"errors": [
"Missing required parameter: 'employee_name'",
"Missing required parameter: 'effective_dt'",
"'emailaddress' must be a valid email address"
]
}Response Fields
| Field | Type | Description |
|---|---|---|
employee_id | string | ID ของพนักงานที่สร้าง |
employee_code | string | รหัสพนักงาน |
employee_name | string | ชื่อพนักงาน |
employee_last_name | string | นามสกุลพนักงาน |
employee_nickname | string | ชื่อเล่น |
company_id | string | ID ของบริษัท |
branch_id | string | ID ของสาขา |
department_id | string | ID ของแผนก |
position_id | string | ID ของตำแหน่ง |
effective_dt | date | วันที่เริ่มงาน |
user_name | string | ชื่อผู้ใช้งานในระบบ (สร้างอัตโนมัติ) |
created | datetime | วันเวลาที่สร้างข้อมูล |
Auto Actions
เมื่อสร้างพนักงานใหม่ ระบบจะดำเนินการต่อไปนี้อัตโนมัติ:
| Action | Description |
|---|---|
| Auto-gen Employee Code | สร้างรหัสพนักงานตามรูปแบบที่กำหนด (ถ้าไม่ระบุ) |
| Auto-gen OPT Code | สร้างรหัส OPT 6 หลัก |
| Create User Account | สร้างบัญชีผู้ใช้งานอัตโนมัติ |
| Assign to EMPLOYEE Usergroup | เพิ่มเข้ากลุ่มผู้ใช้งาน EMPLOYEE |
| Create Employee Quota | สร้างโควตาการลาประจำปี |
| Initialize Tax Categories | เริ่มต้นหมวดหมู่ภาษี |
| Set Default Work Cycle | กำหนดกะการทำงานเริ่มต้น (จันทร์-อาทิตย์) |
| Set Default Holiday | กำหนดวันหยุดเริ่มต้น (วันอาทิตย์) |
| Send Welcome Email | ส่งอีเมลต้อนรับ (ถ้าระบุอีเมล) |
| Create Activity Log | บันทึก Log การเพิ่มพนักงาน |
Default Password: รหัสผ่านเริ่มต้นจะเป็น:
- เลขบัตรประชาชน (ถ้าระบุ
id_no) 1234(ถ้าไม่ระบุid_no)
Code Examples
cURL
# เพิ่มพนักงานด้วยข้อมูลพื้นฐาน
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/employee/add-employee" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"employee_name": "สมชาย",
"employee_last_name": "ใจดี",
"employee_nickname": "ชาย",
"effective_dt": "2026-01-15",
"company_id": "C001",
"branch_id": "B001",
"department_id": "D001",
"position_id": "P001"
}'
# เพิ่มพนักงานพร้อมข้อมูลครบถ้วน
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/employee/add-employee" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"employee_name": "สมชาย",
"employee_last_name": "ใจดี",
"employee_name_en": "Somchai",
"employee_last_name_en": "Jaidee",
"employee_nickname": "ชาย",
"employee_code": "EMP0001",
"id_no": "1234567890123",
"mobilephone": "0812345678",
"emailaddress": "somchai@example.com",
"employee_gender": "01",
"employee_type_code": "01",
"effective_dt": "2026-01-15",
"company_id": "C001",
"branch_id": "B001",
"department_id": "D001",
"position_id": "P001",
"bank_id": "BANK001",
"bank_account_code": "1234567890"
}'Validation Rules
Required Fields
| Field | Rule |
|---|---|
employee_name | ต้องระบุและเป็น String |
employee_last_name | ต้องระบุและเป็น String |
effective_dt | ต้องระบุและเป็นรูปแบบ YYYY-MM-DD |
company_id | ต้องระบุ |
branch_id | ต้องระบุ |
department_id | ต้องระบุ |
position_id | ต้องระบุ |
Optional Fields
| Field | Rule |
|---|---|
emailaddress | ต้องเป็นรูปแบบอีเมลที่ถูกต้อง |
employee_gender | ต้องเป็น 01 (ชาย) หรือ 02 (หญิง) |
employee_type_code | ต้องเป็น 01, 02, 03, หรือ 04 |
effective_dt | ต้องเป็นวันที่ที่ถูกต้อง (ไม่ใช่ 2026-02-31) |
Data Sanitization
ระบบจะทำการ Sanitize ข้อมูลต่อไปนี้อัตโนมัติ:
- ลบเครื่องหมาย
-จากid_no,sso_no,mobilephone,bank_account_code
Notes
Important Notes:
- ข้อมูลที่ระบุต้องเป็นไปตามโครงสร้างองค์กรที่มีอยู่ (Company, Branch, Department, Position)
- รหัสพนักงานต้องไม่ซ้ำในระบบ
- เลขบัตรประชาชนต้องไม่ซ้ำในระบบ (ถ้าระบุ)
- อีเมลต้องไม่ซ้ำในระบบ (ถ้าระบุ)
Welcome Email
ถ้าระบุ emailaddress และเป็นอีเมลที่ถูกต้อง ระบบจะส่งอีเมลต้อนรับพร้อม:
- ชื่อผู้ใช้งาน (Username)
- รหัสผ่าน (Password)
- ลิงก์เข้าสู่ระบบ
Employee Types
| Code | Description |
|---|---|
01 | พนักงานรายเดือน (Monthly) |
02 | พนักงานรายวัน (Daily) |
03 | พนักงานพาร์ทไทม์ (Part-time) |
04 | พนักงานเหมาจ่าย (Contract) |
Related APIs
- Get Employee List - ดึงรายการพนักงานทั้งหมด
- Get Employee Info - ดึงข้อมูลพนักงานรายบุคคล
- Update Employee - แก้ไขข้อมูลพนักงาน
- Get Organization Structure - ดึงโครงสร้างองค์กร
- Get Position List - ดึงรายการตำแหน่ง
- Get Bank List - ดึงรายการธนาคาร