Zonindo
Hubungi tim

Developer

Dokumentasi developer

Integrasi ke ekosistem Zonindo cukup satu endpoint. Autentikasi memakai tanda tangan HMAC dengan kunci terpisah per layanan, sehingga satu kebocoran tidak mematahkan layanan lain.

Autentikasi

Autentikasi HMAC per layanan

Setiap layanan yang terdaftar menerima kunci HMAC rahasia sendiri. Setiap permintaan ditandatangani dengan kunci tersebut dan stempel waktu. Jendela kesegaran 300 detik mencegah permintaan lama diputar ulang oleh pihak lain.

Endpoint

Contoh di bawah mengikuti bentuk permintaan yang benar-benar dipakai oleh layanan pembayaran dan gateway kami.

Zona Pay

https://pay.zonaindonesia.com — Pusat pembayaran ekosistem. QRIS dan virtual account dengan verifikasi ganda.

POST /api/v1/invoices

Terbitkan invoice

Membuat invoice bertanda tangan HMAC. Mengembalikan 201 Created beserta tautan pembayaran.

Contoh permintaan

{
  "external_id": "MEET-PRO-2026",
  "amount": 149000,
  "description": "Zona Meet Pro",
  "return_url": "https://meet.zonaindonesia.com/dash"
}

Contoh respons

{
  "invoice": {
    "id": "ZP-2026...",
    "checkout_url": "https://pay.zonaindonesia.com/pay/ZP-2026..."
  }
}
GET /status/{id}

Periksa status invoice

Polling status sebagai cadangan realtime ketika webhook tidak tersedia. Status termasuk kedaluwarsa dan dibatalkan.

Contoh respons

{
  "id": "ZP-2026...",
  "status": "paid",
  "verified_at": "2026-09-30T09:12:44Z"
}
POST /api/v1/invoices/{id}/cancel

Batalkan invoice

Endpoint pembatalan menolak invoice yang sudah dibayar, sehingga status tidak pernah berubah dua kali.

Contoh respons

{
  "id": "ZP-2026...",
  "status": "cancelled"
}

Zona SMS Gateway

https://smsgateway.zonaindonesia.com — Gateway SMS transaksional dengan akses penuh REST API pada semua paket berbayar.

POST /api/send

Kirim pesan

Mengirim SMS ke satu atau banyak nomor. Nomor international memakai format tanpa tanda plus di depan.

Contoh permintaan

{
  "to": "6281234567890",
  "message": "Kode OTP Anda: 123456",
  "sender_id": "ZONAINDO"
}

Contoh respons

{
  "status": "queued",
  "message_id": "SM-2026...",
  "credits_used": 1
}
POST /api/blacklist/add

Tambahkan nomor ke daftar blokir

Menyaring nomor yang tidak ingin menerima pesan, menjaga reputasi gateway dan kepatuhan privasi.

Contoh permintaan

{
  "number": "628999999999"
}

Contoh respons

{
  "status": "ok",
  "blacklisted": 1
}

Zona Broadcast

https://bm.zonaindonesia.com — Broadcast WhatsApp, SMS, dan email. Tarif mengikuti volume pesan dan channel yang dipakai.

POST /api/campaigns

Buat kampanye

Menyimpan kampanye beserta daftar penerima dari berkas Excel atau CSV, lalu menjadwalkannya.

Contoh permintaan

{
  "name": "Promo September",
  "channel": "whatsapp",
  "schedule_at": "2026-09-30T10:00:00+07:00"
}

Contoh respons

{
  "id": "BC-2026...",
  "status": "scheduled"
}

Konsep penting

Empat hal yang paling sering menjadi sumber masalah saat mengintegrasikan API.

Status kode

200 berhasil diproses, 201 resource dibuat, 400 permintaan tidak valid, 401 tanda tangan HMAC tidak sah atau kedaluwarsa, 409 konflik state, 429 melebihi batas permintaan, 5xx gangguan di sisi server. Semua respons dan body berisi kode dan pesan dalam Bahasa Indonesia.

Idempotensi

Webhook ganda, polling ganda, dan klik ganda menghasilkan satu transaksi yang sama. Kirim external_id yang sama untuk mencegah pembuatan invoice ganda.

Anti-replay

Setiap permintaan menyertakan stempel waktu. Permintaan yang bertanda tangan lebih lama dari jendela 300 detik ditolak.

Secret per layanan

Tidak ada kunci yang dipakai lintas layanan. Kebocoran pada satu layanan tidak menyebabkan layanan lain ikut bocor.

Mulai integrasi

Empat langkah, dari pendaftaran sampai transaksi pertama masuk.

  1. Daftarkan layanan AndaKirim deskripsi layanan dan jenis data yang akan dikirim ke contact.zonaindonesia.com.
  2. Terima kunci HMACSetiap layanan menerima kunci rahasia dan kunci publik callback yang terpisah.
  3. Kirim permintaan bertanda tanganBangun tanda tangan HMAC dari body dan stempel waktu, lalu kirim ke endpoint.
  4. Simpan callbackVerifikasi webhook melalui polling status sebagai cadangan bila webhook tidak diterima.

Butuh layanan yang belum Anda temukan di daftar ini?

Tim kami memetakan kebutuhan Anda lalu proposing layanan yang paling masuk akal, lengkap dengan harga dan implementasinya.

Konsultasikan kebutuhan