Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Approve Petty Cash

API สำหรับดำเนินการกับเอกสารเบิกเงินสดย่อยในขั้นตอนการอนุมัติ ผู้อนุมัติสามารถเลือกที่จะ “อนุมัติ” หรือ “ไม่อนุมัติ” พร้อมระบุเหตุผลได้ เมื่อสถานะเปลี่ยน ระบบอาจส่งแจ้งเตือนถึงเจ้าของเอกสาร ผู้อนุมัติลำดับถัดไป หรือฝ่าย HR ตามการตั้งค่าการแจ้งเตือนเอกสารขององค์กร

Endpoint

POST /api/v1/open-apis/petty-cash/approve

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

Request Body

Required Parameters

ParameterTypeRequiredDescriptionExample
petty_cash_idstringYesรหัสเอกสารที่ต้องการดำเนินการ (Base64)"MjAyNTExMjdENDU3M0M0MjE2Mzk="
petty_cash_type_lvstringYesสถานะใหม่ที่ต้องการเปลี่ยน (ดู Option Values) — หากส่ง 02 ระบบจะกำหนดสถานะจริงตามสายอนุมัติ (ดู Notes)"02"

Optional Parameters

ParameterTypeRequiredDescriptionExample
authorize_idstringNoID ของผู้ใช้ที่ทำรายการ (Base64) — แนะนำให้ส่ง ระบบใช้ผู้ใช้นี้ตรวจสิทธิ์และลำดับในสายอนุมัติ หากไม่ส่ง ผู้ทำรายการล่าสุดของเอกสารจะถูกบันทึกเป็นค่าว่าง"MjAyNTAzMDM1MUIwQTJDQ0JEOUM="
authorize_linestringNoส่งค่าที่ไม่ว่างและไม่ใช่ "0" (เช่น "Y") เพื่อให้ระบบพิจารณาผู้ทำรายการในฐานะผู้อนุมัติตามสายอนุมัติของพนักงาน ไม่นับสิทธิ์ฝ่ายบุคคล — มีผลกับการกำหนดสถานะเมื่อส่ง 02 และการรับค่า petty_cash_in_calculation หากไม่ต้องการให้ละ parameter นี้ (ค่า "false" แบบข้อความถือว่าเปิดใช้)"Y"
approve_dtstringNoวันที่ดำเนินการ (YYYY-MM-DD) — ค่าเริ่มต้นคือวันที่ทำรายการ และเมื่อเอกสารเปลี่ยนเป็นสถานะ 02 ระบบใช้วันที่ทำรายการเสมอ"2026-03-25"
approve_remarkstringNoหมายเหตุหรือเหตุผลการพิจารณา — หากไม่ส่ง ระบบคงหมายเหตุเดิมของเอกสารไว้ (ส่ง "" หากต้องการล้างหมายเหตุ)"อนุมัติให้ตามระเบียบ"
petty_cash_in_calculationstringNoวิธีจ่ายเงิน: "Y" = จ่ายในเงินเดือน (ต้องส่ง req_dt และสถานะเอกสารจะเป็น 12), "N" = จ่ายนอกเงินเดือน — ต้องส่งเป็นข้อความ ค่า boolean true จะไม่มีผล ระบบรับค่านี้เฉพาะเมื่อผู้ทำรายการเป็นผู้อนุมัติขั้นสุดท้าย (ดู Notes)"Y"
req_dtstringNoวันที่ใช้หางวดเงินเดือน (YYYY-MM-DD) — ต้องส่ง เมื่อ petty_cash_in_calculation เป็น "Y" ค่านี้จะถูกบันทึกเป็นวันที่ยื่นคำขอของเอกสารด้วย จึงควรส่งวันที่ยื่นคำขอเดิมของเอกสาร"2026-03-25"
langstringNoภาษาของข้อความตอบกลับ: TH (ค่าเริ่มต้น) หรือ EN"EN"

Option Values: petty_cash_type_lv

ค่าความหมาย (EN)ความหมาย (TH)
01Pendingรออนุมัติ
02Withdrawingกำลังตั้งเบิก (อนุมัติขั้นสุดท้ายแล้ว)
03Not Approvedไม่อนุมัติ
04Withdrewตั้งเบิกแล้ว
05Receivedได้รับเงินแล้ว
06Recheckตรวจสอบอีกครั้ง
07Manager Approvedหัวหน้าอนุมัติ (ขั้นที่ 1)
08Manager Approvedหัวหน้าอนุมัติ (ขั้นที่ 2)
09Manager Approvedหัวหน้าอนุมัติ (ขั้นที่ 3)
10Manager Approvedหัวหน้าอนุมัติ (ขั้นที่ 4)
11Manager Approvedหัวหน้าอนุมัติ (หัวหน้าลำดับสุดท้ายในสายอนุมัติ รอฝ่ายบุคคลอนุมัติ)
12Approvedอนุมัติแล้ว — สถานะเมื่อส่ง petty_cash_in_calculation เป็น "Y" (จ่ายในเงินเดือน)

Response Format

Success Response

{ "code": 200, "message": "อนุมัติเอกสารเงินสดย่อยสำเร็จ", "payload": { "petty_cash_id": "20251127D4573C421639", "petty_cash_type_lv": "02", "approve_dt": "2026-03-25", "send_doc_dt": null, "receive_dt": null, "approve_id": "2025030351B0A2CCBD9C", "approve_flag": "02" } }

ข้อความ message ขึ้นกับสถานะของเอกสารหลังดำเนินการ:

petty_cash_type_lvmessage (TH)
02อนุมัติเอกสารเงินสดย่อยสำเร็จ
03ปฏิเสธสำเร็จ
04ส่งเอกสารเงินสดย่อยสำเร็จ
05รับเอกสารเงินสดย่อยสำเร็จ
12บันทึกเอกสารเข้างวดเงินเดือนสำเร็จ
สถานะอื่นอัปเดตสถานะเอกสารเงินสดย่อยสำเร็จ

Response Fields

FieldTypeNullableDescription
petty_cash_idstringNoรหัสเอกสาร
petty_cash_type_lvstringNoสถานะของเอกสารหลังดำเนินการ (อาจต่างจากค่าที่ส่ง ดู Notes)
approve_dtstringNoวันที่อนุมัติ (YYYY-MM-DD)
send_doc_dtstringYesวันที่ตั้งเบิก — มีค่าเฉพาะเมื่อเอกสารที่อยู่ในสถานะ 02 ถูกอนุมัติเป็น 02 อีกครั้งจนเปลี่ยนเป็น 04 (การส่ง 04 โดยตรงไม่บันทึกวันที่นี้) นอกนั้นเป็น null
receive_dtstringYesวันที่ได้รับเงินที่บันทึกในเอกสาร — API นี้ไม่ได้บันทึกค่านี้ แม้ส่งสถานะ 05 (บันทึกได้ผ่าน Update Status เฉพาะเอกสารสถานะ 12 ที่เปลี่ยนเป็น 05)
approve_idstringNoID ของผู้ใช้ที่ทำรายการ (ค่าจาก authorize_id) — เป็นค่าว่างหากไม่ได้ส่ง authorize_id
approve_flagstringNoผลการอนุมัติตามสายอนุมัติ — ปกติเท่ากับ petty_cash_type_lv ยกเว้นกรณีจ่ายในเงินเดือนที่ petty_cash_type_lv เป็น 12

Error Response

ข้อมูลไม่ผ่านการตรวจสอบ (422)

{ "code": 422, "message": "การตรวจสอบข้อมูลล้มเหลว", "errors": ["'petty_cash_type_lv' is required"] }
ข้อความใน errorsสาเหตุ
'<parameter>' is requiredไม่ได้ส่ง petty_cash_id หรือ petty_cash_type_lv

ไม่สามารถดำเนินการได้ (400)

{ "code": 400, "message": "ไม่สามารถอนุมัติได้<br>เนื่องจากปิดงวดการคำนวณเงินเดือนไปแล้ว" }
ข้อความใน messageสาเหตุ
ไม่สามารถอนุมัติได้<br>เนื่องจากปิดงวดการคำนวณเงินเดือนไปแล้วส่ง petty_cash_in_calculation เป็น "Y" แต่งวดเงินเดือนของ req_dt ปิดไปแล้ว
ไม่สามารถอนุมัติได้<br>เนื่องจากยังไม่ได้เปิดงวดการคำนวณเงินเดือนส่ง petty_cash_in_calculation เป็น "Y" แต่ไม่พบงวดเงินเดือนของ req_dt (รวมถึงกรณีไม่ได้ส่ง req_dt)

ไม่มีสิทธิ์อนุมัติเอกสารนี้ (403)

เกิดเมื่อส่งสถานะ 02 ขณะที่องค์กรกำหนดให้ฝ่ายบุคคลเป็นผู้อนุมัติ (เป็นค่าเริ่มต้นเมื่อไม่ได้ตั้งค่าสายอนุมัติ) แต่ผู้ทำรายการไม่มีสิทธิ์ฝ่ายบุคคล — เอกสารจะไม่ถูกเปลี่ยนแปลง ส่วนองค์กรที่ใช้สายอนุมัติหัวหน้า ผู้ใช้ที่ไม่อยู่ในสายอนุมัติจะไม่ได้ 403 แต่สถานะเอกสารจะเป็น 01 (ดู Notes)

{ "code": 403, "message": "ไม่สามารถอนุมัติได้<br>เนื่องจากไม่มีสิทธิ์อนุมัติเอกสารนี้" }

ไม่พบเอกสาร (404)

{ "code": 404, "message": "ไม่พบรายการ" }

ข้อความใน message ที่มีแท็ก <br> เป็นส่วนหนึ่งของ string จริง

HTTP StatusDescription
400นำเอกสารเข้างวดเงินเดือนไม่ได้
403API Key ไม่มีสิทธิ์ document:manage หรือส่ง 02 ขณะที่องค์กรกำหนดให้ฝ่ายบุคคลเป็นผู้อนุมัติ แต่ผู้ทำรายการไม่มีสิทธิ์ฝ่ายบุคคล
404ไม่พบเอกสารตาม petty_cash_id หรือเอกสารถูกลบไปแล้ว
422ไม่ได้ส่ง parameter บังคับ

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/petty-cash/approve" \ -H "Content-Type: application/json" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -d '{ "petty_cash_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=", "petty_cash_type_lv": "02", "authorize_id": "MjAyNTAzMDM1MUIwQTJDQ0JEOUM=", "approve_remark": "เบิกจ่ายได้ตามปกติ" }'

Notes

API นี้ไม่ได้ตรวจสถานะปัจจุบันของเอกสารก่อนเปลี่ยน สถานะอื่นนอกจาก 02 ระบบจะบันทึกตามค่าที่ส่งมา (ยกเว้นเมื่อระบบรับ petty_cash_in_calculation = "Y" สถานะจะเป็น 12 — ดูหัวข้อจ่ายในเงินเดือน) ส่วนสถานะ 02 ระบบจะกำหนดสถานะจริงจากผู้ใช้ตาม authorize_id (หากไม่ส่ง ระบบตรวจสิทธิ์ฝ่ายบุคคลจากบัญชีผู้ใช้ที่ผูกกับ API Key เท่านั้น และจะไม่นับเป็นหัวหน้าในสายอนุมัติ ผลจึงเป็น 01, 02 หรือ 403):

  • ผู้ใช้ที่มีสิทธิ์ฝ่ายบุคคล (HR) และไม่ได้ส่ง authorize_line — เปลี่ยนเป็น 02 ทันที
  • หัวหน้าในสายอนุมัติของพนักงาน — เป็น 07–10 ตามลำดับของหัวหน้า หรือ 11 เมื่อเป็นหัวหน้าลำดับสุดท้าย (หากองค์กรตั้งค่าให้หัวหน้าลำดับสุดท้ายอนุมัติจบได้เอง จะเป็น 02)
  • ผู้ใช้ที่ไม่อยู่ในสายอนุมัติของพนักงาน — สถานะเป็น 01 (รออนุมัติ)
  • พนักงานที่ไม่มีหัวหน้าในสายอนุมัติ — เปลี่ยนเป็น 02
  • หากองค์กรกำหนดให้ฝ่ายบุคคลเป็นผู้อนุมัติเอกสารเงินสดย่อย ผู้ทำรายการต้องมีสิทธิ์ฝ่ายบุคคล มิฉะนั้นระบบตอบ 403

หากเอกสารอยู่ในสถานะ 02 อยู่แล้วและผลลัพธ์เป็น 02 อีกครั้ง ระบบจะเปลี่ยนเป็น 04 (ตั้งเบิกแล้ว) และบันทึกวันที่ตั้งเบิกเป็นวันที่ทำรายการ — แต่หากผลลัพธ์ไม่ใช่ 02 (เช่น 01, 07–11) สถานะเอกสารจะเปลี่ยนเป็นผลลัพธ์นั้นแทน

เมื่อส่ง petty_cash_in_calculation เป็น "Y" ระบบจะหางวดเงินเดือนที่ req_dt อยู่ แล้วเปลี่ยนสถานะเอกสารเป็น 12 พร้อมผูกเอกสารกับงวดเงินเดือนนั้น หากไม่พบงวดเงินเดือนหรืองวดเงินเดือนปิดไปแล้ว ระบบจะปฏิเสธคำขอ (400)

ระบบรับค่า petty_cash_in_calculation เฉพาะเมื่อผลการอนุมัติเป็น 02 (ผู้ทำรายการเป็นผู้อนุมัติขั้นสุดท้าย) หรือผู้ทำรายการมีสิทธิ์ฝ่ายบุคคลและไม่ได้ส่ง authorize_line — กรณีอื่น เช่น หัวหน้าลำดับกลางในสายอนุมัติ ระบบจะไม่สนใจค่านี้ และเอกสารจะเดินตามสายอนุมัติตามปกติ

  • API นี้ไม่ได้บังคับลำดับการอนุมัติ แม้องค์กรตั้งรูปแบบการอนุมัติเอกสารเป็น “ตามลำดับขั้น” (approver_visibility_mode = sequential) — ควรตรวจ authorize_flag จาก Get Detail ก่อนว่าถึงลำดับของผู้ใช้แล้ว
  • ระบบบันทึกเฉพาะข้อมูลที่เกี่ยวกับการอนุมัติตามที่ระบุในหน้านี้ — parameter อื่นที่ส่งมาจะถูกละเว้น
  • ระบบบันทึกประวัติการอนุมัติของเอกสารโดยอัตโนมัติ
  • ข้อความ message เป็นภาษาตาม parameter lang (ค่าเริ่มต้น TH) — API นี้ไม่ได้ใช้ language_code

พารามิเตอร์ petty_cash_id และ authorize_id ต้องส่งเป็น Base64-encoded


  • Get Detail - ดูรายละเอียดเอกสาร
  • Update Status - อัปเดตสถานะเอกสาร (ส่งเอกสาร/รับเงิน)
  • Search List - ค้นหาเอกสารสำหรับ HR/ผู้อนุมัติ
Last updated on