{"id":1643,"date":"2026-10-01T09:51:15","date_gmt":"2026-10-01T09:51:15","guid":{"rendered":"https:\/\/whapi.id\/blog\/?p=1643"},"modified":"2026-09-30T03:22:50","modified_gmt":"2026-09-30T03:22:50","slug":"kenapa-webhook-whatsapp-tidak-menerima-pesan","status":"publish","type":"post","link":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/","title":{"rendered":"Kenapa Webhook WhatsApp Tidak Menerima Pesan ?"},"content":{"rendered":"<p>Webhook WhatsApp tidak menerima pesan ketika server gagal menerima, memproses, atau merespons event yang dikirim oleh API. Masalah dapat berasal dari URL webhook, endpoint yang salah, server tidak dapat diakses, konfigurasi webhook, hingga device WhatsApp yang tidak terhubung.<\/p>\n<p>Webhook bekerja dengan mengirim event dari API ke URL yang sudah dikonfigurasi. Ketika pelanggan mengirim pesan, alurnya menjadi:<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg\" alt=\"Kenapa Webhook WhatsApp Tidak Menerima Pesan \" width=\"1408\" height=\"768\" class=\"alignnone size-full wp-image-1644\" srcset=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg 1408w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan-300x164.jpg 300w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan-1024x559.jpg 1024w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan-768x419.jpg 768w\" sizes=\"(max-width: 1408px) 100vw, 1408px\" \/><\/p>\n<pre><code class=\"lang-text\">Pesan WhatsApp\r\n      \u2193\r\nDevice WhatsApp\r\n      \u2193\r\nAPI Whapi\r\n      \u2193\r\nWebhook\r\n      \u2193\r\n<span class=\"hljs-built_in\">Server<\/span>\r\n<\/code><\/pre>\n<p>Jika salah satu bagian bermasalah, event pesan dapat tidak sampai atau tidak diproses oleh aplikasi.<\/p>\n<h2 id=\"1-url-webhook-salah\">1. URL Webhook Salah<\/h2>\n<p>Penyebab paling dasar adalah URL webhook tidak sesuai dengan endpoint yang tersedia pada server.<\/p>\n<p>Misalnya konfigurasi menggunakan:<\/p>\n<pre><code class=\"lang-text\">https:<span class=\"hljs-regexp\">\/\/<\/span>example.com<span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<p>tetapi aplikasi hanya memiliki route:<\/p>\n<pre><code class=\"lang-text\">\/webhook\r\n<\/code><\/pre>\n<p>Request akan masuk ke URL yang tidak tersedia dan server dapat mengembalikan <code>404 Not Found<\/code>.<\/p>\n<p>Periksa kembali:<\/p>\n<ul>\n<li>nama domain;<\/li>\n<li>path endpoint;<\/li>\n<li>penggunaan HTTPS;<\/li>\n<li>port;<\/li>\n<li>trailing slash jika server membedakannya;<\/li>\n<li>route yang tersedia pada aplikasi.<\/li>\n<\/ul>\n<p>URL yang digunakan pada konfigurasi webhook harus sama dengan endpoint yang menerima request.<\/p>\n<h2 id=\"2-endpoint-tidak-dapat-diakses-dari-internet\">2. Endpoint Tidak Dapat Diakses dari Internet<\/h2>\n<p>Webhook dikirim dari server API menuju server aplikasi. Karena itu, endpoint harus dapat diakses dari internet.<\/p>\n<p>URL seperti:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">http:<\/span><span class=\"hljs-comment\">\/\/localhost:3000\/webhook<\/span>\r\n<\/code><\/pre>\n<p>hanya dapat diakses dari komputer yang menjalankan aplikasi tersebut.<\/p>\n<p>Hal yang sama berlaku untuk alamat private seperti:<\/p>\n<pre><code class=\"lang-text\">192<span class=\"hljs-selector-class\">.168<\/span><span class=\"hljs-selector-class\">.1<\/span><span class=\"hljs-selector-class\">.10<\/span>\r\n10<span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.0<\/span><span class=\"hljs-selector-class\">.10<\/span>\r\n<\/code><\/pre>\n<p>Alamat tersebut tidak dapat digunakan sebagai endpoint webhook publik tanpa konfigurasi jaringan tambahan.<\/p>\n<p>Untuk production, gunakan domain atau URL publik seperti:<\/p>\n<pre><code class=\"lang-text\">https:<span class=\"hljs-regexp\">\/\/<\/span>api.example.com<span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<h2 id=\"3-route-tidak-menerima-http-post\">3. Route Tidak Menerima HTTP POST<\/h2>\n<p>Webhook biasanya mengirim data menggunakan HTTP request tertentu. Jika aplikasi hanya menyediakan route <code>GET<\/code>, request webhook tidak akan diproses.<\/p>\n<p>Contoh route yang benar menggunakan Express:<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(req.body);\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Pastikan route yang dibuat sama dengan URL yang dikonfigurasi.<\/p>\n<p>Jika URL:<\/p>\n<pre><code class=\"lang-text\">https:<span class=\"hljs-regexp\">\/\/<\/span>example.com<span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<p>maka aplikasi harus memiliki route untuk:<\/p>\n<pre><code class=\"lang-text\">POST <span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<h2 id=\"4-server-mengembalikan-error\">4. Server Mengembalikan Error<\/h2>\n<p>Webhook dapat sampai ke server tetapi gagal diproses karena aplikasi menghasilkan error.<\/p>\n<p>Periksa HTTP status code pada server.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">200 <\/span>OK\r\n<\/code><\/pre>\n<p>menunjukkan request berhasil diproses.<\/p>\n<p>Sedangkan:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">400 <\/span>Bad Request\r\n<span class=\"hljs-symbol\">401 <\/span>Unauthorized\r\n<span class=\"hljs-symbol\">403 <\/span>Forbidden\r\n<span class=\"hljs-symbol\">404 <\/span><span class=\"hljs-keyword\">Not<\/span> Found\r\n<span class=\"hljs-symbol\">500 <\/span>Internal Server <span class=\"hljs-keyword\">Error<\/span>\r\n<span class=\"hljs-symbol\">502 <\/span>Bad Gateway\r\n<span class=\"hljs-symbol\">503 <\/span>Service Unavailable\r\n<\/code><\/pre>\n<p>menunjukkan adanya masalah yang perlu diperiksa.<\/p>\n<p>Untuk mengetahui penyebabnya, periksa log aplikasi dan web server.<\/p>\n<p>Contoh log Express:<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Webhook diterima'<\/span>);\r\n  <span class=\"hljs-built_in\">console<\/span>.log(JSON.stringify(req.body, <span class=\"hljs-literal\">null<\/span>, <span class=\"hljs-number\">2<\/span>));\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Jika tulisan <code>Webhook diterima<\/code> tidak muncul, request kemungkinan belum mencapai route tersebut.<\/p>\n<p>Jika tulisan muncul tetapi aplikasi gagal setelahnya, masalah berada pada proses setelah request diterima.<\/p>\n<h2 id=\"5-middleware-tidak-membaca-request-body\">5. Middleware Tidak Membaca Request Body<\/h2>\n<p>Webhook dapat sudah sampai ke aplikasi tetapi payload tidak terbaca karena middleware belum dikonfigurasi.<\/p>\n<p>Pada Express, JSON request dapat dibaca dengan:<\/p>\n<pre><code class=\"lang-javascript\"><span class=\"hljs-keyword\">const<\/span> express = <span class=\"hljs-keyword\">require<\/span>(<span class=\"hljs-string\">'express'<\/span>);\r\n\r\n<span class=\"hljs-keyword\">const<\/span> app = express();\r\n\r\napp.<span class=\"hljs-keyword\">use<\/span>(express.json());\r\n<\/code><\/pre>\n<p>Kemudian:<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(req.body);\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Tanpa parser yang sesuai, <code>req.body<\/code> dapat kosong atau tidak berisi data yang diharapkan.<\/p>\n<h2 id=\"6-firewall-atau-reverse-proxy-memblokir-request\">6. Firewall atau Reverse Proxy Memblokir Request<\/h2>\n<p>Server dapat berjalan normal tetapi request dari luar tidak sampai ke aplikasi karena firewall, reverse proxy, atau aturan jaringan.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-attribute\">API<\/span> Whapi\r\n    \u2193\r\nInternet\r\n    \u2193\r\nFirewall\r\n    \u2193\r\nNginx\r\n    \u2193\r\nApplication\r\n<\/code><\/pre>\n<p>Jika firewall menutup port yang diperlukan atau Nginx mengarahkan request ke lokasi yang salah, webhook tidak akan sampai ke aplikasi.<\/p>\n<p>Periksa konfigurasi:<\/p>\n<ul>\n<li>Firewall server<\/li>\n<li>Nginx atau Apache<\/li>\n<li>SSL\/TLS<\/li>\n<li>Port aplikasi<\/li>\n<li>Reverse proxy<\/li>\n<li>DNS domain<\/li>\n<\/ul>\n<p>Jika menggunakan Nginx, pastikan request menuju path webhook diteruskan ke aplikasi yang benar.<\/p>\n<h2 id=\"7-ssl-atau-https-bermasalah\">7. SSL atau HTTPS Bermasalah<\/h2>\n<p>Webhook production sebaiknya menggunakan HTTPS.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">https:<span class=\"hljs-regexp\">\/\/<\/span>example.com<span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<p>Masalah sertifikat SSL dapat menyebabkan request gagal sebelum mencapai aplikasi.<\/p>\n<p>Periksa apakah domain dapat dibuka dengan HTTPS tanpa error sertifikat.<\/p>\n<p>Beberapa masalah yang perlu diperiksa:<\/p>\n<ul>\n<li>Sertifikat sudah kedaluwarsa.<\/li>\n<li>Domain tidak sesuai dengan sertifikat.<\/li>\n<li>Certificate chain bermasalah.<\/li>\n<li>Konfigurasi TLS pada server tidak valid.<\/li>\n<\/ul>\n<p>Jika browser sudah menunjukkan peringatan sertifikat ketika membuka endpoint, konfigurasi HTTPS perlu diperbaiki.<\/p>\n<h2 id=\"8-device-whatsapp-belum-terhubung\">8. Device WhatsApp Belum Terhubung<\/h2>\n<p>Webhook bergantung pada event yang diterima oleh device WhatsApp.<\/p>\n<p>Jika device tidak terhubung, pesan WhatsApp tidak akan diproses seperti ketika device berada dalam kondisi aktif.<\/p>\n<p>Periksa status device pada dashboard Whapi sebelum melakukan pengujian webhook.<\/p>\n<p>Alurnya:<\/p>\n<pre><code class=\"lang-text\">Device CONNECTED\r\n       \u2193\r\nPesan WhatsApp masuk\r\n       \u2193\r\nWhapi menerima <span class=\"hljs-keyword\">event<\/span>\r\n       \u2193\r\nWebhook menerima <span class=\"hljs-keyword\">event<\/span>\r\n<\/code><\/pre>\n<p>Jika device mengalami disconnect, fokus pemeriksaan harus dimulai dari status device sebelum memeriksa kode webhook.<\/p>\n<h2 id=\"9-konfigurasi-webhook-belum-aktif\">9. Konfigurasi Webhook Belum Aktif<\/h2>\n<p>Endpoint sudah dibuat tetapi URL belum tersimpan atau belum aktif pada konfigurasi webhook.<\/p>\n<p>Periksa kembali konfigurasi webhook pada device atau channel yang digunakan.<\/p>\n<p>Pastikan:<\/p>\n<ul>\n<li>URL sudah benar;<\/li>\n<li>konfigurasi sudah disimpan;<\/li>\n<li>event pesan masuk sudah dipilih jika konfigurasi menyediakan pilihan event;<\/li>\n<li>device yang diuji adalah device yang menggunakan konfigurasi tersebut.<\/li>\n<\/ul>\n<p>Jangan menguji nomor atau device yang berbeda dari konfigurasi webhook.<\/p>\n<h2 id=\"10-event-yang-dibutuhkan-belum-diproses\">10. Event yang Dibutuhkan Belum Diproses<\/h2>\n<p>Webhook dapat menerima beberapa jenis event. Tidak semua event memiliki struktur data yang sama.<\/p>\n<p>Jika aplikasi hanya mencari event pesan masuk tetapi request yang diterima merupakan event lain, aplikasi dapat menganggap webhook tidak bekerja.<\/p>\n<p>Karena itu, tampilkan payload mentah terlebih dahulu:<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(JSON.stringify(req.body, <span class=\"hljs-literal\">null<\/span>, <span class=\"hljs-number\">2<\/span>));\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Setelah payload terlihat, tentukan field dan event yang memang diperlukan.<\/p>\n<p>Jangan langsung membuat parser berdasarkan asumsi struktur data.<\/p>\n<h2 id=\"11-endpoint-mengalami-timeout\">11. Endpoint Mengalami Timeout<\/h2>\n<p>Server yang terlalu lama memberikan response dapat menyebabkan request webhook dianggap gagal.<\/p>\n<p>Contoh masalah:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">Webhook<\/span> menerima request\r\n        \u2193\r\n<span class=\"hljs-symbol\">Query<\/span> database <span class=\"hljs-keyword\">besar\r\n<\/span>        \u2193\r\n<span class=\"hljs-symbol\">Memanggil<\/span> <span class=\"hljs-keyword\">beberapa <\/span>API\r\n        \u2193\r\n<span class=\"hljs-symbol\">Menjalankan<\/span> proses <span class=\"hljs-keyword\">berat\r\n<\/span>        \u2193\r\n<span class=\"hljs-symbol\">Response<\/span> terlalu lama\r\n<\/code><\/pre>\n<p>Untuk webhook, proses penerimaan event sebaiknya dibuat singkat.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-keyword\">async<\/span> (req, res) =&gt; {\r\n  <span class=\"hljs-keyword\">const<\/span> data = req.body;\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n\r\n  <span class=\"hljs-comment\">\/\/ Proses lanjutan<\/span>\r\n});\r\n<\/code><\/pre>\n<p>Proses berat dapat dipindahkan ke queue atau worker agar endpoint tidak menunggu seluruh pekerjaan selesai.<\/p>\n<h2 id=\"12-route-menghasilkan-404\">12. Route Menghasilkan 404<\/h2>\n<p>Jika log web server menunjukkan:<\/p>\n<pre><code class=\"lang-text\">POST <span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp <span class=\"hljs-number\">404<\/span>\r\n<\/code><\/pre>\n<p>berarti server menerima request tetapi tidak menemukan route tersebut.<\/p>\n<p>Periksa perbedaan antara URL webhook dan route aplikasi.<\/p>\n<p>Misalnya konfigurasi:<\/p>\n<pre><code class=\"lang-text\">https:<span class=\"hljs-regexp\">\/\/<\/span>example.com<span class=\"hljs-regexp\">\/api\/<\/span>webhook<span class=\"hljs-regexp\">\/whatsapp<\/span>\r\n<\/code><\/pre>\n<p>tetapi route aplikasi:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-regexp\">\/webhook\/<\/span>whatsapp\r\n<\/code><\/pre>\n<p>Maka request akan masuk ke path yang berbeda.<\/p>\n<p>Jika aplikasi menggunakan prefix <code>\/api<\/code>, pastikan URL webhook juga menggunakannya.<\/p>\n<h2 id=\"13-api-key-atau-konfigurasi-device-bermasalah\">13. API Key atau Konfigurasi Device Bermasalah<\/h2>\n<p>Jika webhook sudah benar tetapi event tetap tidak diterima, periksa konfigurasi device dan API yang digunakan.<\/p>\n<p>Pastikan API key yang digunakan mengarah ke device yang benar dan device tersebut masih aktif.<\/p>\n<p>Hindari menguji beberapa device sekaligus ketika mencari penyebab masalah. Gunakan satu device dan satu endpoint terlebih dahulu agar sumber masalah lebih mudah ditemukan.<\/p>\n<h2 id=\"14-cara-mengetahui-apakah-request-sudah-sampai\">14. Cara Mengetahui Apakah Request Sudah Sampai<\/h2>\n<p>Cara paling cepat adalah menambahkan log pada endpoint sebelum memproses payload.<\/p>\n<pre><code class=\"lang-javascript\">app.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'REQUEST WEBHOOK MASUK'<\/span>);\r\n  <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Headers:'<\/span>, req.headers);\r\n  <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Body:'<\/span>, req.body);\r\n\r\n  res.sendStatus(<span class=\"hljs-number\">200<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Ada tiga kemungkinan hasil.<\/p>\n<h3 id=\"tidak-ada-log\">Tidak Ada Log<\/h3>\n<p>Jika tidak ada log sama sekali, request belum mencapai aplikasi.<\/p>\n<p>Periksa:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-keyword\">URL<\/span> webhook\r\n\u2193\r\nDNS\r\n\u2193\r\nHTTPS\r\n\u2193\r\nFirewall\r\n\u2193\r\n<span class=\"hljs-keyword\">Reverse<\/span> proxy\r\n\u2193\r\nRoute\r\n<\/code><\/pre>\n<h3 id=\"log-ada-body-kosong\">Log Ada, Body Kosong<\/h3>\n<p>Jika request masuk tetapi body tidak terbaca, periksa:<\/p>\n<pre><code class=\"lang-text\">Content-<span class=\"hljs-keyword\">Type<\/span>\r\n<span class=\"hljs-type\">\u2193\r\n<\/span><span class=\"hljs-keyword\">Body<\/span> parser\r\n\u2193\r\nFormat payload\r\n<\/code><\/pre>\n<h3 id=\"log-ada-dan-body-berisi-data\">Log Ada dan Body Berisi Data<\/h3>\n<p>Jika payload sudah terlihat, masalah bukan lagi pada koneksi webhook. Periksa kode yang memproses payload setelah diterima.<\/p>\n<h2 id=\"15-urutan-troubleshooting-yang-tepat\">15. Urutan Troubleshooting yang Tepat<\/h2>\n<p>Jangan langsung mengubah kode aplikasi ketika webhook tidak menerima pesan. Periksa dari lapisan paling dasar.<\/p>\n<p>Gunakan urutan berikut:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-bullet\">1. <\/span>Device WhatsApp CONNECTED?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">2. <\/span>Webhook sudah dikonfigurasi?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">3. <\/span>URL webhook benar?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">4. <\/span>URL dapat diakses dari internet?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">5. <\/span>HTTPS valid?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">6. <\/span>Route menerima POST?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">7. <\/span>Request masuk ke server?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">8. <\/span>Body terbaca?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">9. <\/span>Payload sesuai?\r\n<span class=\"hljs-code\">          \u2193<\/span>\r\n<span class=\"hljs-bullet\">10. <\/span>Business logic berhasil?\r\n<\/code><\/pre>\n<p>Urutan ini membantu menentukan lokasi masalah tanpa mengubah banyak bagian sekaligus.<\/p>\n<h2 id=\"contoh-endpoint-untuk-pengujian\">Contoh Endpoint untuk Pengujian<\/h2>\n<p>Gunakan endpoint sederhana terlebih dahulu sebelum menambahkan database, chatbot, atau proses lain.<\/p>\n<pre><code class=\"lang-javascript\">const express = <span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">'express'<\/span>);\r\n\r\nconst app = express();\r\n\r\napp.use(express.json());\r\n\r\napp.post(<span class=\"hljs-string\">'\/webhook\/whatsapp'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Webhook masuk'<\/span>);\r\n  <span class=\"hljs-built_in\">console<\/span>.log(JSON.stringify(req.body, <span class=\"hljs-literal\">null<\/span>, <span class=\"hljs-number\">2<\/span>));\r\n\r\n  res.status(<span class=\"hljs-number\">200<\/span>).json({\r\n    success: <span class=\"hljs-literal\">true<\/span>\r\n  });\r\n});\r\n\r\napp.listen(<span class=\"hljs-number\">3000<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">()<\/span> =&gt;<\/span> {\r\n  <span class=\"hljs-built_in\">console<\/span>.log(<span class=\"hljs-string\">'Server berjalan di port 3000'<\/span>);\r\n});\r\n<\/code><\/pre>\n<p>Jika endpoint ini berhasil menerima event, tambahkan proses berikutnya satu per satu.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">Webhook<\/span> dasar\r\n     \u2193\r\n<span class=\"hljs-symbol\">Validasi<\/span> payload\r\n     \u2193\r\n<span class=\"hljs-symbol\">Simpan<\/span> database\r\n     \u2193\r\n<span class=\"hljs-keyword\">Business <\/span>logic\r\n     \u2193\r\n<span class=\"hljs-symbol\">Chatbot<\/span> \/ CRM\r\n<\/code><\/pre>\n<p>Cara ini lebih mudah untuk menemukan bagian yang menyebabkan error.<\/p>\n<h2 id=\"kesimpulan\">Kesimpulan<\/h2>\n<p>Webhook WhatsApp yang tidak menerima pesan dapat disebabkan oleh masalah pada URL, server, route, konfigurasi webhook, koneksi device, atau kode pemrosesan payload.<\/p>\n<p>Pemeriksaan utama meliputi:<\/p>\n<ul>\n<li>Pastikan device WhatsApp terhubung.<\/li>\n<li>Periksa URL webhook.<\/li>\n<li>Pastikan endpoint dapat diakses dari internet.<\/li>\n<li>Pastikan route menerima <code>POST<\/code>.<\/li>\n<li>Periksa HTTPS dan SSL.<\/li>\n<li>Periksa firewall dan reverse proxy.<\/li>\n<li>Pastikan request body dapat dibaca.<\/li>\n<li>Periksa log server.<\/li>\n<li>Pastikan endpoint mengembalikan response <code>2xx<\/code>.<\/li>\n<li>Pisahkan penerimaan webhook dari proses yang berat.<\/li>\n<\/ul>\n<p>Jika request bahkan tidak muncul pada log server, fokuskan pemeriksaan pada URL, jaringan, HTTPS, firewall, dan reverse proxy. Jika request sudah masuk tetapi payload tidak terbaca, periksa middleware dan format request. Jika payload sudah tersedia, masalah berada pada proses aplikasi setelah webhook menerima event.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Webhook WhatsApp tidak menerima pesan ketika server gagal menerima, memproses, atau merespons event yang dikirim oleh API. Masalah dapat berasal [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1644,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1643","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Kenapa Webhook WhatsApp Tidak Menerima Pesan ? - WHAPI | BLOG<\/title>\n<meta name=\"description\" content=\"Webhook WhatsApp tidak menerima pesan, mulai dari URL webhook, endpoint, response server, hingga konfigurasi dan koneksi device.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kenapa Webhook WhatsApp Tidak Menerima Pesan ? - WHAPI | BLOG\" \/>\n<meta property=\"og:description\" content=\"Webhook WhatsApp tidak menerima pesan, mulai dari URL webhook, endpoint, response server, hingga konfigurasi dan koneksi device.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/\" \/>\n<meta property=\"og:site_name\" content=\"WHAPI | BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-01T09:51:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1408\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Doveriz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Doveriz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/\",\"url\":\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/\",\"name\":\"Kenapa Webhook WhatsApp Tidak Menerima Pesan ? - WHAPI | BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/whapi.id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg\",\"datePublished\":\"2026-10-01T09:51:15+00:00\",\"author\":{\"@id\":\"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a\"},\"description\":\"Webhook WhatsApp tidak menerima pesan, mulai dari URL webhook, endpoint, response server, hingga konfigurasi dan koneksi device.\",\"breadcrumb\":{\"@id\":\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#primaryimage\",\"url\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg\",\"contentUrl\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg\",\"width\":1408,\"height\":768,\"caption\":\"Kenapa Webhook WhatsApp Tidak Menerima Pesan\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Beranda\",\"item\":\"https:\/\/whapi.id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kenapa Webhook WhatsApp Tidak Menerima Pesan ?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/whapi.id\/blog\/#website\",\"url\":\"https:\/\/whapi.id\/blog\/\",\"name\":\"WHAPI | BLOG\",\"description\":\"Blog Resmi Whapi.id Temukan tips praktis, panduan teknis, dan informasi terbaru seputar WhatsApp API, chatbot, serta otomasi bisnis. Ditulis oleh tim ahli untuk membantu meningkatkan pelayanan, efisiensi operasional, dan penjualan bisnis secara berkelanjutan.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/whapi.id\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a\",\"name\":\"Doveriz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/whapi.id\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2797b0bc9cdfb3ca0fbc22a3708768605e7bee3cfa5ec0b6c98c8511a1378252?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2797b0bc9cdfb3ca0fbc22a3708768605e7bee3cfa5ec0b6c98c8511a1378252?s=96&d=mm&r=g\",\"caption\":\"Doveriz\"},\"description\":\"Saya adalah Developer dan penulis Blog Whapi.id serta Fullstack Developer spesialisasi pengembangan aplikasi berbasis web dan chatbot automation untuk berbagai platform bisnis.\",\"sameAs\":[\"https:\/\/whapi.id\/blog\"],\"url\":\"https:\/\/whapi.id\/blog\/author\/whapi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kenapa Webhook WhatsApp Tidak Menerima Pesan ? - WHAPI | BLOG","description":"Webhook WhatsApp tidak menerima pesan, mulai dari URL webhook, endpoint, response server, hingga konfigurasi dan koneksi device.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/","og_locale":"id_ID","og_type":"article","og_title":"Kenapa Webhook WhatsApp Tidak Menerima Pesan ? - WHAPI | BLOG","og_description":"Webhook WhatsApp tidak menerima pesan, mulai dari URL webhook, endpoint, response server, hingga konfigurasi dan koneksi device.","og_url":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/","og_site_name":"WHAPI | BLOG","article_published_time":"2026-10-01T09:51:15+00:00","og_image":[{"width":1408,"height":768,"url":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg","type":"image\/jpeg"}],"author":"Doveriz","twitter_card":"summary_large_image","twitter_misc":{"Ditulis oleh":"Doveriz","Estimasi waktu membaca":"1 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/","url":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/","name":"Kenapa Webhook WhatsApp Tidak Menerima Pesan ? - WHAPI | BLOG","isPartOf":{"@id":"https:\/\/whapi.id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#primaryimage"},"image":{"@id":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#primaryimage"},"thumbnailUrl":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg","datePublished":"2026-10-01T09:51:15+00:00","author":{"@id":"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a"},"description":"Webhook WhatsApp tidak menerima pesan, mulai dari URL webhook, endpoint, response server, hingga konfigurasi dan koneksi device.","breadcrumb":{"@id":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#primaryimage","url":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg","contentUrl":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Kenapa-Webhook-WhatsApp-Tidak-Menerima-Pesan.jpg","width":1408,"height":768,"caption":"Kenapa Webhook WhatsApp Tidak Menerima Pesan"},{"@type":"BreadcrumbList","@id":"https:\/\/whapi.id\/blog\/kenapa-webhook-whatsapp-tidak-menerima-pesan\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Beranda","item":"https:\/\/whapi.id\/blog\/"},{"@type":"ListItem","position":2,"name":"Kenapa Webhook WhatsApp Tidak Menerima Pesan ?"}]},{"@type":"WebSite","@id":"https:\/\/whapi.id\/blog\/#website","url":"https:\/\/whapi.id\/blog\/","name":"WHAPI | BLOG","description":"Blog Resmi Whapi.id Temukan tips praktis, panduan teknis, dan informasi terbaru seputar WhatsApp API, chatbot, serta otomasi bisnis. Ditulis oleh tim ahli untuk membantu meningkatkan pelayanan, efisiensi operasional, dan penjualan bisnis secara berkelanjutan.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/whapi.id\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Person","@id":"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a","name":"Doveriz","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/whapi.id\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2797b0bc9cdfb3ca0fbc22a3708768605e7bee3cfa5ec0b6c98c8511a1378252?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2797b0bc9cdfb3ca0fbc22a3708768605e7bee3cfa5ec0b6c98c8511a1378252?s=96&d=mm&r=g","caption":"Doveriz"},"description":"Saya adalah Developer dan penulis Blog Whapi.id serta Fullstack Developer spesialisasi pengembangan aplikasi berbasis web dan chatbot automation untuk berbagai platform bisnis.","sameAs":["https:\/\/whapi.id\/blog"],"url":"https:\/\/whapi.id\/blog\/author\/whapi\/"}]}},"_links":{"self":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/comments?post=1643"}],"version-history":[{"count":2,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1643\/revisions"}],"predecessor-version":[{"id":1646,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1643\/revisions\/1646"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/media\/1644"}],"wp:attachment":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/media?parent=1643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/categories?post=1643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/tags?post=1643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}