Update Warning Letter
API สำหรับแก้ไขจดหมายเตือนที่มีอยู่ ได้แก่ ระดับใบเตือน วันที่ และรายละเอียด รวมถึงแนบไฟล์เพิ่ม โดยส่งมาเฉพาะข้อมูลที่ต้องการแก้ — ข้อมูลที่ไม่ได้ส่งจะคงค่าเดิม แก้ไขได้เฉพาะจดหมายเตือนที่พนักงานยังไม่รับทราบ (approve_flag = 01)
Endpoint
POST /api/v1/open-apis/warning-letter/updateสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)
Request Body
ส่งแบบ multipart/form-data (ใช้ได้ทั้งกรณีแนบและไม่แนบไฟล์)
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
warning_letter_id | string | Yes | ID ของจดหมายเตือนที่ต้องการแก้ไข (Base64) | "MjAyNTExMjdENDU3M0M0MjE2Mzk=" |
Optional Parameters
ต้องส่งอย่างน้อย 1 อย่าง: warning_letter_flag_lv, warning_letter_dt, warning_letter_desc หรือไฟล์แนบ
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
warning_letter_flag_lv | string | No | ระดับใบเตือนใหม่ (ดู Warning Letter Levels) | "05" |
warning_letter_dt | string | No | วันที่ใหม่ รูปแบบ YYYY-MM-DD — ต้องไม่เป็นวันในอนาคต (เวลาประเทศไทย) | "2026-10-16" |
warning_letter_desc | string | No | รายละเอียดใหม่ ไม่เกิน 5,000 ตัวอักษร — ส่งค่าว่าง "" (หรือช่องว่างล้วน) เพื่อล้างรายละเอียด | "แนบบันทึกข้อความเพิ่มเติม" |
employee_code | string | No | ใช้ยืนยันว่าเป็นจดหมายเตือนของพนักงานคนนี้เท่านั้น ต้องตรงกับพนักงานเดิม (เปลี่ยนพนักงานไม่ได้) | "EMP001" |
_image[] | file | No | รูปภาพ JPG/PNG ที่ต้องการแนบเพิ่ม | [Binary Data] |
_doc[] | file | No | เอกสาร PDF ที่ต้องการแนบเพิ่ม | [Binary Data] |
lang | string | No | ภาษาของ message: TH (ค่าเริ่มต้น) หรือ EN | "EN" |
- ส่ง
warning_letter_flag_lvหรือwarning_letter_dtเป็นค่าว่างจะถือว่าไม่ได้ส่ง (คงค่าเดิม) - ไฟล์ที่แนบจะถูก เพิ่ม ต่อจากไฟล์เดิม ไม่ได้แทนที่ — หากต้องการลบไฟล์เดิมให้ใช้ Delete File
- ห้ามส่งข้อมูลที่ระบบกำหนดเอง เช่น
employee_id,approve_flag,created,last_upd— หากส่งมาจะได้ HTTP422พร้อมข้อความ'<field>' is not allowed
File Attachment Rules
ใช้เงื่อนไขเดียวกับ Submit โดยจำนวนไฟล์และขนาดรวม นับรวมไฟล์ที่แนบอยู่เดิม ด้วย — รูปภาพรวมกันไม่เกิน 2,048 KB และไม่เกิน 10 ไฟล์ เอกสารรวมกันไม่เกิน 2,048 KB และไม่เกิน 10 ไฟล์ ต่อจดหมายเตือน 1 ใบ
Response Format
Success Response
คืนข้อมูลของจดหมายเตือนหลังแก้ไข ในรูปแบบเดียวกับ Get Detail
{
"code": 200,
"message": "แก้ไขจดหมายเตือนสำเร็จ",
"payload": {
"warning_letter_id": "20251127D4573C421639",
"employee_code": "EMP001",
"employee_name": "สมชาย ใจดี",
"employee_name_en": "Somchai Jaidee",
"warning_letter_dt": "2026-10-15",
"warning_letter_flag_lv": "05",
"warning_letter_flag_name": "หนังสือตักเตือนเป็นลายลักษณ์อักษร",
"warning_letter_flag_name_en": "Written Warning Letter",
"warning_letter_desc": "แนบบันทึกข้อความเพิ่มเติม",
"approve_flag": "01",
"approve_flag_name": "แจ้งพนักงานแล้ว",
"approve_flag_name_en": "Informed",
"created": "2026-10-15 09:12:44",
"last_upd": "2026-10-16 14:20:05",
"images": [],
"files": [
{
"warning_letter_file_id": "20251127F6E5D4C3B2A1",
"file_name": "memo.pdf",
"mime_type": "application/pdf",
"file_size": 48211,
"url": "https://cdn.humansoft.co.th/.../file/9b8c7d6e5f4a3b2c.pdf"
}
]
}
}อาจมี warnings เมื่อบันทึกสำเร็จแต่งานต่อเนื่องบางส่วนไม่สำเร็จ — ข้อความที่เป็นไปได้เหมือน Submit (ไม่ต้องส่งคำขอซ้ำ)
Error Response
ข้อมูลไม่ผ่านการตรวจสอบ (422)
{
"code": 422,
"message": "การตรวจสอบข้อมูลล้มเหลว",
"errors": [
"nothing to update: send warning_letter_flag_lv, warning_letter_dt, warning_letter_desc or a file"
]
}ข้อความเรื่องรูปแบบข้อมูลและไฟล์แนบใช้ข้อความเดียวกับ Submit (ยกเว้น 'employee_code' not found และ is required ของ warning_letter_flag_lv, warning_letter_dt, employee_code ซึ่งไม่เกิดใน API นี้) และมีข้อความเพิ่มเติมดังนี้
ลำดับการตรวจ: รูปแบบข้อมูล (422) → มีจดหมายเตือนอยู่จริง (404) → พนักงานยังไม่รับทราบ (409) → employee_code ตรงกับเจ้าของใบ (422) → ไฟล์แนบ (422) → มีข้อมูลที่จะแก้ (422) → ข้อมูลซ้ำ (409) — ระบบจะหยุดที่ขั้นแรกที่ไม่ผ่าน ข้อผิดพลาดเรื่องรูปแบบข้อมูลและเรื่องไฟล์แนบจึงไม่ถูกรวมมาในคำตอบเดียวกัน
ข้อความใน errors | สาเหตุ |
|---|---|
'warning_letter_id' is required | ไม่ได้ส่ง warning_letter_id |
'warning_letter_id' is invalid (expected the base64 of an alphanumeric id) | warning_letter_id ไม่ใช่ Base64 ของ ID ที่ถูกต้อง |
'employee_code' cannot be changed | employee_code ไม่ตรงกับพนักงานของจดหมายเตือนนี้ |
nothing to update: send warning_letter_flag_lv, warning_letter_dt, warning_letter_desc or a file | ส่งมาแค่ warning_letter_id โดยไม่มีข้อมูลที่จะแก้หรือไฟล์แนบ |
ไม่พบจดหมายเตือน (404)
{
"code": 404,
"message": "ไม่พบจดหมายเตือน"
}พนักงานรับทราบแล้ว (409)
{
"code": 409,
"message": "พนักงานรับทราบจดหมายเตือนนี้แล้ว ไม่สามารถแก้ไขหรือลบได้"
}จดหมายเตือนซ้ำ (409) — ข้อมูลหลังแก้ไขซ้ำกับจดหมายเตือนใบอื่นของพนักงานคนเดียวกัน (วันที่และระดับเดียวกัน)
{
"code": 409,
"message": "มีจดหมายเตือนของพนักงาน วันที่ และระดับเดียวกันอยู่แล้ว"
}| HTTP Status | Description |
|---|---|
400 | เกิดข้อผิดพลาดระหว่างบันทึก (message: กระบวนการล้มเหลว) — ระบบยกเลิกการแก้ไขทั้งหมด รวมถึงไฟล์ที่อัปโหลดในคำขอนั้น |
403 | API Key ไม่มีสิทธิ์ document:manage |
404 | ไม่พบจดหมายเตือน — ID ไม่มีอยู่ ถูกลบไปแล้ว หรือเป็นของบริษัทอื่น |
409 | พนักงานรับทราบจดหมายเตือนแล้ว หรือข้อมูลหลังแก้ไขซ้ำกับใบอื่น |
422 | ข้อมูลหรือไฟล์แนบไม่ผ่านการตรวจสอบ |
500 | เกิดข้อผิดพลาดที่เซิร์ฟเวอร์ (message: เกิดข้อผิดพลาดที่เซิร์ฟเวอร์) — ระบบยกเลิกการแก้ไขทั้งหมด |
Code Examples
cURL
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/warning-letter/update" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-F "warning_letter_id=MjAyNTExMjdENDU3M0M0MjE2Mzk=" \
-F "warning_letter_flag_lv=05" \
-F "warning_letter_desc=แนบบันทึกข้อความเพิ่มเติม" \
-F "_doc[]=@/path/to/memo.pdf"Notes
- ทุกครั้งที่แก้ไขสำเร็จ (รวมถึงการแนบไฟล์เพิ่มอย่างเดียว) ระบบจะแจ้งเตือนพนักงานอีกครั้ง และอัปเดตการ์ดจดหมายเตือนเดิมใน News Feed เป็นข้อมูลล่าสุด
- การส่งคำขอเดิมซ้ำจะทำให้พนักงานได้รับแจ้งเตือนซ้ำ และไฟล์ที่แนบจะถูกเพิ่มซ้ำ — หากไม่แน่ใจว่าคำขอก่อนหน้าสำเร็จหรือไม่ ให้ตรวจด้วย Get Detail ก่อนส่งใหม่
- การตรวจข้อมูลซ้ำใช้ค่าหลังแก้ไข (ข้อมูลที่ไม่ได้ส่งใช้ค่าเดิม) และไม่นับจดหมายเตือนใบที่กำลังแก้
- หากพนักงานกดรับทราบระหว่างที่กำลังแก้ไข ระบบจะไม่บันทึกการแก้ไขและคืน HTTP
409 - เปลี่ยนพนักงานของจดหมายเตือนไม่ได้ — ให้ลบผ่าน Delete แล้วสร้างใหม่ผ่าน Submit
warning_letter_id ต้องส่งเป็น Base64-encoded — ค่าใน Response เป็น raw ID
Related APIs
- Get Detail - ดูข้อมูลปัจจุบันก่อนแก้ไข
- Delete File - ลบไฟล์แนบที่ไม่ต้องการ
- Delete - ลบจดหมายเตือนทั้งใบ