Referensi
Changelog
Perubahan breaking dan penting pada API v3. Kami mengikuti semver (terbuka di tab baru) — perubahan aditif (parameter opsional baru, action baru, field baru dalam response) dirilis dalam versi major yang sama; perubahan breaking masuk ke major baru.
- Terbaru
v3.2: Sistem order baru: satu daftar error, drip feed lebih sederhana, pembatalan dan isi ulang lebih jelas
Semua yang di bawah dirilis bersamaan di bawah header
X-NotPanel-API-Version: 2026-10. Setiap aksi sebelumnya tetap berfungsi, dan alamat /api/v1, /api/v2, dan /api/v3 berperilaku identik.- Setiap order memiliki satu nomor yang berlaku di dasbor, di dukungan, dan di API. Order API mempertahankan nomor lamanya.
- Drip feed:
runsdenganintervalmasih berfungsi. Bentuk sederhana yang baru menerimaquantitytotal dandrip_feed_total_minutes, hingga 48 jam. - Pembatalan bersifat instan dengan refund penuh selama 15 detik pertama. Setelah itu Anda dapat meminta pembatalan bila layanan mendukungnya, dengan refund otomatis.
ordermengembalikan satu objek, seperti sebelumnya;ordersmengembalikan array. - Isi ulang berfungsi sekali setiap 6 jam per order, tanpa tanggal akhir dan dengan alasan yang jelas saat ditolak.
- Reaksi Telegram adalah satu kolom
reactions, berupa campuran (👍,❤️,🔥) atau jumlah pasti (👍:60,❤️:40), diperiksa sebelum Anda ditagih. - Daftar layanan menampilkan tag, kolom tambahan beserta batasnya, batas drip feed, dan ketersediaan.
cancel: truekini berarti permintaan pembatalan benar-benar berfungsi. - Setiap error memiliki kode tetap, status HTTP, dan flag retryable. Kode sebelumnya dan kode saat ini tercantum di bawah.
order_detailsbaru, yang juga dapat menemukan order lewatrequest_idAnda.statussudah memuat refund: untuk order yang dibatalkan atau sebagian,refundadalah jumlah yang di-refund, jadi tidak perlu panggilan terpisah.refund_quoteadalah nama sebelumnya yang mengembalikan balasan yang sama denganstatus.- Webhook kini satu sistem: satu event bertanda tangan per panggilan, berversi, dengan event baru untuk order yang dibatalkan dan sebagian serta untuk hasil isi ulang.
- Dihapus: body webhook batch, parameter
coupon, serta dari status kolomrefund_pendingdan dua kolom kebijakan refund. Parameter lamadelaytidak lagi dibaca; gunakandrip_feed_total_minutes. - Ditambahkan:
can_canceldi status daninstant_cancel_untildi balasanadd.cancel_availableyang lama tetap ada di keduanya, dancancel_window_secondssertacancel_beforetetap ada di balasanadd. - Dipertahankan: aksi
catalogdanaccount_statustetap berfungsi seperti sebelumnya, dancatalogkini didokumentasikan di Daftar layanan. Nama parameter lama tetap berfungsi:referer,lpost_count,hashtaguntuk daftar hashtag,usernamesyang dipisahkan koma, dan peta reaksi lama.webhook.addjuga menerima nama eventorder.refundeddanorder.refill_completed. /api/v1,/api/v2, dan/api/v3semuanya tetap berfungsi dan berperilaku sama. Yang didokumentasikan adalah/api/v3.- Order selesai selalu menampilkan
remainssebagai 0.
v3.1: Nama service yang natural untuk tiap pasar
Action services dan catalog sekarang menerima kode bahasa opsional untuk nama service yang dilokalkan dengan terminologi pasar terkurasi dalam sepuluh bahasa. Request eksplisit menambahkan metadata nama kanonis dan bahasa aktual, lalu kembali dengan aman ke bahasa Inggris jika terjemahan tidak ada atau sudah usang. Tanpa language, bentuk response Inggris lama tidak berubah. Admin dapat meninjau atau menyempurnakan setiap nama.
v3.0: v3 menjadi API default
/api/v3 menjadi endpoint kanonis dan pengganti base URL langsung untuk kontrak reseller yang familiar. v3 menambahkan key retry presisi opsional, perlindungan legacy 60 detik, katalog lanjutan, ID numerik, refund_quote, account_status, cancel tunggal atau batch berurutan, serta webhook bertanda tangan. Kapasitas API sekarang memakai tier lifetime successful spend dan satu jendela bergulir 60 detik yang dipakai bersama oleh semua key akun. /api/v1 dan /api/v2 adalah alias persis dari kontrak saat ini.
v2.5: Katalog lanjutan, rekonsiliasi refund, dan pembatalan
Menambahkan tindakan catalog dengan paginasi dan refund_quote yang hanya dapat dibaca, memperluas metadata add dan status, serta menyediakan jendela pembatalan 15 detik untuk pesanan biasa melalui API. Peristiwa webhook API kini membawa id peristiwa yang stabil, sedangkan deliveryId tetap sama pada percobaan ulang batch yang sama; setiap percobaan ulang menerima stempel waktu dan tanda tangan baru. Pengiriman webhook tetap dilakukan semampunya dengan percobaan ulang, tanpa jaminan tahan lama untuk pengiriman setidaknya sekali.
v2.4: 12 platform media baru di katalog
Menambahkan service untuk Google, Rumble, Audiomack, Tumblr, Kwai, Clubhouse, Vimeo, Deezer, Tidal, Apple Music, Quora, dan GitHub. Mereka muncul di action services seperti service lainnya dan masing-masing punya halaman platform publik tersendiri. Tidak perlu perubahan klien — ID service baru cukup muncul di katalog.
v2.3: Ketersediaan service diterapkan pada add
Service yang tidak tersedia menolak action=add alih-alih menerima atau mengantre order baru diam-diam. Refresh katalog dan pilih service tersedia sebelum retry.
v2.2: Parameter order opsional
Action add kini menerima field opsional spesifik service type yang didukung, seperti penundaan mulai dan opsi engagement per-tipe. Field yang sudah didefinisikan service type mempertahankan arti terdokumentasinya.
v2.1: Parameter drip-feed pada penempatan order
Action add menerima runs dan interval bersama untuk service dengan dripfeed=true. Total pengiriman quantity × runs dan tidak boleh melampaui maksimum service. Service non-drip menolak kedua field.
v2.0: Peluncuran publik API v2
Meluncurkan API action v2 form-encoded dengan kontrol rate, webhook best-effort bertanda tangan dengan retry, serta penempatan order idempoten. URL v1 dan v2 saat ini adalah alias kontrak v3 dan memakai batas akun bersama yang didokumentasikan.
Beralih dari versi sebelumnya
Kode error dan nama event webhook berubah. Gunakan daftar ini sekali saat memperbarui kode Anda.
Kode error
Balasan sebelumnya memakai kode di sebelah kiri. Versi 3.2 memakai satu daftar tertutup, yang ditampilkan di Error. Kolom terakhir menjelaskan pemetaannya.
| Sebelumnya | Sekarang | Cara berubahnya |
|---|---|---|
| INVALID_ACTION | INVALID_ACTION | Kode yang sama. |
| MISSING_SERVICE, MISSING_LINK, MISSING_QUANTITY, MISSING_ORDER, MISSING_ORDER_PARAMETER, MISSING_REFILL, MISSING_WEBHOOK_URL, MISSING_WEBHOOK_ID, NO_ORDER_IDS, NO_REFILL_IDS, NO_WEBHOOK_EVENTS, MISSING_CUSTOM_FIELD | MISSING_PARAMETER | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| INVALID_SERVICE_ID, INVALID_QUANTITY, LINK_TOO_LONG, IDEMPOTENCY_EMPTY, IDEMPOTENCY_EMPTY_REQUEST, IDEMPOTENCY_TOO_LONG, IDEMPOTENCY_TOO_LONG_REQUEST, INVALID_LANGUAGE, INVALID_WEBHOOK_EVENT | INVALID_PARAMETER | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| INVALID_LINK_URL | INVALID_LINK, LINK_BLOCKED | Satu kode sebelumnya menjadi beberapa, masing-masing lebih spesifik. |
| INVALID_CUSTOM_FIELD | INVALID_OPTION | Kode yang sama. |
| RUNS_INVALID, RUNS_TOO_HIGH, INTERVAL_INVALID, INTERVAL_TOO_HIGH | DRIP_FEED_INVALID | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| REQUEST_ID_CONFLICT | REQUEST_ID_CONFLICT | Kode yang sama. |
| SERVICE_NOT_FOUND, ADD_SERVICE_NOT_FOUND, WRONG_SERVICE_TYPE | SERVICE_NOT_FOUND | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| SERVICE_NOT_ACTIVE | SERVICE_PAUSED | Kode yang sama. |
| SERVICE_DISCONTINUED, REFILL_SERVICE_DISCONTINUED | SERVICE_DISCONTINUED | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| INSUFFICIENT_BALANCE | INSUFFICIENT_BALANCE | Kode yang sama. |
| ORDER_NOT_FOUND, STATUS_ORDER_NOT_FOUND, REFUND_ORDER_NOT_FOUND, REFILL_ORDER_NOT_FOUND | ORDER_NOT_FOUND | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| ORDER_ALREADY_COMPLETED, ORDER_ALREADY_REFUNDED | ORDER_FINISHED | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| ORDER_NOT_CANCELLABLE | CANCEL_NOT_AVAILABLE, ORDER_FINISHED | Satu kode sebelumnya menjadi beberapa, masing-masing lebih spesifik. |
| TOO_MANY_ORDERS, TOO_MANY_REFILLS | TOO_MANY_IDS | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| INACTIVE_ACCOUNT, ACCOUNT_NOT_FOUND, ACCOUNT_ERROR | INACTIVE_ACCOUNT, EMAIL_UNVERIFIED | Satu kode sebelumnya menjadi beberapa, masing-masing lebih spesifik. |
| API_RATE_LIMITED, IP_RATE_LIMITED, CANCEL_RATE_LIMITED | API_RATE_LIMITED | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| REFILL_STATUS_INELIGIBLE | REFILL_NOT_COMPLETED, REFILL_NOT_AVAILABLE | Satu kode sebelumnya menjadi beberapa, masing-masing lebih spesifik. |
| REFILL_SERVICE_NOT_REFILLABLE, REFILL_REQUEST_FAILED | REFILL_NOT_AVAILABLE | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| REFILL_ALREADY_PENDING | REFILL_ALREADY_PENDING | Kode yang sama. |
| REFILL_WAITING_PERIOD | REFILL_COOLDOWN | Beberapa kode sebelumnya menjadi satu. Baca details untuk rinciannya. |
| REFILL_NOT_FOUND | REFILL_NOT_FOUND | Kode yang sama. |
| INVALID_WEBHOOK_URL | INVALID_WEBHOOK_URL | Kode yang sama. |
| WEBHOOK_LIMIT | WEBHOOK_LIMIT | Kode yang sama. |
| WEBHOOK_NOT_FOUND | WEBHOOK_NOT_FOUND | Kode yang sama. |
| REQUEST_PROCESSING, REQUEST_OUTCOME_UNKNOWN, REQUEST_OUTCOME_NOT_RECORDED, REQUEST_UNCONFIRMED, REQUEST_RESULT_UNAVAILABLE, CONFLICTING_REQUEST_RECORDS | – | Tidak terjadi lagi. API tidak pernah menunggu sistem lain, dan masalah di kemudian hari tiba sebagai order Canceled dengan kode alasan. |
Webhook
Dua nama event berubah. Body batch sudah hilang: setiap panggilan kini membawa satu event dalam amplop dengan id, type, schema_version, created_at, sequence, dan data, dan endpoint milik akun, bukan kunci.
| Sebelumnya | Sekarang |
|---|---|
| order.refunded | order.canceled |
| order.refill_completed | refill.completed |