Skip to content

Quickstart — kirim pesan pertama <10 menit

Panduan end-to-end dari nol: daftar akun → hubungkan WhatsApp → kirim pesan via API. Semua contoh pakai cURL, tinggal copy-paste (ganti nilai contoh dengan punyamu).

Base URL: https://waq.karyawah.id

1. Daftar akun

bash
curl -X POST https://waq.karyawah.id/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{
    "email": "kamu@contoh.com",
    "password": "passwordku123",
    "fullName": "Nama Kamu"
  }'

Respons 201:

json
{ "id": "…", "email": "kamu@contoh.com", "email_verified": false }

2. Verifikasi email

Status saat ini

Pengiriman email verifikasi otomatis belum aktif — setelah daftar, hubungi admin (kontak ada di Billing & Paket) untuk aktivasi akunmu. Langkah ini akan otomatis via email begitu integrasi email selesai.

Kalau kamu sudah pegang token verifikasi:

bash
curl -X POST https://waq.karyawah.id/v1/auth/verify-email \
  -H "Content-Type: application/json" \
  -d '{ "token": "<token-verifikasi>" }'

3. Login → dapat JWT

bash
curl -X POST https://waq.karyawah.id/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{ "email": "kamu@contoh.com", "password": "passwordku123" }'

Respons 200 (simpan access_token):

json
{
  "access_token": "eyJhbGciOi…",
  "refresh_token": "eyJhbGciOi…",
  "token_type": "Bearer",
  "user": { "id": "…", "email": "kamu@contoh.com", "role": "user" }
}

Akun baru otomatis dapat Free Trial 7 hari (1 device, 100 pesan/hari).

bash
# simpan sebagai variabel biar contoh berikutnya ringkas
export TOKEN="eyJhbGciOi…"

4. Buat device & scan QR

Device = 1 nomor WhatsApp yang terhubung.

bash
curl -X POST https://waq.karyawah.id/v1/devices \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "WA Utama" }'

Respons 201 berisi id device (simpan). Lalu ambil QR code:

bash
curl https://waq.karyawah.id/v1/devices/<device_id>/qr \
  -H "Authorization: Bearer $TOKEN"

Respons berisi qr (PNG base64). Tampilkan & scan dari HP: WhatsApp → Perangkat Tertaut → Tautkan Perangkat. QR kedaluwarsa cepat — kalau gagal, panggil endpoint yang sama lagi untuk QR baru.

Setelah scan, sinkronkan status:

bash
curl -X POST https://waq.karyawah.id/v1/devices/<device_id>/sync \
  -H "Authorization: Bearer $TOKEN"

Tunggu sampai "status": "connected".

5. Kirim pesan pertama 🎉

bash
curl -X POST https://waq.karyawah.id/v1/messages/send \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "device_id": "<device_id>",
    "to": "628123456789",
    "type": "text",
    "text": "Halo dari WAQ! 🚀"
  }'

Respons 201 dengan "status": "queued" — pesan masuk antrean dan dikirim dengan delay acak (anti-ban). Cek statusnya:

bash
curl https://waq.karyawah.id/v1/messages/<message_id> \
  -H "Authorization: Bearer $TOKEN"

Lifecycle status: queued → sending → sent (atau failed + error_message).

6. (Opsional) API key untuk servermu

Untuk integrasi dari backend (bukan dashboard), buat API key — lebih aman daripada menyimpan JWT yang cepat kedaluwarsa:

bash
curl -X POST https://waq.karyawah.id/v1/api-keys \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Server Produksi" }'

Simpan key-nya sekarang

Field key di respons hanya ditampilkan sekali. Hilang = cabut dan buat baru.

Selanjutnya kirim pesan pakai header X-API-Key (tanpa perlu login):

bash
curl -X POST https://waq.karyawah.id/v1/messages/send \
  -H "X-API-Key: <api-key-kamu>" \
  -H "Content-Type: application/json" \
  -d '{ "device_id": "<device_id>", "to": "628123456789", "type": "text", "text": "Via API key!" }'

Selanjutnya