Submit Petty Cash Request
API สำหรับสร้างเอกสารคำขอเบิกเงินสดย่อยใหม่เข้าสู่ระบบ โดยเอกสารที่สร้างขึ้นจะเริ่มต้นด้วยสถานะรออนุมัติ (Pending) และยังไม่มีรายการค่าใช้จ่าย ต้องเรียก API Add Item เพื่อเพิ่มรายการค่าใช้จ่ายในขั้นตอนถัดไป
Endpoint
POST /api/v1/open-apis/petty-cash/submitสิทธิ์ที่ต้องการ: API Key ต้องมีสิทธิ์ ข้อมูลการยื่นเอกสาร (document:manage)
Request Body
Required Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
employee_code | string | Yes | รหัสพนักงานที่ต้องการสร้างเอกสาร | "EMP001" |
request_topic | string | Yes | หัวข้อหรือชื่อภารกิจการเบิก | "เบิกค่าที่พักออกตรวจงานต่างจังหวัด" |
req_dt | string | Yes | วันที่ยื่นคำขอ (YYYY-MM-DD) | "2026-03-25" |
Optional Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
authorize_id | string | No | ID ของผู้ใช้ที่ทำรายการ (Base64) — แนะนำให้ส่ง ระบบใช้ผู้ใช้นี้ตรวจสิทธิ์ฝ่ายบุคคลตอนตรวจโควตา (ดู Notes) หากไม่ส่ง ผู้ทำรายการล่าสุดของเอกสารจะเป็นค่าว่าง | "MjAyNTAzMDM1MUIwQTJDQ0JEOUM=" |
lang | string | No | ภาษาของข้อความตอบกลับ: TH (ค่าเริ่มต้น) หรือ EN | "EN" |
Validation Rules
| Rule | Description |
|---|---|
| Required Fields | employee_code, request_topic, req_dt ต้องไม่ว่าง |
| Date Format | req_dt ต้องอยู่ในรูปแบบ YYYY-MM-DD เท่านั้น |
| Employee | employee_code ต้องเป็นรหัสพนักงานที่มีอยู่ในระบบ |
สถานะเอกสาร (petty_cash_type_lv)
ค่าสถานะที่พบใน response ของ API กลุ่มนี้ — เอกสารที่สร้างผ่าน API นี้จะมีสถานะ 01 เสมอ
| Value | Description (EN) | คำอธิบาย |
|---|---|---|
01 | Pending | รออนุมัติ |
02 | Withdrawing | กำลังตั้งเบิก (อนุมัติขั้นสุดท้ายแล้ว) |
03 | Not Approved | ไม่อนุมัติ |
04 | Withdrew | ตั้งเบิกแล้ว |
05 | Received | ได้รับเงินแล้ว |
06 | Recheck | ตรวจสอบอีกครั้ง |
07-11 | Manager Approved | หัวหน้าในสายอนุมัติอนุมัติแล้ว (07-10 ขั้นที่ 1-4, 11 หัวหน้าลำดับสุดท้ายอนุมัติแล้ว รอฝ่ายบุคคลอนุมัติ) — ดู Approve |
12 | Approved | อนุมัติ (บันทึกเข้างวดเงินเดือน) |
Response Format
Success Response
{
"code": 200,
"message": "สร้างเอกสารเงินสดย่อยสำเร็จ",
"payload": {
"req_dt": "2026-03-25",
"employee_id": "20240115B7C8D9E0F1A2",
"employee_name": "นายสมชาย ใจดี",
"employee_name_en": "Mr.Somchai Jaidee",
"position_name": "เจ้าหน้าที่ฝ่ายขาย",
"company_name": "บริษัท ตัวอย่าง จำกัด",
"request_topic": "เบิกค่าเดินทางไปพบลูกค้า",
"document_flow_lv": "01",
"petty_cash_type_lv": "01",
"approve_id": "2025030351B0A2CCBD9C",
"petty_cash_id": "20251127D4573C421639"
}
}Response Fields
| Field | Type | Nullable | Description |
|---|---|---|---|
petty_cash_id | string | No | รหัสเอกสารเบิกเงินสดย่อยที่ถูกสร้างขึ้น |
employee_id | string | No | ID ของพนักงาน |
employee_name | string | No | ชื่อพนักงานภาษาไทย (คำนำหน้า ชื่อ นามสกุล และชื่อเล่นในวงเล็บหากมี) |
employee_name_en | string | No | ชื่อพนักงานภาษาอังกฤษ ในรูปแบบเดียวกัน |
position_name | string | No | ตำแหน่งพนักงาน |
company_name | string | No | ชื่อบริษัท |
request_topic | string | No | หัวข้อการเบิกที่บันทึกไว้ |
document_flow_lv | string | No | ขั้นตอนของเอกสาร — เอกสารใหม่เป็น 01 |
petty_cash_type_lv | string | No | สถานะเอกสาร (01 = Pending) |
approve_id | string | No | ID ของผู้ใช้ที่ทำรายการ (ค่าจาก authorize_id) — เป็นค่าว่างหากไม่ได้ส่ง authorize_id |
req_dt | string | No | วันที่ยื่นคำขอ |
Error Response
ข้อมูลไม่ผ่านการตรวจสอบ (422)
{
"code": 422,
"message": "การตรวจสอบข้อมูลล้มเหลว",
"errors": ["'request_topic' is required"]
}ข้อความใน errors | สาเหตุ |
|---|---|
'<parameter>' is required | ไม่ได้ส่ง parameter บังคับ เช่น 'req_dt' is required |
'req_dt' must be YYYY-MM-DD | req_dt ไม่อยู่ในรูปแบบ YYYY-MM-DD |
ไม่สามารถสร้างเอกสารได้ (400)
{
"code": 400,
"message": "ไม่สามารถขอเอกสารได้ เนื่องจากเกินจำนวนโควตาการขอเอกสาร"
}ข้อความใน message | สาเหตุ |
|---|---|
ไม่พบข้อมูลพนักงาน | ไม่พบพนักงานตาม employee_code |
ไม่สามารถขอเอกสารได้ เนื่องจากเกินจำนวนโควตาการขอเอกสาร | พนักงานมีเอกสารครบจำนวนที่องค์กรกำหนดในรอบเงินเดือนของ req_dt แล้ว |
| HTTP Status | Description |
|---|---|
400 | ไม่พบพนักงาน หรือเกินโควตาการขอเอกสาร |
403 | API Key ไม่มีสิทธิ์ document:manage |
422 | ข้อมูลไม่ครบหรือรูปแบบไม่ถูกต้อง |
Code Examples
cURL
curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/petty-cash/submit" \
-H "Content-Type: application/json" \
-H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \
-d '{
"employee_code": "EMP001",
"request_topic": "เบิกค่าเดินทางไปพบลูกค้า",
"req_dt": "2026-03-25",
"authorize_id": "MjAyNTAzMDM1MUIwQTJDQ0JEOUM="
}'Notes
เมื่อสร้างเอกสารด้วย API นี้แล้ว เอกสารจะยังไม่มีมูลค่าเงินรวม ต้องเรียก API Add Item เพื่อเพิ่มรายการค่าใช้จ่าย
ค่า req_dt สัมพันธ์กับรอบโควตา Petty Cash หากบริษัทมีการจำกัดจำนวนครั้งในการเบิก หากพนักงานเบิกเกินจำนวนครั้งที่กำหนดในรอบเดือน ระบบจะไม่อนุญาตให้สร้างเอกสาร — ระบบไม่ตรวจโควตานี้เมื่อผู้ใช้ตาม authorize_id (หรือผู้ใช้ที่ผูกกับ API Key หากไม่ส่ง authorize_id) มีสิทธิ์ฝ่ายบุคคล/เงินเดือนหรือเป็นผู้ดูแลระบบ
เมื่อสร้างเอกสารสำเร็จ ระบบจะดำเนินการอัตโนมัติ:
- แจ้งเตือน ไปยังหัวหน้าตามสายอนุมัติของพนักงาน หรือฝ่าย HR (เมื่อองค์กรตั้งค่าให้ฝ่ายบุคคลอนุมัติ หรือพนักงานไม่มีหัวหน้าในสายอนุมัติ) ตามการตั้งค่าการแจ้งเตือนเอกสารขององค์กร
- บันทึกประวัติ การสร้างเอกสาร
ข้อความ message เป็นภาษาตาม parameter lang (ค่าเริ่มต้น TH) — API นี้ไม่ได้ใช้ language_code
พารามิเตอร์ที่ลงท้ายด้วย _id ต้องส่งเป็น Base64-encoded
Related APIs
- Add Item - เพิ่มรายการค่าใช้จ่ายเข้าไปในเอกสาร
- Get List - ตรวจสอบรายการเอกสารทั้งหมดของพนักงาน
- Get Detail - ดูรายละเอียดเอกสาร