Developer Docs

    เริ่มต้น

    Partner API — Auth

    Partner API — Sales

    Partner API — Products

    Partner API — Inventory

    Partner API — Purchasing

    Partner API — Customers

    Partner API — Reports

    Partner API — Webhooks

    อ้างอิง

    List Purchase Orders

    ดึงรายการใบสั่งซื้อ (Purchase Orders) ทั้งหมดที่ผู้ใช้งานมีสิทธิ์เข้าถึง

    Endpoint นี้เหมาะสำหรับ:

    • ติดตามสถานะการสั่งซื้อวัตถุดิบ
    • ซิงค์ข้อมูล Procurement เข้าสู่ระบบ ERP หรือ Accounting
    • วิเคราะห์ต้นทุนวัตถุดิบและยอดสั่งซื้อตาม Supplier
    • ตรวจสอบ PO ที่ค้างรับสินค้า

    Required Scope

    read:purchasing
    

    Access Token ต้องได้รับ Scope read:purchasing มิฉะนั้นระบบจะปฏิเสธคำขอ


    Endpoint

    GET /api/partner/v1/purchase-orders
    

    Request Headers

    Authorization: Bearer <access_token>
    

    Query Parameters

    ParameterTypeRequiredDescription
    fromstring (YYYY-MM-DD)Noกรองรายการที่มี order_date ตั้งแต่วันที่กำหนด
    tostring (YYYY-MM-DD)Noกรองรายการที่มี order_date ไม่เกินวันที่กำหนด
    branch_idstring (UUID)Noกรองตามสาขา สามารถส่งหลายค่าได้
    statusstringNoกรองตามสถานะ PO
    supplier_idstring (UUID)Noกรองตาม Supplier
    limitintegerNoจำนวนรายการต่อหน้า (1–200) ค่าเริ่มต้น 50
    cursorstringNoCursor สำหรับดึงหน้าถัดไป

    Purchase Order Status

    StatusDescription
    DRAFTร่าง PO ยังไม่ส่ง
    PENDING_APPROVALรอการอนุมัติ
    APPROVEDอนุมัติแล้ว รอรับสินค้า
    PARTIALLY_RECEIVEDรับสินค้าบางส่วนแล้ว
    FULLY_RECEIVEDรับสินค้าครบแล้ว
    REJECTEDถูกปฏิเสธ
    CANCELLEDยกเลิก PO

    Pagination

    Endpoint นี้ใช้ Cursor-based Pagination

    หาก has_more เป็น true ให้ส่ง next_cursor กลับมาใน parameter cursor

    GET /api/partner/v1/purchase-orders?cursor=<next_cursor>
    

    Example Request

    curl -X GET \
      "https://<host>/api/partner/v1/purchase-orders?from=2026-06-01&to=2026-06-30&status=FULLY_RECEIVED&limit=50" \
      -H "Authorization: Bearer <access_token>"
    

    Example Response

    {
      "data": [
        {
          "id": "...",
          "po_number": "PO-000001",
          "branch_id": "b1f85720-71cf-420e-a584-e36b75d3fd20",
          "warehouse_id": "1c5e4054-faef-4fb4-b95b-3baeefc2bcb9",
          "supplier_id": "...",
          "order_date": "2026-06-01T00:00:00.000Z",
          "expected_delivery_date": "2026-06-05T00:00:00.000Z",
          "status": "FULLY_RECEIVED",
          "subtotal": "5000",
          "discount_amount": "0",
          "tax_amount": "350",
          "total_amount": "5350",
          "created_at": "2026-06-01T08:00:00.000Z",
          "updated_at": "2026-06-05T10:00:00.000Z",
          "suppliers": {
            "company_name": "บริษัท ABC จำกัด",
            "supplier_code": "SUP-001"
          }
        }
      ],
      "pagination": {
        "next_cursor": null,
        "has_more": false,
        "limit": 50
      }
    }
    

    PurchaseOrder Object

    FieldTypeDescription
    idstring (UUID)Purchase Order ID
    po_numberstringเลขที่ PO เช่น PO-000001
    branch_idstring (UUID)สาขาที่ออก PO
    warehouse_idstring (UUID)Warehouse ปลายทางที่รับสินค้า
    supplier_idstring (UUID) | nullSupplier ที่สั่งซื้อ
    order_datestring (ISO 8601)วันที่ออก PO
    expected_delivery_datestring (ISO 8601) | nullวันที่คาดว่าจะรับสินค้า
    statusstringสถานะ PO ดู Status ด้านบน
    subtotalstring (decimal)ยอดรวมก่อนหักส่วนลดและภาษี
    discount_amountstring (decimal)ส่วนลดรวม
    tax_amountstring (decimal)ภาษีรวม
    total_amountstring (decimal)ยอดรวมสุทธิ
    created_atstring (ISO 8601)เวลาที่สร้าง record
    updated_atstring (ISO 8601)เวลาที่แก้ไขล่าสุด
    suppliers{ company_name, supplier_code } | nullข้อมูล Supplier สรุป

    Monetary Fields

    ฟิลด์เกี่ยวกับจำนวนเงินทั้งหมดถูกส่งกลับในรูปแบบ Decimal String เพื่อป้องกันปัญหา Floating Point

    Partner ควรใช้ Decimal Library หรือ Big Number Library ในการคำนวณทางการเงิน