Panduan ini menentukan bagaimana Anda dapat memverifikasi nomor telepon Anda dan format yang diperlukan untuk Cloud API.
Ada kriteria untuk jenis nomor telepon yang dapat Anda tambahkan ke akun WhatsApp Business (WABA) Anda. Lihat Nomor Telepon untuk informasi selengkapnya.
Beberapa panggilan API yang terdaftar mewajibkan Anda untuk mengetahui ID nomor telepon Anda. Lihat Mendapatkan Semua Nomor Telepon tentang cara mendapatkan nomor telepon yang terkait dengan WABA Anda. Tanggapan panggilan API mencakup ID untuk setiap nomor telepon yang terhubung ke akun WhatsApp Business Anda. Simpan ID untuk telepon yang ingin Anda gunakan dengan panggilan /PHONE_NUMBER_ID
.
Anda perlu memverifikasi nomor telepon yang ingin Anda gunakan untuk mengirim pesan ke pelanggan Anda. Nomor telepon harus diverifikasi menggunakan kode yang dikirim melalui SMS/panggilan suara. Proses verifikasi dapat dilakukan melalui panggilan Graph API yang ditentukan di bawah ini.
Untuk memverifikasi nomor telepon menggunakan Graph API, buat permintaan POST
ke PHONE_NUMBER_ID/request_code
. Dalam panggilan Anda, sertakan metode verifikasi dan bahasa yang Anda pilih.
Endpoint | Autentikasi |
---|---|
(Lihat Mendapatkan ID Nomor Telepon) | Autentikasi diri Anda dengan token akses pengguna sistem. Jika Anda meminta kode atas nama bisnis lain, token akses harus memiliki Akses Lanjutan ke izin |
Nama | Deskripsi (Klik panah di kolom kiri untuk opsi yang didukung.) |
---|---|
| Wajib. Metode yang dipilih untuk verifikasi. |
| Wajib. Kode dua karakter dari kode bahasa tersebut. Contoh: |
Contoh permintaan:
Setelah panggilan API, Anda akan menerima kode verifikasi melalui metode yang Anda pilih. Untuk menyelesaikan proses verifikasi, sertakan kode Anda dalam permintaan POST
ke PHONE_NUMBER_ID/verify_code
.
Endpoint | Autentikasi |
---|---|
(Lihat Mendapatkan ID Nomor Telepon) | Autentikasi diri Anda dengan token akses pengguna sistem. Jika Anda meminta kode atas nama bisnis lain, token akses harus memiliki Akses Lanjutan ke izin |
Nama | Deskripsi |
---|---|
| Wajib. Kode yang Anda terima setelah memanggil |
Contoh permintaan:
Tanggapan yang berhasil akan terlihat seperti ini:
{ "success": true }
Plus signs (+
), hyphens (-
), parenthesis ((
,)
), and spaces are supported in send message requests.
We highly recommend that you include both the plus sign and country calling code when sending a message to a customer. If the plus sign is omitted, your business phone number's country calling code is prepended to the customer's phone number. This can result in undelivered or misdelivered messages.
For example, if your business is in India (country calling code 91
) and you send a message to the following customer phone number in various formats:
Number In Send Message Request | Number Message Delivered To | Outcome |
---|---|---|
|
| Correct number |
|
| Correct number |
|
| Potentially wrong number |
|
| Potentially wrong number |
Anda mungkin ingin kami memverifikasi identitas pelanggan sebelum kami menyampaikan pesan Anda kepada mereka. Anda dapat meminta kami melakukan ini dengan mengaktifkan pengaturan pemeriksaan perubahan identitas pada nomor telepon bisnis Anda.
Jika pelanggan melakukan tindakan di WhatsApp yang kami anggap sebagai perubahan identitas, kami akan membuat hash identitas baru untuk pengguna tersebut. Anda bisa mendapatkan hash ini kapan saja ketika Anda mengirim pesan kepada pelanggan, dengan cara mengaktifkan pengaturan pemeriksaan perubahan identitas pada nomor telepon bisnis Anda. Setelah diaktifkan, kapan saja pelanggan mengirimkan pesan kepada Anda, atau Anda mengirimkan pesan kepada pelanggan tanpa identitas hash, kami akan menyertakan hash mereka ke Webhooks pesan masuk atau Webhooks status penyampaian. Anda kemudian dapat mengambil gambar dan menyimpan hash ini untuk penggunaan di masa mendatang.
Untuk menggunakan hash, sertakan dalam permintaan kirim pesan. Kami akan membandingkan hash dalam permintaan dengan hash pelanggan saat ini. Jika hash cocok, pesan akan disampaikan. Jika ada yang tidak cocok, itu berarti pelanggan telah mengubah identitas mereka sejak terakhir Anda mengirimkan pesan kepada mereka dan kami tidak akan menyampaikan pesan. Sebagai gantinya, kami akan mengirimi Anda Webhooks status pesan yang berisi kode kesalahan 137000
, memberi tahu Anda tentang kegagalan dan ketidakcocokan.
Ketika Anda menerima hash Webhooks yang tidak cocok, anggap nomor telepon pelanggan tidak bisa dipercaya lagi. Untuk membangun kembali kepercayaan, verifikasikan identitas pelanggan lagi menggunakan saluran non-WhatsApp lainnya. Setelah Anda membangun kembali kepercayaan, kirimkan ulang pesan yang gagal ke identitas baru (jika ada), tanpa hash. Kemudian simpan hash baru pelanggan yang disertakan dalam Webhooks penyampaian status pesan.
Kirim permintaan POST ke endpoint Nomor Telepon WhatsApp Business > Pengaturan untuk mengaktifkan atau menonaktifkan pengaturan pemeriksaan perubahan identitas.
POST /<WHATSAPP_BUSINESS_PHONE_NUMBER>/settings
{ "user_identity_change" : { "enable_identity_key_check": <ENABLE_IDENTITY_KEY_CHECK> }
Atur <ENABLE_IDENTITY_KEY_CHECK>
ke true
untuk mengaktifkan pemeriksaan identitas, atau false
untuk menonaktifkannya.
curl 'https://graph.facebook.com/v21.0
/106850078877666/settings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"user_identity_change": {
"enable_identity_key_check": true
}
}'
{ "success": true }
Contoh pesan ini hanya akan disampaikan jika nilai hash recipient_identity_key_hash
cocok dengan hash pelanggan saat ini.
curl 'https://graph.facebook.com/v21.0
/106850078877666/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "+16505551234",
"recipient_identity_key_hash": "DF2lS5v2W6x=",
"type": "text",
"text": {
"preview_url": false,
"body": "Your latest statement is attached. See... "
}
}'
Di Webhooks pesan masuk, hash pelanggan ditetapkan ke properti identity_key_hash
.
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550051310", "phone_number_id": "106540352242922" }, "contacts": [ { "profile": { "name": "Pablo Morales" }, "wa_id": "16505551234", "identity_key_hash": "DF2lS5v2W6x=" } ], "messages": [ { "from": "16505551234", "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUMyNTA4M0VGN0Q4RjdDNDVCMAA=", "timestamp": "1686591695", "text": { "body": "Your latest statement is attached. See... " }, "type": "text" } ] }, "field": "messages" } ] } ] }
Di Webhooks status penyampaian, hash pelanggan ditetapkan ke properti recipient_identity_key_hash
.
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550051310", "phone_number_id": "106540352242922" }, "statuses": [ { "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJGODlDQjZBNjUxMUQ5NEU0MEUA", "status": "delivered", "timestamp": "1686591922", "recipient_id": "16505551234", "recipient_identity_key_hash": "DF2lS5v2W6x=", "conversation": { "id": "6c84493f3de086c7c68d5a39248f72c0", "origin": { "type": "service" } }, "pricing": { "billable": true, "pricing_model": "CBP", "category": "service" } } ] }, "field": "messages" } ] } ] }
Di Webhooks status penyampaian, hash pelanggan ditetapkan ke properti recipient_identity_key_hash
.
{ "object": "whatsapp_business_account", "entry": [ { "id": "102290129340398", "changes": [ { "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": "15550051310", "phone_number_id": "106540352242922" }, "statuses": [ { "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJDQzA0OEU4OTdEQUE5REVCQTgA", "status": "failed", "timestamp": "1686594665", "recipient_id": "16505551234", "errors": [ { "code": 137000, "title": "Confirm the correct Recipient Identity Key Hash or send without any identity key hash" } ] } ] }, "field": "messages" } ] } ] }
Gunakan endpoint Nomor Telepon WhatsApp Business untuk mendapatkan level throughput nomor telepon saat ini:
GET /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>?fields=throughput