All Products
Search
Document Center

Chat App Message Service:ChatAppInbound

Last Updated:Dec 25, 2025

Tentukan URL HTTP untuk menerima pesan Mobile Originated (MO).

Spesifikasi protokol

Parameter

Description

Protocol

HTTP + JSON

Encoding

UTF-8

Prasyarat

Format permintaan

Satu permintaan dapat berisi beberapa pesan MO.

Contoh permintaan ketika Type bernilai TEXT:

[
   {
   "MessageId": "1000000000000001",  
   "From": "861388888****",    
   "To": "86137888****",    
   "DisplayName": "Mr Liu",
   "Type": "TEXT",
   "Message": "hello,it's me",    
   "Timestamp": 1662104191973,
   "Name": "jack"
   },
   {
   "MessageId": "1000000000000002",  
   "From": "861388888****",    
   "To": "86139123****",    
   "DisplayName": "Mr Wang",
   "Type": "TEXT",
   "Message": "hello,it's me",    
   "Timestamp": 1662104191973,
   "Name": "Jones"
   }
]

Contoh permintaan ketika Type bernilai AUDIO:

[ 
   {    
   "MessageId": "1000000000000003",    
   "CustSpaceId": "cams-83m8j9xxxxadc",
   "From": "+861388888****",     
   "DisplayName": "Mr Liu",
   "NoticeType": "inbound",     
   "To": "+861378886****",    
   "Type": "AUDIO",    
   "Message": 
     "{
     \"filename\":\"File.ogg\",
     \"animated\":false,
     \"id\":\"3214520xxxx75431\",
     \"mimeType\":\"audio/ogg\",
     \"url\":\"https://whatsapp-prod-oss-bucket.oss-ap-southeast-1.aliyuncs.com/1161931534xxxx19904.ogg\"
     }",
   "Timestamp ": 1662104191973,        
   "Name": "jack",
   "WabaId": "95271863xxxx233",
   },
   {    
   "MessageId": "1000000000000004",
   "CustSpaceId": "cams-83m8j9xxxxadc",  
   "From": "+861388888****",     
   "DisplayName": "Mr Wang",
   "NoticeType": "inbound",  
   "To": "+861378886****",
   "Type": "AUDIO",    
   "Message": 
     "{
     \"filename\":\"File.ogg\",
     \"animated\":false,
     \"id\":\"3214520xxxx75431\",
     \"mimeType\":\"audio/ogg\",
     \"url\":\"https://whatsapp-prod-oss-bucket.oss-ap-southeast-1.aliyuncs.com/1161931534xxxx19904.ogg\"
     }",   
   "Timestamp ": 1662104191973,        
   "Name": "John",
   "WabaId": "95271863xxxx233",
   }
]

Contoh permintaan ketika Type bernilai DOCUMENT:

[
   {    
   "MessageId": "1000000000000005",    
   "From": "+861388888****",         
   "DisplayName": "Mr Liu",
   "NoticeType": "inbound", 
   "To": "+861378889****",    
   "Type": "DOCUMENT",    
   "Message": 
     "{
     \"filename\":\"eventlog_20251211_155722_GMT.jsonl\",
     \"animated\":false,
     \"id\":\"275171383xxxx878\",
     \"mimeType\":\"application/octet-stream\",
     \"url\":\"https://bucket-chatapp-file-internal.oss-ap-southeast-1.aliyuncs.com/1161931xxxxx8375296.jsonl\"
     }",
   "Timestamp ": 1662104191973,        
   "Name": "jack",
   "WabaId": "212506738xxxx650",
   "CustSpaceId": "cams-85sglhxxxxkw"
   },
   {    
   "MessageId": "1000000000000006",    
   "From": "+861388888****",         
   "DisplayName": "Mr Liu",    
   "NoticeType": "inbound", 
   "To": "+861378882****",    
   "Type": "DOCUMENT",    
   "Message": 
     "{
     \"filename\":\"eventlog_20251211_155722_GMT.jsonl\",
     \"animated\":false,
     \"id\":\"275171383xxxx878\",
     \"mimeType\":\"application/octet-stream\",
     \"url\":\"https://bucket-chatapp-file-internal.oss-ap-southeast-1.aliyuncs.com/1161931xxxxx8375296.jsonl\"
     }",  
   "Timestamp ": 1662104191973,        
   "Name": "Jone",
   "WabaId": "212506738xxxx650",
   "CustSpaceId": "cams-85sglhxxxxkw"
   } 
]

Contoh permintaan ketika Type bernilai REPLY:

[
   {    
   "MessageId": "1000000000000007",    
   "From": "861388888****",        
   "DisplayName": "Mr Liu",    
   "To": "861378886****",    
   "Type": "REPLY",    
   "Message": "{ \"text\": \"click me\",\"payload\": \"1000000\" }" ,    
   "Timestamp ": 1662104191973
   },
   {    
   "MessageId": "1000000000000008",    
   "From": "861388888****",        
   "DisplayName": "Mr Wang",    
   "To": "861378883****",    
   "Type": "REPLY",    
   "Message": "{ \"text\": \"click me\",\"payload\": \"1000000\" }" ,    
   "Timestamp ": 1662104191973
   } 
]

Contoh permintaan ketika Type bernilai LOCATION:

[
   {    
   "MessageId": "1000000000000009",    
   "From": "861388888****",        
   "DisplayName":"Mr Liu",    
   "To": "861378868****",    
   "Type": "LOCATION",    
   "Message": 
     "{
     \"address \": \"changsha yuelu street \", 
     \"latitude \": \"39.999137107913\", 
     \"longitude \": \"116.48074005043\", 
     \"name \": \"this is firest location message\" 
     }",    
   "Timestamp ": 1662104191973,        
   "Name": "jack"
   },
   {    
   "MessageId": "1000000000000010",    
   "From": "861388888****",        
   "DisplayName":"Mr Wang",    
   "To": "861378168****",    
   "Type": "LOCATION",    
   "Message": 
     "{
     \"address \": \"changsha yuelu street \", 
     \"latitude \": \"39.999137107913\", 
     \"longitude \": \"116.48074005043\", 
     \"name \": \"this is firest location message\" 
     }",    
   "Timestamp ": 1662104191973,        
   "Name": "Jone"
   }
]

Deskripsi field

Field

Type

Required

Description

MessageId

String

Yes

Identifier unik dari pesan.

CustSpaceId

String

Yes

ID channel.

WabaId

String

Yes

WhatsApp Business Account ID.

From

String

Yes

Nomor telepon pengirim.

To

String

Yes

Nomor telepon penerima.

Timestamp

Long

Yes

Unix timestamp saat pesan dikirim, dalam milidetik.

DisplayName

String

Yes

Nama tampilan pengirim.

Type

String

Yes

Jenis pesan. Nilai yang valid:

  • TEXT

  • LOCATION

  • DOCUMENT

  • VIDEO

  • AUDIO

  • REPLY

  • IMAGE

  • CONTACTS

Message

String

Yes

Konten pesan.

  • Jika Type adalah TEXT , ini adalah teks pesan.

  • Jika Type adalah LOCATION , lihat bagian LOCATION object.

  • Jika Type adalah VIDEO , lihat bagian VIDEO object.

  • Jika Type adalah AUDIO , lihat bagian AUDIO object.

  • Jika Type adalah DOCUMENT , lihat bagian DOCUMENT object.

  • Jika Type adalah REPLY , lihat bagian REPLY object.

  • Jika Type adalah IMAGE , lihat bagian IMAGE object.

  • Jika Type adalah SYSTEM , lihat bagian SYSTEM object.

Name

String

Yes

Nama pengguna.

LOCATION object

Field

Type

Required

Description

address

String

Yes

Informasi alamat.

latitude

String

Yes

Lintang.

longitude

String

Yes

Bujur.

name

String

Yes

Deskripsi lokasi.

VIDEO object

Field

Type

Required

Description

name

String

Yes

Deskripsi file video.

id

String

Yes

ID file video.

mimeType

String

Yes

Nilai tetap: ogg.

Catatan

Parameter ini dapat diabaikan jika codecs=opus.

url

String

Yes

URL file video.

Catatan

URL berlaku selama 7 hari.

AUDIO object

Field

Type

Required

Description

name

String

Yes

Deskripsi file audio.

id

String

Yes

ID file audio.

mimeType

String

Yes

Nilai tetap: audio.

Catatan

Parameter ini dapat diabaikan jika codecs=opus.

url

String

Yes

URL file audio.

Catatan

URL berlaku selama 7 hari.

IMAGE object

Field

Type

Required

Description

caption

String

No

Deskripsi citra.

id

String

Yes

ID citra.

mimeType

String

Yes

MIME type citra.

url

String

Yes

URL citra.

Catatan

URL berlaku selama 7 hari.

DOCUMENT object

Field

Type

Required

Description

name

String

Yes

Deskripsi dokumen.

id

String

Yes

ID dokumen.

filename

String

Yes

Nama file dokumen.

mimeType

String

Yes

Nilai tetap: application/pdf .

url

String

Yes

URL dokumen.

Catatan

URL berlaku selama 7 hari.

REPLY object

Field

Type

Required

Description

text

String

Yes

Label teks tombol yang diklik pengguna.

payload

String

Yes

Payload yang terkait dengan tombol yang diklik, yang telah Anda definisikan saat mengirim pesan.

SYSTEM object

Field

Type

Required

Description

body

String

Yes

Menjelaskan perubahan identitas atau nomor telepon pengguna.

wa_id

String

Yes

WhatsApp ID baru pengguna setelah nomor teleponnya diperbarui.

type

String

Yes

Jenis pembaruan sistem. Nilai yang valid:

  • customer_changed_number : Pengguna mengubah nomor teleponnya.

  • customer_identity_changed : Pengguna mengubah profilnya.

Respons

Untuk mengonfirmasi penerimaan callback, titik akhir Anda harus mengembalikan kode status HTTP 200 dalam waktu 3 detik. Badan respons harus berupa objek JSON dengan format berikut. Jika tidak, platform menganggap pengiriman gagal dan akan mencoba mengirim ulang permintaan.

Contoh respons

{
  "code": 0,
  "msg": "Success"
}

Deskripsi field

Field

Type

Required

Description

code

Number

Yes

Kode respons.

msg

String

No

Pesan deskriptif.

Kebijakan Coba Lagi

Jika upaya dorong awal gagal, layanan akan mencoba mengirim ulang permintaan setelah 1 menit dan sekali lagi setelah 5 menit. Upaya dianggap gagal jika titik akhir Anda mengembalikan kode status HTTP selain 200 atau jika permintaan mengalami timeout. Setelah tiga kali upaya gagal, layanan berhenti mencoba mengirim ulang.