Sign inGet Started

Kirim pesan WhatsApp pertama Anda

Kirim pesan WhatsApp ke ponsel Anda sendiri dengan Bird WhatsApp, lalu baca kembali pesan tersebut untuk memastikan pengirimannya. Pesan yang dimulai oleh bisnis menggunakan template yang sudah disetujui. Panduan cepat ini mengirim dari katalog template terkelola milik Bird (seperti bird_delivery_update atau bird_otp), yang menggunakan pengirim WhatsApp bersama yang dikelola Bird. Anda tidak perlu menghubungkan WhatsApp Business Account atau mendaftarkan nomor terlebih dahulu.

Sebelum memulai, pastikan wallet organisasi Anda memiliki saldo. Pengiriman template WhatsApp memotong saldo wallet, dan Bird menolak pengiriman yang tidak tercukupi oleh saldo dengan 402 WalletInsufficientBalance. Metode pembayaran dan wallet menjelaskan cara mengisi saldo.

1. Buat kunci API

Di dashboard, buka Platform tools > API keys dan buat kunci dengan cakupan whatsapp:write, yang mencakup pengiriman dan pembacaan pesan. Setiap kunci terikat pada satu region dan berbentuk seperti bk_us1_... atau bk_eu1_.... Region pada prefiks menunjukkan host API yang harus Anda panggil: https://us1.platform.bird.com atau https://eu1.platform.bird.com.

Halaman API Keys di dashboard Bird, yang menampilkan daftar kunci beserta prefiks tersamar, cakupan, dan waktu terakhir digunakan

Kunci lengkap hanya ditampilkan sekali, saat dibuat. Salin ke tempat yang aman, lalu ekspor untuk contoh cURL:

Contoh kode
export BIRD_API_KEY="bk_us1_..."

2. Kirim pesan template

Kirim template bird_delivery_update yang sudah disetujui dari katalog terkelola Bird ke ponsel Anda, atau gunakan bird_otp untuk mengirim kode verifikasi sekali pakai. Template terkelola diawali dengan bird_ dan dikirim dari nomor Bird bersama, sehingga Anda tidak perlu menyertakan from. Instal Bird SDK untuk bahasa Anda dengan mengikuti panduan cepat SDK. Jika Anda menggunakan tab Bird CLI, instal terlebih dahulu (curl -fsSL https://cli.bird.com/install.sh | sh) lalu lakukan autentikasi dengan akses tulis (bird auth login --scope whatsapp:write).

Di tab SDK, ganti contoh kunci API, lalu ganti +15551234567 dengan nomor ponsel Anda dalam format E.164. CLI menggunakan login Anda, sedangkan tab cURL menggunakan BIRD_API_KEY.

import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });

const msg = await bird.whatsapp.send({
  to: "+15551234567",
  template: {
    slug: "bird_delivery_update",
    components: [
      {
        type: "body",
        parameters: [
          { type: "text", name: "ref", text: "A1B2C3D4" },
          { type: "text", name: "date", text: "10 Jul 2026" },
        ],
      },
    ],
  },
});

console.log(msg.id, msg.status);

Jika kunci Anda diawali dengan bk_eu1_, panggil https://eu1.platform.bird.com sebagai gantinya.

API merespons dengan 202 Accepted dan pesan yang telah dibuat. id pesan tersebut diawali dengan wam_, dan status-nya adalah accepted: Bird telah menerima pesan dan mengirimkannya secara asinkron. Simpan id untuk langkah berikutnya.

3. Periksa status pengiriman

Ambil pesan berdasarkan ID wam_-nya. Ganti WHATSAPP_MESSAGE_ID dengan id dari langkah 2, lalu ganti contoh kunci API di tab SDK dengan kunci Anda sendiri:

import { BirdClient } from "@messagebird/sdk";

const bird = new BirdClient({ apiKey: "bk_XXXXXXXXXXXXXXXXXXXXXXXX" });

const msg = await bird.whatsapp.get("WHATSAPP_MESSAGE_ID");

console.log(msg.id, msg.status);

Kolom status menunjukkan posisi pesan:

  • accepted: Bird telah menerima pesan dan sedang bersiap menyerahkannya ke WhatsApp.
  • sent: WhatsApp telah menerima pesan, dan sent_at mencatat waktunya.
  • delivered: WhatsApp mengonfirmasi pengiriman ke perangkat penerima, dan delivered_at mencatat waktunya. Saat penerima membaca pesan, read_at diisi, sedangkan status tetap delivered.
  • failed atau rejected: pesan tidak sampai ke ponsel. last_error memberikan alasannya, dan Peristiwa status pesan mencantumkan kode kesalahannya.

Lakukan polling hingga status tidak lagi accepted atau sent, atau berlangganan webhook WhatsApp untuk menerima setiap perubahan status pengiriman dan baca (whatsapp.sent, whatsapp.delivered, whatsapp.read, whatsapp.failed). Nomor bersama yang dikelola Bird hanya untuk pesan keluar dan tidak meneruskan balasan masuk ke workspace Anda. Untuk menerima balasan, hubungkan nomor Anda sendiri. Setiap pesan juga muncul di halaman Messages beserta linimasa peristiwanya.

Mengatasi pengiriman yang gagal

  • 402 WalletInsufficientBalance: saldo wallet tidak cukup untuk membayar pesan. Isi ulang wallet, lalu kirim lagi.
  • 403 InsufficientScope: kunci API tidak memiliki cakupan whatsapp. Ubah cakupan kunci tersebut atau buat kunci dengan whatsapp:write.
  • 422 WhatsAppInvalidRecipient: nomor to bukan nomor telepon E.164 yang valid. Periksa tanda + di awal, kode negara, dan digit nomor pelanggan.

Langkah berikutnya