API การเรียกกลับข้อความ

ภาพรวม

ส่งข้อมูลสถานะข้อความและการตอบสนองข้อความกลับไปยังระบบธุรกิจของบริษัท เพื่อนำไปใช้รวบรวมสถิติ ตอบกลับผู้ใช้ หรือดำเนินการอื่น ๆ

URL สำหรับการเรียกกลับ

บริษัทต้องตั้งค่า URL สำหรับรับการเรียกกลับสถานะข้อความและการตอบสนองข้อความ ดูรายละเอียดที่การตั้งค่าการเรียกกลับ

รูปแบบการเรียกกลับ

ใช้คำขอแบบ POST โดยมีเนื้อหาคำขอเป็น JSON และประเภทข้อมูล Content-Type: application/json คำขอหนึ่งครั้งจะส่งข้อมูลหลายรายการเป็นชุด

กลไกความปลอดภัย

อยู่ระหว่างเตรียมเปิดใช้งาน ปัจจุบันการเรียกกลับยังไม่มีข้อมูลยืนยันตัวตน จึงไม่ควรตั้งค่าการตรวจสอบสิทธิ์ที่ปลายทางของผู้พัฒนาซึ่งรับการเรียกกลับ

การตอบรับ

เมื่อบริการของผู้พัฒนาได้รับการเรียกกลับจาก EngageLab ต้องตอบรับภายใน 3 วินาที หากรับสำเร็จ ให้ส่งสถานะ HTTP 200 โดยไม่ต้องมีเนื้อหาการตอบกลับ

การลองใหม่

อยู่ระหว่างเตรียมเปิดใช้งาน

พารามิเตอร์คำขอ

พารามิเตอร์ที่ EngageLab ส่งไปยัง URL การเรียกกลับของระบบธุรกิจมีดังนี้:

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
total int จำเป็น จำนวนข้อมูลในการเรียกกลับ
rows JSON Array จำเป็น รายละเอียดของการเรียกกลับ

พารามิเตอร์ภายใน rows:

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
message_id string ไม่จำเป็น ส่งกลับในการเรียกกลับสถานะข้อความและการตอบสนองข้อความ
from string ไม่จำเป็น ผู้ส่ง ในการเรียกกลับสถานะข้อความ หมายถึงหมายเลขผู้ส่งของธุรกิจ ในการเรียกกลับข้อความขาเข้าจากผู้ใช้ หมายถึงตัวระบุผู้ใช้ โดยส่งหมายเลขโทรศัพท์หากมี หรืออาจส่ง BSUID หากไม่มีหมายเลขโทรศัพท์
to string ไม่จำเป็น ผู้รับ ในการเรียกกลับสถานะข้อความ เป็นหมายเลขโทรศัพท์หรือ BSUID หรือสตริงว่างหากไม่สามารถรับตัวระบุได้ ในการเรียกกลับข้อความขาเข้าจากผู้ใช้ เป็นหมายเลขผู้ส่งของธุรกิจ
recipient_phone string ไม่จำเป็น หมายเลขโทรศัพท์ของผู้รับในการเรียกกลับสถานะข้อความ ละเว้นฟิลด์นี้เมื่อไม่มีค่า
server string จำเป็น บริการผลิตภัณฑ์ของข้อมูลการเรียกกลับ มีค่าคงที่เป็น whatsapp
channel string ไม่จำเป็น ช่องทางของสถานะหรือการตอบสนอง มีค่าคงที่เป็น whatsapp
itime int จำเป็น เวลาที่ข้อมูลการเรียกกลับถูกสร้างขึ้นจริงในรูปแบบไทม์สแตมป์ ใช้ร่วมกับ message_status เพื่อระบุเวลาร้องขอ ส่ง ส่งถึง และอ่าน
custom_args JSON Object ไม่จำเป็น ฟิลด์ที่กำหนดเองขณะส่งข้อความ จะส่งกลับตามเดิมในการเรียกกลับสถานะข้อความ
status JSON Object ไม่จำเป็น ฟิลด์สถานะข้อความ
response JSON Object ไม่จำเป็น ฟิลด์การตอบสนองข้อความ
notification JSON Object ไม่จำเป็น ฟิลด์การแจ้งเตือนข้อความ

ฟิลด์ BSUID

BSUID จะส่งกลับผ่านฟิลด์ที่ไม่จำเป็นต่อไปนี้ในเนื้อหาการเรียกกลับที่มีอยู่:

ประเภทการเรียกกลับ เส้นทาง JSON ประเภท คำอธิบาย
การเรียกกลับสถานะข้อความ rows[].status.status_data.recipient_user_id String BSUID ของผู้รับ
การเรียกกลับข้อความขาเข้าจากผู้ใช้ rows[].response.response_data.contact.user_id String BSUID ของผู้ใช้ที่ส่งข้อความ
  • หากไม่มี BSUID หรือไม่สามารถใช้ได้ จะไม่ส่งฟิลด์ที่เกี่ยวข้อง ระบบฝั่งลูกค้าต้องรองรับกรณีที่ไม่มีฟิลด์นี้
  • หากต้องการแสดงทั้งหมายเลขโทรศัพท์และ BSUID ให้ใช้ recipient_phone และ status_data.recipient_user_id สำหรับการเรียกกลับสถานะข้อความ หรือ contact.wa_id และ contact.user_id สำหรับการเรียกกลับข้อความขาเข้าจากผู้ใช้

สถานะข้อความ - status

พารามิเตอร์การเรียกกลับ

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
message_status string จำเป็น สถานะของข้อความ
status_data JSON Object ไม่จำเป็น ข้อมูลรายละเอียดของสถานะนี้
error_code int ไม่จำเป็น รหัสข้อผิดพลาด ส่งกลับเมื่อล้มเหลว
error_detail JSON Object ไม่จำเป็น รายละเอียดข้อผิดพลาด ส่งกลับเมื่อล้มเหลว
loss JSON Object ไม่จำเป็น ขั้นตอนและแหล่งที่มาของความล้มเหลว

message_status

ค่า คำอธิบาย รายละเอียด
plan วางแผนส่ง บันทึกเป้าหมายที่วางแผนส่งหนึ่งรายการสำหรับหมายเลขที่อยู่ในรายชื่อหมายเลขผู้รับที่ส่งมา
target_valid เป้าหมายถูกต้อง ผ่านการตรวจสอบ โดย EngageLab และบริการ Meta WhatsApp ระบุว่าหมายเลขถูกต้อง
sent ส่งสำเร็จ EngageLab ส่งหมายเลขไปยังบริการ Meta WhatsApp และได้รับผลสำเร็จ
delivered ส่งถึงสำเร็จ บริการ Meta WhatsApp ยืนยันว่าข้อความส่งถึงผู้ใช้แล้ว
read อ่านแล้ว บริการ Meta WhatsApp ยืนยันว่าผู้ใช้อ่านข้อความแล้ว
target_invalid เป้าหมายไม่ถูกต้อง EngageLab หรือบริการ Meta WhatsApp ระบุว่าหมายเลขไม่ถูกต้อง
sent_failed ส่งไม่สำเร็จ ส่งหมายเลขไปยังบริการ Meta WhatsApp แล้วได้รับผลล้มเหลว
delivered_failed ส่งถึงไม่สำเร็จ ส่งไปยังบริการ Meta WhatsApp สำเร็จ แต่ Meta แจ้งผ่านการเรียกกลับว่าล้มเหลว
delivered_timeout หมดเวลาการส่งถึง ส่งไปยังบริการ Meta WhatsApp สำเร็จ แต่ไม่มีการเรียกกลับจาก Meta แจ้งผลสำเร็จหรือล้มเหลวภายใน 5 นาที จึงนับว่าหมดเวลา

status_data

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
msg_time int จำเป็น เวลาที่เรียก API เพื่อส่งข้อความสำเร็จ
channel_message_id String จำเป็น ID ข้อความที่ WhatsApp ส่งกลับ
whatsapp_business_account_id String จำเป็น ID ของ WhatsApp Business Account (WABA) ที่หมายเลขผู้ส่งสังกัดอยู่
timezone String จำเป็น เขตเวลาขององค์กร
plan_user_total int ไม่จำเป็น จำนวนเป้าหมายที่วางแผนไว้ทั้งหมด มีค่าเฉพาะเมื่อ message_status=plan
country_code String จำเป็น รหัสประเทศหรือภูมิภาคของหมายเลขโทรศัพท์ผู้รับ
from_phone_id String จำเป็น ID ของหมายเลขผู้ส่ง (from)
recipient_user_id String ไม่จำเป็น BSUID ของผู้รับ ส่งกลับเมื่อมีค่า และละเว้นเมื่อไม่มีค่า
conversation JSON Object ไม่จำเป็น ข้อมูลการสนทนา
pricing JSON Object ไม่จำเป็น ข้อมูลราคา

โดยทั่วไป recipient_user_id จะส่งกลับในสถานะ sent, delivered และ read เมื่อระบบมี BSUID ของผู้รับแล้ว ฟิลด์นี้อาจไม่ปรากฏในสถานะประมวลผลเบื้องต้น สถานะล้มเหลว ข้อความย้อนหลัง หรือข้อมูลจากกระบวนการเดิม

conversation
ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
id String ไม่จำเป็น ID การสนทนาของ Meta ที่ข้อความนี้สังกัดอยู่
origin JSON Object ไม่จำเป็น ระบุผู้เริ่มการสนทนาด้วย type ตัวอย่าง: "origin":{"type":"business_initiated"}
business_initiated: ธุรกิจส่งข้อความแรกให้ลูกค้า โดยใช้เมื่อเกิน 24 ชั่วโมงนับจากข้อความล่าสุดของลูกค้า
customer_initiated: ธุรกิจตอบกลับภายใน 24 ชั่วโมงนับจากข้อความของลูกค้า
referral_conversion: การสนทนาจากจุดเข้าใช้งานฟรี ซึ่งลูกค้าเป็นผู้เริ่มเสมอ
pricing
ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
pricing_model String ไม่จำเป็น ค่าคงที่คือ CBP
category String ไม่จำเป็น หมวดหมู่ราคาการสนทนา: business_initiated คือการสนทนาที่ธุรกิจเริ่ม; customer_initiated คือการสนทนาที่ผู้ใช้เริ่ม; referral_conversion คือการสนทนาจากจุดเข้าใช้งานฟรี

error_detail

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
message String จำเป็น สาเหตุของข้อผิดพลาด

loss

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
loss_step int จำเป็น ขั้นตอนที่ล้มเหลว
1: จากเป้าหมายที่วางแผนไว้ไปเป็นเป้าหมายที่ถูกต้อง คือเป้าหมายไม่ถูกต้อง
2: จากเป้าหมายที่ถูกต้องไปสู่การส่ง คือส่งไม่สำเร็จ
3: จากการส่งไปสู่การส่งถึง คือส่งถึงไม่สำเร็จ
loss_source String จำเป็น แหล่งที่มาของความล้มเหลว: engagelab คือความล้มเหลวจากการตรวจสอบของบริการ EngageLab WhatsApp; meta คือข้อผิดพลาดที่ Meta ส่งกลับ

ตัวอย่างการเรียกกลับ

{ "total": 1, "rows": [ { "message_id": "1666165485030094861", "from": "", "to": "US.13491208655302741918", "recipient_phone": "12025550123", "server": "whatsapp", "channel": "whatsapp", "itime": 1640707579, "custom_args": {}, "status": { "message_status": "delivered", "status_data": { "msg_time": 1663432355, "channel_message_id": "wamid.123321abcdefed==", "whatsapp_business_account_id": "", "timezone": "", "plan_user_total": 2007, "country_code": "US", "from_phone_id": "111111", "recipient_user_id": "US.13491208655302741918", "conversation": { "id": "ebe2398cdaa37a0899ca5268b987b0c8", "origin": { "type": "business_initiated" } }, "pricing": { "pricing_model": "CBP", "category": "business_initiated" } }, "error_code": 0, "error_detail": { "message": "" }, "loss": { "loss_step": 1, "loss_source": "aa" } } } ] }
              
              {
    "total": 1,
    "rows": [
        {
            "message_id": "1666165485030094861",
            "from": "",
            "to": "US.13491208655302741918",
            "recipient_phone": "12025550123",
            "server": "whatsapp",
            "channel": "whatsapp",
            "itime": 1640707579,
            "custom_args": {},
            "status": {
                "message_status": "delivered",
      "status_data": {
                    "msg_time": 1663432355,
                    "channel_message_id": "wamid.123321abcdefed==",
                    "whatsapp_business_account_id": "",
                    "timezone": "",
                    "plan_user_total": 2007,
                    "country_code": "US",
                    "from_phone_id": "111111",
                    "recipient_user_id": "US.13491208655302741918",
       "conversation": {
                        "id": "ebe2398cdaa37a0899ca5268b987b0c8",
                        "origin": {
                            "type": "business_initiated"
                        }
                    },
                    "pricing": {
                        "pricing_model": "CBP",
                        "category": "business_initiated"
                    }
                },
                "error_code": 0,
                "error_detail": {
                    "message": ""
                },
                "loss": {
                    "loss_step": 1,
                    "loss_source": "aa"
                }
            }
        }
    ]
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การตอบสนองข้อความ - response

พารามิเตอร์การเรียกกลับ

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
event string ไม่จำเป็น เหตุการณ์ตอบสนอง
response_data JSON Object ไม่จำเป็น เนื้อหาข้อความตอบกลับหรือข้อความโต้ตอบขาเข้า

event

ค่า คำอธิบาย รายละเอียด
received ได้รับข้อความผู้ใช้ ผู้ใช้ส่งข้อความโดยตรง
reply ผู้ใช้ตอบกลับข้อความ ธุรกิจส่งข้อความให้ผู้ใช้ก่อน และผู้ใช้เลือกตอบกลับข้อความนั้น
order ผู้ใช้สั่งซื้อ -
deleted ผู้ใช้ลบข้อความ ผู้ใช้ลบข้อความที่ตนส่ง (อยู่ระหว่างเตรียมเปิดใช้งาน)

response_data

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
channel_message_id String จำเป็น ID ข้อความที่ WhatsApp ส่งกลับ
whatsapp_business_account_id String จำเป็น ID ของ WhatsApp Business Account (WABA) ที่หมายเลขผู้ส่งสังกัดอยู่
contact JSON Object ไม่จำเป็น ข้อมูลผู้ส่ง
message JSON Object จำเป็น เนื้อหาข้อความ
message_context JSON Object ไม่จำเป็น บริบทข้อความ ปรากฏในเหตุการณ์ reply เพื่อระบุว่าผู้ใช้ตอบกลับข้อความใด
contact
ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
profile JSON Object ไม่จำเป็น โปรไฟล์ผู้ส่ง (ลูกค้า) ฟิลด์ name คือชื่อลูกค้า ส่วน username คือชื่อผู้ใช้ (User Username) ซึ่งแตกต่างจาก name และจะละเว้นเมื่อไม่มีค่า
ตัวอย่าง: "profile": {"name": "bob", "username": "example_user"}
wa_id String ไม่จำเป็น ตัวระบุหมายเลขโทรศัพท์ของผู้ส่ง อาจเป็นสตริงว่างเมื่อมีเฉพาะ BSUID
user_id String ไม่จำเป็น BSUID ของผู้ใช้ที่ส่งข้อความ ส่งกลับเมื่อมีค่า และละเว้นเมื่อไม่มีค่า

contact.wa_id ยังคงหมายถึงหมายเลขโทรศัพท์ ส่วน contact.user_id ใช้ส่ง BSUID หากต้องการระบุผู้ใช้ด้วย BSUID ให้ใช้ contact.user_id เป็นหลัก และอย่าใช้ contact.wa_id เป็น BSUID

message
ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
type String จำเป็น ค่าที่รองรับ: text, image, audio, video, document, sticker, button, interactive, unknown, order
text JSON Object ไม่จำเป็น ดูคำอธิบาย text object
image JSON Object ไม่จำเป็น ดูคำอธิบาย image object
audio JSON Object ไม่จำเป็น ดูคำอธิบาย audio object
video JSON Object ไม่จำเป็น ดูคำอธิบาย video object
document JSON Object ไม่จำเป็น ดูคำอธิบาย document object
sticker JSON Object ไม่จำเป็น ดูคำอธิบาย sticker object
message_context
ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
origin_from_phone String จำเป็น หมายเลขผู้ส่งของข้อความที่อ้างอิง ไม่มีช่องว่างหรือเครื่องหมาย +
origin_channel_message_id String จำเป็น ID เฉพาะของข้อความที่อ้างอิง
origin_from_phone_id String ไม่จำเป็น ID หมายเลขผู้ส่งของข้อความที่อ้างอิง โดยปกติจะมีฟิลด์นี้
origin_message_id String ไม่จำเป็น ID ข้อความของข้อความที่อ้างอิง โดยปกติจะมีฟิลด์นี้

ตัวอย่างการเรียกกลับ

{ "total": 1, "rows": [ { "message_id": "1666165485030094861", "from": "", "to": "", "server": "whatsapp", "channel": "whatsapp", "itime": 1640707579, "response": { "event": "", "response_data": { "channel_message_id": "wamid.123321abcdefed==", "whatsapp_business_account_id": "123321", "contact": { "profile": { "name": "bob", "username": "example_user" }, "wa_id": "8613800138000", "user_id": "ID.1234567890123456" }, "message": { "type": "text", "text": { "body": "here is the message content text" } } } } } ] }
              
              {
    "total": 1,
    "rows": [
        {
            "message_id": "1666165485030094861",
            "from": "",
            "to": "",
            "server": "whatsapp",
            "channel": "whatsapp",
            "itime": 1640707579,
            "response": {
                "event": "",
                "response_data": {
                    "channel_message_id": "wamid.123321abcdefed==",
                    "whatsapp_business_account_id": "123321",
                    "contact": {
                        "profile": {
                            "name": "bob",
                            "username": "example_user"
                        },
                        "wa_id": "8613800138000",
                        "user_id": "ID.1234567890123456"
                    },
                    "message": {
                        "type": "text",
                        "text": {
                            "body": "here is the message content text"
                        }
                    }
                }
            }
        }
    ]
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การแจ้งเตือนข้อความ - notification

พารามิเตอร์การเรียกกลับ

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
event string ไม่จำเป็น เหตุการณ์ตอบสนอง
notification_data JSON Object ไม่จำเป็น เนื้อหารายละเอียดของการแจ้งเตือนข้อความระบบ

event

ค่า คำอธิบาย รายละเอียด
insufficient_balance ยอดเงินไม่เพียงพอ ยอดเงินปัจจุบันต่ำกว่าเกณฑ์ที่ตั้งไว้ (ค่าเริ่มต้น 10 ดอลลาร์สหรัฐ)
template_update เทมเพลตเปลี่ยนแปลง สถานะหรือคุณภาพของเทมเพลตเปลี่ยนแปลง
phone_number_update หมายเลขผู้ส่งเปลี่ยนแปลง ปัจจุบัน Meta รองรับเฉพาะการเปลี่ยนขีดจำกัดการส่งข้อความ
TIER_50: ลูกค้า 50 ราย/24 ชั่วโมง
TIER_250: ลูกค้า 250 ราย/24 ชั่วโมง
TIER_1K: ลูกค้า 1,000 ราย/24 ชั่วโมง
TIER_10K: ลูกค้า 10,000 ราย/24 ชั่วโมง
TIER_100K: ลูกค้า 100,000 ราย/24 ชั่วโมง
TIER_UNLIMITED: ไม่จำกัด
whatsapp_business_update บัญชี WABA เปลี่ยนแปลง บัญชี WABA ถูกระงับ ถูกเตือน เป็นต้น

notification_data

ฟิลด์ ประเภท ข้อกำหนด คำอธิบาย
whatsapp_business_account_id String จำเป็น ID ของ WhatsApp Business Account (WABA)
remain_balance int ไม่จำเป็น มีเมื่อ event=insufficient_balance ยอดเงินปัจจุบัน (ดอลลาร์สหรัฐ)
balance_threshold int ไม่จำเป็น มีเมื่อ event=insufficient_balance เกณฑ์แจ้งเตือนยอดเงินที่ตั้งไว้ (ดอลลาร์สหรัฐ)
template_id String ไม่จำเป็น มีเมื่อ event=template_update ID เทมเพลต
template_name String ไม่จำเป็น มีเมื่อ event=template_update ชื่อเทมเพลต
template_language String ไม่จำเป็น มีเมื่อ event=template_update ภาษาของเทมเพลต
template_status String ไม่จำเป็น มีเมื่อ event=template_update สถานะเทมเพลต: APPROVED/REJECTED/PENDING/DISABLED/FLAGGED/REINSTATED
template_status_reason String ไม่จำเป็น มีเมื่อ event=template_update เหตุผลที่เปลี่ยนแปลง โดยทั่วไปใช้เมื่อเทมเพลตถูกปฏิเสธ กรณีอื่นจะเป็นสตริง NONE หรือไม่มีฟิลด์นี้
template_quality_score String ไม่จำเป็น มีเมื่อ event=template_update คะแนนคุณภาพ: GREEN คือสูง, YELLOW คือปานกลาง, RED คือต่ำ, UNKNOWN คือยังไม่ยืนยัน
new_category String ไม่จำเป็น มีเมื่อ event=template_update หมวดหมู่เทมเพลตที่อัปเดต
phone_number_id String ไม่จำเป็น มีเมื่อ event=phone_number_update ID หมายเลขผู้ส่ง
display_phone_number String ไม่จำเป็น มีเมื่อ event=phone_number_update หมายเลขโทรศัพท์ผู้ส่ง เช่น +1 320-302-7083 หรือ +86 183 7981 2430
current_limit String ไม่จำเป็น มีเมื่อ event=phone_number_update ขีดจำกัดปัจจุบันของหมายเลขผู้ส่ง: TIER_50/TIER_250/TIER_1K/TIER_10K/TIER_100K/TIER_UNLIMITED
waba_event String ไม่จำเป็น มีเมื่อ event=whatsapp_business_update ค่า DISABLED_UPDATE คือบัญชีถูกปิดใช้งาน และ ACCOUNT_VIOLATION คือบัญชีละเมิดข้อกำหนด
ban_state String ไม่จำเป็น มีค่าเมื่อ event=whatsapp_business_update และ waba_event=DISABLED_UPDATE ปัจจุบันค่า DISABLE หมายถึงถูกปิดใช้งาน
violation_type String ไม่จำเป็น มีค่าเมื่อ event=whatsapp_business_update และ waba_event=ACCOUNT_VIOLATION ค่า SPAM คือข้อความสแปมหรือรบกวน และ SCAM คือข้อความหลอกลวง
decision String ไม่จำเป็น ผลการอัปเดตชื่อที่แสดงของหมายเลขผู้ส่ง: APPROVED คืออนุมัติ, DEFERRED คือเลื่อนการตัดสิน, PENDING คือรอการตรวจสอบเพิ่มเติม, REJECTED คือปฏิเสธ
requested_verified_name String ไม่จำเป็น ชื่อที่แสดงที่ระบุเมื่อสร้างหมายเลขโทรศัพท์ธุรกิจ หรือชื่อที่ส่งเมื่อแก้ไขชื่อที่แสดงซึ่งได้รับอนุมัติแล้ว
rejection_reason String ไม่จำเป็น เหตุผลที่ชื่อที่แสดงของหมายเลขโทรศัพท์ธุรกิจถูกปฏิเสธ
NAME_EMPLOYEE_ISSUE: มีชื่อบุคคลหรือรหัสพนักงาน
NAME_ENDCLIENT_NOTRELATED: มีชื่อธุรกิจที่ไม่เกี่ยวข้อง
NAME_FORMAT_UNACCEPTABLE: รูปแบบไม่เป็นที่ยอมรับ
NAME_INDIVIDUAL_ISSUE: มีชื่อบุคคลหรือรหัสพนักงาน
NAME_NOT_CONSISTENT: ไม่สอดคล้องกับแบรนด์ธุรกิจ
null: ชื่อได้รับการยอมรับ
UNKNOWN: ไม่ทราบสาเหตุ โปรดติดต่อฝ่ายสนับสนุน

ตัวอย่างการเรียกกลับ

{ "total": 1, "rows": [ { "server": "whatsapp", "itime": 1640707579, "notification": { "event": "insufficient_balance", "notification_data": { "whatsapp_business_account_id": "", "remain_balance": 5.1234, "balance_threshold": 10 } } } ] }
              
              {
  "total": 1,
  "rows": [
    {
      "server": "whatsapp",
      "itime": 1640707579,
      "notification": {
        "event": "insufficient_balance",
        "notification_data": {
          "whatsapp_business_account_id": "",
          "remain_balance": 5.1234,
          "balance_threshold": 10
        }
      }
    }
  ]
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

การเรียกกลับเมื่อสถานะเทมเพลตข้อความเปลี่ยนแปลง

เมื่อสถานะเทมเพลตข้อความ WhatsApp เปลี่ยนแปลง Webhook จะส่งข้อมูลการเรียกกลับตามโครงสร้างต่อไปนี้

เงื่อนไขการส่ง

  • เทมเพลตได้รับอนุมัติ
  • เทมเพลตถูกปฏิเสธ
  • เทมเพลตถูกปิดใช้งาน

โครงสร้างข้อมูลการเรียกกลับ

disable_info มีเฉพาะเมื่อเทมเพลตถูกปิดใช้งาน ส่วน other_info มีเฉพาะเมื่อเทมเพลตถูกล็อกหรือปลดล็อก และ rejection_info มีเฉพาะเมื่อถูกปฏิเสธด้วย INVALID_FORMAT

{ "entry": [ { "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>", "time": <WEBHOOK_TRIGGER_TIMESTAMP>, "changes": [ { "value": { "event": "<EVENT>", "message_template_id": <TEMPLATE_ID>, "message_template_name": "<TEMPLATE_NAME>", "message_template_language": "<TEMPLATE_LANGUAGE_AND_LOCALE_CODE>", "reason": "<REASON>", "message_template_category": <TEMPLATE_CATEGORY>, "disable_info": { "disable_date": "<DISABLE_TIMESTAMP>" }, "other_info": { "title": "<TITLE>", "description": "<DESCRIPTION>" } }, "rejection_info": { "reason": "<REASON_INFO>", "recommendation": "<RECOMMENDATION_INFO>" }, "field": "message_template_status_update" } ] } ], "object": "whatsapp_business_account" }
              
              {
  "entry": [
    {
      "id": "<WHATSAPP_BUSINESS_ACCOUNT_ID>",
      "time": <WEBHOOK_TRIGGER_TIMESTAMP>,
      "changes": [
        {
          "value": {
            "event": "<EVENT>",
            "message_template_id": <TEMPLATE_ID>,
            "message_template_name": "<TEMPLATE_NAME>",
            "message_template_language": "<TEMPLATE_LANGUAGE_AND_LOCALE_CODE>",
            "reason": "<REASON>",
            "message_template_category": <TEMPLATE_CATEGORY>,

            "disable_info": {
              "disable_date": "<DISABLE_TIMESTAMP>"
            },

            "other_info": {
              "title": "<TITLE>",
              "description": "<DESCRIPTION>"
            }
          },

          "rejection_info": {
            "reason": "<REASON_INFO>",
            "recommendation": "<RECOMMENDATION_INFO>"
          },
          "field": "message_template_status_update"
        }
      ]
    }
  ],
  "object": "whatsapp_business_account"
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

คำอธิบายพารามิเตอร์

ข้อความตัวแทน ประเภท คำอธิบาย ค่าตัวอย่าง
<DESCRIPTION> String เหตุผลที่ล็อกหรือปลดล็อกเทมเพลต เทมเพลตข้อความ WhatsApp ของคุณกลับมาใช้งานได้แล้ว
<DISABLE_TIMESTAMP> Integer เวลา Unix ที่เทมเพลตถูกปิดใช้งาน 1751234563
<EVENT> String ประเภทเหตุการณ์สถานะเทมเพลต ดูรายละเอียดด้านล่าง APPROVED
<TEMPLATE_ID> Integer ID เทมเพลต 1689556908129832
<TEMPLATE_NAME> String ชื่อเทมเพลต order_confirmation
<TEMPLATE_LANGUAGE_AND_LOCALE_CODE> String ภาษาและรหัสภูมิภาคของเทมเพลต en-US
<REASON> String เหตุผลที่เทมเพลตถูกปฏิเสธหรือปิดใช้งาน ดูด้านล่าง INVALID_FORMAT
<TITLE> String ชื่อเหตุการณ์หยุดชั่วคราวหรือยกเลิกการหยุด ดูด้านล่าง FIRST_PAUSE
<WEBHOOK_TRIGGER_TIMESTAMP> Integer เวลา Unix ที่เรียก Webhook 1739321024
<WHATSAPP_BUSINESS_ACCOUNT_ID> String ID ของ WhatsApp Business Account (WABA) 102290129340398
<MESSAGE_TEMPLATE_CATEGORY> String หมวดหมู่เทมเพลต ดูด้านล่าง MARKETING
<REASON_INFO> String เหตุผลโดยละเอียดที่เทมเพลตไม่ผ่านการตรวจสอบ Your template has parameters placed next to each other ...
<RECOMMENDATION_INFO> String คำแนะนำในการแก้ไขเทมเพลตเพื่อให้ผ่านการตรวจสอบ Separate parameters with descriptive text ...

ค่าที่เป็นไปได้ของ <EVENT>

ค่า คำอธิบาย
APPROVED อนุมัติแล้ว ใช้ส่งข้อความได้
ARCHIVED เก็บถาวรแล้ว
DELETED ลบแล้ว
DISABLED ถูกปิดใช้งานเนื่องจากความคิดเห็นของผู้ใช้
FLAGGED ได้รับความคิดเห็นเชิงลบและเสี่ยงต่อการถูกปิดใช้งาน
IN_APPEAL อยู่ระหว่างอุทธรณ์
LIMIT_EXCEEDED จำนวนเทมเพลตถึงขีดจำกัด
LOCKED ถูกล็อก ไม่สามารถแก้ไขได้
PAUSED หยุดชั่วคราว
PENDING อยู่ระหว่างตรวจสอบ
REINSTATED ยกเลิกการทำเครื่องหมายหรือปิดใช้งานแล้ว ส่งได้อีกครั้ง
PENDING_DELETION ลบแล้ว รอลบอย่างถาวร
REJECTED ถูกปฏิเสธ แก้ไขแล้วส่งตรวจสอบใหม่หรืออุทธรณ์ได้

ค่าที่เป็นไปได้ของ <REASON>

ค่า คำอธิบาย
ABUSIVE_CONTENT มีเนื้อหาละเมิดข้อกำหนด
CATEGORY_NOT_AVAILABLE เทมเพลตยืนยันตัวตนสำหรับภูมิภาคที่ไม่รองรับ (เลิกใช้แล้ว)
INCORRECT_CATEGORY เนื้อหาไม่ตรงกับหมวดหมู่ที่ระบุ
INVALID_FORMAT รูปแบบไม่ถูกต้อง
NONE เทมเพลตถูกหยุดใช้งานชั่วคราว
PROMOTIONAL มีเนื้อหาส่งเสริมการขายที่ละเมิดข้อกำหนด
SCAM มีเนื้อหาหลอกลวง
TAG_CONTENT_MISMATCH เนื้อหาไม่ตรงกับหมวดหมู่ที่ระบุ
null กำหนดเวลาลบแล้ว

ค่าที่เป็นไปได้ของ <TITLE>

ค่า คำอธิบาย
FIRST_PAUSE หยุดชั่วคราวครั้งแรก
SECOND_PAUSE หยุดชั่วคราวครั้งที่สอง
RATE_LIMITING_PAUSE หยุดชั่วคราวเนื่องจากการจำกัดอัตรา
UNPAUSE ยกเลิกการหยุดชั่วคราว
DISABLED ปิดใช้งานแล้ว

ค่าที่เป็นไปได้ของ <MESSAGE_TEMPLATE_CATEGORY>

ค่า คำอธิบาย
MARKETING การตลาด
UTILITY การแจ้งเตือนเพื่อประโยชน์ใช้สอย
AUTHENTICATION การยืนยันตัวตน

ตัวอย่าง

ตัวอย่าง Webhook เมื่อเทมเพลตได้รับอนุมัติ

{ "entry": [ { "id": "102290129340398", "time": 1751247548, "changes": [ { "value": { "event": "APPROVED", "message_template_id": 1689556908129832, "message_template_name": "order_confirmation", "message_template_language": "en-US", "reason": "NONE", "message_template_category": "UTILITY" }, "field": "message_template_status_update" } ] } ], "object": "whatsapp_business_account" }
              
              {
  "entry": [
    {
      "id": "102290129340398",
      "time": 1751247548,
      "changes": [
        {
          "value": {
            "event": "APPROVED",
            "message_template_id": 1689556908129832,
            "message_template_name": "order_confirmation",
            "message_template_language": "en-US",
            "reason": "NONE",
            "message_template_category": "UTILITY"
          },
          "field": "message_template_status_update"
        }
      ]
    }
  ],
  "object": "whatsapp_business_account"
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

ตัวอย่าง Webhook เมื่อเทมเพลตถูกปฏิเสธด้วย INVALID_FORMAT

{ "entry": [ { "id": "102290129340398", "time": 1751247548, "changes": [ { "value": { "event": "REJECTED", "message_template_id": 1689556908129835, "message_template_name": "abandoned_cart", "message_template_language": "en", "reason": "INVALID_FORMAT", "message_template_category": "MARKETING", "rejection_info": { "reason": "Your template has parameters placed next to each other (like ) without text or punctuation between them.", "recommendation": "Separate parameters with descriptive text and ensure each parameter is clearly contextualized." } }, "field": "message_template_status_update" } ] } ], "object": "whatsapp_business_account" }
              
              {
  "entry": [
    {
      "id": "102290129340398",
      "time": 1751247548,
      "changes": [
        {
          "value": {
            "event": "REJECTED",
            "message_template_id": 1689556908129835,
            "message_template_name": "abandoned_cart",
            "message_template_language": "en",
            "reason": "INVALID_FORMAT",
            "message_template_category": "MARKETING",
            "rejection_info": {
              "reason": "Your template has parameters placed next to each other (like ) without text or punctuation between them.",
              "recommendation": "Separate parameters with descriptive text and ensure each parameter is clearly contextualized."
            }
          },
          "field": "message_template_status_update"
        }
      ]
    }
  ],
  "object": "whatsapp_business_account"
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
Icon Solid Transparent White Qiyu
ติดต่อฝ่ายขาย