การใช้งาน POSPOS Developer API

29 ตุลาคม 2026
การใช้งาน POSPOS Developer API

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 /stock/pagination

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"