POSPOS Developer API เป็น RESTful API สำหรับดึงข้อมูลของร้านค้าไปใช้งานในระบบของท่าน ทุก API ตอบกลับในรูปแบบ JSON เอกสารนี้แบ่งเป็นหัวข้อตามกลุ่มข้อมูล โดยแต่ละหัวข้อระบุ API path, พารามิเตอร์ที่ส่งได้ และรูปแบบข้อมูลที่ตอบกลับ
ข้อมูลทั่วไป
| หัวข้อ |
รายละเอียด |
| Base URL |
https://go.pospos.co/developer/api |
| การยืนยันตัวตน |
แนบ API Key ใน HTTP Header ชื่อ apikey ทุกครั้งที่เรียกใช้งาน |
| การจำกัดการเรียกใช้งาน |
ไม่เกิน 300 ครั้ง ต่อ 10 วินาที |
การขอ API Key
- แจ้งเจ้าหน้าที่ทาง LINE Official @pospos เพื่อติดต่อสมัครการใช้งาน แล้วเจ้าหน้าที่จะแนะนำขั้นตอนการสมัคร
กรุณาเก็บรักษา API Key เป็นความลับ หากมีการใช้งานเกินเงื่อนไข ระบบจะระงับ API Key ตามเงื่อนไขของแพ็กเกจที่ใช้งาน
รูปแบบการตอบกลับเมื่อเกิดข้อผิดพลาด
{
"success": 0,
"message": "The date range between start and end must not exceed 2 days"
}
| HTTP Status |
ความหมาย |
| 200 |
สำเร็จ (success = 1) |
| 400 |
พารามิเตอร์ไม่ถูกต้อง เช่น ไม่ได้ระบุ page ส่งค่าที่ไม่รองรับ ส่งวันที่เริ่มต้นหรือวันที่สิ้นสุดเพียงค่าเดียว หรือช่วงวันที่เกินกำหนด |
| 401, 403 |
ไม่พบ API Key, API Key ไม่ถูกต้อง หรือหมดอายุ |
| 406 |
ร้านค้าหมดอายุการใช้งาน หรือใช้แพ็กเกจแบบออฟไลน์ |
| 429 |
เรียกใช้งานเกินจำนวนที่กำหนด |
| 460 |
แพ็กเกจหมดอายุ หรือแพ็กเกจไม่รองรับ Developer API |
Buy Document (ใบรับซื้อ)
ใช้ดึงรายการใบรับซื้อสินค้าจากผู้จำหน่าย (Vendor) ของร้าน ตามช่วงวันที่ของเอกสาร
GET /buy-document
GET https://go.pospos.co/developer/api/buy-document
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
Query Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
page |
number |
ใช่ |
หน้าที่ต้องการ เริ่มต้นที่ 1 |
limit |
number |
ใช่ |
จำนวนรายการต่อหน้า ค่าที่รับได้ 1 ถึง 100 |
start_date |
string (ISO 8601) |
ใช่ |
วันเวลาเริ่มต้นของช่วงวันที่เอกสาร (buy_date) |
end_date |
string (ISO 8601) |
ใช่ |
วันเวลาสิ้นสุดของช่วงวันที่เอกสาร ต้องห่างจาก start_date ไม่เกิน 2 วัน |
term |
string |
ไม่ |
ค้นหาจากเลขที่เอกสาร (buy_code) แบบบางส่วนของคำ ไม่แยกตัวพิมพ์เล็กและพิมพ์ใหญ่ |
หมายเหตุ
- ผลลัพธ์รวมเอกสารทุกสถานะ (รวมเอกสารที่ยกเลิก) เรียงจากเอกสารที่สร้างล่าสุดก่อน
- ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกด้วยพารามิเตอร์เดิมภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/buy-document?page=1&limit=10&start_date=2026-10-21T00:00:00%2B07:00&end_date=2026-10-22T23:59:59%2B07:00' \
--header 'apikey: {YOUR_API_KEY}'
ตัวอย่าง Response
ตัวอย่างนี้แสดงเฉพาะ field หลัก ข้อมูลจริงอาจมี field อื่นเพิ่มเติม
{
"success": 1,
"data": [
{
"_id": "6ad89fa3a9eb075121a21a59",
"buy_code": "BUY26100001",
"buy_date": "2026-10-21T04:18:59.272Z",
"buy_send_date": "2026-10-21T04:18:59.272Z",
"buy_status": 3,
"buy_document_address": "99 ถนนตัวอย่าง แขวงตัวอย่าง เขตตัวอย่าง กรุงเทพมหานคร 10110",
"buy_receive_address": "99 ถนนตัวอย่าง แขวงตัวอย่าง เขตตัวอย่าง กรุงเทพมหานคร 10110",
"buy_note": "",
"buy_order_list": [
{
"_id": "5bc59041a1099d01ae3de3b9",
"code": "0007",
"name": "น้ำดื่ม 600 มล.",
"unit": { "_id": "5aaa2ab70fedd20c21891904", "name": "แพ็ก" },
"stock": 10,
"cost": 25,
"cost_discount_price": 10,
"total_price_exclude_discount": 250,
"total_price_include_discount": 240,
"rounding_amount": 0,
"sum": 240,
"actual_cost": 24,
"price": 35,
"exclude_vat": false,
"attribute_status": false,
"sku_list": []
}
],
"buy_sub_total": 240,
"buy_trade_discount": 0,
"buy_grand_total": 240,
"rounding_amount": 0,
"buy_tax_percent": 0,
"buy_product_price_including_vat": false,
"register_vat": false,
"buy_commission_type": 1,
"buy_commission_rate": 0,
"buy_total_commission": 0,
"vendor_detail": {
"_id": "64f0c2a1b5e3a2001234abcd",
"code": "V0001",
"company_name": "บริษัท ตัวอย่าง จำกัด",
"branch": "สำนักงานใหญ่",
"tax_id": "0105500000000",
"phonenumber": "021234567",
"email": "contact@example.com",
"address": "99 ถนนตัวอย่าง",
"zipcode": "10110",
"province": {
"_id": "5a8ea7c75e843e9239e92354",
"PROVINCE_NAME_TH": "กรุงเทพมหานคร",
"PROVINCE_NAME_EN": "Bangkok"
}
},
"vendor_info": {
"name": "สมศักดิ์ ส่งของ",
"phonenumber": "0812345678",
"file_attachment": []
},
"buy_responsible_person_detail": {
"_id": "5b6962bd1853520f428fad17",
"code": "EMP001",
"username": "staff@example.com",
"firstname": "สมชาย",
"lastname": "ใจดี"
},
"buy_order_status_history": [
{ "status": 0, "update_by": "สมชาย ใจดี", "date": "2026-10-21T04:18:59.272Z" },
{ "status": 2, "note": "", "update_by": "สมชาย ใจดี", "date": "2026-10-21T04:19:00.580Z" },
{ "status": 3, "note": "", "update_by": "สมชาย ใจดี", "date": "2026-10-21T04:19:00.627Z" }
],
"currency": {
"code": "THB",
"name": "Thai Baht",
"symbol": "฿",
"symbol_position": "prefix",
"decimal_places": 2
},
"created_at": "2026-10-21T04:19:00.524Z",
"updated_at": "2026-10-21T04:19:00.640Z"
}
],
"total": 1,
"total_page": 1,
"sum_buy_grand_total": 240
}
Response Fields
| Field |
Type |
คำอธิบาย |
success |
number |
1 = สำเร็จ |
data |
array |
รายการใบรับซื้อในหน้านี้ (ดูตาราง data[]) |
total |
number |
จำนวนเอกสารทั้งหมดที่ตรงเงื่อนไข |
total_page |
number |
จำนวนหน้าทั้งหมด |
sum_buy_grand_total |
number |
ยอดสุทธิรวมของเอกสารทั้งหมดที่ตรงเงื่อนไข รวมยอดปัดเศษ ไม่นับเอกสารที่ยกเลิก |
data[] (ใบรับซื้อ)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงของเอกสาร |
buy_code |
string |
เลขที่ใบรับซื้อ |
buy_date |
string |
วันที่เอกสาร (UTC) ใช้กรองด้วย start_date และ end_date |
buy_send_date |
string |
วันที่กำหนดส่งสินค้า (UTC) |
buy_status |
number |
สถานะเอกสาร (ดูตารางสถานะเอกสาร) |
buy_document_address |
string |
ที่อยู่สำหรับออกเอกสาร |
buy_receive_address |
string |
ที่อยู่สำหรับรับสินค้า |
buy_note |
string |
หมายเหตุของเอกสาร |
buy_order_list |
array |
รายการสินค้าในเอกสาร (ดูตาราง buy_order_list[]) |
buy_sub_total |
number |
ยอดรวมของทุกรายการ (ผลรวมของ sum) ก่อนหักส่วนลดท้ายบิล |
buy_trade_discount |
number |
ส่วนลดท้ายบิล (จำนวนเงิน) |
buy_grand_total |
number |
ยอดสุทธิของเอกสาร หลังหักส่วนลดท้ายบิล รวมภาษีและค่าคอมมิชชัน ยังไม่รวมยอดปัดเศษ |
rounding_amount |
number |
ยอดปัดเศษของเอกสาร ยอดที่ต้องชำระจริง = buy_grand_total + rounding_amount |
buy_tax_percent |
number |
อัตราภาษีมูลค่าเพิ่ม (%) |
buy_product_price_including_vat |
boolean |
true = ราคาสินค้าในเอกสารรวมภาษีมูลค่าเพิ่มแล้ว |
register_vat |
boolean |
true = ร้านจดทะเบียนภาษีมูลค่าเพิ่ม ณ เวลาที่สร้างเอกสาร |
buy_commission_type |
number |
ประเภทค่าคอมมิชชัน 1 = บาท, 2 = เปอร์เซ็นต์ |
buy_commission_rate |
number |
อัตราค่าคอมมิชชันตามประเภทที่ระบุ |
buy_total_commission |
number |
ค่าคอมมิชชันรวม (จำนวนเงิน) |
vendor_detail |
object |
ข้อมูลผู้จำหน่าย (ดูตาราง vendor_detail) |
vendor_info |
object |
ข้อมูลผู้นำส่งสินค้า มีเฉพาะเอกสารที่บันทึกข้อมูลนี้ (ดูตาราง vendor_info) |
buy_responsible_person_detail |
object |
พนักงานผู้รับผิดชอบเอกสาร (ดูตาราง buy_responsible_person_detail) |
buy_order_status_history |
array |
ประวัติการเปลี่ยนสถานะเอกสาร (ดูตาราง buy_order_status_history[]) |
currency |
object |
สกุลเงินของเอกสาร ได้แก่ code (เช่น THB), name, symbol, symbol_position, decimal_places |
created_at |
string |
วันเวลาที่สร้างเอกสาร (UTC) |
updated_at |
string |
วันเวลาที่แก้ไขเอกสารล่าสุด (UTC) |
*_rounding_rule, *_rounding_rule_value |
number |
ค่าตั้งค่าการปัดเศษที่ใช้ตอนสร้างเอกสาร ใช้สำหรับอ้างอิงเท่านั้น |
สถานะเอกสาร (buy_status)
| ค่า |
ความหมาย |
| 1 |
รออนุมัติ |
| 2 |
อนุมัติแล้ว |
| 3 |
ได้รับสินค้าแล้ว และนำสินค้าเข้าสต็อกแล้ว |
| 4 |
ยกเลิก |
buy_order_list[] (รายการสินค้า)
แต่ละรายการเป็นข้อมูลสินค้า ณ เวลาที่สร้างเอกสาร จึงอาจมี field อื่นของสินค้าติดมาด้วย ให้ใช้ field ตามตารางนี้เป็นหลัก
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงสินค้า |
code |
string |
รหัสสินค้า |
name |
string |
ชื่อสินค้า |
unit |
object |
หน่วยนับ ประกอบด้วย _id และ name |
stock |
number |
จำนวนที่รับซื้อในเอกสารนี้ (ไม่ใช่ยอดคงเหลือในสต็อก) |
cost |
number |
ราคาทุนต่อหน่วย |
cost_discount_price |
number |
ส่วนลดของรายการนี้ (จำนวนเงิน) |
total_price_exclude_discount |
number |
ราคารวมของรายการก่อนหักส่วนลด (cost × stock) |
total_price_include_discount |
number |
ราคารวมของรายการหลังหักส่วนลดของรายการ |
rounding_amount |
number |
ยอดปัดเศษของรายการ |
sum |
number |
ยอดสุทธิของรายการ |
actual_cost |
number |
ต้นทุนจริงต่อหน่วย หลังเฉลี่ยส่วนลดท้ายบิลและปรับตามภาษีมูลค่าเพิ่ม |
price |
number |
ราคาขายของสินค้า ณ เวลาที่สร้างเอกสาร |
exclude_vat |
boolean |
true = สินค้าได้รับการยกเว้นภาษีมูลค่าเพิ่ม |
attribute_status |
boolean |
true = เป็นสินค้าแบบมีตัวเลือก (SKU) |
sku_list |
array |
ตัวเลือกสินค้าที่รับซื้อ ใช้เมื่อ attribute_status = true แต่ละรายการมี _id, sku (รหัส SKU), options (ตัวเลือก), stock (จำนวนที่รับซื้อ) และ cost (ราคาทุนต่อหน่วย) |
vendor_detail (ผู้จำหน่าย)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงผู้จำหน่าย |
code |
string |
รหัสผู้จำหน่าย |
company_name |
string |
ชื่อบริษัทหรือชื่อผู้จำหน่าย |
branch |
string |
สาขา |
tax_id |
string |
เลขประจำตัวผู้เสียภาษี |
phonenumber |
string |
เบอร์โทรศัพท์ |
email |
string |
อีเมลผู้ติดต่อ |
address |
string |
ที่อยู่ |
zipcode |
string |
รหัสไปรษณีย์ |
country, province, district, sub_district |
object |
ประเทศ จังหวัด อำเภอหรือเขต และตำบลหรือแขวง แต่ละรายการมีชื่อภาษาไทยและภาษาอังกฤษ |
vendor_info (ผู้นำส่งสินค้า)
| Field |
Type |
คำอธิบาย |
name |
string |
ชื่อผู้นำส่งสินค้า |
phonenumber |
string |
เบอร์โทรศัพท์ |
plate_number |
string |
ทะเบียนรถ |
check_in, check_out |
string |
เวลาเข้าและเวลาออก |
id_card_attachment, file_attachment |
array |
ไฟล์แนบบัตรประชาชน และไฟล์แนบอื่น |
signature_attachment |
object |
ไฟล์ลายเซ็น |
buy_responsible_person_detail (พนักงานผู้รับผิดชอบ)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงพนักงาน |
code |
string |
รหัสพนักงาน |
username |
string |
ชื่อผู้ใช้สำหรับเข้าสู่ระบบ |
firstname, lastname |
string |
ชื่อและนามสกุลพนักงาน |
buy_order_status_history[] (ประวัติสถานะ)
| Field |
Type |
คำอธิบาย |
status |
number |
สถานะที่เปลี่ยน 0 = สร้างเอกสาร ค่าอื่นตามตารางสถานะเอกสาร |
note |
string |
หมายเหตุ เช่น เหตุผลการยกเลิก |
update_by |
string |
ชื่อผู้ดำเนินการ |
date |
string |
วันเวลาที่เปลี่ยนสถานะ (UTC) |
Member (สมาชิก)
ใช้ดึงข้อมูลสมาชิกของร้าน ทุก API ในหัวข้อนี้ตอบกลับ data เป็น array ของสมาชิก หากไม่พบข้อมูลจะได้ array ว่าง
| Method |
Path |
คำอธิบาย |
| GET |
/member |
รายชื่อสมาชิกแบบแบ่งหน้า |
| GET |
/member/id/{id} |
ค้นหาสมาชิกจากรหัสอ้างอิง |
| GET |
/member/code/{code} |
ค้นหาสมาชิกจากรหัสสมาชิก |
| GET |
/member/find/phonenumber/{phonenumber} |
ค้นหาสมาชิกจากเบอร์โทรศัพท์ |
| GET |
/member/search/{keyword} |
ค้นหาสมาชิกจากคำค้น |
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS (ใช้กับทุก API ในหัวข้อนี้) |
GET /member
GET https://go.pospos.co/developer/api/member
Query Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
page |
number |
ไม่ |
หน้าที่ต้องการ เริ่มต้นที่ 1 |
limit |
number |
ไม่ |
จำนวนรายการต่อหน้า |
หมายเหตุ
- ต้องส่ง
page และ limit คู่กัน หากไม่ส่งจะได้สมาชิกทั้งหมดในครั้งเดียว
- ผลลัพธ์ไม่มีจำนวนรายการทั้งหมด (total) ให้เรียกหน้าถัดไปจนกว่า
data จะเป็น array ว่าง
- ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกด้วยพารามิเตอร์เดิมภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/member?page=1&limit=50' \
--header 'apikey: {YOUR_API_KEY}'
GET /member/id/{id}
GET https://go.pospos.co/developer/api/member/id/{id}
Path Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
id |
string |
ใช่ |
รหัสอ้างอิงสมาชิก (_id) ความยาว 24 ตัวอักษร หากรูปแบบไม่ถูกต้องจะได้ HTTP 400 |
GET /member/code/{code}
GET https://go.pospos.co/developer/api/member/code/{code}
Path Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
code |
string |
ใช่ |
รหัสสมาชิก เช่น M000018 ต้องตรงกันทั้งหมด |
GET /member/find/phonenumber/{phonenumber}
GET https://go.pospos.co/developer/api/member/find/phonenumber/{phonenumber}
Path Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
phonenumber |
string |
ใช่ |
เบอร์โทรศัพท์ เช่น 0812345678 ต้องตรงกับที่บันทึกไว้ทั้งหมด |
GET /member/search/{keyword}
GET https://go.pospos.co/developer/api/member/search/{keyword}
Path Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
keyword |
string |
ใช่ |
คำค้น ค้นแบบบางส่วนของคำ ไม่แยกตัวพิมพ์เล็กและพิมพ์ใหญ่ จากชื่อ นามสกุล เบอร์โทรศัพท์ และรหัสสมาชิก |
หมายเหตุ
- ตอบกลับทุกรายการที่ตรงกับคำค้น ไม่มีการแบ่งหน้า
- ภาษาไทยต้องเข้ารหัส URL (URL encode) ก่อนส่ง และควรใช้เฉพาะตัวอักษรและตัวเลข เนื่องจากอักขระพิเศษ เช่น
( ) + * ? อาจทำให้ผลการค้นหาไม่ถูกต้อง
ตัวอย่าง Response (ใช้ร่วมกันทุก API ในหัวข้อนี้)
ตัวอย่างนี้แสดงเฉพาะ field หลัก ข้อมูลจริงอาจมี field อื่นเพิ่มเติม
{
"success": 1,
"data": [
{
"_id": "5e3a49151e4c10724fc1cdcc",
"code": "M000018",
"firstname": "สมหญิง",
"lastname": "ใจดี",
"nickname": "หญิง",
"sex": "female",
"date_of_birth": "1990-05-14T17:00:00.000Z",
"phonenumber": "0812345678",
"email": "member@example.com",
"line_id": "somying",
"key_card_id": "10001",
"type": { "_id": "5bd6c8ede1a437580790850f", "name_th": "สมาชิก", "name_en": "member" },
"tags": [ { "_id": "6aab8a55d1a12b1ee2ad8ab9", "name": "VVIP" } ],
"favorite": false,
"point_value": 120,
"price_level": "0",
"member_credit_status": true,
"member_credit": 30,
"payment_limit": 20000,
"nationality_type": 1,
"id_card": "",
"address_status": true,
"address": "99 ถนนตัวอย่าง",
"country": { "_id": "5a8e9be55e843e9239e91b76", "COUNTRY_NAME_TH": "ไทย", "COUNTRY_NAME_EN": "Thailand" },
"province": { "_id": "5a8ea7c75e843e9239e92354", "PROVINCE_NAME_TH": "กรุงเทพมหานคร", "PROVINCE_NAME_EN": "Bangkok" },
"district": { "_id": "5a8fbe5e739a6560bf7a1d21", "DISTRICT_NAME_TH": "เขตทวีวัฒนา", "DISTRICT_NAME_EN": "Thawi Watthana" },
"sub_district": { "_id": "65c3441a663032ccdb8667d7", "SUB_DISTRICT_NAME_TH": "แขวงทวีวัฒนา", "SUB_DISTRICT_NAME_EN": "Thawi Watthana", "ZIP_CODE": "10170" },
"zipcode": "10170",
"status": false,
"storename": "",
"taxid": "",
"branch": "00000",
"created_at": "2026-10-01T03:00:00.000Z",
"updated_at": "2026-10-20T08:30:00.000Z"
}
]
}
Response Fields
| Field |
Type |
คำอธิบาย |
success |
number |
1 = สำเร็จ |
data |
array |
รายการสมาชิก (ดูตาราง data[]) หากไม่พบข้อมูลจะเป็น array ว่าง |
data[] (สมาชิก)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงสมาชิก |
code |
string |
รหัสสมาชิก |
firstname, lastname |
string |
ชื่อและนามสกุล |
nickname |
string |
ชื่อเล่น |
sex |
string |
เพศ male = ชาย, female = หญิง, no_gender = ไม่ระบุ |
date_of_birth |
string |
วันเกิด (UTC) |
phonenumber |
string |
เบอร์โทรศัพท์ |
email |
string |
อีเมล |
line_id |
string |
LINE ID |
key_card_id |
string |
รหัสบัตรสมาชิก |
type |
object |
ประเภทสมาชิก ประกอบด้วย _id, name_th และ name_en |
tags |
array |
แท็กของสมาชิก แต่ละรายการมี _id และ name |
favorite |
boolean |
true = สมาชิกที่ติดดาว |
point_value |
number |
แต้มสะสมคงเหลือที่ยังไม่หมดอายุ |
price_level |
string |
ระดับราคาของสมาชิก "0" = ราคาปกติ ค่าอื่นคือรหัสอ้างอิงระดับราคาที่ร้านตั้งไว้ |
member_credit_status |
boolean |
true = เปิดใช้งานการขายเชื่อ (เครดิต) ให้สมาชิกนี้ |
member_credit |
number |
จำนวนวันเครดิต |
payment_limit |
number |
วงเงินเครดิต (0 = ไม่จำกัด) |
nationality_type |
number |
สัญชาติ 1 = ไทย, 2 = ต่างชาติ |
id_card |
string |
เลขบัตรประชาชน |
passport_no |
string |
เลขหนังสือเดินทาง (สมาชิกต่างชาติ) |
personal_tax_id |
string |
เลขประจำตัวผู้เสียภาษีของบุคคล |
address_status |
boolean |
true = มีข้อมูลที่อยู่ในการติดต่อ |
address |
string |
ที่อยู่ |
country, province, district, sub_district |
object |
ประเทศ จังหวัด อำเภอหรือเขต และตำบลหรือแขวง แต่ละรายการมีชื่อภาษาไทยและภาษาอังกฤษ |
province_other |
string |
จังหวัดหรือรัฐ กรณีที่อยู่ต่างประเทศ |
zipcode |
string |
รหัสไปรษณีย์ |
status |
boolean |
true = สมาชิกเป็นนิติบุคคล (ใช้ข้อมูลบริษัทในการออกเอกสาร) |
storename |
string |
ชื่อบริษัท (กรณีนิติบุคคล) |
taxid |
string |
เลขประจำตัวผู้เสียภาษีของนิติบุคคล |
branch |
string |
สาขาของนิติบุคคล 00000 = สำนักงานใหญ่ |
company_* |
- |
ข้อมูลติดต่อและที่อยู่ของนิติบุคคล ได้แก่ company_email, company_phonenumber, company_address, company_country, company_province, company_district, company_sub_district, company_province_other, company_zipcode |
is_natural_person_default |
boolean |
true = ใช้ข้อมูลบุคคลธรรมดาเป็นค่าเริ่มต้นในการออกเอกสาร |
created_at, updated_at |
string |
วันเวลาที่สร้างและแก้ไขล่าสุด (UTC) สมาชิกที่สร้างไว้นานแล้วอาจมี create_date แทน created_at |
Vendor (ผู้จำหน่าย)
ใช้ดึงรายชื่อผู้จำหน่าย (Vendor) ของร้านแบบแบ่งหน้า
GET /vendor
GET https://go.pospos.co/developer/api/vendor
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
Query Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
page |
number |
ใช่ |
หน้าที่ต้องการ เริ่มต้นที่ 1 |
limit |
number |
ใช่ |
จำนวนรายการต่อหน้า ค่าที่รับได้ 1 ถึง 100 |
term |
string |
ไม่ |
ค้นหาจากรหัสผู้จำหน่าย (code) ชื่อบริษัท (company_name) และเบอร์โทรศัพท์ (phonenumber) แบบบางส่วนของคำ ไม่แยกตัวพิมพ์เล็กและพิมพ์ใหญ่ |
หมายเหตุ
- คำค้นภาษาไทยต้องเข้ารหัส URL (URL encode) ก่อนส่ง อักขระพิเศษ เช่น ( ) จะถูกค้นหาตามตัวอักษรนั้นตรงๆ
- ไม่ได้กำหนดการเรียงลำดับ โดยทั่วไปผลลัพธ์จะเรียงตามลำดับที่สร้างผู้จำหน่าย (เก่าไปใหม่)
- ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกด้วยพารามิเตอร์เดิมภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/vendor?page=1&limit=10&term=V0000' \
--header 'apikey: {YOUR_API_KEY}'
ตัวอย่าง Response
ตัวอย่างนี้เป็นผู้จำหน่ายที่กรอกข้อมูลครบ field ที่ร้านไม่ได้กรอกไว้อาจไม่มีใน Response หรือมีค่าเป็น null และ object ที่อยู่อาจมี field อื่นเพิ่มเติม
{
"success": 1,
"data": [
{
"_id": "6909ddc457f31a761f645cef",
"id": "6909ddc457f31a761f645cef",
"code": "V000005",
"company_name": "บริษัท ตัวอย่าง จำกัด",
"branch": "00000",
"tax_id": "0105500000000",
"phonenumber": "021234567",
"company_email": "contact@example.com",
"company_line": "@example",
"company_fax": "021234568",
"address": "99 ถนนตัวอย่าง",
"country": {
"_id": "5a8e9be55e843e9239e91b76",
"COUNTRY_NAME_TH": "ไทย",
"COUNTRY_NAME_EN": "Thailand",
"ABBREVIATION": "TH"
},
"province": {
"_id": "5a8ea7c75e843e9239e92354",
"PROVINCE_NAME_TH": "กรุงเทพมหานคร",
"PROVINCE_NAME_EN": "Bangkok"
},
"district": {
"_id": "5a8fbe5e739a6560bf7a1d17",
"DISTRICT_NAME_TH": "เขตบางคอแหลม",
"DISTRICT_NAME_EN": "Bang Kho Laem"
},
"sub_district": {
"_id": "65c3441a663032ccdb8667ab",
"SUB_DISTRICT_NAME_TH": "แขวงบางโคล่",
"SUB_DISTRICT_NAME_EN": "Bang Khlo",
"ZIP_CODE": "10120"
},
"province_other": "",
"zipcode": "10120",
"first_name": "สมศักดิ์",
"last_name": "ส่งของ",
"email": "somsak@example.com",
"contact_person_phonenumber": "0812345678",
"contact_person_line": "somsak",
"vendor_credit_status": true,
"vendor_credit": 30,
"price_level_status": true,
"price_level_id": "64f0c2a1b5e3a2001234abcd",
"price_level": {
"_id": "64f0c2a1b5e3a2001234abcd",
"name": "ราคาส่ง",
"index": 1
}
}
],
"total": 7,
"total_page": 1
}
Response Fields
| Field |
Type |
คำอธิบาย |
success |
number |
1 = สำเร็จ |
data |
array |
รายการผู้จำหน่ายในหน้านี้ (ดูตาราง data[]) |
total |
number |
จำนวนผู้จำหน่ายทั้งหมดที่ตรงเงื่อนไข |
total_page |
number |
จำนวนหน้าทั้งหมด |
data[] (ผู้จำหน่าย)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงผู้จำหน่าย |
id |
string |
ค่าเดียวกับ _id |
code |
string |
รหัสผู้จำหน่าย |
company_name |
string |
ชื่อบริษัทหรือชื่อผู้จำหน่าย |
branch |
string |
สาขา 00000 = สำนักงานใหญ่ |
tax_id |
string |
เลขประจำตัวผู้เสียภาษี |
phonenumber |
string |
เบอร์โทรศัพท์บริษัท |
company_email |
string |
อีเมลบริษัท |
company_line |
string |
LINE ID ของบริษัท |
company_fax |
string |
เบอร์แฟกซ์ |
address |
string |
ที่อยู่ |
country, province, district, sub_district |
object |
ประเทศ จังหวัด อำเภอหรือเขต และตำบลหรือแขวง แต่ละรายการมีชื่อภาษาไทยและภาษาอังกฤษ |
province_other |
string |
จังหวัดหรือรัฐ กรณีที่อยู่ต่างประเทศ |
zipcode |
string |
รหัสไปรษณีย์ |
first_name, last_name |
string |
ชื่อและนามสกุลผู้ติดต่อ |
email |
string |
อีเมลผู้ติดต่อ |
contact_person_phonenumber |
string |
เบอร์โทรศัพท์ผู้ติดต่อ |
contact_person_line |
string |
LINE ID ของผู้ติดต่อ |
vendor_credit_status |
boolean |
true = ร้านได้รับเครดิตจากผู้จำหน่ายรายนี้ |
vendor_credit |
number |
จำนวนวันเครดิต ใช้เมื่อ vendor_credit_status = true |
price_level_status |
boolean |
true = กำหนดระดับราคาซื้อให้ผู้จำหน่ายรายนี้ เมื่อสั่งซื้อหรือรับซื้อจากผู้จำหน่ายรายนี้ ระบบจะใช้ราคาทุนตามระดับราคานี้กับสินค้าที่ตั้งราคาซื้อตามระดับราคาไว้ |
price_level_id |
string |
รหัสอ้างอิงระดับราคา |
price_level |
object |
ระดับราคาที่กำหนด ประกอบด้วย _id, name (ชื่อระดับราคา) และ index (ลำดับ) เป็น null หากไม่ได้กำหนด |
Purchase Order (ใบสั่งซื้อ)
ใช้ดึงรายการใบสั่งซื้อสินค้าจากผู้จำหน่าย (Vendor) ของร้าน ตามช่วงวันเวลาที่สร้างเอกสาร
GET /purchase-order
GET https://go.pospos.co/developer/api/purchase-order
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
Query Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
page |
number |
ใช่ |
หน้าที่ต้องการ เริ่มต้นที่ 1 |
limit |
number |
ใช่ |
จำนวนรายการต่อหน้า ค่าที่รับได้ 1 ถึง 1000 |
start |
string (ISO 8601) |
ใช่ |
วันเวลาเริ่มต้นของช่วงเวลาที่สร้างเอกสาร (create_date) |
end |
string (ISO 8601) |
ใช่ |
วันเวลาสิ้นสุดของช่วงเวลาที่สร้างเอกสาร ต้องห่างจาก start ไม่เกิน 2 วัน |
term |
string |
ไม่ |
ค้นหาจากเลขที่ใบสั่งซื้อ (po_code) รหัสผู้จำหน่าย และชื่อบริษัทของผู้จำหน่าย แบบบางส่วนของคำ ไม่แยกตัวพิมพ์เล็กและพิมพ์ใหญ่ |
หมายเหตุ
- ช่วงวันที่ใช้กรองจากวันเวลาที่สร้างเอกสาร (
create_date) ไม่ใช่วันที่ออกเอกสาร (po_date)
- ผลลัพธ์รวมเอกสารทุกสถานะ (รวมเอกสารที่ยกเลิก) ไม่ได้กำหนดการเรียงลำดับ โดยทั่วไปจะเรียงตามลำดับที่สร้างเอกสาร (เก่าไปใหม่)
- ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกด้วยพารามิเตอร์เดิมภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/purchase-order?page=1&limit=10&start=2026-10-19T00:00:00%2B07:00&end=2026-10-20T23:59:59%2B07:00' \
--header 'apikey: {YOUR_API_KEY}'
ตัวอย่าง Response
{
"success": 1,
"total": 1,
"total_page": 1,
"data": [
{
"_id": "6ad6e264979747f19fd1252c",
"po_code": "690006",
"po_date": "2026-10-20T03:39:11.033Z",
"po_send_date": "2026-10-25T03:00:00.000Z",
"po_end_date": null,
"po_credit": 30,
"status": 1,
"payment_status": false,
"po_document_address": "99 ถนนตัวอย่าง แขวงตัวอย่าง เขตตัวอย่าง กรุงเทพมหานคร 10110",
"po_receive_address": "99 ถนนตัวอย่าง แขวงตัวอย่าง เขตตัวอย่าง กรุงเทพมหานคร 10110",
"po_note": null,
"po_order_list": [
{
"_id": "5bc58f89a1099d01ae3de3b3",
"code": "0001",
"name": "น้ำดื่ม 600 มล.",
"image": "product_5bc58f89a1099d01ae3de3b3.jpeg",
"category": { "_id": "5d6dbddff692072970618223", "name": "เครื่องดื่ม", "sort_index": 1 },
"unit": { "_id": "5aaa2ab70fedd20c21891904", "name": "แพ็ก" },
"stock": 10,
"cost": 10,
"cost_discount_price": 0,
"sum": 100,
"price": 15,
"discount_type": 1,
"discount_status": false,
"sku_list": []
},
{
"_id": "61af1ea7e48af351cb200f9e",
"code": "0002",
"name": "กาแฟ 3in1",
"image": "1641525909534_0209d771cb61411f80290b3df50bc828.jpg",
"category": { "_id": "5d6dbddff692072970618223", "name": "เครื่องดื่ม", "sort_index": 1 },
"unit": { "_id": "5aaa2ab70fedd20c21891904", "name": "แพ็ก" },
"stock": 10,
"cost": 25.3,
"cost_discount_price": 0,
"sum": 253,
"price": 35,
"discount_type": 1,
"discount_status": false,
"sku_list": []
}
],
"po_sub_total": 353,
"po_trade_discount": 0,
"po_vat": 7,
"po_grand_total": 377.71,
"po_product_price_including_vat": false,
"register_vat": true,
"po_responsible_person_detail": {
"firstname": "สมชาย",
"lastname": "ใจดี"
},
"po_order_status_history": [],
"create_date": "2026-10-20T03:39:16.887Z"
}
]
}
Response Fields
| Field |
Type |
คำอธิบาย |
success |
number |
1 = สำเร็จ |
total |
number |
จำนวนเอกสารทั้งหมดที่ตรงเงื่อนไข |
total_page |
number |
จำนวนหน้าทั้งหมด |
data |
array |
รายการใบสั่งซื้อในหน้านี้ (ดูตาราง data[]) |
data[] (ใบสั่งซื้อ)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงของเอกสาร |
po_code |
string |
เลขที่ใบสั่งซื้อ |
po_date |
string |
วันที่ออกเอกสาร (UTC) |
po_send_date |
string |
วันที่กำหนดส่งสินค้า (UTC) เป็น null หากไม่ได้ระบุ |
po_end_date |
string |
วันที่สิ้นสุดของเอกสาร (UTC) เป็น null หากไม่ได้ระบุ |
po_credit |
number |
จำนวนวันเครดิต เป็น null หากไม่ได้ระบุ |
status |
number |
สถานะเอกสาร (ดูตารางสถานะเอกสาร) |
payment_status |
boolean |
true = ชำระเงินให้ผู้จำหน่ายแล้ว |
po_document_address |
string |
ที่อยู่สำหรับออกเอกสาร |
po_receive_address |
string |
ที่อยู่สำหรับรับสินค้า |
po_note |
string |
หมายเหตุของเอกสาร |
po_order_list |
array |
รายการสินค้าในเอกสาร (ดูตาราง po_order_list[]) |
po_sub_total |
number |
ยอดรวมของทุกรายการ (ผลรวมของ sum) ก่อนหักส่วนลดท้ายบิล |
po_trade_discount |
number |
ส่วนลดท้ายบิล (จำนวนเงิน) |
po_vat |
number |
อัตราภาษีมูลค่าเพิ่ม (%) เช่น 7 |
po_grand_total |
number |
ยอดสุทธิของเอกสาร หลังหักส่วนลดท้ายบิลและรวมภาษีมูลค่าเพิ่มแล้ว |
po_product_price_including_vat |
boolean |
true = ราคาสินค้าในเอกสารรวมภาษีมูลค่าเพิ่มแล้ว |
register_vat |
boolean |
true = ร้านจดทะเบียนภาษีมูลค่าเพิ่ม ณ เวลาที่สร้างเอกสาร |
po_responsible_person_detail |
object |
พนักงานผู้รับผิดชอบเอกสาร ประกอบด้วย firstname และ lastname |
po_order_status_history |
array |
ประวัติการเปลี่ยนสถานะเอกสาร อาจเป็น array ว่าง (ดูตาราง po_order_status_history[]) |
create_date |
string |
วันเวลาที่สร้างเอกสาร (UTC) ใช้กรองด้วย start และ end |
สถานะเอกสาร (status)
| ค่า |
ความหมาย |
| 1 |
รออนุมัติ |
| 2 |
อนุมัติแล้ว |
| 3 |
ได้รับสินค้าแล้ว และนำสินค้าเข้าสต็อกแล้ว |
| 4 |
ยกเลิก |
po_order_list[] (รายการสินค้า)
แต่ละรายการเป็นข้อมูลสินค้า ณ เวลาที่สร้างเอกสาร
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงสินค้า |
code |
string |
รหัสสินค้า |
name |
string |
ชื่อสินค้า |
image |
string |
ชื่อไฟล์รูปภาพสินค้า |
category |
object |
หมวดหมู่สินค้า ประกอบด้วย _id, name และ sort_index (ลำดับการแสดงผล) |
unit |
object |
หน่วยนับ ประกอบด้วย _id และ name |
stock |
number |
จำนวนที่สั่งซื้อในเอกสารนี้ (ไม่ใช่ยอดคงเหลือในสต็อก) |
cost |
number |
ราคาทุนต่อหน่วย |
cost_discount_price |
number |
ส่วนลดของรายการนี้ (จำนวนเงิน) |
sum |
number |
ยอดสุทธิของรายการ (cost × stock − cost_discount_price) |
price |
number |
ราคาขายของสินค้า ณ เวลาที่สร้างเอกสาร |
discount_type, discount_status |
- |
ค่าตั้งค่าส่วนลดที่ติดมากับข้อมูลสินค้า ใช้สำหรับอ้างอิงเท่านั้น ส่วนลดของรายการให้ใช้ cost_discount_price |
sku_list |
array |
ตัวเลือกสินค้าที่สั่งซื้อ สำหรับสินค้าแบบมีตัวเลือก (SKU) แต่ละรายการมี _id, sku (รหัส SKU), options (ตัวเลือก), stock (จำนวนที่สั่งซื้อ) และ cost (ราคาทุนต่อหน่วย) เป็น array ว่างสำหรับสินค้าทั่วไป |
po_order_status_history[] (ประวัติสถานะ)
| Field |
Type |
คำอธิบาย |
status |
number |
สถานะที่เปลี่ยน ตามตารางสถานะเอกสาร |
note |
string |
หมายเหตุ เช่น เหตุผลการยกเลิก |
update_by |
string |
ชื่อผู้ดำเนินการ |
date |
string |
วันเวลาที่เปลี่ยนสถานะ (UTC) |
Category (หมวดหมู่สินค้า)
ใช้ดึงหมวดหมู่สินค้าของร้าน ทุก API ในหัวข้อนี้ตอบกลับ data เป็น array ของหมวดหมู่
| Method |
Path |
คำอธิบาย |
| GET |
/category |
หมวดหมู่สินค้าทั้งหมด |
| GET |
/category/topping |
หมวดหมู่ท็อปปิ้ง |
| GET |
/category/{id} |
หมวดหมู่จากรหัสอ้างอิง |
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
GET /category
GET https://go.pospos.co/developer/api/category
ตอบกลับหมวดหมู่สินค้าทั้งหมดของร้าน ไม่รวมหมวดหมู่วัตถุดิบ และไม่รวมหมวดหมู่ท็อปปิ้ง เว้นแต่ส่ง with_topping=true เรียงตามลำดับที่ร้านจัดไว้ (sort_index) หรือตามชื่อ ขึ้นอยู่กับการตั้งค่าการเรียงหมวดหมู่ของร้าน
Query Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
with_topping |
boolean |
ไม่ |
true = รวมหมวดหมู่ท็อปปิ้งในผลลัพธ์ด้วย หากไม่ระบุหรือส่งค่าอื่นจะไม่รวม |
หมายเหตุ ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกด้วยพารามิเตอร์เดิมภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
GET /category/topping
GET https://go.pospos.co/developer/api/category/topping
ไม่มีพารามิเตอร์ ตอบกลับเฉพาะหมวดหมู่ท็อปปิ้ง (ตัวเลือกเสริมของสินค้า เช่น ขนาด ระดับความหวาน) เรียงแบบเดียวกับ GET /category
หมายเหตุ ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกซ้ำภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
GET /category/{id}
GET https://go.pospos.co/developer/api/category/{id}
Path Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
id |
string |
ใช่ |
รหัสอ้างอิงหมวดหมู่ (_id) ความยาว 24 ตัวอักษร |
หมายเหตุ
- ตอบกลับ
data เป็น array 1 รายการ
- หากไม่พบหมวดหมู่ได้ HTTP 404 หมวดหมู่ท็อปปิ้งและหมวดหมู่วัตถุดิบค้นหาด้วย API นี้ไม่ได้
- หาก
id ไม่อยู่ในรูปแบบรหัสอ้างอิงได้ HTTP 400
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/category' \
--header 'apikey: {YOUR_API_KEY}'
ตัวอย่าง Response (ใช้ร่วมกันทุก API ในหัวข้อนี้)
{
"success": 1,
"data": [
{
"_id": "66398f3f5da21856a38c1d93",
"name": "เครื่องดื่ม",
"sort_index": 0,
"type": "normal",
"color_code": "#FFFFFF",
"status_topping": false,
"status_raw_material": false,
"is_exempt_from_weighting": false
},
{
"_id": "673aae9db80f3f21ccfa579c",
"name": "กาแฟ",
"parent_id": "66398f3f5da21856a38c1d93",
"sort_index": 1,
"status_topping": false,
"status_raw_material": false
}
]
}
ตัวอย่างหมวดหมู่ท็อปปิ้งจาก GET /category/topping
{
"_id": "5f76e5420c78b64f2e9b2619",
"name": "ขนาด",
"sort_index": 1,
"status_topping": true,
"required_select_topping": true,
"select_multiple_topping": false,
"minimum_topping": 1,
"maximum_topping": 1,
"status_raw_material": false
}
data[] (หมวดหมู่)
field ที่ร้านไม่ได้ตั้งค่าไว้อาจไม่มีใน Response
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงหมวดหมู่ |
name |
string |
ชื่อหมวดหมู่ |
sort_index |
number |
ลำดับการแสดงผล |
parent_id |
string |
รหัสอ้างอิงหมวดหมู่หลัก มีเฉพาะหมวดหมู่ย่อย |
type |
string |
ประเภทหมวดหมู่ (ดูตารางประเภทหมวดหมู่) หากไม่มีค่าให้ถือเป็น normal |
color_code |
string |
สีของหมวดหมู่ (รหัสสี HEX) |
status_topping |
boolean |
true = หมวดหมู่ท็อปปิ้ง |
status_raw_material |
boolean |
true = หมวดหมู่วัตถุดิบ |
is_exempt_from_weighting |
boolean |
true = ยกเว้นจากการชั่งน้ำหนัก |
required_select_topping |
boolean |
หมวดหมู่ท็อปปิ้ง: true = ต้องเลือกท็อปปิ้งในหมวดนี้ทุกครั้ง |
select_multiple_topping |
boolean |
หมวดหมู่ท็อปปิ้ง: true = เลือกได้หลายรายการ |
minimum_topping, maximum_topping |
number |
หมวดหมู่ท็อปปิ้ง: จำนวนขั้นต่ำและจำนวนสูงสุดที่เลือกได้ |
ประเภทหมวดหมู่ (type)
| ค่า |
ความหมาย |
normal |
ทั่วไป แสดงหมวดหมู่และสินค้าในหมวดหมู่ทุกที่ |
hidden_in_sell_shop |
ซ่อนหมวดหมู่และสินค้าในหมวดหมู่จากหน้าขาย |
hidden_in_buy_shop |
ซ่อนหมวดหมู่และสินค้าในหมวดหมู่จากหน้ารับซื้อ |
internal |
ภายใน ซ่อนจากทั้งหน้าขายและหน้ารับซื้อ |
Credit (ขายเชื่อ)
ใช้ดึงรายการขายเชื่อ (ค้างชำระ) ของร้าน พร้อมยอดรวมและสถานะการครบกำหนดชำระ
GET /credit
GET https://go.pospos.co/developer/api/credit
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
Query Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
page |
number |
ไม่ |
หน้าที่ต้องการ ค่าเริ่มต้น 1 |
limit |
number |
ไม่ |
จำนวนรายการต่อหน้า ค่าที่รับได้ 1 ถึง 1000 ค่าเริ่มต้น 10 |
status |
string |
ไม่ |
paid = ชำระครบแล้ว, unpaid หรือไม่ระบุ = ค้างชำระ |
period |
string |
ไม่ |
IN_OF_PERIOD = ยังไม่เลยกำหนดชำระ, OUT_OF_PERIOD = เลยกำหนดชำระแล้ว, ไม่ระบุ = ทั้งหมด |
type |
string |
ไม่ |
ช่วงวันที่สร้างรายการ daily = วันนี้, weekly = 7 วันล่าสุด, monthly = 1 เดือนล่าสุด, custom = ตามช่วงวันที่ start และ end, ไม่ระบุ = ทั้งหมด |
start |
string |
ไม่ |
วันที่เริ่มต้น ใช้เมื่อ type=custom เช่น 2026-10-27 |
end |
string |
ไม่ |
วันที่สิ้นสุด ใช้เมื่อ type=custom ต้องไม่อยู่ก่อน start และห่างจาก start ไม่เกิน 2 วัน |
หมายเหตุ
- ระบบนับช่วงวันที่ตามเวลาประเทศไทย ตั้งแต่ 00:00 น. ของ
start ถึง 23:59:59 น. ของ end หากใช้ type=custom โดยไม่ส่ง start และ end จะได้รายการของวันนี้
- ไม่รวมรายการที่ยกเลิกแล้ว
- ไม่ได้กำหนดการเรียงลำดับของผลลัพธ์
- ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกด้วยพารามิเตอร์เดิมภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/credit?page=1&limit=10&status=unpaid&period=OUT_OF_PERIOD' \
--header 'apikey: {YOUR_API_KEY}'
ตัวอย่าง Response
{
"success": 1,
"data": [
{
"_id": "618e330983469472db251ebd",
"code": "0016",
"create": "2026-10-12T09:25:29.160Z",
"deadline_date": "2026-11-11T09:25:29.160Z",
"deadline_to_now": 12,
"in_of_period": true,
"paid": false,
"payment_date": "2026-10-12T09:25:29.160Z",
"cancel": false,
"create_from": 1,
"status": 1,
"member_detail": {
"_id": "5f1a2b3c4d5e6f7a8b9c0d1e",
"code": "M000070",
"firstname": "สมหญิง",
"lastname": "ใจดี"
},
"search_member_name": "สมหญิง ใจดี",
"transaction": {
"grand_total": 1500,
"rounding_amount": 0,
"installment_status": true,
"installment_balance": 500,
"reference_tax_invoice": { "code": "0016" }
}
}
],
"total": 287,
"total_page": 29,
"sum_grand_total": 183073.93,
"sum_installment_total": 1315.25,
"in_of_period_total": 41,
"out_of_period_total": 246
}
Response Fields
| Field |
Type |
คำอธิบาย |
success |
number |
1 = สำเร็จ |
data |
array |
รายการขายเชื่อในหน้านี้ (ดูตาราง data[]) |
total |
number |
จำนวนรายการทั้งหมดที่ตรงเงื่อนไข |
total_page |
number |
จำนวนหน้าทั้งหมด |
sum_grand_total |
number |
ผลรวม transaction.grand_total ของทุกรายการที่ตรงเงื่อนไข |
sum_installment_total |
number |
ผลรวมยอดที่ผ่อนชำระแล้ว (transaction.installment_balance) ของทุกรายการที่ตรงเงื่อนไข |
in_of_period_total |
number |
จำนวนรายการที่ยังไม่เลยกำหนดชำระ |
out_of_period_total |
number |
จำนวนรายการที่เลยกำหนดชำระแล้ว |
data[] (รายการขายเชื่อ)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงรายการขายเชื่อ |
code |
string |
เลขที่เอกสารขายเชื่อ |
create |
string |
วันเวลาที่สร้างรายการ (UTC) |
deadline_date |
string |
วันครบกำหนดชำระ (UTC) คำนวณจากวันที่สร้าง + จำนวนวันเครดิตของสมาชิก หากสมาชิกไม่มีวันเครดิต จะครบกำหนดสิ้นวันที่สร้างรายการ |
deadline_to_now |
number |
จำนวนวันจากวันนี้ถึงวันครบกำหนด ค่าติดลบ = เลยกำหนดมาแล้ว |
in_of_period |
boolean |
true = ยังไม่เลยกำหนดชำระ |
paid |
boolean |
true = ชำระครบแล้ว |
payment_date |
string |
วันเวลาที่ชำระครบ (UTC) ใช้เมื่อ paid = true |
cancel |
boolean |
สถานะยกเลิก API นี้ตอบกลับเฉพาะ false |
create_from |
number |
ที่มาของรายการ 1 = ขายเชื่อจากหน้าขาย, 2 = สร้างจากใบเสนอราคา |
status |
number |
ค่าภายในระบบ ไม่ต้องใช้งาน |
member_detail |
object |
สมาชิกผู้ซื้อ ประกอบด้วย _id (รหัสอ้างอิงสมาชิก), code, firstname และ lastname |
search_member_name |
string |
ชื่อและนามสกุลของสมาชิก |
transaction.grand_total |
number |
ยอดสุทธิของบิลขาย ยังไม่รวมยอดปัดเศษ |
transaction.rounding_amount |
number |
ยอดปัดเศษของบิล ยอดที่ต้องชำระ = grand_total + rounding_amount |
transaction.installment_status |
boolean |
true = มีการผ่อนชำระแล้วอย่างน้อย 1 งวด |
transaction.installment_balance |
number |
ยอดที่ผ่อนชำระไปแล้ว |
transaction.reference_tax_invoice, transaction.reference_quotation, transaction.reference_weight_receipt |
object |
เลขที่ใบกำกับภาษี ใบเสนอราคา และใบชั่งน้ำหนักที่อ้างอิง (field code) มีเฉพาะรายการที่มีเอกสารนั้น |
transaction.rounding_rule, transaction.rounding_rule_value |
number |
ค่าตั้งค่าการปัดเศษที่ใช้ตอนขาย ใช้สำหรับอ้างอิงเท่านั้น |
Report (รายการขาย)
ใช้ดึงรายการบิลขายของร้าน ตามช่วงวันที่ขาย
GET /transactions
GET https://go.pospos.co/developer/api/transactions
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
Query Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
page |
number |
ใช่ |
หน้าที่ต้องการ เริ่มต้นที่ 1 |
limit |
number |
ใช่ |
จำนวนรายการต่อหน้า ค่าที่รับได้ 1 ถึง 1000 |
start |
string |
ใช่ |
วันที่เริ่มต้น เช่น 2026-10-27 |
end |
string |
ใช่ |
วันที่สิ้นสุด ต้องห่างจาก start ไม่เกิน 2 วัน |
status |
string |
ไม่ |
all = ทั้งหมด (ค่าเริ่มต้น), success = บิลขายสำเร็จ, cancel = บิลที่ยกเลิก, discount = บิลที่มีส่วนลดท้ายบิล |
term |
string |
ไม่ |
ค้นหาแบบบางส่วนของคำ จากเลขที่เอกสารอ้างอิง (ใบกำกับภาษี ใบเสร็จรับเงิน ใบส่งของขายเชื่อ ใบเสนอราคา ใบชั่งน้ำหนัก ใบลดหนี้) เบอร์โทรศัพท์ ชื่อพนักงาน รหัสสมาชิก รหัสบัตรสมาชิก และเลขพัสดุ |
current_buyer |
boolean |
ไม่ |
true = แนบข้อมูลปัจจุบันของสมาชิกผู้ซื้อใน current_buyer_detail |
include |
string |
ไม่ |
installments = แนบรายการผ่อนชำระของแต่ละบิลใน installments |
หมายเหตุ
- ระบบนับช่วงวันที่ตามเวลาประเทศไทย ตั้งแต่ 00:00 น. ของ
start ถึง 23:59:59 น. ของ end หากไม่ระบุ start และ end ระบบจะใช้วันปัจจุบัน
- บิลที่ขายก่อนช่วงวันที่ แต่ถูกยกเลิกภายในช่วงวันที่ (ตาม
return_date) จะรวมอยู่ในผลลัพธ์ด้วย
- การค้นหาด้วย
term ไม่ค้นจากเลขที่บิล (code)
- ไม่ได้กำหนดการเรียงลำดับของผลลัพธ์
- ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกด้วยพารามิเตอร์เดิมภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/transactions?page=1&limit=200&start=2026-10-27&end=2026-10-28' \
--header 'apikey: {YOUR_API_KEY}'
ตัวอย่าง Response
ตัวอย่างนี้แสดงเฉพาะ field หลัก ข้อมูลจริงอาจมี field อื่นเพิ่มเติม
{
"success": 1,
"data": [
{
"_id": "6ae1bd9c715ebcf78627f7cf",
"code": "2495",
"timestamp": "2026-10-28T09:17:15.633Z",
"status": "success",
"return_date": "2026-10-28T09:17:15.634Z",
"comment": "",
"order_list": [
{
"code": "690499",
"name": "ชาเขียวมัทฉะลาเต้",
"stock": 1,
"price": 200,
"special_price": 200,
"discount_type": 1,
"cost_discount_price": 15,
"total_price_include_discount": 185,
"sku_list": [],
"note_in_order": ["หวานน้อย"]
},
{
"code": "690503",
"name": "เสื้อยืดคอกลม",
"stock": 1,
"price": 500,
"special_price": 500,
"discount_type": 2,
"cost_discount_price": 7,
"total_price_include_discount": 465,
"sku_list": [
{
"_id": "6ae1b980e53a595ed853aa1a",
"sku": "690503-0002",
"options": [
{ "_id": "6ae1b96de53a595ed853aa16", "name": "สีขาว" },
{ "_id": "6ae1b980e53a595ed853aa19", "name": "M" }
],
"stock": 1,
"price": 500
}
]
}
],
"number_of_order_list": 2,
"discount": 50,
"sub_total": 600,
"sub_total_exclude_vat": 0,
"tax_percent": 0,
"register_vat": false,
"grand_total": 600,
"rounding_amount": 0,
"installment_status": false,
"segment_type": 1,
"segment_detail_type": { "pay_type": 1, "price": 600 },
"segment_detail_type_list": [
{ "pay_type": 1, "price": 600 }
],
"staff_detail": { "firstname": "สมชาย", "lastname": "ใจดี" },
"actual_staff_detail": { "firstname": "สมชาย", "lastname": "ใจดี" },
"buyer_detail": {
"code": "M000045",
"firstname": "สมหญิง",
"lastname": "ใจดี",
"key_card_id": "M000045"
},
"cash_register": { "_id": "5e314785b373e70802c0df3c", "name": "เครื่องขาย 1" },
"reference_tax_invoice_abbreviate": { "code": "2425" },
"rounding_rule": 0,
"rounding_rule_value": 1,
"discount_rounding_rule": 0,
"discount_rounding_rule_value": 1
}
],
"total": 18,
"total_page": 1
}
Response Fields
| Field |
Type |
คำอธิบาย |
success |
number |
1 = สำเร็จ |
data |
array |
รายการบิลขายในหน้านี้ (ดูตาราง data[]) |
total |
number |
จำนวนบิลทั้งหมดที่ตรงเงื่อนไข |
total_page |
number |
จำนวนหน้าทั้งหมด |
data[] (บิลขาย)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงบิล |
code |
string |
เลขที่บิล |
timestamp |
string |
วันเวลาที่ขาย (UTC) |
status |
string |
success = ขายสำเร็จ, cancel = ยกเลิก |
return_date |
string |
วันเวลาที่ยกเลิกบิล (UTC) ใช้เมื่อ status = cancel |
comment |
string |
หมายเหตุของบิล |
order_list |
array |
รายการสินค้าในบิล (ดูตาราง order_list[]) |
number_of_order_list |
number |
จำนวนรายการสินค้าในบิล |
discount |
number |
ส่วนลดท้ายบิลรวม (จำนวนเงิน) |
sub_total |
number |
มูลค่าสินค้าที่ต้องเสียภาษีมูลค่าเพิ่ม ก่อนภาษี หลังหักส่วนลด กรณีร้านไม่ได้จดทะเบียนภาษีมูลค่าเพิ่ม เป็นยอดสินค้าหลังหักส่วนลด |
sub_total_exclude_vat |
number |
มูลค่าสินค้าที่ได้รับยกเว้นภาษีมูลค่าเพิ่ม |
tax_percent |
number |
อัตราภาษีมูลค่าเพิ่ม (%) |
register_vat |
boolean |
true = ร้านจดทะเบียนภาษีมูลค่าเพิ่ม ณ เวลาที่ขาย |
grand_total |
number |
ยอดสุทธิของบิล ยังไม่รวมยอดปัดเศษ |
rounding_amount |
number |
ยอดปัดเศษ ยอดที่ลูกค้าชำระจริง = grand_total + rounding_amount |
installment_status |
boolean |
บิลขายเชื่อ: true = มีการผ่อนชำระแล้วอย่างน้อย 1 งวด |
installments |
array |
รายการผ่อนชำระของบิล เรียงตามงวด มีเมื่อส่ง include=installments บิลที่ไม่มีการผ่อนชำระจะเป็น array ว่าง (ดูตาราง installments[]) |
segment_type |
number |
ช่องทางชำระเงินหลัก (ดูตารางช่องทางชำระเงิน) |
segment_detail_type |
object |
ช่องทางชำระเงินหลัก ประกอบด้วย pay_type และ price (จำนวนเงิน) |
segment_detail_type_list |
array |
ทุกช่องทางที่ใช้ชำระในบิล แต่ละรายการมี pay_type และ price และอาจมีรายละเอียดเพิ่มตามช่องทาง เช่น ข้อมูลบัตร |
staff_detail |
object |
พนักงานขาย ประกอบด้วย firstname และ lastname |
actual_staff_detail |
object |
พนักงานที่ทำรายการจริง ประกอบด้วย firstname และ lastname |
buyer_detail |
object |
สมาชิกผู้ซื้อ ณ เวลาที่ขาย ประกอบด้วย code, firstname, lastname และ key_card_id มีเฉพาะบิลที่ระบุสมาชิก |
current_buyer_detail |
object |
ข้อมูลปัจจุบันของสมาชิกผู้ซื้อ (code, firstname, lastname, key_card_id) มีเมื่อส่ง current_buyer=true และบิลนั้นระบุสมาชิก |
cash_register |
object |
เครื่องขายที่ใช้ทำรายการ ประกอบด้วย _id, name และข้อมูลอื่นของเครื่องขาย |
reference_tax_invoice_abbreviate, reference_tax_invoice, reference_receipt, reference_credit_delivery, reference_quotation, reference_weight_receipt, reference_credit_memorandum |
object |
เลขที่เอกสารที่อ้างอิงกับบิล (field code) ได้แก่ ใบกำกับภาษีอย่างย่อ ใบกำกับภาษีเต็มรูป ใบเสร็จรับเงิน ใบส่งของขายเชื่อ ใบเสนอราคา ใบชั่งน้ำหนัก และใบลดหนี้ มีเฉพาะบิลที่มีเอกสารนั้น |
shipping_information |
object |
ข้อมูลการจัดส่ง มีเฉพาะบิลที่บันทึกการจัดส่ง |
rounding_rule, rounding_rule_value, discount_rounding_rule, discount_rounding_rule_value |
number |
ค่าตั้งค่าการปัดเศษที่ใช้ตอนขาย ใช้สำหรับอ้างอิงเท่านั้น |
order_list[] (รายการสินค้า)
| Field |
Type |
คำอธิบาย |
code |
string |
รหัสสินค้า |
name |
string |
ชื่อสินค้า |
stock |
number |
จำนวนที่ขาย |
price |
number |
ราคาต่อหน่วยที่ใช้คิดเงินในบิล |
special_price |
number |
ราคาขายที่ตั้งไว้ในสินค้า ใช้สำหรับอ้างอิงเท่านั้น |
discount_type |
number |
ประเภทส่วนลดของรายการ 1 = บาท, 2 = เปอร์เซ็นต์ |
cost_discount_price |
number |
ส่วนลดของรายการ ตามประเภทใน discount_type |
total_price_include_discount |
number |
ยอดรวมของรายการหลังหักส่วนลดของรายการ |
note_in_order |
array |
หมายเหตุของรายการ (array ของข้อความ) |
sku_list |
array |
ตัวเลือกสินค้าที่ขาย สำหรับสินค้าแบบมีตัวเลือก (SKU) แต่ละรายการมี _id, sku (รหัส SKU), options (ตัวเลือก), stock (จำนวนที่ขาย) และ price |
topping_in_order |
array |
ท็อปปิ้งที่เลือก แต่ละรายการมี code, name, price, special_price, cost, stock, total_stock (จำนวนรวมในรายการนี้), discount_type และ cost_discount_price |
installments[] (รายการผ่อนชำระ)
ตัวอย่างเมื่อส่ง include=installments
{
"installment_status": true,
"installments": [
{
"installment_number": 1,
"amount_pay": 500,
"note": "ชำระงวดที่ 1",
"segment_detail_type": { "pay_type": 1, "price": 500 }
},
{
"installment_number": 2,
"amount_pay": 1000,
"note": "ชำระงวดสุดท้าย",
"segment_detail_type": { "pay_type": 3, "price": 1000 }
}
]
}
| Field |
Type |
คำอธิบาย |
installment_number |
number |
งวดที่ผ่อนชำระ เริ่มต้นที่ 1 |
amount_pay |
number |
จำนวนเงินที่ชำระในงวดนี้ |
note |
string |
หมายเหตุของงวด |
segment_detail_type |
object |
ช่องทางชำระเงินของงวดนี้ ประกอบด้วย pay_type (ดูตารางช่องทางชำระเงิน) และ price และอาจมีรายละเอียดเพิ่มตามช่องทาง เช่น ข้อมูลบัญชีธนาคาร |
ช่องทางชำระเงิน (segment_type, pay_type)
| ค่า |
ความหมาย |
| 0 |
เงินเชื่อ (ขายเชื่อ) |
| 1 |
เงินสด |
| 2 |
บัตรเครดิต |
| 3 |
โอน |
| 4 |
คิวอาร์ (พร้อมเพย์) |
| 5 |
บัตรเดบิต |
| 6 |
ออนไลน์ |
| 7 |
Shopee |
| 8 |
Lazada |
| 9 |
EDC |
| 10, 11 |
คิวอาร์ (กสิกร) |
| 12 |
Food Delivery |
| 13 |
TikTok |
| 14 |
Tap to Pay |
Stock (สินค้าและสต็อก)
ใช้ดึงข้อมูลสินค้าพร้อมจำนวนคงเหลือ ทุก API ในหัวข้อนี้ตอบกลับ data เป็น array
| Method |
Path |
คำอธิบาย |
| GET |
/stock/pagination |
สินค้าพร้อมสต็อกแบบแบ่งหน้าและค้นหา |
| GET |
/stock/{code} |
สินค้าจากรหัสสินค้า |
| GET |
/stock/category/{categoryId} |
รายชื่อสินค้าแบบย่อ ไม่มีข้อมูลสต็อก |
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
GET https://go.pospos.co/developer/api/stock/pagination
ตอบกลับสินค้าในหมวดหมู่ที่แสดงในหน้าขายแบบแบ่งหน้า ไม่รวมสินค้าท็อปปิ้งและวัตถุดิบ เรียงตามลำดับสินค้าที่ร้านจัดไว้ พร้อม total และ total_page
Query Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
page |
number |
ใช่ |
หน้าที่ต้องการ เริ่มต้นที่ 1 |
limit |
number |
ใช่ |
จำนวนรายการต่อหน้า ค่าที่รับได้ 1 ถึง 1000 |
term |
string |
ไม่ |
ค้นหาจากรหัสสินค้า ชื่อสินค้า บาร์โค้ด หรือ Serial Number โดยต้องตรงทั้งคำ |
type |
string |
ไม่ |
contain = ค้นหา term แบบบางส่วนของคำ ไม่แยกตัวพิมพ์เล็กและพิมพ์ใหญ่ |
show_out_of_stock |
boolean |
ไม่ |
true = รวมสินค้าที่หมดสต็อก หากไม่ระบุหรือส่ง false จะเป็นไปตามการตั้งค่าของร้าน |
หมายเหตุ
- ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกด้วยพารามิเตอร์เดิมภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
GET /stock/{code}
GET https://go.pospos.co/developer/api/stock/{code}
Path Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
code |
string |
ใช่ |
รหัสสินค้า ต้องตรงทั้งคำ |
หมายเหตุ ตอบกลับ data เป็น array 1 รายการ หากไม่พบสินค้าได้ HTTP 400 พร้อมข้อความ "ไม่พบข้อมูลสินค้า"
GET /stock/category/{categoryId}
GET https://go.pospos.co/developer/api/stock/category/{categoryId}
Path Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
categoryId |
string |
ไม่ |
รหัสอ้างอิงหมวดหมู่ (_id) ความยาว 24 ตัวอักษร หากรูปแบบไม่ถูกต้องจะได้ HTTP 400 หากไม่ระบุ (เรียก /stock/category) จะได้สินค้าทุกหมวดหมู่ ไม่รวมสินค้าท็อปปิ้งและวัตถุดิบ |
หมายเหตุ ตอบกลับเฉพาะ _id, code, name, image, category, unit, global_index และ category_index ไม่มีข้อมูลสต็อกและราคา
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/stock/pagination?page=1&limit=50' \
--header 'apikey: {YOUR_API_KEY}'
ตัวอย่าง Response (GET /stock/pagination)
ตัวอย่างนี้แสดงเฉพาะ field หลัก ข้อมูลจริงมี field อื่นของสินค้าเพิ่มเติม GET /stock/{code} ใช้รูปแบบ data เดียวกัน
{
"success": 1,
"data": [
{
"_id": "684a81ee448a35b1babfdb81",
"code": "680461",
"name": "น้ำดื่ม 600 มล.",
"barcode_code": "8851234567890",
"image": "1715048255459_92deb944c.jpeg",
"category": { "_id": "66398f3f5da21856a38c1d93", "name": "เครื่องดื่ม" },
"unit": { "_id": "5aaa2ab70fedd20c21891904", "name": "ขวด" },
"price": 15,
"special_price": 15,
"cost": 8,
"stock": 960,
"min_stock": 5,
"min_stock_status": false,
"is_low": false,
"unlimited_stock": false,
"exclude_vat": false,
"attribute_status": false,
"sku_list": [],
"status_relation": false,
"status_kit": false,
"kit": [],
"status_serial_number": false,
"serial_numbers": [],
"price_levels_status": false,
"price_levels": [],
"status_wholesale_price": false,
"global_index": 1,
"category_index": 0,
"delete": false,
"lastupdate": "2026-10-29T07:11:22.770Z"
}
],
"total": 751,
"total_page": 16
}
data[] (สินค้า)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงสินค้า |
code |
string |
รหัสสินค้า |
name |
string |
ชื่อสินค้า |
barcode_code |
string |
บาร์โค้ด |
image |
string |
ชื่อไฟล์รูปภาพสินค้า |
category |
object |
หมวดหมู่สินค้า (รูปแบบเดียวกับหัวข้อ Category) |
unit |
object |
หน่วยนับ ประกอบด้วย _id และ name |
price |
number |
ราคาขาย |
special_price |
number |
ราคาขายพิเศษ |
cost |
number |
ต้นทุนต่อหน่วย |
stock |
number |
จำนวนคงเหลือ สินค้าแบบมีตัวเลือก (SKU) เป็นผลรวมของทุก SKU สินค้าสัมพันธ์คำนวณจากสต็อกของสินค้าตัวลูกตามอัตราส่วน |
min_stock |
number |
จำนวนขั้นต่ำสำหรับแจ้งเตือนสต็อกต่ำ |
min_stock_status |
boolean |
true = เปิดการแจ้งเตือนสต็อกต่ำ |
is_low |
boolean |
true = จำนวนคงเหลือต่ำกว่า min_stock |
unlimited_stock |
boolean |
true = สินค้าแบบไม่มีหมด (เช่น งานบริการ) ไม่ต้องใช้ค่า stock |
exclude_vat |
boolean |
true = สินค้าได้รับการยกเว้นภาษีมูลค่าเพิ่ม |
attribute_status |
boolean |
true = สินค้าแบบมีตัวเลือก (SKU) |
sku_list |
array |
ตัวเลือกสินค้า (SKU) แต่ละรายการมี _id, sku (รหัส SKU), options (ตัวเลือก), stock, cost, price, barcode_code และ visible (true = แสดงให้เลือกขาย) |
status_relation |
boolean |
true = สินค้าสัมพันธ์ |
status_kit, kit |
boolean, array |
สินค้าจัดเซ็ท และรายการสินค้าในเซ็ท |
status_serial_number, serial_numbers |
boolean, array |
สินค้าที่ใช้ Serial Number และรายการ Serial Number |
price_levels_status, price_levels |
boolean, array |
เปิดใช้ราคาขายตามระดับราคา และราคาของแต่ละระดับ |
status_wholesale_price, wholesale_price_list |
boolean, array |
เปิดใช้ราคาส่ง และรายการราคาส่ง |
global_index, category_index |
number |
ลำดับการแสดงผลของสินค้าในร้าน และในหมวดหมู่ |
delete |
boolean |
สถานะการลบสินค้า |
lastupdate |
string |
วันเวลาที่แก้ไขสินค้าล่าสุด (UTC) |
Unit (หน่วยนับ)
ใช้ดึงหน่วยนับสินค้าของร้าน ทุก API ในหัวข้อนี้ตอบกลับ data เป็น array
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
GET /unit
GET https://go.pospos.co/developer/api/unit
ไม่มีพารามิเตอร์ ตอบกลับหน่วยนับทั้งหมดของร้าน
หมายเหตุ ผลลัพธ์ถูกเก็บในแคช 15 นาที การเรียกซ้ำภายใน 15 นาทีจะได้ผลลัพธ์เดิม ข้อมูลจึงอาจช้ากว่าข้อมูลจริงได้สูงสุด 15 นาที
GET /unit/{id}
GET https://go.pospos.co/developer/api/unit/{id}
Path Parameters
| Parameter |
Type |
จำเป็น |
คำอธิบาย |
id |
string |
ใช่ |
รหัสอ้างอิงหน่วยนับ (_id) ความยาว 24 ตัวอักษร |
หมายเหตุ ตอบกลับ data เป็น array 1 รายการ หากไม่พบได้ HTTP 404 หาก id ไม่อยู่ในรูปแบบรหัสอ้างอิงได้ HTTP 400
ตัวอย่างการเรียกใช้งาน
curl --location 'https://go.pospos.co/developer/api/unit' \
--header 'apikey: {YOUR_API_KEY}'
ตัวอย่าง Response
{
"success": 1,
"data": [
{ "_id": "5aaa2ab70fedd20c21891904", "name": "ชิ้น" },
{ "_id": "5c0a4d23c60de51f1da4c6e7", "name": "จาน" }
]
}
data[] (หน่วยนับ)
| Field |
Type |
คำอธิบาย |
_id |
string |
รหัสอ้างอิงหน่วยนับ |
name |
string |
ชื่อหน่วยนับ |
Webhook
ร้านตั้งค่า Webhook URL และเลือก Event ที่ต้องการได้ที่หน้า https://go.pospos.co/core/setting/general/developer เช่น เพิ่มหรือแก้ไขสินค้า พนักงาน ลูกค้า บัญชีธนาคาร และการเปิดหรือปิดกะการขาย API ในหัวข้อนี้ใช้ส่ง Event ไปยัง URL ปลายทาง เพื่อทดสอบว่าระบบของท่านรับ Webhook ได้
POST /webhook
POST https://go.pospos.co/developer/api/webhook
Header
| Header |
จำเป็น |
คำอธิบาย |
apikey |
ใช่ |
API Key ที่ได้รับจาก POSPOS |
Content-Type |
ใช่ |
application/json |
Body
| Field |
Type |
จำเป็น |
คำอธิบาย |
targetUrl |
string |
ใช่ |
URL ปลายทางที่จะรับ Event |
events |
array |
ใช่ |
รายการ Event ที่ต้องการส่ง |
events[].version |
string |
ใช่ |
เวอร์ชันของรูปแบบ Event เช่น 1 |
events[].type |
string |
ใช่ |
ประเภทของ Event เช่น TEST_API |
events[].timestamp |
string |
ใช่ |
วันเวลาของ Event (ISO 8601) |
events[].source |
object |
ใช่ |
แหล่งที่มาของ Event เช่น {"type": "WEB", "userId": "xxxxx"} |
events[].message |
object |
ใช่ |
ข้อมูลของ Event เช่น {"type": "text", "data": "ทดสอบ API"} |
ตัวอย่างการเรียกใช้งาน
curl --location --request POST 'https://go.pospos.co/developer/api/webhook' \
--header 'apikey: {YOUR_API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
"targetUrl": "https://your-domain.com/webhook",
"events": [
{
"version": "1",
"type": "TEST_API",
"timestamp": "2026-10-29T08:00:00.000Z",
"source": { "type": "WEB", "userId": "xxxxx" },
"message": { "type": "text", "data": "ทดสอบ API" }
}
]
}'
ตัวอย่าง Response
{
"success": 1
}
หมายเหตุ หากระบบส่ง Event ไม่สำเร็จจะได้ HTTP 400 พร้อมข้อความ "failure to send webhook"