> For the complete documentation index, see [llms.txt](https://docs.watzap.id/help/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.watzap.id/help/integrations/watzap-sdk.md).

# WatZap SDK (JavaScript)

Library resmi untuk menghubungkan aplikasi Node.js Kamu dengan WhatsApp lewat WatZap, cukup dengan beberapa baris kode.

**WatZap SDK** (`@watzapid/sdk`) adalah library resmi WatZap untuk aplikasi **JavaScript/TypeScript (Node.js)**. Dengan SDK ini, aplikasi Kamu bisa mengirim pesan WhatsApp, menerima pesan masuk, dan mengelola kontak di WatZap. Kamu tidak perlu merakit request API satu per satu.

Contohnya, mengirim pesan WhatsApp cukup dengan satu baris ini:

```js
await wz.whatsapp.messages.sendText({ to: '081234567890', text: 'Pesanan Kamu sudah dikirim 📦' })
```

{% hint style="info" %}
SDK tersedia gratis di npm: [**@watzapid/sdk**](https://www.npmjs.com/package/@watzapid/sdk). Panduan ini berlaku untuk SDK versi **0.2.0**.
{% endhint %}

## Kenapa disarankan pakai SDK?

Kamu tetap bisa memanggil REST API WatZap secara langsung. Tapi kalau aplikasi Kamu memakai Node.js, SDK membuat integrasi lebih cepat dan lebih aman:

| Tanpa SDK (panggil API langsung)                                                     | Dengan WatZap SDK                                                                |
| ------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
| Harus hafal nama endpoint dan parameternya                                           | Nama fungsi jelas dan muncul otomatis di editor (autocomplete)                   |
| Format nomor HP harus dirapikan sendiri                                              | `08…`, `62…`, dan `+62…` dirapikan otomatis                                      |
| Sebagian error dikirim dengan status HTTP 200, jadi mudah terlewat                   | Setiap error dilempar sebagai error dengan jenis yang jelas                      |
| Saat koneksi putus, retry buatan sendiri bisa membuat pelanggan menerima pesan dobel | Retry otomatis yang aman: pesan yang mungkin sudah terkirim tidak dikirim ulang  |
| Input yang salah baru ketahuan setelah ditolak server atau Meta                      | Kesalahan umum dicek sebelum dikirim, misalnya judul tombol yang terlalu panjang |
| Harus menulis sendiri kode untuk mengambil data per halaman                          | Cukup `for await` untuk mengambil semua data                                     |

Selain itu, SDK ini:

* **Resmi dan gratis**, dirawat langsung oleh tim WatZap (lisensi MIT).
* **Ringan**, tanpa dependensi tambahan. Mendukung `import` (ESM), `require` (CommonJS), dan TypeScript.
* **Aman secara bawaan**: SDK menolak berjalan di browser, supaya API Key tidak bocor ke pengunjung website.

## Apa saja yang bisa dilakukan?

| Fitur                        | Yang bisa dilakukan                                                                                                                                                                                    |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **WhatsApp Official (WABA)** | Kirim teks, template (termasuk OTP), gambar, dokumen, video, audio, tombol, daftar pilihan, lokasi, kartu kontak, dan reaksi emoji. Cek status terkirim dan dibaca. Lihat, ajukan, dan hapus template. |
| **WhatsApp Unofficial**      | Kirim teks, gambar, dan file ke nomor pribadi maupun grup. Cek apakah nomor terdaftar di WhatsApp. Baca inbox.                                                                                         |
| **Pesan masuk (webhook)**    | Teruskan setiap pesan yang masuk ke aplikasi Kamu.                                                                                                                                                     |
| **Kontak & List**            | Tambah dan perbarui kontak, sinkronkan data pelanggan dari database Kamu ke List WatZap, catat opt-out.                                                                                                |
| **Lainnya**                  | Lihat daftar nomor pengirim, catat URL media, baca data bot dan n8n.                                                                                                                                   |

## Contoh pemakaian

* **Toko online**: kirim notifikasi pesanan dan nomor resi secara otomatis.
* **Aplikasi atau website**: kirim kode OTP login lewat WhatsApp.
* **Sistem internal**: kirim laporan harian ke grup WhatsApp tim.
* **Customer service**: terima pesan masuk, lalu balas otomatis untuk kata kunci tertentu.
* **CRM**: sinkronkan data pelanggan ke List WatZap.

Contoh kodenya ada di halaman [Contoh Use Case](/help/integrations/watzap-sdk/contoh-use-case.md).

## SDK, REST API, n8n, atau plugin?

| Pilihan                           | Perlu coding?              | Cocok untuk                                                                                                |
| --------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------- |
| **WatZap SDK**                    | Ya (JavaScript/TypeScript) | Aplikasi atau backend Node.js, misalnya Express, Next.js, atau NestJS                                      |
| **REST API**                      | Ya (bahasa apa pun)        | Aplikasi PHP, Python, Go, dan lainnya. Lihat [dokumentasi API](https://api-docs.watzap.id/)                |
| **n8n**                           | Hampir tidak               | Alur kerja otomatis tanpa coding. Lihat [Integrasi dengan N8N](/help/integrations/integrasi-dengan-n8n.md) |
| **Plugin & integrasi siap pakai** | Tidak                      | WordPress, WooCommerce, OrderOnline, Scalev, dan lainnya di menu Integrations                              |

## Yang perlu disiapkan

* Akun WatZap dengan paket **Plus** atau **Premium**. Kirim pesan dan atur webhook lewat API tidak tersedia di paket lain.
* **API Key** akun pemilik (owner). Lihat [Mendapatkan API Key di Member Area](/help/integrations/mendapatkan-api-key-di-member-area.md).
* Minimal satu nomor WhatsApp yang terhubung:
  * **WABA Official**. Lihat [Cara Connect Nomor WABA Official](/help/waba-official/cara-connect-nomor-waba-official.md), atau
  * **Nomor Unofficial di tab API** beserta **Number Key**-nya. Lihat [Menambahkan Nomor WA untuk API](/help/integrations/menambahkan-nomor-wa-untuk-api.md) dan [Mendapatkan Number Key untuk API](/help/integrations/mendapatkan-number-key-untuk-api.md).
* **Node.js versi 18 atau lebih baru** di server atau komputer Kamu. Panduan instalasi memakai Node.js 20.6 atau lebih baru.

{% hint style="warning" %}
**Jalankan SDK hanya di server (backend).** API Key memberi akses penuh ke akun WatZap Kamu. Jangan taruh API Key di kode website yang bisa dibuka pengunjung, dan jangan upload ke GitHub.
{% endhint %}

## Panduan berikutnya

1. [Instalasi & Kirim Pesan Pertama](/help/integrations/watzap-sdk/instalasi-and-kirim-pesan-pertama.md)
2. [Contoh Use Case](/help/integrations/watzap-sdk/contoh-use-case.md)
3. [Menangani Error](/help/integrations/watzap-sdk/menangani-error.md)
4. [Pakai SDK dengan Bantuan AI](/help/integrations/watzap-sdk/pakai-sdk-dengan-bantuan-ai.md)
5. [Tips Sebelum Go-Live](/help/integrations/watzap-sdk/tips-sebelum-go-live.md)
