Skip to Content
🚀 Welcome to Humansoft Open API Documentation

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

ParameterTypeRequiredDescriptionExample
employee_loan_idstringYesรหัสเงินกู้ (Base64)MjAyNjA3MDRBMUIyQzNENEU1RjY=

Optional Parameters

ParameterTypeRequiredDescriptionExample
employee_loan_status_remarkstringNoหมายเหตุการปิดเงินกู้ ค่าเริ่มต้น: ''พนักงานขอปิดเงินกู้
authorize_idstringNoID ผู้ทำรายการ (Base64) — ถ้าส่งมา ต้องเป็น user ที่มีอยู่จริง มิฉะนั้นได้ 422MjAyNjA3MDRVU0VSMDAwMDAx

หา 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

FieldTypeNullableDescription
employee_loan_idstringNoรหัสเงินกู้ (Plain text)
employee_idstringNoรหัสพนักงานเจ้าของเงินกู้ (Plain text)
salary_type_idstringNoประเภทเงินหักในสลิป (Base64)
flag_namestringNoชื่อประเภทเงินหัก (ภาษาไทย)
flag_name_enstringNoชื่อประเภทเงินหัก (ภาษาอังกฤษ)
employee_loan_dtstringNoวันที่ทำรายการเงินกู้ (YYYY-MM-DD)
employee_loan_startstringNoเดือนที่เริ่มหัก (YYYY-MM)
employee_loan_amtfloatNoยอดกู้สุทธิ
employee_loan_periodintNoจำนวนงวดทั้งหมด
employee_loan_interestfloatNoอัตราดอกเบี้ย
employee_loan_interest_typestringNoประเภทดอกเบี้ย (0 = ต้นลดดอกลด, 1 = คงที่, 2 = ระบุดอกเบี้ยรวม)
employee_loan_amt_principlefloatNoยอดเงินต้นรวม
employee_loan_amt_interestfloatNoยอดดอกเบี้ยรวม
employee_loan_amt_periodfloatNoยอดหักต่องวด
employee_loan_descstringYesรายละเอียดเงินกู้
employee_loan_statusstringNoสถานะหลังปิด — เป็น "C" (Cancel) เสมอ
employee_loan_status_updatestringNoวันเวลาที่เปลี่ยนสถานะล่าสุด (YYYY-MM-DD HH:mm:ss)
employee_loan_status_remarkstringYesหมายเหตุการปิดเงินกู้
periodarrayNoตารางงวดผ่อนทั้งหมด
period[].employee_loan_period_idstringNoรหัสงวดผ่อน (Plain text)
period[].employee_loan_period_seqintNoลำดับงวด
period[].employee_loan_period_monthstringNoเดือนที่หักของงวด (YYYY-MM)
period[].employee_loan_period_principlefloatNoเงินต้นของงวด
period[].employee_loan_period_interestfloatNoดอกเบี้ยของงวด
period[].employee_loan_period_amtfloatNoยอดชำระของงวด
period[].employee_loan_period_statusstringNoสถานะงวด (N = ยังไม่ชำระ (Pending), Y = ชำระแล้ว (Paid))

salary_type_id ใน response ถูกส่งกลับมาเป็น Base64 สามารถนำไปใช้เป็นค่า salary_type_id ใน request ของ API อื่นในโมดูลนี้ได้โดยตรงโดยไม่ต้องเข้ารหัสซ้ำ

Code Examples

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

ParameterValidationError Message
employee_loan_idต้องระบุและเข้ารหัส Base64'employee_loan_id' is required (HTTP 422)
employee_loan_idต้องมีอยู่ในระบบไม่พบข้อมูลเงินกู้ (HTTP 404)
authorize_idoptional — หากส่งมาต้องเป็น 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
  • Resume Employee Loan - เปิดเงินกู้ที่ถูกปิดไว้ให้กลับมาหักเงินเดือนต่อ
  • Get Loan Detail - ดึงรายละเอียดและตรวจสอบสถานะเงินกู้
  • Get Loan List - ดึงรายการเงินกู้
  • Remove Employee Loan - ลบเงินกู้ (ไม่สามารถกู้คืนได้)
Last updated on