Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Import Time Attendance

นำเข้าข้อมูลบันทึกเวลาแบบกลุ่ม (Batch Import)

ใช้ API นี้เพื่อนำเข้าข้อมูลบันทึกเวลาเข้า-ออกจำนวนมากพร้อมกัน รองรับทั้งการเพิ่ม (ADD) และการลบ (DEL) ข้อมูลจะถูกส่งเข้า Queue เพื่อประมวลผลแบบ Asynchronous

Endpoint

POST /api/v1/open-apis/time-attendance/import

Request Parameters

ParameterTypeRequiredDescriptionExample
import_dataarrayYesรายการข้อมูลบันทึกเวลาที่ต้องการนำเข้า(ดูตัวอย่างด้านล่าง)
import_data[].statusstringYesการดำเนินการ: ADD หรือ DELADD
import_data[].employee_codestringYesรหัสพนักงานEMP001
import_data[].datestringYesวันที่บันทึก (YYYY-MM-DD)2025-11-15
import_data[].datetimestringYesวันเวลาบันทึก (YYYY-MM-DD HH:mm:ss)2025-11-15 08:30:00
import_data[].time_attendance_typestringNoประเภท: AUTO, IN, OUT (default: AUTO)IN

Time Attendance Types

TypeDescription
AUTOระบบตัดสินใจอัตโนมัติว่าเป็นเข้างานหรือออกงาน (default)
INกำหนดเป็นเวลาเข้างานโดยตรง
OUTกำหนดเป็นเวลาออกงานโดยตรง

Request Body Example

{ "import_data": [ { "status": "ADD", "employee_code": "EMP001", "date": "2025-11-15", "datetime": "2025-11-15 08:30:00", "time_attendance_type": "IN" }, { "status": "ADD", "employee_code": "EMP001", "date": "2025-11-15", "datetime": "2025-11-15 17:45:00", "time_attendance_type": "OUT" }, { "status": "ADD", "employee_code": "EMP002", "date": "2025-11-16", "datetime": "2025-11-16 09:00:00", "time_attendance_type": "AUTO" } ] }

Response Format

Success Response (HTTP 200)

เมื่อมีข้อมูลที่ถูกต้องอย่างน้อย 1 รายการ ระบบจะส่งข้อมูลที่ถูกต้องเข้า Queue และตอบกลับรายการที่ไม่ผ่าน validation

{ "code": 200, "message": "successfully en-queued", "payload": { "invalid_items": [ { "index": 1, "data": { "status": "ADD", "employee_code": "EMP999", "date": "2025-11-15", "datetime": "2025-11-15 17:45:00", "time_attendance_type": "OUT" }, "errors": ["employee_code 'EMP999' not found"] } ] } }

Error Response - Validation Failed (HTTP 400)

เมื่อโครงสร้างข้อมูลไม่ถูกต้อง (ไม่มี import_data, ไม่ใช่ array, หรือว่างเปล่า)

{ "code": 400, "message": "Validation failed", "errors": ["Missing 'import_data' field"] }

Error Response - No Valid Data (HTTP 400)

เมื่อไม่มีข้อมูลที่ผ่าน validation เลย

{ "code": 400, "message": "No valid data to import", "payload": { "invalid_items": [ { "index": 0, "data": { "status": "ADD", "employee_code": "EMP999", "date": "2025-11-15", "datetime": "2025-11-15 08:30:00" }, "errors": ["employee_code 'EMP999' not found"] } ] } }

Response Fields

FieldTypeDescription
codenumberรหัสสถานะ (200 = สำเร็จ, 400 = ไม่สำเร็จ)
messagestringข้อความตอบกลับ
payload.invalid_itemsarrayรายการข้อมูลที่ไม่ผ่าน validation
errorsarrayรายการข้อผิดพลาดของโครงสร้างข้อมูล (กรณี validation ไม่ผ่าน)

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/time-attendance/import" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "import_data": [ { "status": "ADD", "employee_code": "EMP001", "date": "2025-11-15", "datetime": "2025-11-15 08:30:00", "time_attendance_type": "IN" } ] }'

Validation Rules

ParameterValidationError Message
statusต้องเป็น ADD หรือ DELstatus must be 'ADD' or 'DEL'
employee_codeต้องมีอยู่ในระบบemployee_code 'XXX' not found
dateต้องอยู่ในรูปแบบ YYYY-MM-DDdate must be in format YYYY-MM-DD
datetimeต้องอยู่ในรูปแบบ YYYY-MM-DD HH:mm:ssdatetime must be in format YYYY-MM-DD HH:mm:ss
time_attendance_typeต้องเป็น AUTO, IN, หรือ OUTtime_attendance_type must be 'AUTO', 'IN', or 'OUT'

Business Rules

Partial Success:

  • ระบบจะประมวลผลเฉพาะรายการที่ถูกต้อง และแจ้งรายการที่ไม่ถูกต้องกลับมาใน response
  • รายการที่ผ่าน validation จะถูกส่งเข้า Queue ทันที
  • รายการที่ไม่ผ่าน validation จะถูกส่งกลับมาพร้อม error message

Asynchronous Processing

  • ข้อมูลจะถูกส่งเข้าระบบคิว (Queue) เพื่อประมวลผล
  • API จะตอบกลับทันทีหลังจาก validate และส่งข้อมูลเข้า Queue สำเร็จ
  • เหมาะสำหรับการนำเข้าข้อมูลจำนวนมาก

Notes

Status Values

StatusDescription
ADDเพิ่มข้อมูลบันทึกเวลาใหม่
DELลบข้อมูลบันทึกเวลาที่มีอยู่

Important Notes

  • วันที่ใน date และ datetime ควรตรงกัน
  • เวลาใน datetime ควรอยู่ในช่วงเวลาทำงานของพนักงาน
  • การลบ (DEL) ควรระบุข้อมูลให้ตรงกับที่มีอยู่ในระบบ
  • ข้อมูลที่ส่งเข้า Queue จะถูกประมวลผลตามลำดับ (FIFO)

Use Cases

  1. Migration - ย้ายข้อมูลบันทึกเวลาจากระบบเดิม
  2. Integration - รับข้อมูลจากเครื่องสแกนลายนิ้วมือ
  3. Correction - แก้ไขข้อมูลบันทึกเวลาจำนวนมาก
Last updated on