Cara Kirim OTP WhatsApp via API

OTP lewat WhatsApp lebih cepat dibaca daripada SMS, lebih murah, dan pengguna tidak perlu membuka email. Berikut cara membuatnya dengan Synerwa dalam beberapa menit.

Kenapa OTP lewat WhatsApp?

Alur verifikasi OTP

  1. Pengguna mengisi nomor WhatsApp di aplikasi Anda.
  2. Server Anda membuat kode acak 6 digit, menyimpan hash-nya beserta waktu kedaluwarsa (misalnya 5 menit).
  3. Server memanggil POST /send Synerwa untuk mengirim kode.
  4. Pengguna memasukkan kode; server mencocokkan hash dan memastikan belum kedaluwarsa.

Contoh dengan curl

curl -X POST https://synerwa.net/send \
  -H "Authorization: TOKEN_PERANGKAT" \
  -d "target=081234567890" \
  -d "message=Kode verifikasi Anda: 482913. Berlaku 5 menit. Jangan berikan kode ini kepada siapa pun."

Nomor boleh diawali 08, 62, atau +62; Synerwa menormalkan otomatis dengan countryCode default 62.

Contoh PHP

<?php
$otp = random_int(100000, 999999);
$_SESSION['otp_hash'] = password_hash((string)$otp, PASSWORD_DEFAULT);
$_SESSION['otp_exp']  = time() + 300;

$ch = curl_init('https://synerwa.net/send');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ['Authorization: ' . getenv('SYNERWA_TOKEN')],
  CURLOPT_POSTFIELDS => [
    'target'  => $_POST['phone'],
    'message' => "Kode verifikasi Anda: $otp. Berlaku 5 menit.",
  ],
]);
$res = json_decode(curl_exec($ch), true);

Contoh Node.js

import crypto from 'node:crypto';
const otp = crypto.randomInt(100000, 1000000).toString();

const r = await fetch('https://synerwa.net/send', {
  method: 'POST',
  headers: { Authorization: process.env.SYNERWA_TOKEN },
  body: new URLSearchParams({ target: phone, message: `Kode verifikasi Anda: ${otp}. Berlaku 5 menit.` }),
});
console.log(await r.json()); // { status: true, id: ['128'], process: 'pending', ... }

Tips keamanan OTP

Coba Synerwa gratis

Daftar, scan QR, dan kirim 1.000 pesan pertama tanpa biaya.

Buat Akun Gratis