SMMFor

Yönetim API'si

Manuel hizmetleri, ödemeleri, kullanıcıları ve destek taleplerini kendi yazılımınızdan yönetin; v1 (PerfectPanel uyumlu) ve v2 (REST).

Anahtarlar

Admin → Yönetim API'si sayfasından yalnızca panel sahibi anahtar oluşturabilir.

  • Oluşturmak 2FA kodu (yoksa admin şifresi) ister. Anahtar (nxa_ + 48 karakter) bir kez gösterilir.
  • En fazla 20 etkin anahtar; her anahtara bir ad ve en az bir yetki verilir.
  • Silinen anahtar hemen geçersiz olur. Son kullanım ve istek sayısı listede görünür.
  • Alt panellerde yönetim API'si yoktur.
YetkiNeye izin verir
orders.view, orders.manageSiparişleri görme / güncelleme, manuel sipariş çekme, telafi ve iptal görevleri
users.view, users.manage, users.balanceKullanıcıları görme / düzenleme / bakiye değiştirme
payments.view, payments.manageÖdemeleri görme / ödeme ekleme
services.view, services.manage, providers.manageHizmetler ve sağlayıcılar
tickets.view, tickets.replyDestek talepleri
dashboard.view, reports.view, content.manage, coupons.manage, settings.manage, audit.viewDiğer alanlar

Hız sınırı: IP başına ve anahtar başına dakikada 600 istek.

v1 — PerfectPanel uyumlu

POST https://paneliniz.com/adminapi/v1, anahtar key alanında ya da X-Api-Key başlığında. Başarı: {"status":"success", ...}; hata: {"status":"fail","error":"<kod>"}. Geçersiz anahtar veya eksik yetki bad_auth, bilinmeyen işlem bad_action döner.

Manuel sipariş işleme

İşlemParametrelerAçıklama
getordertype (manuel hizmet ID)En eski bekleyen siparişi alır, "işleniyor" yapar: {id, link, quantity, charge, user_id, comments}
getorderstypeAynısı, en fazla 100 sipariş: {orders:[…]}
updateordersorders = JSON dizi [{id, status, start_count, remains}] (en fazla 100)Toplu güncelleme
setinprogressid, isteğe bağlı start_count
setprocessing, setcompletedid
setstartcountid, start_count
setpartial, setremainsid, remains
setcanceledidİptal eder ve iade yapar

updateorders durum değerleri: pending, in progress, processing, completed, partial, canceled.

curl -X POST https://paneliniz.com/adminapi/v1 -d key=nxa_xxx -d action=getorder -d type=42
curl -X POST https://paneliniz.com/adminapi/v1 -d key=nxa_xxx -d action=setcompleted -d id=1001

Telafi ve iptal görevleri

İşlemParametrelerYanıt
getrefillisteğe bağlı service_id{id, refill, order_id, service_id, link, start_count, current_count, quantity}
setrefillcompleted, setrefillrejected, setrefillinprogressrefill
getcancelisteğe bağlı service_id{cancel, order_id, service_id, link}
setcancelrejectedcancel

Ödeme ve destek

İşlemParametrelerAçıklama
addpaymentusername (e-posta) veya id, amount (0–1.000.000), detailsÖdenmiş yükleme oluşturur ve bakiyeyi artırır (users.balance)
addticketusername, subject (≤200), message (≤5000)Müşteriye destek talebi açar (tickets.reply)

v2 — REST / JSON

Temel adres https://paneliniz.com/adminapi/v2, anahtar yalnızca X-Api-Key başlığında. Başarı {"data": …}, hata {"error":{"code","message"}}. Listelerde ?limit= (1–500, varsayılan 50) ve ?offset=.

Yöntem ve yolYetkiAçıklama
GET /ordersorders.view?status=in_progress, ?service_id=
GET /orders/:idorders.viewTek sipariş
POST /orders/pullorders.manage{service_id, limit} → manuel siparişleri çeker
PATCH /orders/:idorders.manage{status?, start_count?, remains?}
POST /orders/:id/cancelorders.manageİptal ve iade
GET /refills, POST /refills/pull, PATCH /refills/:idorders.*Telafi görevleri; PATCH {status: completed|rejected|in_progress}
GET /cancels, POST /cancels/pull, POST /cancels/:id/rejectorders.*İptal görevleri
GET /usersusers.view?email= içerir araması
GET /users/:idusers.viewID ya da e-posta
POST /users/:id/balanceusers.balance{amount}; eksi değer bakiyeden düşer
GET /paymentspayments.view?status=
POST /paymentspayments.manage + users.balance{user, amount, details}
GET /ticketstickets.view?status=
POST /ticketstickets.reply{user, subject, message}
POST /tickets/:id/replytickets.reply{message}
GET /servicesservices.view{id, name, type, cost, min, max, active, manual, provider}

Sipariş nesnesi: {id, status, service:{id,name}, user:{id,email}, link, quantity, charge, cost, refunded, start_count, remains, provider_order_id, source, created_at, completed_at}.

curl https://paneliniz.com/adminapi/v2/orders?status=pending -H "X-Api-Key: nxa_xxx"

curl -X PATCH https://paneliniz.com/adminapi/v2/orders/1001 \
  -H "X-Api-Key: nxa_xxx" -H "Content-Type: application/json" \
  -d '{"status":"completed","start_count":1200}'

Hata kodları: 401 unauthorized, 403 forbidden ("This key needs the … permission"), 404 not_found, 400 (ör. bad_json), 429 rate_limited, 500 internal_error.