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

Contacts

เพิ่มผู้ติดต่อ

เพิ่มผู้ติดต่อไปยังสมุดรายชื่อของบัญชีที่เชื่อมต่อ ต้องระบุ phone_number หรือ username อย่างน้อยหนึ่งฟิลด์ whatsapp_options รองรับเฉพาะ WhatsApp และต้องส่งเป็นออบเจ็กต์ซ้อน provider ที่ไม่รองรับจะคืน 501 unsupported_by_provider

POSThttps://api.unifyport.ai/v1/accounts/{account_id}/contacts/add

ช่องทางที่รองรับ

WhatsApp

ก่อนเรียกใช้

ใช้ X-Api-Key ของ workspace เจ้าของทรัพยากรบนเซิร์ฟเวอร์ แทนค่าตัวอย่างทั้งหมดก่อนเรียกใช้

ที่มาของพารามิเตอร์
account_id
รับ data.id จากการสร้างหรือค้นหาบัญชี รหัสเป็นของ workspace ที่ระบุด้วย X-Api-Key ดูบัญชี

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

ส่วนหัว

X-Api-Key
stringจำเป็น

API key ของพื้นที่ทำงาน ระบบจะระบุพื้นที่ทำงานจากส่วนหัวนี้

Content-Type
stringจำเป็น

ใช้ application/json เมื่อต้องส่งเนื้อหาของคำขอเป็น JSON

พารามิเตอร์ใน path

account_id
stringจำเป็น

ตัวระบุที่ใช้ใน route ของ contacts

เนื้อหาของคำขอ

phone_number
string

หมายเลขโทรศัพท์ของผู้ติดต่อในรูปแบบสากล ต้องระบุ phone_number หรือ username อย่างน้อยหนึ่งฟิลด์

minLength: 1

username
string

ชื่อผู้ใช้ของผู้ติดต่อฝั่ง provider ต้องระบุ username หรือ phone_number อย่างน้อยหนึ่งฟิลด์

minLength: 1

whatsapp_options
object

ตัวเลือกการสร้างผู้ติดต่อสำหรับ WhatsApp เท่านั้น ต้องส่งเป็นออบเจ็กต์ซ้อนใน whatsapp_options

first_name
string

ชื่อจริงของผู้ติดต่อ WhatsApp (ไม่บังคับ)

full_name
string

ชื่อเต็มของผู้ติดต่อ WhatsApp (ไม่บังคับ)

sync_to_device_contacts
boolean

กำหนดว่าจะซิงค์ผู้ติดต่อไปยังสมุดรายชื่อของอุปกรณ์ WhatsApp หรือไม่ ค่าเริ่มต้นคือ false

ทำความเข้าใจผลลัพธ์

พิจารณาผลจากฟิลด์คำตอบและสถานะ HTTP ของ API นี้ แล้วเลือกขั้นตอนถัดไปจากคำสั่งที่เกี่ยวข้อง

การตอบกลับ 200 OK

{
  "request_id": "<REQUEST_ID>",
  "data": {
    "id": "8600000000000@s.whatsapp.net",
    "conversation_id": "123456789012345@lid",
    "display_name": "Alice Example",
    "avatar_url": "",
    "provider_user_id": "8600000000000@s.whatsapp.net",
    "extra": {
      "phone": "8600000000000"
    }
  }
}

เนื้อหาการตอบกลับ

id
string

ตัวระบุผู้ติดต่อ

conversation_id
string

ตัวระบุบทสนทนาสำหรับผู้ติดต่อนี้ ใช้เพื่อส่งข้อความหรือค้นหาแชต

display_name
string

ชื่อแสดงผลของผู้ติดต่อ หรือสตริงว่างเมื่อไม่มีค่า

avatar_url
string

URL รูปประจำตัวของผู้ติดต่อ หรือสตริงว่างเมื่อไม่มีค่า

provider_user_id
string

ตัวระบุผู้ใช้ฝั่งผู้ให้บริการสำหรับผู้ติดต่อ

is_blocked
boolean

ผู้ติดต่อถูกบล็อกโดยบัญชีที่เชื่อมต่อหรือไม่

extra
object

ฟิลด์เพิ่มเติมเฉพาะของผู้ให้บริการ เช่น phone

phone
string

หมายเลขโทรศัพท์ที่แยกจาก phone JID ของ WhatsApp

first_name
string

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

full_name
string

ชื่อเต็มของผู้ติดต่อที่บันทึกไว้ในสมุดรายชื่อของบัญชีปัจจุบัน

push_name
string

ชื่อโปรไฟล์ที่ผู้ติดต่อตั้งไว้เองใน WhatsApp

username
string

ชื่อผู้ใช้ของผู้ติดต่อ WhatsApp (provider=whatsapp) ซึ่งแยกจากชื่อโปรไฟล์ push_name รายการและรายละเอียดจะส่งคืนเฉพาะเมื่อได้รับชื่อผู้ใช้ที่ไม่ว่างแล้วเท่านั้น การไม่มีฟิลด์นี้หมายถึงยังไม่ทราบในขณะนี้ ไม่ได้หมายความว่าผู้ติดต่อไม่ได้ตั้งชื่อผู้ใช้ และไม่ควรล้างชื่อผู้ใช้ที่บันทึกไว้เพราะฟิลด์นี้หายไป

minLength: 1

business_name
string

ชื่อธุรกิจหรือชื่อที่ได้รับการยืนยันของบัญชี WhatsApp Business

redacted_phone
string

หมายเลขโทรศัพท์ที่ปกปิดบางส่วน เมื่อผู้ให้บริการส่งกลับเพียงบางส่วนของหมายเลข

การตอบกลับ

200

200 OK

คำขอสำเร็จ ดูตัวอย่างเนื้อหาตอบกลับด้านบน

400

Bad Request

เนื้อหาของคำขอ path หรือพารามิเตอร์ไม่ถูกต้อง

401

Unauthorized

ส่วนหัว X-Api-Key หายไปหรือไม่ถูกต้อง

403

Forbidden

ระบบระบุคำขอได้ แต่ไม่อนุญาตให้ดำเนินการนี้

404

Not Found

ไม่พบทรัพยากรที่ร้องขอ โปรดตรวจสอบ error.code ร่วมกับการดำเนินการปัจจุบัน

409

Conflict

การดำเนินการขัดแย้งกับบัญชีของผู้ให้บริการหรือทรัพยากรที่มีอยู่

500

Internal Server Error

บริการพบข้อผิดพลาดที่ไม่คาดคิด

501

Not Implemented

provider ที่เลือกยังไม่รองรับการดำเนินการนี้

502

Bad Gateway

อะแดปเตอร์หรือ upstream provider ไม่สามารถทำรายการให้เสร็จได้

เมื่อคำขอล้มเหลว

ตรวจ HTTP และ error.code/numeric_code เก็บ request_id แล้วแก้พารามิเตอร์ ยืนยันตัวตนต่อ หรือตรวจ runtime ตามสาเหตุ ตรวจผลครั้งก่อนก่อนส่งหรือเขียนซ้ำ อ้างอิงรหัสข้อผิดพลาด

อ่านสถานะ HTTP, error.code และ error.numeric_code ร่วมกับคำสั่งที่เรียก รหัสตัวเลขเป็นสตริง เก็บ request_id เพื่อตรวจปัญหา ค่านี้ไม่ใช่คีย์ป้องกันการทำซ้ำหรือรหัสงาน

invalid_request · 10000 · 400

ตรวจ JSON และฟิลด์ที่จำเป็น

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 400 · 10000
{
  "request_id": "req_example",
  "error": {
    "code": "invalid_request",
    "numeric_code": "10000",
    "message": "Invalid request parameters"
  }
}
invalid_target_workspace · 11003 · 400

เวิร์กสเปซเป้าหมายที่กำหนดทับว่างหรือรูปแบบไม่ถูกต้อง ให้ลบเฮดเดอร์กำหนดทับและใช้ API Key ของเวิร์กสเปซเป้าหมาย

เงื่อนไข: ใช้เมื่อคำขอมีเฮดเดอร์ X-Workspace-Id เพื่อระบุเวิร์กสเปซทับ

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 400 · 11003
{
  "request_id": "req_example",
  "error": {
    "code": "invalid_target_workspace",
    "numeric_code": "11003",
    "message": "Invalid target workspace"
  }
}
provider_invalid_request · 30001 · 400

ตรวจฟิลด์และรูปแบบเฉพาะช่องทาง

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 400 · 30001
{
  "request_id": "req_example",
  "error": {
    "code": "provider_invalid_request",
    "numeric_code": "30001",
    "message": "Provider rejected the request"
  }
}
invalid_api_key · 11001 · 401

ตรวจว่า API Key ถูกต้องและเปิดใช้งานอยู่

วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 401 · 11001
{
  "request_id": "req_example",
  "error": {
    "code": "invalid_api_key",
    "numeric_code": "11001",
    "message": "Invalid API key"
  }
}
missing_api_key · 11000 · 401

เพิ่มส่วนหัว X-Api-Key

วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป

ตัวอย่าง · 401 · 11000
{
  "request_id": "req_xxx",
  "error": {
    "code": "missing_api_key",
    "numeric_code": "11000",
    "message": "Missing X-Api-Key header"
  }
}
workspace_override_forbidden · 11002 · 403

คำขอพยายามระบุเวิร์กสเปซทับโดย API Key นี้ไม่มีสิทธิ์ ให้ลบเฮดเดอร์กำหนดทับและใช้ API Key ของเวิร์กสเปซเป้าหมาย

เงื่อนไข: ใช้เมื่อคำขอมีเฮดเดอร์ X-Workspace-Id เพื่อระบุเวิร์กสเปซทับ

วิธีจัดการและลองใหม่: เก็บ request_id และรหัสแบบมีโครงสร้าง ตรวจคำสั่งปัจจุบันก่อนเลือกการดำเนินการถัดไป

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 403 · 11002
{
  "request_id": "req_example",
  "error": {
    "code": "workspace_override_forbidden",
    "numeric_code": "11002",
    "message": "Workspace override is not allowed"
  }
}
target_workspace_not_found · 11004 · 404

ไม่พบเวิร์กสเปซที่กำหนดทับหรือใช้งานไม่ได้ ตรวจเจ้าของเวิร์กสเปซ ลบเฮดเดอร์กำหนดทับ และใช้ API Key ของเวิร์กสเปซเป้าหมาย การส่งซ้ำไม่เพิ่มสิทธิ์

เงื่อนไข: ใช้เมื่อคำขอมีเฮดเดอร์ X-Workspace-Id เพื่อระบุเวิร์กสเปซทับ

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 404 · 11004
{
  "request_id": "req_example",
  "error": {
    "code": "target_workspace_not_found",
    "numeric_code": "11004",
    "message": "Target workspace not found"
  }
}
account_binding_not_found · 30006 · 409

บัญชียังไม่มีการผูกกับการเชื่อมต่อช่องทางที่ใช้งานอยู่ ตรวจสถานะบัญชี

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 30006
{
  "request_id": "req_example",
  "error": {
    "code": "account_binding_not_found",
    "numeric_code": "30006",
    "message": "Account is not bound to an available server"
  }
}
egress_configuration_pending · 20032 · 409

ยังยืนยันหรือโหลดการตั้งค่าเครือข่ายเริ่มต้นของแพลตฟอร์มไม่ได้ ไม่ได้หมายความว่าบัญชีออกจากระบบแล้ว

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

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 20032
{
  "request_id": "req_example",
  "error": {
    "code": "egress_configuration_pending",
    "numeric_code": "20032",
    "message": "Account network configuration is pending verification"
  }
}
provider_not_ready · 30009 · 409

การเชื่อมต่อยังไม่พร้อม ตรวจการอนุญาตและ runtime_status ก่อนลองใหม่

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 30009
{
  "request_id": "req_example",
  "error": {
    "code": "provider_not_ready",
    "numeric_code": "30009",
    "message": "Provider client is not ready"
  }
}
provider_not_ready · 30014 · 409

ไม่มีอินสแตนซ์ช่องทางที่บัญชีนี้ต้องใช้ เป็นปัญหาความพร้อมของ runtime ไม่ใช่หลักฐานว่าการยืนยันตัวตนหมดอายุ

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

ช่องทาง: WhatsApp

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 30014
{
  "request_id": "req_example",
  "error": {
    "code": "provider_not_ready",
    "numeric_code": "30014",
    "message": "Provider instance is missing"
  }
}
provider_not_ready · 30015 · 409

runtime ของช่องทางหยุดแล้ว ตรวจว่าตั้งใจหยุดหรือไม่ก่อนเริ่ม การหยุด runtime ไม่ได้แปลว่าออกจากระบบ

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

ช่องทาง: WhatsApp

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 409 · 30015
{
  "request_id": "req_example",
  "error": {
    "code": "provider_not_ready",
    "numeric_code": "30015",
    "message": "Provider runtime is stopped"
  }
}
create_contact_failed · 20020 · 500

ตรวจ account_id และใช้ X-Api-Key ของเวิร์กสเปซเจ้าของบัญชี คีย์ปัจจุบันไม่สามารถเข้าถึงบัญชีที่ไม่พบในเวิร์กสเปซนี้

เงื่อนไข: ใช้เมื่อไม่พบบัญชี โดยคงสถานะ HTTP และ code ของคำสั่งเดิม และใช้ numeric_code ระบุว่าบัญชีไม่มีอยู่

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 20020
{
  "request_id": "req_example",
  "error": {
    "code": "create_contact_failed",
    "numeric_code": "20020",
    "message": "Account not found"
  }
}
create_contact_failed · 30010 · 500

ช่องทางทำคำสั่งไม่สำเร็จ message อาจมีสาเหตุต้นฉบับต่อจาก “Provider operation failed:” ข้อความสาเหตุเปลี่ยนได้และไม่ใช่อินเทอร์เฟซคงที่สำหรับโปรแกรม

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

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

ช่องทาง: WhatsApp

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 30010
{
  "request_id": "req_example",
  "error": {
    "code": "create_contact_failed",
    "numeric_code": "30010",
    "message": "Provider operation failed"
  }
}
create_contact_failed · 30017 · 500

ช่องทางต้นทางปฏิเสธอย่างชัดเจนเพราะคำขอถี่เกิน รหัสจำแนกนี้คงสถานะ HTTP และ code เดิมของคำสั่ง

วิธีจัดการและลองใหม่: พักคำขอและลองใหม่ภายหลังโดยจำกัดจำนวนครั้ง ไม่มีการรับประกันเวลารอคงที่หรือการจัดการ Retry-After ในกรณีนี้ ยืนยันผลเดิมก่อนลองเขียนใหม่

ช่องทาง: WhatsApp

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 30017
{
  "request_id": "req_example",
  "error": {
    "code": "create_contact_failed",
    "numeric_code": "30017",
    "message": "Provider rate limit exceeded"
  }
}
create_contact_failed · 30018 · 500

App State พื้นฐานของบัญชีในช่องทางไม่ตรงกัน เป็นปัญหาการซิงก์บัญชี ไม่ใช่ข้อผิดพลาดรูปแบบคำขอทั่วไป

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

ช่องทาง: WhatsApp

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 30018
{
  "request_id": "req_example",
  "error": {
    "code": "create_contact_failed",
    "numeric_code": "30018",
    "message": "Provider app state is out of sync"
  }
}
create_contact_failed · 30021 · 500

ขณะส่งคำขอนี้ บัญชีไม่ได้เชื่อมต่อกับแพลตฟอร์มส่งข้อความ การเพิ่มผู้ติดต่อ WhatsApp อาจตอบกลับ 500 / create_contact_failed / 30021 ซึ่งไม่ได้ยืนยันว่าออกจากระบบแล้วหรือสถานะปัจจุบันยังเป็น disconnected ให้ตรวจสอบสถานะปัจจุบันก่อนเลือกวิธีกู้คืน

วิธีจัดการและลองใหม่: พักงานที่ต้องใช้การเชื่อมต่อ เรียก POST /v1/accounts/{account_id}/runtime/refresh ก่อน กู้คืนตามสถานะล่าสุดและยืนยัน runtime_status=running ก่อนเรียกงานธุรกิจ ตรวจผลการเขียนครั้งก่อนก่อนส่งซ้ำ

ช่องทาง: WhatsApp

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 30021
{
  "request_id": "req_example",
  "error": {
    "code": "create_contact_failed",
    "numeric_code": "30021",
    "message": "Account is not connected to the messaging platform"
  }
}
create_contact_failed · 35003 · 500

เพิ่มผู้ติดต่อ: การสร้างทรัพยากรล้มเหลวหรือยังยืนยันผลไม่ได้

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 500 · 35003
{
  "request_id": "req_example",
  "error": {
    "code": "create_contact_failed",
    "numeric_code": "35003",
    "message": "Failed to create contact"
  }
}
create_contact_failed · 35009 · 500

WhatsApp ไม่ได้ระบุหมายเลขเป้าหมายเป็นผู้ติดต่อที่ใช้งานได้ในการค้นหาครั้งนี้ ไม่ได้ยืนยันว่าหมายเลขยังไม่ลงทะเบียนหรือใช้งานไม่ได้ถาวร

วิธีจัดการและลองใหม่: ตรวจสอบรหัสประเทศ หมายเลข และสถานะการลงทะเบียน WhatsApp กับผู้ใช้ พร้อมอ่าน error.message ขอใหม่หลังตรวจสอบสาเหตุแล้ว และอย่าลองหมายเลขเดิมซ้ำโดยอัตโนมัติ

ช่องทาง: WhatsApp

ตัวอย่าง · 500 · 35009
{
  "request_id": "req_example_contact_not_active",
  "error": {
    "code": "create_contact_failed",
    "numeric_code": "35009",
    "message": "Target phone number was not recognized as an active WhatsApp contact"
  }
}
unsupported_by_provider · 30003 · 501

ช่องทางไม่รองรับการทำงานนี้ ให้เลือกจากตารางที่รองรับ

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

ตัวอย่าง · 501 · 30003
{
  "request_id": "req_xxx",
  "error": {
    "code": "unsupported_by_provider",
    "numeric_code": "30003",
    "message": "Operation not supported by this provider"
  }
}
provider_adapter_not_found · 30004 · 502

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

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

JSON ตัวอย่าง โดย message เปลี่ยนตามสาเหตุจริง · 502 · 30004
{
  "request_id": "req_example",
  "error": {
    "code": "provider_adapter_not_found",
    "numeric_code": "30004",
    "message": "Provider adapter unavailable"
  }
}
provider_unavailable · 30002 · 502

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

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

ตัวอย่าง · 502 · 30002
{
  "request_id": "req_example_provider_unavailable",
  "error": {
    "code": "provider_unavailable",
    "numeric_code": "30002",
    "message": "Provider service unavailable"
  }
}
provider_unavailable · 30010 · 502

ช่องทางทำคำสั่งไม่สำเร็จ message อาจมีสาเหตุต้นฉบับต่อจาก “Provider operation failed:” ข้อความสาเหตุเปลี่ยนได้และไม่ใช่อินเทอร์เฟซคงที่สำหรับโปรแกรม

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

ช่องทาง: WhatsApp

ตัวอย่าง · 502 · 30010
{
  "request_id": "req_example_operation_failed",
  "error": {
    "code": "provider_unavailable",
    "numeric_code": "30010",
    "message": "Provider operation failed: Example operation could not be completed"
  }
}
provider_unavailable · 30021 · 502

ขณะส่งคำขอนี้ บัญชีไม่ได้เชื่อมต่อกับแพลตฟอร์มส่งข้อความ การเพิ่มผู้ติดต่อ WhatsApp อาจตอบกลับ 500 / create_contact_failed / 30021 ซึ่งไม่ได้ยืนยันว่าออกจากระบบแล้วหรือสถานะปัจจุบันยังเป็น disconnected ให้ตรวจสอบสถานะปัจจุบันก่อนเลือกวิธีกู้คืน

วิธีจัดการและลองใหม่: พักงานที่ต้องใช้การเชื่อมต่อ เรียก POST /v1/accounts/{account_id}/runtime/refresh ก่อน กู้คืนตามสถานะล่าสุดและยืนยัน runtime_status=running ก่อนเรียกงานธุรกิจ ตรวจผลการเขียนครั้งก่อนก่อนส่งซ้ำ

ช่องทาง: WhatsApp

ตัวอย่าง · 502 · 30021
{
  "request_id": "req_example_connection_disconnected",
  "error": {
    "code": "provider_unavailable",
    "numeric_code": "30021",
    "message": "example operation: websocket not connected"
  }
}