Close Employee Loan
ปิดเงินกู้ของพนักงานเพื่อหยุดการหักเงินเดือนในงวดถัดไป
ใช้ API นี้เพื่อปิดเงินกู้ที่กำลังผ่อนอยู่ (สถานะ N = Active) ระบบจะเปลี่ยนสถานะเป็น C (Cancel) และหยุดการหักเงินเดือนในงวดถัดไป งวดที่ชำระไปแล้วจะไม่เปลี่ยนแปลง และสามารถกลับมาเปิดใช้งานเงินกู้อีกครั้งได้ด้วย Resume Employee Loan
Endpoint
POST /api/v1/open-apis/employee-loans/closeสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)
Request Parameters
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
employee_loan_id | string | Yes | รหัสเงินกู้ (Base64) | MjAyNjA3MDRBMUIyQzNENEU1RjY= |
Optional Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
employee_loan_status_remark | string | No | หมายเหตุการปิดเงินกู้ ค่าเริ่มต้น: '' | พนักงานขอปิดเงินกู้ |
authorize_id | string | No | ID ผู้ทำรายการ (Base64) — ถ้าส่งมา ต้องเป็น user ที่มีอยู่จริง มิฉะนั้นได้ 422 | MjAyNjA3MDRVU0VSMDAwMDAx |
หา authorize_id ได้อย่างไร: รับค่าจาก Get Employee Data Filter โดยใช้ path_action=get-user พร้อม employee_code ของผู้ทำรายการ — ใช้ค่า user_id ที่ได้กลับมาเป็น authorize_id
Request Body Example
{
"employee_loan_id": "MjAyNjA3MDRBMUIyQzNENEU1RjY=",
"employee_loan_status_remark": "พนักงานขอปิดเงินกู้",
"authorize_id": "MjAyNjA3MDRVU0VSMDAwMDAx"
}Response Format
Success Response (HTTP 200)
payload คือ ระเบียนเงินกู้แบบ flat (ฟิลด์ของเงินกู้ + flag_name / flag_name_en = ชื่อประเภทเงินหักในสลิป TH/EN) พร้อม period[] ตารางงวดผ่อนทั้งหมด สถานะหลังปิดจะอยู่ในฟิลด์ employee_loan_status ซึ่งเป็น "C" เสมอ
{
"code": 200,
"message": "ปิดบัญชีเงินกู้สำเร็จ",
"payload": {
"employee_loan_id": "20260704A1B2C3D4E5F6",
"employee_id": "20260704112233AABBCC",
"salary_type_id": "MjAyNjAzMTY2RTZCQzg3NjQ4MDI=",
"flag_name": "เงินกู้ยืมพนักงาน",
"flag_name_en": "Employee Loan",
"employee_loan_dt": "2026-07-04",
"employee_loan_start": "2026-07",
"employee_loan_amt": 9900,
"employee_loan_period": 10,
"employee_loan_interest": 0,
"employee_loan_interest_type": "0",
"employee_loan_amt_principle": 9900,
"employee_loan_amt_interest": 0,
"employee_loan_amt_period": 990,
"employee_loan_desc": "เงินกู้ยืมพนักงาน",
"employee_loan_status": "C",
"employee_loan_status_update": "2026-07-05 11:00:00",
"employee_loan_status_remark": "พนักงานขอปิดเงินกู้",
"period": [
{
"employee_loan_period_id": "20260704AAAA11112222",
"employee_loan_period_seq": 1,
"employee_loan_period_month": "2026-07",
"employee_loan_period_principle": 990,
"employee_loan_period_interest": 0,
"employee_loan_period_amt": 990,
"employee_loan_period_status": "N"
},
{
"employee_loan_period_id": "20260804BBBB33334444",
"employee_loan_period_seq": 2,
"employee_loan_period_month": "2026-08",
"employee_loan_period_principle": 990,
"employee_loan_period_interest": 0,
"employee_loan_period_amt": 990,
"employee_loan_period_status": "N"
}
]
}
}Error Response - Forbidden (HTTP 403)
{
"code": 403,
"message": "Forbidden: Insufficient permissions",
"error": {
"type": "PERMISSION_DENIED"
}
}สาเหตุ: API Key ไม่มีสิทธิ์ document:manage
Error Response - Validation Failed (HTTP 422)
{
"code": 422,
"message": "การตรวจสอบข้อมูลล้มเหลว",
"errors": [
"'employee_loan_id' is required"
]
}สาเหตุ: ไม่ได้ส่ง employee_loan_id, หรือ authorize_id ที่ส่งมาไม่ถูกต้อง/ไม่มีในระบบ
Error Response - Employee Loan Not Found (HTTP 404)
{
"code": 404,
"message": "ไม่พบข้อมูลเงินกู้"
}สาเหตุ: employee_loan_id ที่ส่งมาไม่มีอยู่ในระบบ
Error Response - Invalid Status (HTTP 400)
ปิดบัญชีได้เฉพาะเงินกู้ที่มีสถานะ N (Active) เท่านั้น หากสถานะปัจจุบันไม่ใช่ N จะได้รับ HTTP 400 โดยข้อความจะต่างกันตามสถานะปัจจุบันของเงินกู้:
กรณีที่ 1 — เงินกู้ถูกปิดไปแล้ว (สถานะ C):
{
"code": 400,
"message": "เงินกู้มีสถานะ C แล้ว ไม่สามารถปิดซ้ำได้"
}สาเหตุ: เงินกู้มีสถานะ C (Cancel) อยู่แล้ว จึงไม่สามารถปิดซ้ำได้
กรณีที่ 2 — เงินกู้ชำระครบแล้ว (สถานะ Y):
{
"code": 400,
"message": "ปิดบัญชีได้เฉพาะเงินกู้ที่มีสถานะ N (Active) เท่านั้น"
}สาเหตุ: เงินกู้มีสถานะ Y (Finished) จึงไม่สามารถปิดบัญชีได้
Response Fields
| Field | Type | Nullable | Description |
|---|---|---|---|
employee_loan_id | string | No | รหัสเงินกู้ (Plain text) |
employee_id | string | No | รหัสพนักงานเจ้าของเงินกู้ (Plain text) |
salary_type_id | string | No | ประเภทเงินหักในสลิป (Base64) |
flag_name | string | No | ชื่อประเภทเงินหัก (ภาษาไทย) |
flag_name_en | string | No | ชื่อประเภทเงินหัก (ภาษาอังกฤษ) |
employee_loan_dt | string | No | วันที่ทำรายการเงินกู้ (YYYY-MM-DD) |
employee_loan_start | string | No | เดือนที่เริ่มหัก (YYYY-MM) |
employee_loan_amt | float | No | ยอดกู้สุทธิ |
employee_loan_period | int | No | จำนวนงวดทั้งหมด |
employee_loan_interest | float | No | อัตราดอกเบี้ย |
employee_loan_interest_type | string | No | ประเภทดอกเบี้ย (0 = ต้นลดดอกลด, 1 = คงที่, 2 = ระบุดอกเบี้ยรวม) |
employee_loan_amt_principle | float | No | ยอดเงินต้นรวม |
employee_loan_amt_interest | float | No | ยอดดอกเบี้ยรวม |
employee_loan_amt_period | float | No | ยอดหักต่องวด |
employee_loan_desc | string | Yes | รายละเอียดเงินกู้ |
employee_loan_status | string | No | สถานะหลังปิด — เป็น "C" (Cancel) เสมอ |
employee_loan_status_update | string | No | วันเวลาที่เปลี่ยนสถานะล่าสุด (YYYY-MM-DD HH:mm:ss) |
employee_loan_status_remark | string | Yes | หมายเหตุการปิดเงินกู้ |
period | array | No | ตารางงวดผ่อนทั้งหมด |
period[].employee_loan_period_id | string | No | รหัสงวดผ่อน (Plain text) |
period[].employee_loan_period_seq | int | No | ลำดับงวด |
period[].employee_loan_period_month | string | No | เดือนที่หักของงวด (YYYY-MM) |
period[].employee_loan_period_principle | float | No | เงินต้นของงวด |
period[].employee_loan_period_interest | float | No | ดอกเบี้ยของงวด |
period[].employee_loan_period_amt | float | No | ยอดชำระของงวด |
period[].employee_loan_period_status | string | No | สถานะงวด (N = ยังไม่ชำระ (Pending), Y = ชำระแล้ว (Paid)) |
salary_type_id ใน response ถูกส่งกลับมาเป็น Base64 สามารถนำไปใช้เป็นค่า salary_type_id ใน request ของ API อื่นในโมดูลนี้ได้โดยตรงโดยไม่ต้องเข้ารหัสซ้ำ
Code Examples
cURL
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/employee-loans/close" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"employee_loan_id": "MjAyNjA3MDRBMUIyQzNENEU1RjY=",
"employee_loan_status_remark": "พนักงานขอปิดเงินกู้",
"authorize_id": "MjAyNjA3MDRVU0VSMDAwMDAx"
}'Validation Rules
| Parameter | Validation | Error Message |
|---|---|---|
employee_loan_id | ต้องระบุและเข้ารหัส Base64 | 'employee_loan_id' is required (HTTP 422) |
employee_loan_id | ต้องมีอยู่ในระบบ | ไม่พบข้อมูลเงินกู้ (HTTP 404) |
authorize_id | optional — หากส่งมาต้องเป็น user ที่มีอยู่จริง | 'authorize_id' is invalid or does not exist (HTTP 422) |
| สถานะปัจจุบัน | ต้องเป็น N (Active) เท่านั้น | เงินกู้มีสถานะ C แล้ว ไม่สามารถปิดซ้ำได้ / ปิดบัญชีได้เฉพาะเงินกู้ที่มีสถานะ N (Active) เท่านั้น (HTTP 400) |
Business Rules
ข้อกำหนดการปิดเงินกู้:
- ปิดบัญชีได้เฉพาะเงินกู้ที่มีสถานะ
N(Active) เท่านั้น - หากเงินกู้มีสถานะ
C(Cancel) อยู่แล้ว จะไม่สามารถปิดซ้ำได้ (HTTP 400) - หากเงินกู้มีสถานะ
Y(Finished / ชำระครบแล้ว) จะไม่สามารถปิดบัญชีได้ (HTTP 400) - หลังปิดสำเร็จ
employee_loan_statusจะเป็น"C"และระบบจะหยุดหักเงินเดือนในงวดถัดไป - งวดที่ชำระไปแล้ว (สถานะงวด
Y) จะไม่เปลี่ยนแปลง - หากต้องการกลับมาหักเงินเดือนต่อ ให้ใช้ Resume Employee Loan เพื่อเปลี่ยนสถานะกลับเป็น
N
Related APIs
- Resume Employee Loan - เปิดเงินกู้ที่ถูกปิดไว้ให้กลับมาหักเงินเดือนต่อ
- Get Loan Detail - ดึงรายละเอียดและตรวจสอบสถานะเงินกู้
- Get Loan List - ดึงรายการเงินกู้
- Remove Employee Loan - ลบเงินกู้ (ไม่สามารถกู้คืนได้)