ข้ามไปที่เนื้อหา

Adjust/Deduct Points by Administrator (Remove Point)

ใช้สำหรับเจ้าหน้าที่หรือสิทธิ์ผู้ดูแลระบบ (Admin Role) ในการหักหรือปรับลดคะแนนสะสมของสมาชิกอันเนื่องมาจากกรณีพิเศษ เช่น การทำรายการคืนสินค้า (Refund), แต้มผิดพลาด หรือการลงโทษเบื้องต้น

  • Endpoint: /openapi/v1/points/adjust-point
  • Method: POST
  • Authentication Required: Bearer Token/API Key (กับสิทธิ์ระดับ Admin)

Request Body Parameters

Parameter Type Required Description Example
phone string Yes เบอร์โทรศัพท์ของสมาชิกที่ต้องการปรับลดคะแนน "0812345678"
action string Yes ประเภทการทำงาน บังคับส่งค่า "deduct" (หักแต้ม) "deduct"
points integer Yes จำนวนแต้มสะสมที่ต้องการหักออก (ต้องเป็นเลขจำนวนเต็มบวก) 50
reason string Yes เหตุผลในการปรับลดแต้มเพื่อการตรวจสอบ (Auditing) "คืนสินค้าใบเสร็จ INV-099"
admin_user string Yes บัญชีผู้ใช้หรือชื่อของแอดมินผู้ดำเนินการหักแต้ม "admin_pongsak"

Request Example

{
  "phone": "0812345678",
  "action": "deduct",
  "points": 50,
  "reason": "คืนสินค้าใบเสร็จ INV-099",
  "admin_user": "admin_pongsak"
}

Response Examples

{
  "success": true,
  "data": {
    "member_id": "M-20260708001",
    "phone": "0812345678",
    "action_taken": "deduct",
    "points_deducted": 50,
    "previous_balance": 450,
    "new_balance": 400,
    "reason": "คืนสินค้าใบเสร็จ INV-099",
    "admin_user": "admin_pongsak",
    "transaction_id": "TXN-PT-20260708099",
    "processed_at": "2026-07-08T11:00:00Z"
  },
  "message": "Points successfully deducted by admin."
}
{
  "success": false,
  "error": {
    "code": "INSUFFICIENT_POINTS",
    "message": "ไม่สามารถหักคะแนนได้เนื่องจากแต้มคงเหลือของสมาชิกมีไม่เพียงพอ (แต้มปัจจุบัน: 30 แต้ม, ต้องการหัก: 50 แต้ม)"
  }
}