1. Tentukan event yang benar-benar perlu mengirim WhatsApp
Jangan mulai dari endpoint. Mulai dari proses bisnis. Contoh event yang umum:
- Registrasi akun berhasil.
- Pembayaran berhasil atau gagal.
- Pesanan berubah status.
- Tiket bantuan dibuat atau dibalas.
- Pengingat jatuh tempo atau reservasi.
2. Hubungkan device pengirim
Di gateway berbasis perangkat, Anda membutuhkan sender yang aktif. Hubungkan nomor WhatsApp melalui QR atau pairing lalu pastikan status device benar-benar CONNECTED sebelum mengintegrasikan API.
Gunakan device khusus notifikasi jika trafik sistem cukup tinggi. Memisahkan nomor customer service, notifikasi transaksi, dan broadcast membuat troubleshooting lebih mudah.
3. Simpan API key di sisi server
API key adalah kredensial server dan tidak boleh ditaruh di JavaScript browser, HTML publik, repository terbuka, atau aplikasi yang bisa dibongkar dengan mudah. Simpan di environment variable atau file konfigurasi di luar public web root jika memungkinkan.
Aplikasi Anda kemudian melakukan request server-to-server ke endpoint gateway. Pada Kirimore, endpoint REST API v2 menerima payload JSON dan memverifikasi bahwa sender memang milik akun API tersebut.
4. Contoh pola request PHP
Berikut pola request yang sesuai dengan endpoint text Kirimore. Ganti placeholder dengan data akun Anda.
<?php
$data = [
'api_key' => getenv('KIRIMORE_API_KEY'),
'sender' => 'SENDER_ID_ANDA',
'number' => '6281234567890',
'message' => 'Pesanan #INV-1001 sudah dibayar.'
];
$ch = curl_init('https://kirimore.com/apiv2/send-message.php');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_TIMEOUT => 30,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$error = curl_error($ch);
curl_close($ch);
if ($error !== '') {
error_log('Kirimore API error: ' . $error);
} else {
$result = json_decode($response, true);
// Simpan response untuk audit / retry jika diperlukan.
}5. Jangan lupa retry, logging, dan idempotensi
Integrasi produksi sebaiknya tidak berhenti di satu curl_exec(). Tambahkan:
- Timeout agar request aplikasi tidak menggantung terlalu lama.
- Log event dan response API tanpa menyimpan API key ke log.
- Retry terbatas untuk kegagalan jaringan yang sementara.
- Penanda idempotensi di aplikasi agar event yang sama tidak mengirim notifikasi dua kali.
- Fallback channel bila pesan penting gagal terkirim.
6. Uji dengan event internal sebelum dipakai pengguna
Buat akun atau order uji, kirim ke nomor internal, lalu cocokkan waktu event aplikasi dengan riwayat pesan gateway. Pastikan format nomor, sender, isi template, dan status semuanya sesuai sebelum integrasi dilepas ke pengguna.
Praktikkan dengan Kirimore
Hubungkan device, gunakan fitur yang sesuai workflow Anda, dan uji integrasi dari lingkungan internal sebelum digunakan ke pelanggan.
Pelajari API WhatsApp Kirimore