Skip to Content
🚀 Welcome to Humansoft Open API Documentation

Petty Cash Report

ดึงรายงานการเบิกเงินสดย่อยของพนักงาน

ใช้ API นี้สำหรับเรียกรายงานรายการเบิกเงินสดย่อย กรองได้ตามช่วงปี/เดือน, ประเภทเงินสดย่อย, สถานะเอกสาร และโครงสร้างองค์กร เหมาะกับ Dashboard, รายงานรายเดือน หรือการตรวจสอบยอดเบิกของพนักงาน

Salary Masking: หากผู้เรียกไม่มีสิทธิ์ข้อมูลเงินเดือน ระบบจะ Mask ฟิลด์ request_amount และ total_amount ให้แสดงค่าเป็น null โดยอัตโนมัติ ระบบภายนอกไม่ต้องปิดบังยอดเงินเอง

Endpoint

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

Authorization

ผู้เรียกต้องส่ง authorize_id และต้องมีสิทธิ์ document:manage จึงจะเรียกรายงานนี้ได้

Request Parameters

Required

ParameterTypeRequiredDescriptionExample
authorize_idstringYesรหัสผู้เรียก API (Base64) ใช้สำหรับตรวจสิทธิ์และข้อมูลผู้ใช้งานMjAyNjA0MzBVU0VSMDAwMDAx
search_yearstring (YYYY)Yesปี ค.ศ. ที่ต้องการดึงข้อมูล2026

หา authorize_id ได้อย่างไร: รับค่าจาก Get Employee Data Filter โดยใช้ path_action=get-user พร้อม employee_code ของผู้ทำรายการ — ใช้ค่า user_id ที่ได้กลับมาเป็น authorize_id

Output Parameters

ParameterTypeDefaultDescriptionExample
search_monthstring (MM)-เดือนที่ต้องการดึงข้อมูล (01-12) — ไม่ระบุจะดึงทั้งปี05
typestringjsonรูปแบบผลลัพธ์ — รองรับเฉพาะ jsonjson

Filter Parameters

ParameterTypeDefaultDescriptionExample
search_statusstring-รหัสสถานะเอกสารเบิกเงินสดย่อย05
petty_cash_type_idstring-รหัสประเภทเงินสดย่อย (Base64)MjAyNDExMjdENDU3M0M0MjE2Mzk=
company_listsarray[]กรองตามบริษัท ใช้ object {id: base64(company_id)}[{"id":"Q09NUDAwMQ=="}]
branch_listsarray[]กรองตามสาขา[{"id":"QlJBTkNIMDAx"}]
department_listsarray[]กรองตามแผนก[{"id":"REVQMDAx"}]
division_listsarray[]กรองตามฝ่าย[{"id":"RElWMDAx"}]
section_listsarray[]กรองตามหน่วยงาน[{"id":"U0VDMDAx"}]
position_listsarray[]กรองตามตำแหน่ง[{"id":"UE9TMDAx"}]

Pagination & Language

ParameterTypeDefaultDescriptionExample
_PAGEinteger1หน้าที่ต้องการ (เริ่มที่ 1)1
_NUMBER_PER_PAGEinteger10จำนวนรายการต่อหน้า (1-100)50
language_codestringTHภาษาของข้อมูลที่แปลได้ (TH, EN)TH

โครงสร้าง List Parameters

*_lists ทุก parameter ใช้ array ของ object ที่มี id เป็น Base64 encoded:

[ { "id": "Q09NUDAwMQ==" }, { "id": "Q09NUDAwMg==" } ]

Validation Rules

กฎรายละเอียด
authorize_idต้องไม่ว่าง และต้องผ่านสิทธิ์ document:manage
search_yearต้องตรงรูปแบบ YYYY (4 หลัก)
search_monthถ้าระบุ ต้องเป็น 01-12
typeต้องเป็น json เท่านั้น
_PAGEต้องไม่ต่ำกว่า 1
_NUMBER_PER_PAGEต้องอยู่ในช่วง 1-100

Code Examples

curl -X POST "https://openapi.humansoft.co.th/api/v1/open-apis/report/petty-cash" \ -H "Ocp-Apim-Subscription-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "authorize_id": "MjAyNjA0MzBVU0VSMDAwMDAx", "search_year": "2026", "search_month": "05", "_PAGE": 1, "_NUMBER_PER_PAGE": 10 }'

Response Format

Success Response (HTTP 200)

{ "code": 200, "message": "Success", "payload": [ { "employee_code": "EMP001", "employee_name": "สมชาย ใจดี (ชาย)", "department_name": "ฝ่ายไอที", "position_name": "Software Engineer", "request_topic": "เบิกค่าเดินทางไปพบลูกค้า", "petty_cash_type": "ค่าเดินทาง", "spending_name": "ค่าน้ำมันรถยนต์", "request_amount": 1500.00, "total_amount": 1500.00, "request_date": "2026-05-15", "approve_date": "2026-05-16", "paid_date": "2026-05-18", "received_date": "2026-05-18", "status": "ได้รับเงินแล้ว", "remark": "อนุมัติจ่ายค่าน้ำมัน", "payment_method": "จ่ายนอกเงินเดือน" } ], "_PAGINATION": { "_TOTAL_RECORDS": 1, "_PAGE": 1, "_NUMBER_PER_PAGE": 10 } }

Response Fields

FieldTypeDescription
employee_codestringรหัสพนักงาน
employee_namestringชื่อ-นามสกุล (ชื่อเล่น) ตาม language_code
department_namestringชื่อแผนกของพนักงาน
position_namestringชื่อตำแหน่งงาน
request_topicstringหัวข้อ/จุดประสงค์ในการขอเบิก
petty_cash_typestringประเภทของวงเงินสดย่อย เช่น ค่าเดินทาง, ค่าอุปกรณ์
spending_namestringชื่อของรายการใช้จ่ายย่อย
request_amountnumberจำนวนเงินของรายการย่อย (null หากผู้เรียกไม่มีสิทธิ์เงินเดือน)
total_amountnumberจำนวนเงินรวมของเอกสารเบิกใบนั้น (null หากไม่มีสิทธิ์เงินเดือน)
request_datestring (YYYY-MM-DD)วันที่ยื่นคำขอเบิกเงิน
approve_datestring (YYYY-MM-DD)วันที่เอกสารได้รับการอนุมัติ
paid_datestring (YYYY-MM-DD)วันที่ทำการจ่ายเงินจริง
received_datestring (YYYY-MM-DD)วันที่พนักงานได้รับเงิน
statusstringสถานะของเอกสาร เช่น รออนุมัติ, อนุมัติแล้ว, ได้รับเงินแล้ว
remarkstringหมายเหตุ ความเห็น หรือเหตุผลการปฏิเสธ/อนุมัติ
payment_methodstringช่องทางการจ่ายเงิน เช่น จ่ายนอกเงินเดือน, จ่ายในระบบคำนวณ

Pagination Fields

FieldTypeDescription
_PAGINATION._TOTAL_RECORDSintegerจำนวนรายการทั้งหมดหลังกรอง
_PAGINATION._PAGEintegerหน้าปัจจุบัน
_PAGINATION._NUMBER_PER_PAGEintegerจำนวนรายการต่อหน้า

Error Responses

Validation Error (HTTP 400)

{ "code": 400, "message": "Validation failed", "errors": [ "'type' must be one of: json" ] }

Permission Denied (HTTP 403)

{ "code": 403, "message": "Permission denied", "errors": ["User does not have 'document:manage' permission"] }

Status Codes

Codeความหมาย
200สำเร็จ
400Validation ไม่ผ่าน เช่น parameter หาย, format ผิด, type ไม่อยู่ใน allowlist
403ไม่มีสิทธิ์ document:manage หรือ API key ไม่ถูกต้อง
500เกิด error ระหว่างประมวลผลบนเซิร์ฟเวอร์

Notes & Best Practices

  • API นี้รองรับเฉพาะ type: json เท่านั้น ไม่รองรับ Excel หรือ PDF เพื่อประสิทธิภาพการประมวลผลและการรักษาความปลอดภัยระดับเงินเดือน
  • Salary Masking ทำที่ฝั่ง Server-side ผ่านสิทธิ์ส่วนบุคคล — ระบบภายนอกไม่ต้องปิดบังยอดเงินเอง
  • ID ใน *_lists ต้องเข้ารหัส Base64 และใช้รูปแบบ {id: "..."}
  • ถ้าไม่ระบุ search_month ระบบจะดึงข้อมูลสรุปของทั้งปี

Last updated on