Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Get Leave Types

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

ใช้ API นี้เพื่อดึงรายการประเภทการลาสำหรับแสดงใน dropdown ใช้อ้างอิง code กับชื่อประเภท และตรวจสอบเงื่อนไขการลาก่อนยื่นคำขอ

Endpoint

GET /api/v1/open-apis/time-leave/get-types

สิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)

Request Parameters

ไม่มี parameter ที่ต้องส่ง

Response Format

Success Response (HTTP 200)

{ "code": 200, "message": "สำเร็จ", "payload": [ { "code": "absence-01", "name": "ลาป่วย", "name_en": "Sick Leave", "unit": "Daily", "status": "Y", "leave_conditions": { "time_limit_type": "B", "advance_leave_days": 0, "retroactive_leave_days": 2, "max_consecutive_days": 30, "work_day_only": "N", "disallow_over_quota": "Y", "gender": "A" } }, { "code": "absence-02", "name": "ลากิจ", "name_en": "Personal Leave", "unit": "Daily", "status": "Y", "leave_conditions": { "time_limit_type": "A", "advance_leave_days": 3, "retroactive_leave_days": 0, "max_consecutive_days": 5, "work_day_only": "Y", "disallow_over_quota": "Y", "gender": "A" } }, { "code": "absence-03", "name": "ลาคลอด", "name_en": "Maternity Leave", "unit": "Daily", "status": "Y", "leave_conditions": { "time_limit_type": "A", "advance_leave_days": 0, "retroactive_leave_days": 0, "max_consecutive_days": 98, "work_day_only": "N", "disallow_over_quota": "Y", "gender": "F" } }, { "code": "absence-07", "name": "ลาบวช", "name_en": "Ordination Leave", "unit": "Daily", "status": "N", "leave_conditions": { "time_limit_type": "A", "advance_leave_days": 15, "retroactive_leave_days": 0, "max_consecutive_days": 15, "work_day_only": "Y", "disallow_over_quota": "Y", "gender": "M" } } ] }

Response Fields

FieldTypeDescription
codenumberรหัสสถานะ (200 = สำเร็จ)
messagestringข้อความตอบกลับจากระบบ
payloadarrayรายการประเภทการลา เรียงตามลำดับการแสดงผลที่องค์กรตั้งค่าไว้
payload[].codestringรหัสประเภทการลา รูปแบบ absence-XX — ดู Leave Type Codes
payload[].namestringชื่อประเภทการลา (TH)
payload[].name_enstringชื่อประเภทการลา (EN)
payload[].unitstringหน่วยการลา — Daily (วัน) หรือ Hour (ชั่วโมง)
payload[].statusstringสถานะการเปิดใช้งาน (Y = เปิดใช้งาน, N = ปิดใช้งาน)
payload[].leave_conditionsobjectเงื่อนไขการลาของประเภทนี้ — ดู Leave Conditions

API นี้คืนประเภทการลาที่ปิดใช้งานอยู่ (status = N) มาด้วย หากต้องการเฉพาะประเภทที่ใช้ยื่นคำขอได้จริง ต้องกรอง status === 'Y' ที่ฝั่งผู้เรียกเอง

Leave Conditions

เงื่อนไขและข้อจำกัดของการลาแต่ละประเภท ใช้ตรวจสอบความถูกต้องของคำขอก่อนส่งไปยัง Submit Leave

FieldTypeDescription
time_limit_typestringประเภทข้อจำกัดเวลาที่ยื่นได้ — ดู Time Limit Type
advance_leave_daysnumberต้องยื่นล่วงหน้าอย่างน้อยกี่วัน (มีผลเมื่อ time_limit_type = A)
retroactive_leave_daysnumberยื่นย้อนหลังได้ไม่เกินกี่วัน (มีผลเมื่อ time_limit_type = B)
max_consecutive_daysnumberลาติดต่อกันได้สูงสุดกี่วันต่อครั้ง (0 = ไม่จำกัด)
work_day_onlystringY = นับเฉพาะวันทำงาน (ข้ามวันหยุดในช่วงลา), N = นับทุกวันรวมวันหยุด
disallow_over_quotastringY = ยื่นไม่ได้เมื่อโควตาไม่พอ, N = ยื่นได้แม้โควตาไม่พอ (ติดลบได้)
genderstringเพศที่ลาประเภทนี้ได้ — ดู Gender Codes

leave_conditions จะมีครบทั้ง 7 key เสมอในทุกรายการ ประเภทที่ยังไม่ได้ตั้งเงื่อนไขจะได้ค่าเริ่มต้น (ตัวเลขเป็น 0, gender เป็น A, time_limit_type เป็นค่าว่าง)

Time Limit Type

Valueความหมายฟิลด์ที่มีผล
Aจำกัดการลาล่วงหน้า — ต้องยื่นก่อนถึงวันลาตามจำนวนที่กำหนดadvance_leave_days
Bจำกัดการลาย้อนหลัง — ยื่นย้อนหลังได้ไม่เกินจำนวนที่กำหนดretroactive_leave_days
""ไม่จำกัดเวลาที่ยื่น

ทั้ง advance_leave_days และ retroactive_leave_days จะถูกส่งกลับมาเสมอ แต่มีผลบังคับใช้เฉพาะตัวที่ตรงกับ time_limit_type เท่านั้น อีกตัวหนึ่งให้มองข้ามไป

Gender Codes

Valueเพศที่ลาประเภทนี้ได้
Aทุกเพศ
Mเฉพาะเพศชาย
Fเฉพาะเพศหญิง
Nเฉพาะผู้ที่ไม่ระบุเพศ
MFเพศชายและเพศหญิง
MNผู้ที่ไม่ระบุเพศและเพศชาย
FNผู้ที่ไม่ระบุเพศและเพศหญิง

Leave Type Codes

code อยู่ในช่วง absence-01 ถึง absence-08 และ absence-10 ถึง absence-20 (ไม่มี absence-09 ระบบข้ามลำดับนี้)

ช่วงรหัสลักษณะการใช้งาน
absence-01absence-08ประเภทการลามาตรฐานที่ระบบเตรียมไว้ให้
absence-10absence-20ประเภทการลาเพิ่มเติมที่องค์กรกำหนดเอง

ชื่อประเภทการลาแต่ละรหัสตั้งค่าได้เองในแต่ละองค์กร เช่น absence-03 อาจเป็น “ลาพักร้อน” ในองค์กรหนึ่ง แต่เป็นชื่ออื่นในอีกองค์กรหนึ่ง จึงไม่ควร hardcode ชื่อไว้ในระบบของท่าน ให้ใช้ name / name_en ที่ API คืนมาแทน

Code Examples

curl -X GET "https://openapi.humansoft.co.th/api/v1/open-apis/time-leave/get-types" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY"

Error Handling

Error Response (HTTP 400)

{ "code": 400, "message": "ไม่สำเร็จ", "error": "รายละเอียดข้อผิดพลาด" }
FieldTypeDescription
codenumberรหัสสถานะ (400 = ไม่สำเร็จ)
messagestringข้อความแสดงสถานะ (ไม่สำเร็จ)
errorstringรายละเอียดข้อผิดพลาด

Notes

  • payload เรียงตามลำดับการแสดงผลที่องค์กรตั้งค่าไว้แล้ว จึงนำไปแสดงใน dropdown ได้ทันทีโดยไม่ต้องเรียงใหม่
  • ประเภทการลาที่ยังไม่ได้ตั้งชื่อจะไม่ถูกส่งกลับมา — จำนวนรายการที่ได้จึงต่างกันไปตามการตั้งค่าของแต่ละองค์กร
  • leave_conditions เป็นเงื่อนไขที่องค์กรตั้งไว้ ใช้ตรวจสอบคำขอฝั่งผู้เรียกก่อนยื่นได้ เพื่อลดการยื่นคำขอที่จะถูกปฏิเสธ
  • code ที่ได้จาก API นี้ส่งต่อเป็นค่า absence_flag_lv ใน Submit Leave และ Get Leave List หรือเป็นค่า type ใน Import Leave ได้ทันที โดยรองรับทั้งรูปแบบ absence-01 และ 01
  • แนะนำให้ cache ข้อมูลนี้ไว้ เพราะประเภทการลาและเงื่อนไขไม่ได้เปลี่ยนบ่อย
  • Submit Leave - ยื่นคำขอลาใหม่โดยใช้ code เป็น absence_flag_lv
  • Get Leave List - ดึงรายการคำขอลา กรองตามประเภทได้
  • Import Leave - นำเข้าข้อมูลการลาแบบหลายรายการ
  • Get Leave Custom Fields - ดึงฟิลด์เพิ่มเติมของเอกสารการลา
Last updated on