Update Petty Cash Status
API สำหรับเปลี่ยนสถานะของเอกสารเบิกเงินสดย่อย ในกรณีที่มีการเคลื่อนไหวของเอกสารทางกายภาพ หรือกิจกรรมทางการเงิน (เช่น การรับเงินสด) ซึ่งแยกต่างหากจากกระบวนการอนุมัติหลัก
Endpoint
POST /api/v1/open-apis/petty-cash/updateสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)
Request Body
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
petty_cash_id | string | Yes | รหัสเอกสารที่ต้องการอัปเดต (Base64) | "MjAyNTExMjdENDU3M0M0MjE2Mzk=" |
petty_cash_type_lv | string | Yes | รหัสสถานะใหม่ที่ต้องการ (ดู Option Values และเงื่อนไขการเปลี่ยนสถานะ) | "05" |
Optional Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
authorize_id | string | No | ID ของผู้ใช้ที่ทำรายการ (Base64) — แนะนำให้ส่ง ระบบใช้ผู้ใช้นี้ตรวจสิทธิ์ตั้งเบิกเมื่อส่งสถานะ 04 (ดู Notes) หากไม่ส่ง ผู้ทำรายการล่าสุดของเอกสารจะถูกบันทึกเป็นค่าว่าง | "MjAyNTAzMDM1MUIwQTJDQ0JEOUM=" |
authorize_line | string | No | ใช้กับสถานะ 04 เท่านั้น — ส่งค่าที่ไม่ว่างและไม่ใช่ "0" (เช่น "Y") เพื่อตรวจสิทธิ์ตั้งเบิกในฐานะผู้อนุมัติตามสายอนุมัติเท่านั้น ไม่นับสิทธิ์ฝ่ายบุคคล หากไม่ต้องการให้ละ parameter นี้ | "Y" |
approve_remark | string | No | หมายเหตุประกอบการอัปเดตสถานะ — หากไม่ส่ง ระบบคงหมายเหตุเดิมของเอกสารไว้ (ส่ง "" หากต้องการล้างหมายเหตุ) | "รับเงินครบถ้วน" |
lang | string | No | ภาษาของข้อความตอบกลับ: TH (ค่าเริ่มต้น) หรือ EN | "EN" |
Option Values: petty_cash_type_lv
| ค่า | ความหมาย (EN) | ความหมาย (TH) |
|---|---|---|
01 | Pending | รออนุมัติ — ใช้ส่งเอกสารที่อยู่ในสถานะ 06 (ตรวจสอบอีกครั้ง) กลับเข้าสู่การอนุมัติ |
04 | Withdrew | ตั้งเบิกแล้ว — ผู้ทำรายการต้องมีสิทธิ์ตั้งเบิก (ดู Notes) |
05 | Received | ได้รับเงินแล้ว (เสร็จสิ้นการเบิก) |
เงื่อนไขการเปลี่ยนสถานะ
| สถานะปัจจุบันของเอกสาร | การเปลี่ยนสถานะ |
|---|---|
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_lv | message (TH) |
|---|---|
01 | อัปเดตสถานะเอกสารเงินสดย่อยสำเร็จ |
04 | ส่งเอกสารเงินสดย่อยสำเร็จ |
05 | รับเอกสารเงินสดย่อยสำเร็จ |
Response Fields
| Field | Type | Nullable | Description |
|---|---|---|---|
petty_cash_id | string | No | รหัสเอกสาร |
petty_cash_type_lv | string | No | สถานะใหม่ของเอกสาร |
approve_dt | string | Yes | วันที่อนุมัติ — ค่าในคำตอบนี้เป็น null สำหรับสถานะ 01, 04, 05 (ไม่ได้ลบวันที่ที่บันทึกไว้ในเอกสาร) |
send_doc_dt | string | Yes | วันที่ตั้งเบิก (YYYY-MM-DD) — เป็นวันที่ทำรายการเมื่อเปลี่ยนเป็น 04 นอกนั้นเป็น null |
receive_dt | string | Yes | วันที่ได้รับเงิน (YYYY-MM-DD) — เป็นวันที่ทำรายการเมื่อเปลี่ยนเป็น 05 นอกนั้นเป็น null |
approve_id | string | No | ID ของผู้ใช้ที่ทำรายการ (ค่าจาก authorize_id) — เป็นค่าว่างหากไม่ได้ส่ง authorize_id |
approve_flag | string | Yes | ผลการอนุมัติล่าสุดที่บันทึกไว้ในเอกสาร — 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 Status | Description |
|---|---|
400 | บันทึกไม่สำเร็จ (เกิดข้อผิดพลาดของระบบ) |
403 | API Key ไม่มีสิทธิ์ document:manage หรือผู้ใช้ไม่มีสิทธิ์ตั้งเบิกเมื่อส่งสถานะ 04 |
404 | ไม่พบเอกสารตาม petty_cash_id หรือเอกสารถูกลบไปแล้ว |
422 | ไม่ได้ส่ง parameter บังคับ หรือเอกสารอยู่ในสถานะที่เปลี่ยนไม่ได้ |
Code Examples
cURL
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เป็นภาษาตาม parameterlang(ค่าเริ่มต้น 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
Related APIs
- Approve - อนุมัติเอกสาร
- Get Detail - ดูรายละเอียดเอกสาร
- Delete - ลบเอกสาร