Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Update Petty Cash Status

API สำหรับเปลี่ยนสถานะของเอกสารเบิกเงินสดย่อย ในกรณีที่มีการเคลื่อนไหวของเอกสารทางกายภาพ หรือกิจกรรมทางการเงิน (เช่น การรับเงินสด) ซึ่งแยกต่างหากจากกระบวนการอนุมัติหลัก

Endpoint

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

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

Request Body

Required Parameters

ParameterTypeRequiredDescriptionExample
petty_cash_idstringYesรหัสเอกสารที่ต้องการอัปเดต (Base64)"MjAyNTExMjdENDU3M0M0MjE2Mzk="
petty_cash_type_lvstringYesรหัสสถานะใหม่ที่ต้องการ (ดู Option Values และเงื่อนไขการเปลี่ยนสถานะ)"05"

Optional Parameters

ParameterTypeRequiredDescriptionExample
authorize_idstringNoID ของผู้ใช้ที่ทำรายการ (Base64) — แนะนำให้ส่ง ระบบใช้ผู้ใช้นี้ตรวจสิทธิ์ตั้งเบิกเมื่อส่งสถานะ 04 (ดู Notes) หากไม่ส่ง ผู้ทำรายการล่าสุดของเอกสารจะถูกบันทึกเป็นค่าว่าง"MjAyNTAzMDM1MUIwQTJDQ0JEOUM="
authorize_linestringNoใช้กับสถานะ 04 เท่านั้น — ส่งค่าที่ไม่ว่างและไม่ใช่ "0" (เช่น "Y") เพื่อตรวจสิทธิ์ตั้งเบิกในฐานะผู้อนุมัติตามสายอนุมัติเท่านั้น ไม่นับสิทธิ์ฝ่ายบุคคล หากไม่ต้องการให้ละ parameter นี้"Y"
approve_remarkstringNoหมายเหตุประกอบการอัปเดตสถานะ — หากไม่ส่ง ระบบคงหมายเหตุเดิมของเอกสารไว้ (ส่ง "" หากต้องการล้างหมายเหตุ)"รับเงินครบถ้วน"
langstringNoภาษาของข้อความตอบกลับ: TH (ค่าเริ่มต้น) หรือ EN"EN"

Option Values: petty_cash_type_lv

ค่าความหมาย (EN)ความหมาย (TH)
01Pendingรออนุมัติ — ใช้ส่งเอกสารที่อยู่ในสถานะ 06 (ตรวจสอบอีกครั้ง) กลับเข้าสู่การอนุมัติ
04Withdrewตั้งเบิกแล้ว — ผู้ทำรายการต้องมีสิทธิ์ตั้งเบิก (ดู Notes)
05Receivedได้รับเงินแล้ว (เสร็จสิ้นการเบิก)

เงื่อนไขการเปลี่ยนสถานะ

สถานะปัจจุบันของเอกสารการเปลี่ยนสถานะ
01 (รออนุมัติ) หรือ 06 (ตรวจสอบอีกครั้ง)เปลี่ยนได้
12 (อนุมัติแล้ว)เปลี่ยนได้เฉพาะเป็น 04 หรือ 05
สถานะอื่นเปลี่ยนไม่ได้ — ระบบตอบกลับ 422

Response Format

Success Response

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

ข้อความ message ขึ้นกับสถานะที่ส่ง:

petty_cash_type_lvmessage (TH)
01อัปเดตสถานะเอกสารเงินสดย่อยสำเร็จ
04ส่งเอกสารเงินสดย่อยสำเร็จ
05รับเอกสารเงินสดย่อยสำเร็จ

Response Fields

FieldTypeNullableDescription
petty_cash_idstringNoรหัสเอกสาร
petty_cash_type_lvstringNoสถานะใหม่ของเอกสาร
approve_dtstringYesวันที่อนุมัติ — ค่าในคำตอบนี้เป็น null สำหรับสถานะ 01, 04, 05 (ไม่ได้ลบวันที่ที่บันทึกไว้ในเอกสาร)
send_doc_dtstringYesวันที่ตั้งเบิก (YYYY-MM-DD) — เป็นวันที่ทำรายการเมื่อเปลี่ยนเป็น 04 นอกนั้นเป็น null
receive_dtstringYesวันที่ได้รับเงิน (YYYY-MM-DD) — เป็นวันที่ทำรายการเมื่อเปลี่ยนเป็น 05 นอกนั้นเป็น null
approve_idstringNoID ของผู้ใช้ที่ทำรายการ (ค่าจาก authorize_id) — เป็นค่าว่างหากไม่ได้ส่ง authorize_id
approve_flagstringYesผลการอนุมัติล่าสุดที่บันทึกไว้ในเอกสาร — API นี้ไม่ได้เปลี่ยนค่านี้

Error Response

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

{ "code": 422, "message": "การตรวจสอบข้อมูลล้มเหลว", "errors": ["'petty_cash_type_lv' is required"] }

เอกสารอยู่ในสถานะที่เปลี่ยนไม่ได้ (422)

กรณีนี้ errors เป็น object ที่มี key petty_cash_type_lv (ไม่ใช่ array)

{ "code": 422, "message": "การตรวจสอบข้อมูลล้มเหลว", "errors": { "petty_cash_type_lv": "cannot change status from 05 to 01" } }
ข้อความใน errorsสาเหตุ
'<parameter>' is requiredไม่ได้ส่ง petty_cash_id หรือ petty_cash_type_lv
cannot change status from <สถานะปัจจุบัน> to <สถานะที่ส่ง>เอกสารอยู่ในสถานะที่เปลี่ยนไม่ได้ (ดูเงื่อนไขการเปลี่ยนสถานะ)

ไม่มีสิทธิ์ตั้งเบิก (403)

เกิดเมื่อส่งสถานะ 04 โดยผู้ใช้ตาม authorize_id ไม่มีสิทธิ์ตั้งเบิกเอกสารนี้ (หากไม่ส่ง authorize_id ระบบตรวจเฉพาะสิทธิ์ฝ่ายบุคคลของบัญชีผู้ใช้ที่ผูกกับ API Key) — เอกสารจะไม่ถูกเปลี่ยนแปลง

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

แท็ก <br> เป็นส่วนหนึ่งของ string จริง

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

{ "code": 404, "message": "ไม่พบรายการ" }
HTTP StatusDescription
400บันทึกไม่สำเร็จ (เกิดข้อผิดพลาดของระบบ)
403API Key ไม่มีสิทธิ์ document:manage หรือผู้ใช้ไม่มีสิทธิ์ตั้งเบิกเมื่อส่งสถานะ 04
404ไม่พบเอกสารตาม petty_cash_id หรือเอกสารถูกลบไปแล้ว
422ไม่ได้ส่ง parameter บังคับ หรือเอกสารอยู่ในสถานะที่เปลี่ยนไม่ได้

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/petty-cash/update" \ -H "Content-Type: application/json" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -d '{ "petty_cash_id": "MjAyNTExMjdENDU3M0M0MjE2Mzk=", "petty_cash_type_lv": "05", "authorize_id": "MjAyNTAzMDM1MUIwQTJDQ0JEOUM=", "approve_remark": "พนักงานเซ็นรับเงินสดเรียบร้อย" }'

Notes

  • เอกสารสถานะ 04 และ 05 เปลี่ยนสถานะต่อผ่าน API นี้ไม่ได้ (เช่น 04 → 05 ไม่ได้)
  • ระบบไม่ได้ตรวจสอบค่าสถานะปลายทาง ควรส่งเฉพาะค่าที่ระบุในตาราง Option Values
  • ระบบบันทึกวันที่ตั้งเบิก (04) และวันที่ได้รับเงิน (05) เป็นวันที่ทำรายการโดยอัตโนมัติ
  • ระบบบันทึกเฉพาะข้อมูลที่เกี่ยวกับการเปลี่ยนสถานะตามที่ระบุในหน้านี้ — parameter อื่นที่ส่งมาจะถูกละเว้น
  • ข้อความ message เป็นภาษาตาม parameter lang (ค่าเริ่มต้น TH) — API นี้ไม่ได้ใช้ language_code

ผู้ที่ตั้งเบิกได้มีดังนี้:

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

ตรวจล่วงหน้าได้จาก field send_doc ใน Get Detail หรือ Search List — หากไม่มีสิทธิ์ ระบบตอบ 403

เปลี่ยนสถานะได้ตามตารางเงื่อนไขการเปลี่ยนสถานะเท่านั้น เช่น เอกสารในสถานะ 02 (กำลังตั้งเบิก) เปลี่ยนเป็น 04 ผ่าน API นี้ไม่ได้ ให้เรียก Approve ด้วยสถานะ 02 อีกครั้งแทน ซึ่งจะเปลี่ยนเป็น 04 เมื่อผลการอนุมัติเป็น 02 อีกครั้งเท่านั้น (เช่น ผู้ทำรายการเป็นฝ่ายบุคคล) — หากผลการอนุมัติไม่ใช่ 02 สถานะเอกสารจะเปลี่ยนเป็นผลนั้นแทน

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


  • Approve - อนุมัติเอกสาร
  • Get Detail - ดูรายละเอียดเอกสาร
  • Delete - ลบเอกสาร
Last updated on