Modul Zinn Digital® mengubah tombol bawaan WHMCS menjadi tindakan nyata di platform kami. Sebuah pesanan memprovisi hosting klien Anda. Otomatisasi tagihan jatuh tempo WHMCS menangguhkannya. Menandai tagihan sebagai lunas akan melepaskannya. Pembatalan menjadwalkan penghapusan. Dan klien Anda mendapatkan tombol Log in to hosting panel di area klien mereka yang memasukkan mereka secara langsung.
Modul ini gratis, berlisensi GPL-2.0-or-later, dan tidak memiliki jalur istimewa ke dalam platform kami: setiap panggilan yang dilakukannya adalah endpoint terdokumentasi yang dapat Anda lakukan sendiri dengan kunci API Anda.
Sebelum Anda mulai
Anda memerlukan dua hal, dan hal kedua sering kali luput dari perhatian orang.
- Akun reseller Zinn® dengan program yang aktif. Daftarlah di zinndigital.com dan aktifkan penjualan kembali (reselling).
- Paket reseller dengan kuota situs. Situs yang dipesan klien Anda diperhitungkan ke dalam paket Anda, jadi Anda memerlukan paket yang memiliki ruang tersisa.
⚠️ Test Connection tidak dapat memberi tahu Anda apakah pesanan akan berhasil. Fitur ini hanya membaca program Anda dan tidak memprovisi apa pun, sehingga melaporkan akun active yang sehat padahal belum dapat menjual apa pun. Jika pesanan pertama Anda gagal dengan pesan "This organization has no hosting plan, so it cannot host a site yet", itulah yang terjadi — beli atau perpanjang paket reseller Anda dan lakukan pemesanan lagi. Tidak ada masalah dengan modul tersebut.
1. Buat kunci API
Di dasbor Zinn® Anda, buka API keys dan buat satu kunci dengan tepat sebelas izin berikut:
| Izin | Alasan mengapa diperlukan |
|---|
org.create | Membuka akun Zinn® klien Anda pada pesanan pertama mereka. |
org.read | Membaca akun klien Anda. |
sites.create | Memprovisi situs. |
sites.view | Membaca layanan beserta penggunaannya. |
sites.delete | Mengakhiri layanan (terminate). |
reseller.view | Mencantumkan apa yang telah Anda jual, serta membaca disk dan bandwidth. |
reseller.provision | Menangguhkan, melepaskan, memasukkan klien, menetapkan paket mereka, dan mengubah paket mereka. |
billing.view | Membaca biaya upgrade sebelum melakukannya. |
sites.manage | Membersihkan cache dan membuat pencadangan dari tombol. |
sites.panel_access | Mengubah kata sandi administrator WordPress. |
hosting.php.manage | Beralih versi PHP saat upgrade atau downgrade. |
⛔ Jangan berikan reseller.manage. Kunci yang ditempelkan ke dalam panel penagihan seharusnya dapat menahan klien karena belum bayar dan memasukkan mereka ke sistem. Kunci tersebut tidak boleh dapat membaca dan menulis ulang kredensial gateway pembayaran Anda sendiri. reseller.provision disediakan agar Anda tidak perlu memberikan izin yang lebih luas tersebut. ⛔ org.create tidak bersifat opsional. Tanpa izin ini modul dapat membaca akun Anda namun tidak dapat membukanya, sehingga Test Connection berhasil tetapi pesanan pertama merespons dengan 403. ⛔⛔ Berikan semua izin di tabel, dan perhatikan bahwa Test Connection tidak dapat memberi tahu jika ada yang terlewat. Fitur ini membaca program reseller Anda dan tidak memprovisi apa pun, sehingga tetap berstatus hijau untuk kunci yang kehilangan salah satu izin ini. Apa yang akan Anda dapatkan justru respons 403 pada satu operasi yang dicakup oleh izin yang hilang tersebut, berbulan-bulan kemudian, dari pelanggan.
2. Instal modul
- Unduh modul dan ekstrak filenya.
- Unggah direktori
zinn ke dalam instalasi WHMCS Anda sehingga file modul berada di modules/servers/zinn/zinn.php.
⛔ Direktori harus bernama zinn. WHMCS mengambil nama fungsi modul provisi dari nama direktorinya, sehingga mengubah namanya menjadi zinn-whmcs atau zinndigital akan menghasilkan modul yang terdaftar di WHMCS, memungkinkan Anda memilihnya, tetapi kemudian tidak pernah dipanggil — tanpa pesan kesalahan sama sekali. File zip sudah diekstrak ke nama yang benar; Anda hanya perlu tidak mengubah namanya.
3. Tambahkan server
Di WHMCS: Configuration → System Settings → Servers → Add New Server.
- Name: apa saja, mis.
Zinn Digital®
- Hostname:
api.zinndigital.com
- Type:
Zinn Digital®
- Password: kunci API Anda dari langkah 1
⛔ Kunci tersebut dimasukkan ke dalam bidang Password, yang disimpan secara terenkripsi oleh WHMCS. Jangan menaruhnya di opsi konfigurasi produk — opsi tersebut berupa teks biasa di basis data dan dapat dilihat oleh setiap admin, sementara kredensial ini dapat membuat dan menghapus hosting klien Anda.
Tekan Test Connection. Tombol ini melakukan panggilan nyata dan melaporkan apa yang dikembalikan oleh platform kami, bukan sekadar memeriksa apakah bidang telah terisi.
4. Buat produk
Configuration → System Settings → Products/Services, lalu atur Module Settings ke server yang baru saja Anda tambahkan. Bidang-bidangnya adalah:
| Bidang | Diperlukan | Keterangan |
|---|
| Product line | ya | Lini Zinn® yang Anda jual — mainstream (WordPress terkelola), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail atau reseller. |
| Stack | ya | Apa yang dibangun: wordpress (default), woocommerce, php, static, node, one_click, headless_cms, nextcloud atau owncloud. |
| Application | tidak | Hanya untuk stack one_click dan headless_cms — aplikasi mana yang akan diinstal. Menentukan aplikasi pada stack lain akan ditolak, karena stack tersebut sudah menentukan apa yang diinstal. |
| PHP version | tidak | mis. 8.3. Biarkan kosong untuk nilai default lini tersebut. Versi yang tidak ditawarkan oleh lini tersebut akan ditolak disertai daftar versi yang tersedia. |
| Plan code | ya | Paket Zinn® yang dijual produk ini. GET /v1/reseller/prices menampilkan daftar milik Anda. Pesanan tanpa kode ini akan ditolak — lihat peringatan di bawah. |
| Billing interval | tidak | monthly (default) atau annual — interval penagihan grosir Anda untuk klien ini dibuat. Biaya yang Anda kenakan kepada klien Anda sendiri diatur pada produk WHMCS dan tidak terpengaruh. |
⛔⛔ Plan code wajib diisi, dan pesanan tanpa kode ini sengaja ditolak. Hingga 2026-09-01 bidang ini hanya bersifat dekoratif dan tidak ada yang membacanya, sehingga modul memesan hosting yang tidak membawa paket sama sekali — dan setiap konsekuensi dari hal itu terjadi secara senyap. Laporan grosir Anda dibuat dari langganan aktif klien Anda, sehingga tidak ada rincian untuk layanan tersebut dan Anda tidak ditagih sama sekali selama layanan berjalan; klien Anda tidak mewarisi kuota apa pun, sehingga tidak ada kuota disk atau file yang diterapkan ke situs mereka; dan Change Package tidak memiliki apa pun untuk diubah, sehingga upgrade yang Anda jual tidak dapat dilakukan. Situs tetap terprovisi dan melayani dengan sempurna selama kurun waktu tersebut.
Modul sekarang menolak pesanan tersebut, karena tidak ada paket yang aman untuk ditebak: menebak akan memprovisi hosting pada paket yang tidak Anda pilih dan mungkin belum Anda tentukan harganya, dan — tidak seperti penolakan yang dapat Anda ketahui secara langsung — hal itu baru akan terlihat ketika laporan tagihan tiba, jika terlihat sama sekali.
Atur Auto Setup ke opsi mana pun yang Anda sukai — modul bersifat idempoten pada id layanan WHMCS, sehingga provisi yang dicoba ulang akan mengembalikan situs yang sama alih-alih menagih Anda untuk situs kedua.
Fungsi setiap tindakan WHMCS
| Tindakan WHMCS | Apa yang terjadi di sisi kami |
|---|
| Create | Membuat akun Zinn® klien (atau menggunakan kembali akun yang sudah mereka miliki) dan memprovisi situs mereka. |
| Suspend | Menahan situs karena belum bayar. Konten tetap dipertahankan; tidak ada yang dihapus. |
| Unsuspend | Melepaskan status penahanan Anda. |
| Terminate | Menjadwalkan penghapusan situs, dengan masa tenggang. Tanggal akan ditampilkan di area klien. |
| Usage update | Memperbarui informasi disk dan bandwidth pada setiap layanan, sekali sehari. |
| Log in to hosting panel | Membuka tautan masuk sekali pakai langsung ke panel klien Anda. |
| Change Package | Melakukan upgrade atau downgrade layanan. Memindahkan paket, dan versi PHP jika produk baru menentukannya. |
| Change Password | Mengatur kata sandi administrator WordPress. Kotak input tidak muncul pada stack yang tidak memiliki akun tersebut. |
| Renew | Memastikan layanan masih ada. Hosting Zinn® bersifat berkelanjutan, jadi tidak ada jangka waktu jarak jauh yang perlu diperpanjang. |
| Sync Usage / Purge Cache / Take Backup | Tombol-tombol di halaman layanan admin. Klien Anda mendapatkan tombol Purge Cache dan Take Backup di area klien mereka. |
| Service tab | Status, paket, disk, bandwidth, jadwal penghapusan (jika ada), dan siapa yang melakukan penangguhan. |
| Import | ListAccounts membaca setiap halaman, sehingga proses impor tidak dapat berhenti secara senyap di halaman pertama. |
Upgrade: siapa menagih siapa
Klien Anda tidak pernah ditagih oleh Zinn®, baik saat pemesanan maupun saat upgrade. Anda menagih mereka melalui WHMCS; kami menagih Anda, pada laporan tagihan grosir Anda. Jadi, Change Package memindahkan hak akses klien Anda serta rincian pada laporan tagihan Anda berikutnya, dan tidak menyentuh kartu apa pun — WHMCS telah mengambil uang klien Anda dan menghitung proratasinya sendiri.
Layanan kedua milik klien. Pada paket yang sama, ini merupakan situs lain di bawah kuota situs paket tersebut, dan tidak ada hal tambahan yang diberikan. Pada paket yang berbeda, tindakan ini ditolak: mengganti paket yang sedang aktif akan membuat salah satu dari kedua layanan tersebut tidak tertagih. Anda dapat menjual keduanya pada paket yang sama, atau mendaftarkan klien sebagai catatan klien terpisah di WHMCS.
Change Password hanya tersedia untuk WordPress. Hosting Zinn® tidak memiliki satu "kata sandi layanan" bersama — klien Anda mengakses panel mereka menggunakan tombol masuk — dan situs php atau static tidak memiliki akun aplikasi untuk diubah. WHMCS menyembunyikan kotak input tersebut sepenuhnya daripada menampilkan sesuatu yang tidak dapat berfungsi.
Tiga jawaban yang tidak boleh Anda samakan menjadi dua
- Unsuspend dapat merespons dengan penolakan. Itu berarti situs ditangguhkan oleh tim abuse kami, bukan oleh Anda, dan tidak ada panel penagihan yang boleh melepaskannya. Pesan yang muncul menyatakan demikian; tunjukkan pesan tersebut kepada admin Anda daripada mencoba lagi.
- Terminate menjadwalkan penghapusan, bukan langsung menghapusnya. Tanggal akan dikembalikan sebagai
pending_deletion_at dan area klien akan menampilkannya. Memberitahu pelanggan bahwa data mereka sudah terhapus padahal belum adalah hal yang lebih buruk daripada tidak memberitahukan apa pun.
- Disk dan bandwidth bisa saja tidak diketahui, dan tidak diketahui bukanlah nol. Saat kami tidak dapat membaca data penggunaan, modul akan membiarkan nilai tersebut apa adanya daripada menulis
0 — jika tidak, WHMCS akan menampilkan bilah penggunaan kosong yang keliru kepada pelanggan Anda untuk situs yang tidak memiliki data pembacaan dari kami.
Pemecahan Masalah
Test Connection berhasil dan pesanan pertama gagal dengan pesan kesalahan izin. Kunci API tidak memiliki izin org.create. Modul harus membuka akun klien terlebih dahulu sebelum dapat membuat situs mereka.
Pesanan gagal dengan pesan yang menyebutkan bahwa organisasi tidak memiliki paket hosting. Paket reseller Anda tidak memiliki sisa kuota situs, atau Anda belum memilikinya. Lihat bagian Sebelum Anda mulai di atas.
Pesanan gagal dengan menyebutkan stack. Bidang Stack pada produk kosong atau menyebutkan sesuatu yang tidak kami buat. Atur ke wordpress kecuali Anda menjual hal lain.
Pembatalan mengalami kegagalan. Pastikan Anda menggunakan modul versi 1.0.0 atau yang lebih baru. Versi sebelumnya tidak mengirimkan konfirmasi penghapusan dan setiap pengakhiran layanan (termination) ditolak, yang menyebabkan layanan tetap berjalan dan tetap ditagih.
Penolakan yang menyebutkan nama bidang. Kesalahan validasi kami menyebutkan nama bidang dan alasannya di dalam tanda kurung setelah pesan utama, mis. (php_version: 7.2 is not offered on this product line). Bagian itulah yang dapat ditindaklanjuti — kalimat di depannya sengaja dibuat bersifat umum.
Verifikasi unduhan Anda
Setiap arsip disajikan melalui TLS dari hostname kami sendiri dan tidak pernah dialihkan ke host pihak ketiga. Checksum SHA-256 dicantumkan di samping tautan unduhan pada halaman unduhan. Cocokkan checksum tersebut setelah mengunduh:
- macOS atau Linux:
shasum -a 256 zinn-whmcs-1.0.0.zip
- Windows:
certutil -hashfile zinn-whmcs-1.0.0.zip SHA256
Tidak menggunakan WHMCS?
Tersedia modul HostBill dan klien PHP file tunggal untuk platform lainnya, keduanya gratis dan keduanya berada di halaman unduhan yang sama. Setiap endpoint yang digunakan modul-modul ini tercantum dalam referensi API.