เอกสารอ้างอิง API

Receiving Events

account.auth.failed

An authentication attempt failed.

เหตุการณ์บัญชีล้มเหลว

เหตุการณ์ WhatsApp account.auth.failed บางรายการมีออบเจ็กต์ data.error แบบเสริม หากมี code, numeric_code และ message จะเป็นสตริงที่ไม่ว่าง อ่านจากภายในเหตุการณ์และแยกจากข้อผิดพลาด HTTP

เหตุการณ์เก่าหรือนอกขอบเขตอาจไม่มี data.error ให้คงความเข้ากันได้กับ last_error และใช้ขั้นตอนจัดการบัญชีล้มเหลวเดิมเมื่อรหัสขาดหรือไม่รู้จัก รายการและรายละเอียดบัญชีไม่ได้เพิ่มออบเจ็กต์นี้ การจำแนกนี้ไม่ยืนยันการแบนถาวรหรือกำหนดเวลาฟื้นตัว

เมื่อรับเหตุการณ์อย่างปลอดภัยและยอมรับการประมวลผลแล้ว ให้ตอบ 2xx เพื่อยืนยันการส่ง แยกความล้มเหลวของบัญชีจากการส่ง HTTP อย่าปฏิเสธ Webhook เพียงเพราะบัญชีล้มเหลวจนเกิดการส่งซ้ำ ใช้กฎลองใหม่และเล่นซ้ำเดิมโดยไม่เติมข้อผิดพลาดให้เหตุการณ์ย้อนหลัง

  • account_auth_failed20100

    ยืนยันตัวตนบัญชีไม่สำเร็จแต่ยังระบุสาเหตุเฉพาะไม่ได้ ใช้ขั้นตอนล้มเหลวเดิมโดยไม่เดาเป็นข้อจำกัดหรือการออกจากระบบ

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

    JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง
    {
      "id": "<EVENT_ID>",
      "type": "account.auth.failed",
      "provider": "whatsapp",
      "account_id": "<ACCOUNT_ID>",
      "occurred_at": "2026-10-16T00:00:00Z",
      "data": {
        "auth_status": "failed",
        "runtime_status": "disconnected",
        "event": {
          "kind": "account_auth_status",
          "auth_status": "failed",
          "runtime_status": "disconnected"
        },
        "error": {
          "code": "account_auth_failed",
          "numeric_code": "20100",
          "message": "Account authentication failed. The specific cause could not be determined."
        }
      }
    }
    
  • account_logged_out20101

    เซสชันบัญชีปัจจุบันใช้ไม่ได้แล้ว ให้ผู้ใช้ยืนยันตัวตนใหม่ด้วยขั้นตอนที่ช่องทางรองรับ

    วิธีจัดการและลองใหม่: ให้ผู้ใช้ยืนยันตัวตนใหม่ตามขั้นตอนที่ช่องทางรองรับ เมื่อยืนยันเสร็จแล้วให้ตรวจ runtime และยืนยันว่าการเชื่อมต่อพร้อมก่อนกลับไปทำงานที่ต้องเชื่อมต่อ

    JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง
    {
      "id": "<EVENT_ID>",
      "type": "account.auth.failed",
      "provider": "whatsapp",
      "account_id": "<ACCOUNT_ID>",
      "occurred_at": "2026-10-16T00:00:00Z",
      "data": {
        "auth_status": "failed",
        "runtime_status": "disconnected",
        "event": {
          "kind": "account_auth_status",
          "auth_status": "failed",
          "runtime_status": "disconnected"
        },
        "error": {
          "code": "account_logged_out",
          "numeric_code": "20101",
          "message": "The account session is no longer valid. Reauthorization is required."
        }
      }
    }
    
  • account_restricted20102

    เหตุการณ์ WhatsApp account.auth.failed นี้ระบุข้อจำกัดการเข้าสู่ระบบปัจจุบันด้วย data.error.code=account_restricted และ numeric_code=20102 ไม่ยืนยันการแบนถาวรหรือเวลาที่จะฟื้นตัวได้

    วิธีจัดการและลองใหม่: หยุดส่งและลองใหม่อัตโนมัติ ให้ผู้ใช้ตรวจและแก้ข้อจำกัดในแอป WhatsApp ทางการ กลับมาทำงานหลังแก้ปัญหาและยืนยันตัวตนใหม่ตามที่จำเป็น สถานะ running ก่อนหน้าไม่ยืนยันว่าข้อจำกัดถูกยกเลิกแล้ว

    JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง
    {
      "id": "<EVENT_ID>",
      "type": "account.auth.failed",
      "provider": "whatsapp",
      "account_id": "<ACCOUNT_ID>",
      "occurred_at": "2026-10-16T00:00:00Z",
      "data": {
        "auth_status": "failed",
        "runtime_status": "disconnected",
        "event": {
          "kind": "account_auth_status",
          "auth_status": "failed",
          "runtime_status": "disconnected"
        },
        "error": {
          "code": "account_restricted",
          "numeric_code": "20102",
          "message": "Account login is restricted. Check the official WhatsApp app for details."
        }
      }
    }
    

Event payload

{
  "id": "evt_auth_5e6f7a8b9c",
  "type": "account.auth.failed",
  "provider": "whatsapp",
  "account_id": "acc_8c21d0",
  "occurred_at": "2026-06-08T13:25:00Z",
  "data": {
    "auth_status": "failed",
    "runtime_status": "disconnected",
    "last_error": "logged_out_from_another_device",
    "event": {
      "kind": "account_auth_status",
      "auth_status": "failed"
    }
  }
}

หมายเหตุ

  • เหตุการณ์เก่าหรือนอกขอบเขตอาจไม่มี data.error ให้คงความเข้ากันได้กับ last_error และใช้ขั้นตอนจัดการบัญชีล้มเหลวเดิมเมื่อรหัสขาดหรือไม่รู้จัก รายการและรายละเอียดบัญชีไม่ได้เพิ่มออบเจ็กต์นี้ การจำแนกนี้ไม่ยืนยันการแบนถาวรหรือกำหนดเวลาฟื้นตัว