{"id":1633,"date":"2026-09-28T13:22:40","date_gmt":"2026-09-28T13:22:40","guid":{"rendered":"https:\/\/whapi.id\/blog\/?p=1633"},"modified":"2026-09-27T13:30:00","modified_gmt":"2026-09-27T13:30:00","slug":"cara-mengirim-otp-whatsapp-dari-aplikasi-web","status":"publish","type":"post","link":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/","title":{"rendered":"Cara Mengirim OTP WhatsApp dari Aplikasi Web"},"content":{"rendered":"<p>OTP WhatsApp adalah kode sekali pakai yang dikirim ke nomor WhatsApp untuk memverifikasi identitas pengguna pada aplikasi web.<\/p>\n<p>OTP dapat digunakan untuk registrasi akun, login, verifikasi nomor WhatsApp, reset akses, atau konfirmasi tindakan tertentu.<\/p>\n<p>Prosesnya dimulai ketika pengguna memasukkan nomor WhatsApp. Aplikasi kemudian membuat kode OTP, menyimpannya sementara, dan mengirim kode tersebut melalui API WhatsApp.<\/p>\n<h2 id=\"cara-kerja-otp-whatsapp\">Cara Kerja OTP WhatsApp<\/h2>\n<p>Alur OTP WhatsApp dari aplikasi web terdiri dari dua proses utama: pengiriman kode dan verifikasi kode.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg\" alt=\"Cara Mengirim OTP WhatsApp dari Aplikasi Web\" width=\"1408\" height=\"768\" class=\"alignnone size-full wp-image-1634\" srcset=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg 1408w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web-300x164.jpg 300w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web-1024x559.jpg 1024w, https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web-768x419.jpg 768w\" sizes=\"(max-width: 1408px) 100vw, 1408px\" \/><\/p>\n<pre><code class=\"lang-text\">Pengguna memasukkan nomor WhatsApp\r\n        \u2193\r\nAplikasi membuat OTP\r\n        \u2193\r\nOTP disimpan\r\n        \u2193\r\nAPI WhatsApp\r\n        \u2193\r\nWhatsApp pengguna\r\n        \u2193\r\nPengguna memasukkan OTP\r\n        \u2193\r\nAplikasi memvalidasi OTP\r\n`\r\n<\/code><\/pre>\n<p>Contohnya, pengguna memasukkan nomor:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-number\">628123456789<\/span>\r\n<\/code><\/pre>\n<p>Aplikasi membuat kode:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-number\">483921<\/span>\r\n<\/code><\/pre>\n<p>Kemudian kode tersebut dikirim melalui WhatsApp:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">Kode<\/span> OTP untuk verifikasi akun:\r\n\r\n<span class=\"hljs-number\">483921<\/span>\r\n\r\n<span class=\"hljs-symbol\">Kode<\/span> <span class=\"hljs-keyword\">berlaku <\/span><span class=\"hljs-keyword\">selama <\/span><span class=\"hljs-number\">5<\/span> menit.\r\n<span class=\"hljs-symbol\">Jangan<\/span> <span class=\"hljs-keyword\">bagikan <\/span>kode ini kepada siapa pun.\r\n<\/code><\/pre>\n<p>Setelah pengguna memasukkan <code>483921<\/code> pada aplikasi, server memeriksa apakah kode sesuai dan masih berlaku.<\/p>\n<h2 id=\"data-yang-dibutuhkan\">Data yang Dibutuhkan<\/h2>\n<p>Sistem OTP biasanya membutuhkan beberapa data:<\/p>\n<table>\n<thead>\n<tr>\n<th>Data<\/th>\n<th>Contoh<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Nomor WhatsApp<\/td>\n<td>628123456789<\/td>\n<\/tr>\n<tr>\n<td>OTP<\/td>\n<td>483921<\/td>\n<\/tr>\n<tr>\n<td>Waktu dibuat<\/td>\n<td>20:00:00<\/td>\n<\/tr>\n<tr>\n<td>Waktu kedaluwarsa<\/td>\n<td>20:05:00<\/td>\n<\/tr>\n<tr>\n<td>Status penggunaan<\/td>\n<td>Belum digunakan<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Data tersebut dapat disimpan pada database atau penyimpanan sementara seperti Redis.<\/p>\n<p>Contoh struktur data:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-string\">phone:<\/span> <span class=\"hljs-number\">628123456789<\/span>\r\n<span class=\"hljs-string\">otp:<\/span> <span class=\"hljs-number\">483921<\/span>\r\n<span class=\"hljs-string\">expires_at:<\/span> <span class=\"hljs-number\">2026<\/span><span class=\"hljs-number\">-09<\/span><span class=\"hljs-number\">-27<\/span> <span class=\"hljs-number\">20<\/span>:<span class=\"hljs-number\">05<\/span>:<span class=\"hljs-number\">00<\/span>\r\n<span class=\"hljs-string\">used:<\/span> <span class=\"hljs-literal\">false<\/span>\r\n<\/code><\/pre>\n<h2 id=\"membuat-kode-otp\">Membuat Kode OTP<\/h2>\n<p>Kode OTP dapat dibuat menggunakan angka acak.<\/p>\n<p>Contoh menggunakan PHP:<\/p>\n<pre><code class=\"lang-php\"><span class=\"hljs-variable\">$otp<\/span> = random_int(100000, 999999);\r\n\r\n<span class=\"hljs-built_in\">echo<\/span> <span class=\"hljs-variable\">$otp<\/span>;\r\n<\/code><\/pre>\n<p>Hasilnya berupa kode enam digit, misalnya:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-number\">483921<\/span>\r\n<\/code><\/pre>\n<p>Gunakan generator angka acak yang sesuai untuk proses autentikasi. Hindari membuat OTP dari data yang mudah ditebak seperti timestamp atau nomor urut.<\/p>\n<h2 id=\"menyimpan-otp\">Menyimpan OTP<\/h2>\n<p>Setelah OTP dibuat, aplikasi perlu menyimpannya sebelum mengirim kode ke pengguna.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-php\">$otpData = [\r\n    <span class=\"hljs-string\">'phone'<\/span> =&gt; <span class=\"hljs-string\">'628123456789'<\/span>,\r\n    <span class=\"hljs-string\">'otp'<\/span> =&gt; $otp,\r\n    <span class=\"hljs-string\">'expires_at'<\/span> =&gt; time() + <span class=\"hljs-number\">300<\/span>,\r\n    <span class=\"hljs-string\">'used'<\/span> =&gt; <span class=\"hljs-keyword\">false<\/span>\r\n];\r\n<\/code><\/pre>\n<p>Pada contoh tersebut, <code>300<\/code> berarti OTP berlaku selama lima menit.<\/p>\n<p>Jika menggunakan database, data dapat disimpan seperti:<\/p>\n<table>\n<thead>\n<tr>\n<th>Kolom<\/th>\n<th>Contoh<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>phone<\/td>\n<td>628123456789<\/td>\n<\/tr>\n<tr>\n<td>otp<\/td>\n<td>483921<\/td>\n<\/tr>\n<tr>\n<td>expires_at<\/td>\n<td>2026-09-27 20:05:00<\/td>\n<\/tr>\n<tr>\n<td>used<\/td>\n<td>0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"mengirim-otp-melalui-api-whatsapp\">Mengirim OTP melalui API WhatsApp<\/h2>\n<p>Setelah OTP dibuat dan disimpan, aplikasi dapat mengirim kode melalui API WhatsApp.<\/p>\n<p>Contoh request menggunakan cURL:<\/p>\n<pre><code class=\"lang-bash\">curl -X POST \"https:\/\/gate.whapi.cloud\/messages\/text\" \\\r\n  -<span class=\"ruby\">d <span class=\"hljs-string\">\"apiKey=API_KEY_WHAPI\"<\/span> \\\r\n<\/span>  -<span class=\"ruby\">d <span class=\"hljs-string\">\"phone=628123456789\"<\/span> \\\r\n<\/span>  -<span class=\"ruby\">-data-urlencode <span class=\"hljs-string\">\"message=Kode OTP untuk verifikasi akun: 483921. Kode berlaku selama 5 menit.\"<\/span><\/span>\r\n<\/code><\/pre>\n<p>API key digunakan untuk autentikasi request. Parameter <code>phone<\/code> menentukan nomor tujuan, sedangkan <code>message<\/code> berisi kode OTP.<\/p>\n<p>Dokumentasi pengiriman pesan:<\/p>\n<p><a href=\"https:\/\/docs.whapi.id\/api\/send-message\">API Send Message Whapi<\/a><\/p>\n<h2 id=\"membuat-pesan-otp-whatsapp\">Membuat Pesan OTP WhatsApp<\/h2>\n<p>Pesan OTP sebaiknya singkat dan langsung menunjukkan kode yang harus digunakan.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">Kode<\/span> OTP untuk verifikasi akun:\r\n\r\n<span class=\"hljs-number\">483921<\/span>\r\n\r\n<span class=\"hljs-symbol\">Kode<\/span> <span class=\"hljs-keyword\">berlaku <\/span><span class=\"hljs-keyword\">selama <\/span><span class=\"hljs-number\">5<\/span> menit.\r\n<span class=\"hljs-symbol\">Jangan<\/span> <span class=\"hljs-keyword\">bagikan <\/span>kode ini kepada siapa pun.\r\n<\/code><\/pre>\n<p>Untuk proses login:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-symbol\">Kode<\/span> OTP untuk login:\r\n\r\n<span class=\"hljs-number\">483921<\/span>\r\n\r\n<span class=\"hljs-symbol\">Kode<\/span> <span class=\"hljs-keyword\">berlaku <\/span><span class=\"hljs-keyword\">selama <\/span><span class=\"hljs-number\">5<\/span> menit.\r\n<\/code><\/pre>\n<p>Tidak perlu memasukkan terlalu banyak informasi lain ke dalam pesan OTP.<\/p>\n<h2 id=\"contoh-fungsi-mengirim-otp-dengan-php\">Contoh Fungsi Mengirim OTP dengan PHP<\/h2>\n<p>Fungsi berikut menerima nomor WhatsApp, kode OTP, dan API key:<\/p>\n<pre><code class=\"lang-php\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">function<\/span> <span class=\"hljs-title\">sendOtpWhatsApp<\/span><span class=\"hljs-params\">($phone, $otp, $apiKey)<\/span>\r\n<\/span>{\r\n    $message =\r\n        <span class=\"hljs-string\">\"Kode OTP untuk verifikasi akun:\\n\\n\"<\/span> .\r\n        $otp .\r\n        <span class=\"hljs-string\">\"\\n\\nKode berlaku selama 5 menit. \"<\/span> .\r\n        <span class=\"hljs-string\">\"Jangan bagikan kode ini kepada siapa pun.\"<\/span>;\r\n\r\n    $curl = curl_init();\r\n\r\n    curl_setopt_array($curl, [\r\n        CURLOPT_URL =&gt; <span class=\"hljs-string\">'https:\/\/gate.whapi.cloud\/messages\/text'<\/span>,\r\n        CURLOPT_POST =&gt; <span class=\"hljs-keyword\">true<\/span>,\r\n        CURLOPT_POSTFIELDS =&gt; [\r\n            <span class=\"hljs-string\">'apiKey'<\/span> =&gt; $apiKey,\r\n            <span class=\"hljs-string\">'phone'<\/span> =&gt; $phone,\r\n            <span class=\"hljs-string\">'message'<\/span> =&gt; $message\r\n        ],\r\n        CURLOPT_RETURNTRANSFER =&gt; <span class=\"hljs-keyword\">true<\/span>\r\n    ]);\r\n\r\n    $response = curl_exec($curl);\r\n\r\n    <span class=\"hljs-keyword\">if<\/span> ($response === <span class=\"hljs-keyword\">false<\/span>) {\r\n        <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">Exception<\/span>(curl_error($curl));\r\n    }\r\n\r\n    curl_close($curl);\r\n\r\n    <span class=\"hljs-keyword\">return<\/span> $response;\r\n}\r\n<\/code><\/pre>\n<p>Fungsi tersebut dapat dipanggil setelah OTP dibuat dan disimpan.<\/p>\n<p>Contohnya:<\/p>\n<pre><code class=\"lang-php\"><span class=\"hljs-meta\"><span class=\"hljs-meta-keyword\">$otp<\/span> = random_int(100000, 999999);<\/span>\r\n\r\n<span class=\"hljs-comment\">\/\/ Simpan OTP ke database<\/span>\r\n\r\nsendOtpWhatsApp(\r\n    <span class=\"hljs-string\">'628123456789'<\/span>,\r\n    <span class=\"hljs-symbol\">$<\/span>otp,\r\n    <span class=\"hljs-string\">'API_KEY_WHAPI'<\/span>\r\n);\r\n<\/code><\/pre>\n<p>Pada aplikasi nyata, nomor WhatsApp sebaiknya berasal dari data pengguna yang sudah divalidasi.<\/p>\n<h2 id=\"membuat-endpoint-request-otp\">Membuat Endpoint Request OTP<\/h2>\n<p>Aplikasi web dapat menyediakan endpoint khusus untuk meminta OTP.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">POST <span class=\"hljs-regexp\">\/auth\/<\/span>request-otp\r\n<\/code><\/pre>\n<p>Ketika endpoint tersebut dipanggil, server menjalankan proses:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-built_in\">Request<\/span> OTP\r\n\u2193\r\nValidasi nomor WhatsApp\r\n\u2193\r\nBuat OTP\r\n\u2193\r\nSimpan OTP\r\n\u2193\r\nKirim OTP melalui API WhatsApp\r\n\u2193\r\nKirim <span class=\"hljs-built_in\">response<\/span> ke browser\r\n<\/code><\/pre>\n<p>Contoh response:<\/p>\n<pre><code class=\"lang-json\">{\r\n  <span class=\"hljs-attr\">\"success\"<\/span>: <span class=\"hljs-literal\">true<\/span>,\r\n  <span class=\"hljs-attr\">\"message\"<\/span>: <span class=\"hljs-string\">\"OTP telah dikirim\"<\/span>\r\n}\r\n<\/code><\/pre>\n<p>Browser kemudian dapat menampilkan form untuk memasukkan kode yang diterima melalui WhatsApp.<\/p>\n<h2 id=\"membuat-endpoint-verifikasi-otp\">Membuat Endpoint Verifikasi OTP<\/h2>\n<p>Setelah menerima OTP, pengguna memasukkan kode tersebut ke aplikasi.<\/p>\n<p>Contoh endpoint:<\/p>\n<pre><code class=\"lang-text\">POST <span class=\"hljs-regexp\">\/auth\/<\/span>verify-otp\r\n<\/code><\/pre>\n<p>Server menerima nomor WhatsApp dan kode OTP, kemudian memeriksa data OTP yang tersimpan.<\/p>\n<p>Alurnya:<\/p>\n<pre><code class=\"lang-text\">Nomor WhatsApp + OTP\r\n        \u2193\r\nCari OTP aktif\r\n        \u2193\r\nPeriksa masa <span class=\"hljs-keyword\">berlaku\r\n<\/span>        \u2193\r\n<span class=\"hljs-keyword\">Bandingkan <\/span>kode\r\n        \u2193\r\nTandai OTP <span class=\"hljs-keyword\">sebagai <\/span><span class=\"hljs-keyword\">digunakan\r\n<\/span>        \u2193\r\nLanjutkan proses\r\n<\/code><\/pre>\n<p>Contoh logika PHP:<\/p>\n<pre><code class=\"lang-php\"><span class=\"hljs-keyword\">if<\/span> ($otpData[<span class=\"hljs-string\">'used'<\/span>]) {\r\n    <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">Exception<\/span>(<span class=\"hljs-string\">'OTP sudah digunakan.'<\/span>);\r\n}\r\n\r\n<span class=\"hljs-keyword\">if<\/span> (time() &gt; $otpData[<span class=\"hljs-string\">'expires_at'<\/span>]) {\r\n    <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">Exception<\/span>(<span class=\"hljs-string\">'OTP sudah kedaluwarsa.'<\/span>);\r\n}\r\n\r\n<span class=\"hljs-keyword\">if<\/span> ($inputOtp !== $otpData[<span class=\"hljs-string\">'otp'<\/span>]) {\r\n    <span class=\"hljs-keyword\">throw<\/span> <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-keyword\">Exception<\/span>(<span class=\"hljs-string\">'OTP tidak sesuai.'<\/span>);\r\n}\r\n\r\n<span class=\"hljs-comment\">\/\/ OTP valid<\/span>\r\n$otpData[<span class=\"hljs-string\">'used'<\/span>] = <span class=\"hljs-keyword\">true<\/span>;\r\n<\/code><\/pre>\n<p>OTP harus ditandai sebagai sudah digunakan setelah verifikasi berhasil agar kode yang sama tidak dapat digunakan kembali.<\/p>\n<h2 id=\"membatasi-masa-berlaku-otp\">Membatasi Masa Berlaku OTP<\/h2>\n<p>OTP sebaiknya memiliki masa berlaku yang singkat.<\/p>\n<p>Contoh masa berlaku lima menit:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-selector-tag\">OTP<\/span> <span class=\"hljs-selector-tag\">dibuat<\/span>\r\n\u2193\r\n00<span class=\"hljs-selector-pseudo\">:00<\/span>\r\n\u2193\r\n01<span class=\"hljs-selector-pseudo\">:00<\/span>\r\n\u2193\r\n02<span class=\"hljs-selector-pseudo\">:00<\/span>\r\n\u2193\r\n03<span class=\"hljs-selector-pseudo\">:00<\/span>\r\n\u2193\r\n04<span class=\"hljs-selector-pseudo\">:00<\/span>\r\n\u2193\r\n05<span class=\"hljs-selector-pseudo\">:00<\/span> \u2192 <span class=\"hljs-selector-tag\">Kedaluwarsa<\/span>\r\n<\/code><\/pre>\n<p>Jika OTP dibuat pada pukul 20:00, server hanya menerima kode tersebut sampai pukul 20:05.<\/p>\n<p>Pengecekan dilakukan di server:<\/p>\n<pre><code class=\"lang-php\"><span class=\"hljs-keyword\">if<\/span> (time() &gt; <span class=\"hljs-variable\">$otp<\/span>[<span class=\"hljs-string\">'expires_at'<\/span>]) {\r\n    <span class=\"hljs-regexp\">\/\/<\/span> OTP tidak valid\r\n}\r\n<\/code><\/pre>\n<p>Jangan hanya menggunakan timer pada browser. Server tetap harus memeriksa masa berlaku OTP saat kode dikirim untuk verifikasi.<\/p>\n<h2 id=\"membatasi-request-otp\">Membatasi Request OTP<\/h2>\n<p>Endpoint request OTP perlu memiliki batas pengiriman agar satu nomor tidak dapat meminta kode baru berkali-kali dalam waktu singkat.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">Request pertama\r\n\u2193\r\nOTP dikirim\r\n\r\nRequest kedua dalam <span class=\"hljs-number\">60<\/span> detik\r\n\u2193\r\nTolak\r\n\r\nSetelah <span class=\"hljs-number\">60<\/span> detik\r\n\u2193\r\nOTP baru dapat diminta\r\n<\/code><\/pre>\n<p>Batas dapat diterapkan berdasarkan nomor WhatsApp, akun pengguna, alamat IP, atau kombinasi beberapa parameter.<\/p>\n<h2 id=\"menangani-otp-baru\">Menangani OTP Baru<\/h2>\n<p>Jika pengguna meminta OTP baru, kode sebelumnya sebaiknya tidak lagi dianggap valid.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">OTP <span class=\"hljs-number\">123456<\/span> dibuat\r\n\u2193\r\nPengguna meminta OTP baru\r\n\u2193\r\nOTP <span class=\"hljs-number\">789012<\/span> dibuat\r\n\u2193\r\nOTP <span class=\"hljs-number\">123456<\/span> tidak berlaku\r\n\u2193\r\nOTP <span class=\"hljs-number\">789012<\/span> menjadi kode aktif\r\n<\/code><\/pre>\n<p>Dengan aturan ini, server hanya menerima OTP terbaru.<\/p>\n<h2 id=\"membatasi-percobaan-verifikasi\">Membatasi Percobaan Verifikasi<\/h2>\n<p>Selain membatasi request OTP, jumlah percobaan memasukkan OTP juga perlu dibatasi.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-text\">Percobaan <span class=\"hljs-number\">1<\/span> \u2192 Salah\r\nPercobaan <span class=\"hljs-number\">2<\/span> \u2192 Salah\r\nPercobaan <span class=\"hljs-number\">3<\/span> \u2192 Salah\r\nPercobaan <span class=\"hljs-number\">4<\/span> \u2192 Ditolak\r\n<\/code><\/pre>\n<p>Batas tersebut dapat membantu mencegah percobaan menebak kode OTP secara berulang.<\/p>\n<p>Setelah batas tercapai, pengguna dapat diminta meminta OTP baru.<\/p>\n<h2 id=\"menangani-kegagalan-pengiriman\">Menangani Kegagalan Pengiriman<\/h2>\n<p>Pengiriman OTP dapat gagal karena API key salah, device WhatsApp tidak terhubung, nomor tujuan tidak sesuai, atau masalah pada request.<\/p>\n<p>Server perlu memeriksa response dari API.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-php\">$response = curl_exec($curl);\r\n$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);\r\n\r\n<span class=\"hljs-keyword\">if<\/span> ($response === <span class=\"hljs-literal\">false<\/span>) {\r\n    error_log(curl_error($curl));\r\n}\r\n\r\n<span class=\"hljs-keyword\">if<\/span> ($statusCode &lt; <span class=\"hljs-number\">200<\/span> || $statusCode &gt;= <span class=\"hljs-number\">300<\/span>) {\r\n    error_log(<span class=\"hljs-string\">'Gagal mengirim OTP: '<\/span> . $response);\r\n}\r\n<\/code><\/pre>\n<p>Jika pengiriman gagal, aplikasi dapat menampilkan pesan agar pengguna mencoba kembali.<\/p>\n<p>OTP juga tidak sebaiknya dianggap berhasil dikirim hanya karena request HTTP berhasil dijalankan. Response dari API perlu diperiksa.<\/p>\n<h2 id=\"menyimpan-api-key-dengan-aman\">Menyimpan API Key dengan Aman<\/h2>\n<p>API key tidak boleh diletakkan pada JavaScript frontend karena pengguna dapat melihat source code dan request yang dibuat browser.<\/p>\n<p>Simpan API key pada server atau environment variable.<\/p>\n<p>Contoh:<\/p>\n<pre><code class=\"lang-env\"><span class=\"hljs-attr\">WHAPI_API_KEY<\/span>=API_KEY_WHAPI\r\n<\/code><\/pre>\n<p>Kemudian aplikasi membaca nilai tersebut:<\/p>\n<pre><code class=\"lang-php\">$apiKey = <span class=\"hljs-keyword\">getenv<\/span>(<span class=\"hljs-string\">'WHAPI_API_KEY'<\/span>);\r\n<\/code><\/pre>\n<p>Browser cukup mengirim permintaan ke backend aplikasi:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-keyword\">Browser\r\n<\/span>\u2193\r\n<span class=\"hljs-keyword\">Backend <\/span>aplikasi\r\n\u2193\r\n<span class=\"hljs-symbol\">API<\/span> WhatsApp\r\n<\/code><\/pre>\n<p>API key tetap berada di server.<\/p>\n<h2 id=\"contoh-alur-otp-lengkap\">Contoh Alur OTP Lengkap<\/h2>\n<p>Proses OTP dari aplikasi web dapat dibuat seperti berikut:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-bullet\">1. <\/span>Pengguna memasukkan nomor WhatsApp\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">2. <\/span>Server memvalidasi nomor\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">3. <\/span>Server membuat OTP\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">4. <\/span>OTP disimpan dengan waktu kedaluwarsa\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">5. <\/span>Server mengirim OTP melalui API WhatsApp\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">6. <\/span>Pengguna menerima OTP\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">7. <\/span>Pengguna memasukkan OTP\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">8. <\/span>Server memeriksa kode dan masa berlaku\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">9. <\/span>OTP valid\r\n<span class=\"hljs-code\">              \u2193<\/span>\r\n<span class=\"hljs-bullet\">10. <\/span>Pengguna dapat melanjutkan proses\r\n<\/code><\/pre>\n<p>Proses tersebut dapat digunakan untuk registrasi, login, verifikasi nomor WhatsApp, reset akses, atau konfirmasi tindakan tertentu.<\/p>\n<h2 id=\"contoh-struktur-database-otp\">Contoh Struktur Database OTP<\/h2>\n<p>Tabel OTP dapat menggunakan struktur sederhana:<\/p>\n<table>\n<thead>\n<tr>\n<th>Kolom<\/th>\n<th>Tipe<\/th>\n<th>Fungsi<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>id<\/td>\n<td>integer<\/td>\n<td>ID OTP<\/td>\n<\/tr>\n<tr>\n<td>phone<\/td>\n<td>varchar<\/td>\n<td>Nomor WhatsApp<\/td>\n<\/tr>\n<tr>\n<td>otp<\/td>\n<td>varchar<\/td>\n<td>Kode OTP<\/td>\n<\/tr>\n<tr>\n<td>expires_at<\/td>\n<td>datetime<\/td>\n<td>Waktu kedaluwarsa<\/td>\n<\/tr>\n<tr>\n<td>used<\/td>\n<td>boolean<\/td>\n<td>Status penggunaan<\/td>\n<\/tr>\n<tr>\n<td>attempts<\/td>\n<td>integer<\/td>\n<td>Jumlah percobaan<\/td>\n<\/tr>\n<tr>\n<td>created_at<\/td>\n<td>datetime<\/td>\n<td>Waktu pembuatan<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Data OTP yang sudah kedaluwarsa dapat dibersihkan secara berkala agar database tidak menyimpan data yang tidak diperlukan.<\/p>\n<h2 id=\"hal-yang-perlu-diperhatikan\">Hal yang Perlu Diperhatikan<\/h2>\n<p>Beberapa hal penting dalam pengiriman OTP WhatsApp:<\/p>\n<ul>\n<li>Gunakan kode OTP dengan masa berlaku terbatas.<\/li>\n<li>OTP hanya dapat digunakan satu kali.<\/li>\n<li>Batasi permintaan OTP berulang.<\/li>\n<li>Batasi jumlah percobaan verifikasi.<\/li>\n<li>Jangan menampilkan API key pada frontend.<\/li>\n<li>Jangan mengirim OTP melalui URL.<\/li>\n<li>Gunakan HTTPS untuk komunikasi antara browser dan server.<\/li>\n<li>Periksa response API setelah pengiriman.<\/li>\n<li>Jangan mencatat OTP dalam bentuk plaintext pada log produksi.<\/li>\n<\/ul>\n<p>OTP merupakan bagian dari proses autentikasi, sehingga kode dan kredensial API perlu diperlakukan sebagai data yang harus dilindungi.<\/p>\n<h2 id=\"kesimpulan\">Kesimpulan<\/h2>\n<p>Cara mengirim OTP WhatsApp dari aplikasi web terdiri dari pembuatan kode OTP, penyimpanan kode, pengiriman melalui API WhatsApp, dan verifikasi kode di server.<\/p>\n<p>Alurnya:<\/p>\n<pre><code class=\"lang-text\"><span class=\"hljs-keyword\">Buat <\/span>OTP\r\n\u2193\r\nSimpan OTP\r\n\u2193\r\nKirim melalui API WhatsApp\r\n\u2193\r\nPengguna menerima kode\r\n\u2193\r\nPengguna memasukkan OTP\r\n\u2193\r\nValidasi kode\r\n\u2193\r\nTandai OTP <span class=\"hljs-keyword\">sebagai <\/span><span class=\"hljs-keyword\">digunakan<\/span>\r\n<\/code><\/pre>\n<p>API WhatsApp menangani pengiriman pesan, sedangkan aplikasi web menangani pembuatan OTP, masa berlaku, pembatasan request, dan proses verifikasi.<\/p>\n<p>Dengan alur tersebut, OTP WhatsApp dapat digunakan untuk registrasi, login, verifikasi nomor, reset akses, dan proses autentikasi lainnya pada aplikasi web.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OTP WhatsApp adalah kode sekali pakai yang dikirim ke nomor WhatsApp untuk memverifikasi identitas pengguna pada aplikasi web. OTP dapat [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1634,"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-1633","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>Cara Mengirim OTP WhatsApp dari Aplikasi Web - WHAPI | BLOG<\/title>\n<meta name=\"description\" content=\"Pelajari cara mengirim OTP WhatsApp dari aplikasi web menggunakan API, mulai dari membuat kode OTP, mengirim pesan, hingga memvalidasi kode.\" \/>\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\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cara Mengirim OTP WhatsApp dari Aplikasi Web - WHAPI | BLOG\" \/>\n<meta property=\"og:description\" content=\"Pelajari cara mengirim OTP WhatsApp dari aplikasi web menggunakan API, mulai dari membuat kode OTP, mengirim pesan, hingga memvalidasi kode.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/\" \/>\n<meta property=\"og:site_name\" content=\"WHAPI | BLOG\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-28T13:22:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.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=\"6 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/\",\"url\":\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/\",\"name\":\"Cara Mengirim OTP WhatsApp dari Aplikasi Web - WHAPI | BLOG\",\"isPartOf\":{\"@id\":\"https:\/\/whapi.id\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg\",\"datePublished\":\"2026-09-28T13:22:40+00:00\",\"author\":{\"@id\":\"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a\"},\"description\":\"Pelajari cara mengirim OTP WhatsApp dari aplikasi web menggunakan API, mulai dari membuat kode OTP, mengirim pesan, hingga memvalidasi kode.\",\"breadcrumb\":{\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#primaryimage\",\"url\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg\",\"contentUrl\":\"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg\",\"width\":1408,\"height\":768,\"caption\":\"Cara Mengirim OTP WhatsApp dari Aplikasi Web\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Beranda\",\"item\":\"https:\/\/whapi.id\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cara Mengirim OTP WhatsApp dari Aplikasi Web\"}]},{\"@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":"Cara Mengirim OTP WhatsApp dari Aplikasi Web - WHAPI | BLOG","description":"Pelajari cara mengirim OTP WhatsApp dari aplikasi web menggunakan API, mulai dari membuat kode OTP, mengirim pesan, hingga memvalidasi kode.","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\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/","og_locale":"id_ID","og_type":"article","og_title":"Cara Mengirim OTP WhatsApp dari Aplikasi Web - WHAPI | BLOG","og_description":"Pelajari cara mengirim OTP WhatsApp dari aplikasi web menggunakan API, mulai dari membuat kode OTP, mengirim pesan, hingga memvalidasi kode.","og_url":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/","og_site_name":"WHAPI | BLOG","article_published_time":"2026-09-28T13:22:40+00:00","og_image":[{"width":1408,"height":768,"url":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg","type":"image\/jpeg"}],"author":"Doveriz","twitter_card":"summary_large_image","twitter_misc":{"Ditulis oleh":"Doveriz","Estimasi waktu membaca":"6 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/","url":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/","name":"Cara Mengirim OTP WhatsApp dari Aplikasi Web - WHAPI | BLOG","isPartOf":{"@id":"https:\/\/whapi.id\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#primaryimage"},"image":{"@id":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#primaryimage"},"thumbnailUrl":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg","datePublished":"2026-09-28T13:22:40+00:00","author":{"@id":"https:\/\/whapi.id\/blog\/#\/schema\/person\/ca540be71f16cd13214efb59ef58236a"},"description":"Pelajari cara mengirim OTP WhatsApp dari aplikasi web menggunakan API, mulai dari membuat kode OTP, mengirim pesan, hingga memvalidasi kode.","breadcrumb":{"@id":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#primaryimage","url":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg","contentUrl":"https:\/\/whapi.id\/blog\/wp-content\/uploads\/2026\/09\/Cara-Mengirim-OTP-WhatsApp-dari-Aplikasi-Web.jpg","width":1408,"height":768,"caption":"Cara Mengirim OTP WhatsApp dari Aplikasi Web"},{"@type":"BreadcrumbList","@id":"https:\/\/whapi.id\/blog\/cara-mengirim-otp-whatsapp-dari-aplikasi-web\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Beranda","item":"https:\/\/whapi.id\/blog\/"},{"@type":"ListItem","position":2,"name":"Cara Mengirim OTP WhatsApp dari Aplikasi Web"}]},{"@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\/1633","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=1633"}],"version-history":[{"count":4,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1633\/revisions"}],"predecessor-version":[{"id":1638,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/posts\/1633\/revisions\/1638"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/media\/1634"}],"wp:attachment":[{"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/media?parent=1633"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/categories?post=1633"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/whapi.id\/blog\/wp-json\/wp\/v2\/tags?post=1633"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}