Langsung ke konten
WbizTool

API v2 (beta)

Nomor

Nomor adalah nomor WhatsApp atau akun Telegram yang terhubung ke workspace Anda. id-nya adalah from yang Anda gunakan untuk mengirim pesan. Dengan API v2, Anda dapat menampilkan daftar nomor, melihat apakah masing-masing terhubung, dan menghubungkan nomor WhatsApp dari aplikasi Anda sendiri, dengan kode QR atau kode penautan.

OperasiEndpointScope
Daftar nomorGET /api/v2/numbersnumbers
Mengambil nomorGET /api/v2/numbers/{id}numbers
Menghubungkan nomor WhatsAppPOST /api/v2/numbersnumbers

Kunci yang dibatasi ke sebagian nomor hanya melihat dan menghubungkan kembali nomor-nomor itu, dan tidak dapat menambahkan nomor.

Daftar nomor#

GEThttps://wbiztool.com/api/v2/numbers

Semua nomor workspace, yang terlama lebih dulu, dalam satu daftar data (tanpa halaman).

curl https://wbiztool.com/api/v2/numbers \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
  "data": [
    {
      "id": 101,
      "phone": "919800000000",
      "label": "Shop",
      "platform": "whatsapp",
      "status": "connected",
      "login_method": "qr",
      "connect": null
    },
    {
      "id": 102,
      "phone": null,
      "label": "",
      "platform": "whatsapp",
      "status": "disconnected",
      "login_method": "qr",
      "connect": null
    }
  ]
}

connect selalu bernilai null di daftar. Untuk mengikuti proses koneksi, ambil nomornya.

Mengambil nomor#

GEThttps://wbiztool.com/api/v2/numbers/{id}

Satu nomor. Selama nomor sedang dihubungkan, connect berisi kode QR untuk dipindai atau kode penautan untuk diketik.

curl https://wbiztool.com/api/v2/numbers/102 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
  "id": 102,
  "phone": null,
  "label": "",
  "platform": "whatsapp",
  "status": "connecting",
  "login_method": "qr",
  "connect": {
    "qr_code_url": "https://…/qr_codes/…png?X-Amz-Signature=…",
    "pairing_code": null,
    "pairing_code_expires_at": null,
    "linking": false,
    "requested_at": "2026-10-18T11:02:15.402Z"
  }
}

Nomor yang tidak ada, atau yang tidak boleh digunakan oleh kunci, dijawab dengan 404 number_not_found.

Objek Number#

FieldJenisKeterangan
idintegerID nomor: from pada pesan atau pengingat.
phonestring or nullDigitnya dengan kode negara, tanpa +, seperti 919800000000. null untuk nomor baru yang dihubungkan dengan QR sampai kode QR dipindai.
labelstringNamanya di dashboard; "" jika tidak ada.
platformstringwhatsapp atau telegram.
statusstringconnected, connecting (koneksi diminta dalam 10 menit terakhir dan masih berjalan), atau disconnected.
login_methodstringCara terhubung: qr atau phone_code (kode penautan).
connectobject or nullSelama status bernilai connecting, dan hanya dari Mengambil nomor; selain itu null.

connect berisi:

FieldJenisKeterangan
qr_code_urlstring or nullTautan ke gambar kode QR untuk dipindai. Setiap panggilan memberikan tautan baru, berlaku 10 menit; null sampai server memiliki kode QR.
pairing_codestring or nullUntuk phone_code: kode yang diketik di ponsel. null sampai siap.
pairing_code_expires_atstring or nullKapan kode penautan berhenti berlaku.
linkingbooleantrue setelah kode QR dipindai atau kode diterima, selama WhatsApp menyelesaikan penautan.
requested_atstring or nullKapan koneksi diminta.

Pesan yang dikirim dengan nomor disconnected sebagai from tetap diterima: pesan menunggu dan dikirim saat nomor terhubung kembali. Peristiwa webhook untuk nomor akan menyusul; sampai saat itu, lakukan polling GET /numbers untuk mengetahui nomor yang ter-logout.

Menghubungkan nomor WhatsApp#

POSThttps://wbiztool.com/api/v2/numbers

Body: JSON (application/json)

Meminta server WbizTool membuka WhatsApp untuk sebuah nomor, sehingga Anda dapat menautkannya dari aplikasi atau situs web Anda sendiri, seperti di halaman Nomor WhatsApp. Responsnya 202 dengan Number berstatus connecting. Lalu lakukan polling sampai statusnya connected.

Endpoint ini memerlukan paket yang mencakup API kode QR; jika tidak, dijawab dengan 403 plan_required. Akun Telegram dihubungkan di dashboard, bukan di sini.

Body

login_methodstringopsional

qr (default): pindai kode QR. phone_code: ketik kode penautan di ponsel, praktis jika ponsel adalah satu-satunya layar.

phonestringWajib untuk phone_code

Nomor WhatsApp yang akan ditautkan, dalam format internasional dengan +, seperti +919876543210. Tidak dipakai dengan qr: nomor dibaca dari WhatsApp setelah pemindaian.

number_idintegeropsional

Hubungkan kembali nomor yang sudah ada ini alih-alih menambahkan nomor baru, misalnya setelah nomor itu ter-logout.

# By QR code
curl -X POST https://wbiztool.com/api/v2/numbers \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"login_method": "qr"}'

# By pairing code, reconnecting number 101
curl -X POST https://wbiztool.com/api/v2/numbers \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"login_method": "phone_code", "phone": "+919876543210", "number_id": 101}'

Alur koneksi#

  1. Minta koneksi

    POST /numbers dengan login_method (dan phone untuk kode penautan). Simpan id dari respons. Kirim Idempotency-Key agar percobaan ulang tidak meminta dua kali.

  2. Lakukan polling nomor setiap beberapa detik

    GET /numbers/{id} setiap 2 hingga 5 detik selama status bernilai connecting. Kode QR atau kode penautan muncul di connect dalam hitungan detik; sebelum itu field-nya bernilai null.

  3. Tampilkan kode QR atau kode penautan

    QR: tampilkan gambar di connect.qr_code_url; di ponsel, buka WhatsApp → Perangkat tertaut → Tautkan perangkat dan pindai. Setiap tautan berlaku 10 menit dan tautan baru datang di setiap polling, jadi selalu tampilkan yang terbaru. Kode penautan: di ponsel, buka WhatsApp → Perangkat tertaut → Tautkan perangkat → Tautkan dengan nomor telepon saja, lalu ketik connect.pairing_code 8 karakter sebelum connect.pairing_code_expires_at (sekitar 3 menit).

  4. Tunggu sampai terhubung

    Setelah pemindaian atau kode, connect.linking bernilai true selama WhatsApp menyelesaikan penautan. Lalu status menjadi connected dan phone menampilkan nomornya. Hentikan polling.

Jika tidak terjadi apa pun selama 10 menit, upaya itu berakhir dan status kembali menjadi disconnected. Minta lagi dengan POST /numbers beserta number_id-nya.

Selama sebuah nomor sedang dihubungkan, request lain untuk nomor itu dijawab dengan 409 connect_in_progress beserta number_id-nya: lanjutkan polling nomor itu saja.

Error saat menghubungkan#

HTTPKodeKapan
400validation_failedlogin_method bukan qr atau phone_code, atau phone_code tanpa phone
403plan_requiredPaket tidak mencakup API kode QR
403number_limit_reachedPaket tidak memiliki ruang untuk nomor lain
403number_not_allowedKunci dibatasi ke sebagian nomor, dan number_id bukan salah satunya (atau tidak dikirim)
409already_connectedNomor itu sudah terhubung
409connect_in_progressNomor itu sedang dihubungkan saat ini; number_id menunjukkan nomor yang mana
422invalid_phonephone bukan nomor yang valid dalam format internasional dengan +
422number_not_foundnumber_id bukan nomor workspace ini

Terkait#