NI Notifikasi.id Admin console

API v1 · publik

Kirim WhatsApp dan email lewat satu API

Semua permintaan memakai kunci klien (nk_…) yang kami terbitkan untuk aplikasi Anda. Kirim pesan, cek status pengiriman, dan pantau kuota dari endpoint yang sama.

Base URL
https://notifikasi.id
Autentikasi
Authorization: Bearer nk_…
Format
application/json

Mulai cepat

Satu request untuk mengirim pesan WhatsApp.

curl -X POST https://notifikasi.id/api/v1/messages \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "whatsapp",
    "to": "628123456789",
    "message": "Halo dari aplikasi saya"
  }'
{
  "data": {
    "id": 128,
    "channel": "whatsapp",
    "recipient": "628123456789",
    "status": "sent",
    "provider_ref": "3EB0F5A9…",
    "created_at": "2026-11-01T07:20:11Z"
  }
}

Nomor telepon boleh ditulis 08…, 62…, +62…, atau …@s.whatsapp.net — kami menormalkannya. Untuk email, isi "channel":"email" dan tambahkan subject.

Autentikasi

Kunci klien dikirim sebagai bearer token pada setiap request.

Authorization: Bearer nk_kzspIEKg4BEqTKfAxPMxA_…
  • Kunci hanya ditampilkan sekali saat dibuat. Simpan di server Anda, jangan di aplikasi mobile.
  • Kunci bisa dirotasi atau dinonaktifkan kapan saja; kunci lama langsung berhenti bekerja.
  • Setiap kunci punya batas laju per menit dan kuota harian. Respons 429 menyertakan header X-Quota-Limit dan X-Quota-Used.
  • Kunci terikat pada satu nomor pengirim WhatsApp (gateway). Nomor pengirim tidak bisa dipilih bebas.

Endpoint

Semua path relatif terhadap https://notifikasi.id.

MethodPathKeterangan
POST /api/v1/messages Send a notification
Body: {channel, to, message} plus subject for email. Requires a client key.
GET /api/v1/messages/{id} Message status
Returns one message that belongs to the calling client.
GET /api/v1/client Client info
Limits, remaining quota, and usage for the calling client.
GET /api/v1/client/gateways Assigned gateway
Shows the WhatsApp gateway the calling client sends through, as set by the operator.

Contoh

Ganti $KEY dengan kunci klien Anda.

Email

curl -X POST https://notifikasi.id/api/v1/messages \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "channel": "email",
    "to": "pelanggan@example.com",
    "subject": "Pesanan dikirim",
    "message": "Paket Anda sedang dalam perjalanan."
  }'

WhatsApp

# gateway dipilih otomatis dari assignment yang diatur operator
curl -X POST https://notifikasi.id/api/v1/messages \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"channel":"whatsapp","to":"628123456789","message":"Halo"}'

# lihat gateway yang dipakai kunci ini
curl -H "Authorization: Bearer $KEY" https://notifikasi.id/api/v1/client/gateways

Status dan kuota

curl -H "Authorization: Bearer $KEY" https://notifikasi.id/api/v1/messages/128
curl -H "Authorization: Bearer $KEY" https://notifikasi.id/api/v1/client

Respons dan kode status

Sukses: 201 dengan {"data": …}. Gagal: {"error": {"code", "message"}}.

StatusArti
201Pesan diterima dan sudah dikirim ke penyedia
401Kunci tidak ada, salah, atau sudah dirotasi
403Klien nonaktif
404Pesan tidak ditemukan
422Validasi gagal: channel, nomor tujuan, atau isi pesan
429Batas laju per menit atau kuota harian habis
502Penyedia menolak; data.id berisi id pesan yang gagal untuk ditelusuri
{"error": {"code": "quota_exceeded", "message": "Daily quota of 1000 messages reached."}}

Catatan operasional

  • Isi pesan maksimal 4096 karakter; formatting WhatsApp (*bold*, _italic_) diteruskan apa adanya.
  • Pengiriman bersifat sinkron: respons 201 berarti pesan sudah diterima engine WhatsApp.
  • Semua percobaan pengiriman tercatat dan bisa dipantau lewat console (menu WhatsApp outbox).
  • Pesan masuk ke nomor Anda dapat diteruskan otomatis ke daftar nomor lain (forwarding) — atur dari console.
  • Spesifikasi mesin: OpenAPI 3.1.