API.SHAHPANEL
زیرساخت حرفهای سفارشهای عمده برای سایتها، رباتها و پنلهای خدمات مجازی
Version 2.0.1
Operational
Standard SMM API
REST API
Zibal Wallet
HMAC Webhooks
API سازگار با پنلها
https://api.shahpanel.com/api/v2REST API
https://api.shahpanel.com/v1محیط آزمایشی
https://api.shahpanel.com/sandbox/api/v2موجودی، سفارشها، پرداختها و تراکنشهای API از ربات عمومی شاه پنل کاملاً جدا هستند.
⚡ اتصال Perfect Panel / Smart Panel و پنلهای استاندارد
در تنظیمات Provider پنل خود، فقط URL و API Key را وارد کنید:
API URL: https://api.shahpanel.com/api/v2 API Key: sp_live_xxxxxxxxxxxxxxxxx
فرمت API استاندارد از اکشنهای services، add، status و balance پشتیبانی میکند.
API Key را از ربات یا Dashboard بسازید. متن کامل کلید فقط یکبار نمایش داده میشود.
🔐 احراز هویت و امنیت
Standard API
key=sp_live_xxxxxxxxx
REST API
Authorization: Bearer sp_live_xxxxxxxxx
- کلیدها بهصورت Hash ذخیره میشوند.
- میتوانید دسترسی را فقط به IPهای مشخص محدود کنید.
- Rate Limit پیشفرض هر حساب در ربات و Dashboard نمایش داده میشود.
- برای ثبت سفارش REST از
Idempotency-Keyیکتا استفاده کنید.
📦 شناسه و جدول کامل سرویسها
شناسه ستون اول همان مقداری است که باید در پارامتر service ارسال شود. نرخ نمایشدادهشده قیمت عمومی هر ۱٬۰۰۰ واحد به تومان است؛ قیمت حساب نماینده میتواند بر اساس سطح یا تخفیف اختصاصی متفاوت باشد.
103 سرویس فعال
| ID | نام سرویس | دسته | نرخ (تومان / ۱۰۰۰) | حداقل | حداکثر | نوع ورودی | لغو |
|---|---|---|---|---|---|---|---|
| #1 | ممبر فیک سرور 1 | ممبر فیک | 40,000 | 1,000 | 100,000 | لینک یا یوزرنیم کانال | بله |
| #6 | ممبر کانال ایرانی | ممبر کانال | 100,000 | 500 | 25,000 | لینک یا یوزرنیم کانال | خیر |
| #7 | ممبر گروه ایرانی | ممبر گروه | 110,000 | 500 | 25,000 | لینک یا یوزرنیم کانال | خیر |
| #41 | 👍🔥 میکس مثبت | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #33 | ⭐ ۵۰ استارز فوری | ⭐ استارز تلگرام | 2,787,830 | 50 | 50 | یوزرنیم تلگرام | خیر |
| #15 | 🌐 بازدید انگلیسی تک پست | 🌐 بازدید انگلیسی | 427 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #9 | 🇮🇷 بازدید ایرانی تک پست | 🇮🇷 بازدید فارسی | 427 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #24 | ممبر هیدن کانال | زیر ۱۰۰ کا | ممبر کانال | 100,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #21 | 🕶 ممبر هیدن گروه | سرور جدید | ممبر گروه | 100,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #42 | 👎💔 میکس منفی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #34 | ⭐ ۱۰۰ استارز فوری | ⭐ استارز تلگرام | 2,787,830 | 100 | 100 | یوزرنیم تلگرام | خیر |
| #16 | 🌐 بازدید انگلیسی ۵ پست | 🌐 بازدید انگلیسی | 2,149 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #10 | 🇮🇷 بازدید ایرانی ۵ پست | 🇮🇷 بازدید فارسی | 2,159 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #25 | ممبر هیدن کانال | ۱۰۰ تا ۲۰۰ کا | ممبر کانال | 110,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #43 | 👍 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #35 | ⭐ ۵۰۰ استارز فوری | ⭐ استارز تلگرام | 2,787,830 | 500 | 500 | یوزرنیم تلگرام | خیر |
| #17 | 🌐 بازدید انگلیسی ۱۰ پست | 🌐 بازدید انگلیسی | 4,313 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #11 | 🇮🇷 بازدید ایرانی ۱۰ پست | 🇮🇷 بازدید فارسی | 4,318 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #26 | ممبر هیدن کانال | ۲۰۰ تا ۳۰۰ کا | ممبر کانال | 120,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #22 | 💣 ممبر ادلیست | سرور بمب | ممبر گروه | 180,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #44 | 👎 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #36 | ✨ سفارش استارز با مقدار دلخواه | ⭐ استارز تلگرام | 2,787,830 | 100 | 5,000 | یوزرنیم تلگرام | خیر |
| #18 | 🌐 بازدید انگلیسی ۲۰ پست | 🌐 بازدید انگلیسی | 8,151 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #12 | 🇮🇷 بازدید ایرانی ۲۰ پست | 🇮🇷 بازدید فارسی | 8,307 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #27 | ممبر هیدن کانال | ۳۰۰ تا ۴۰۰ کا | ممبر کانال | 130,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #23 | 💎 ممبر ادلیست | کیفیت بالا | ممبر گروه | 200,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #45 | ❤ ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #19 | 🌐 بازدید انگلیسی ۳۰ پست | 🌐 بازدید انگلیسی | 12,316 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #13 | 🇮🇷 بازدید ایرانی ۳۰ پست | 🇮🇷 بازدید فارسی | 13,280 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #28 | ممبر هیدن کانال | ۴۰۰ تا ۵۰۰ کا | ممبر کانال | 140,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #46 | 🔥 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #20 | 🌐 بازدید انگلیسی ۵۰ پست | 🌐 بازدید انگلیسی | 29,814 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #14 | 🇮🇷 بازدید ایرانی ۵۰ پست | 🇮🇷 بازدید فارسی | 23,226 | 500 | 50,000 | لینک مستقیم پست تلگرام | خیر |
| #29 | ممبر هیدن کانال | بالای ۵۰۰ کا | ممبر کانال | 180,000 | 1,000 | 50,000 | لینک یا یوزرنیم کانال | خیر |
| #47 | 🥰 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #48 | 👏 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #49 | 😁 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #50 | 🤔 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #51 | 🤯 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #52 | 😱 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #53 | 🤬 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #54 | 😢 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #55 | 🎉 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #56 | 🤩 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #57 | 🤮 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #58 | 💩 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #59 | 🙏 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #60 | 👌 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #61 | 🕊 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #62 | 🤡 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #63 | 🥱 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #64 | 🥴 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #65 | 😍 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #66 | 🐳 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #67 | ❤🔥 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #68 | 🌚 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #69 | 🌭 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #70 | 💯 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #71 | 🤣 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #72 | ⚡ ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #73 | 🍌 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #74 | 🏆 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #75 | 💔 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #76 | 🤨 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #77 | 😐 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #78 | 🍓 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #79 | 🍾 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #80 | 💋 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #81 | 🖕 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #82 | 😈 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #83 | 😴 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #84 | 😭 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #85 | 🤓 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #86 | 👻 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #87 | 👨💻 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #88 | 👀 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #89 | 🎃 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #90 | 🙈 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #91 | 😇 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #92 | 😨 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #93 | 🤝 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #94 | ✍ ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #95 | 🤗 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #96 | 🫡 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #97 | 🎅 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #98 | 🎄 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #99 | ☃ ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #100 | 💅 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #101 | 🤪 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #102 | 🗿 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #103 | 🆒 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #104 | 💘 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #105 | 🙉 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #106 | 🦄 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #107 | 😘 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #108 | 💊 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #109 | 🙊 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #110 | 😎 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #111 | 👾 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #112 | 🤷♂ ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #113 | 🤷 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #114 | 🤷♀ ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
| #115 | 😡 ریاکشن تکی | 🎭 ریاکشن تلگرام | 328 | 1 | 4,000 | لینک مستقیم پست تلگرام | خیر |
🚀 ثبت سفارش
Standard API
POST/api/v2
curl -X POST "https://api.shahpanel.com/api/v2" \ -d "key=YOUR_API_KEY" \ -d "action=add" \ -d "service=SERVICE_ID" \ -d "link=TARGET" \ -d "quantity=QUANTITY" \ -d "client_order_id=YOUR_UNIQUE_ID"
پاسخ:
{
"order": 1570,
"status": "In progress",
"charge": "12500.00",
"currency": "TOMAN"
}
REST API
POST/v1/orders
curl -X POST "https://api.shahpanel.com/v1/orders" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: site-order-10001" \
-d '{
"service": 1,
"target": "https://t.me/channelname",
"quantity": 100,
"client_order_id": "site-order-10001"
}'<?php
$payload = [
'service' => 1,
'target' => 'https://t.me/channelname',
'quantity' => 100,
'client_order_id' => 'site-order-10001',
];
$ch = curl_init('https://api.shahpanel.com/v1/orders');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
'Idempotency-Key: site-order-10001',
],
CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;import requests
response = requests.post(
"https://api.shahpanel.com/v1/orders",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Idempotency-Key": "site-order-10001",
},
json={
"service": 1,
"target": "https://t.me/channelname",
"quantity": 100,
"client_order_id": "site-order-10001",
},
timeout=30,
)
print(response.json())const response = await fetch("https://api.shahpanel.com/v1/orders", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
"Idempotency-Key": "site-order-10001"
},
body: JSON.stringify({
service: 1,
target: "https://t.me/channelname",
quantity: 100,
client_order_id: "site-order-10001"
})
});
console.log(await response.json());برای جلوگیری قطعی از سفارش تکراری، در هر سفارش یک
client_order_id و Idempotency-Key یکتا ارسال کنید. ارسال مجدد همان مقدار، همان سفارش قبلی را برمیگرداند.🔄 دریافت وضعیت سفارش
Standard API
curl -X POST "https://api.shahpanel.com/api/v2" \ -d "key=YOUR_API_KEY" \ -d "action=status" \ -d "order=ORDER_ID"
دریافت گروهی حداکثر ۱۰۰ سفارش:
curl -X POST "https://api.shahpanel.com/api/v2" \ -d "key=YOUR_API_KEY" \ -d "action=status" \ -d "orders=1001,1002,1003"
REST API
GET/v1/orders/{id}
curl "https://api.shahpanel.com/v1/orders/1570" \ -H "Authorization: Bearer YOUR_API_KEY"
POST/v1/orders/status
{
"orders": [1570, 1571, 1572]
}
💰 دریافت موجودی
Standard API
curl -X POST "https://api.shahpanel.com/api/v2" \ -d "key=YOUR_API_KEY" \ -d "action=balance"
REST API
curl "https://api.shahpanel.com/v1/balance" \ -H "Authorization: Bearer YOUR_API_KEY"
واحد مالی API.SHAHPANEL تومان است. شارژ کیف پول فقط با درگاه ریالی زیبال انجام میشود.
⚙️ مسیرهای REST API
| Method | Endpoint | کاربرد |
|---|---|---|
| GET | /v1/health | سلامت عمومی API |
| GET | /v1/catalog | کاتالوگ عمومی |
| GET | /v1/account | مشخصات حساب نماینده |
| GET | /v1/balance | موجودی کیف پول |
| GET | /v1/categories | دستهبندیها |
| GET | /v1/services | سرویسها با قیمت اختصاصی حساب |
| GET | /v1/services/{id} | جزئیات سرویس |
| POST | /v1/orders | ثبت سفارش |
| GET | /v1/orders | فهرست سفارشها |
| GET | /v1/orders/{id} | جزئیات سفارش |
| POST | /v1/orders/status | وضعیت گروهی |
| GET | /v1/transactions | تراکنشهای کیف پول |
| GET | /v1/webhook | مشاهده Webhook |
| PUT | /v1/webhook | ثبت یا تغییر Webhook |
| DELETE | /v1/webhook | غیرفعالکردن Webhook |
| POST | /v1/webhook/test | ارسال رویداد آزمایشی |
🌐 Webhook و امضای HMAC
وقتی وضعیت سفارش تغییر کند، رویدادهای زیر به URL شما ارسال میشوند:
order.completedorder.partialorder.canceledorder.failedهدرهای امنیتی:
X-ShahPanel-Event: order.completed X-ShahPanel-Delivery: 1250 X-ShahPanel-Timestamp: 1782180000 X-ShahPanel-Signature: sha256=...
فرمول امضا:
hash_hmac('sha256', TIMESTAMP + '.' + RAW_BODY, WEBHOOK_SECRET)
تأیید امضا در PHP
<?php
$body = file_get_contents('php://input');
$timestamp = $_SERVER['HTTP_X_SHAHPANEL_TIMESTAMP'] ?? '';
$received = $_SERVER['HTTP_X_SHAHPANEL_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac(
'sha256',
$timestamp . '.' . $body,
'YOUR_WEBHOOK_SECRET'
);
if (!hash_equals($expected, $received)) {
http_response_code(401);
exit('Invalid signature');
}
$event = json_decode($body, true);
http_response_code(200);
echo 'OK';
اگر Endpoint شما پاسخ 2xx ندهد، ارسال با زمانبندی ۱ دقیقه، ۵ دقیقه، ۱۵ دقیقه، ۱ ساعت و ۶ ساعت تکرار میشود.
🧪 محیط آزمایشی Sandbox
Sandbox هیچ موجودی واقعی کم نمیکند و سفارشی به Provider ارسال نمیشود. سفارش آزمایشی پس از حدود ۲۰ ثانیه به Completed تغییر میکند.
curl -X POST "https://api.shahpanel.com/sandbox/api/v2" \ -d "key=YOUR_API_KEY" \ -d "action=add" \ -d "service=SERVICE_ID" \ -d "link=TARGET" \ -d "quantity=QUANTITY"
📌 وضعیتها و خطاها
Pending
در صف ثبت
در صف ثبت
In progress
در حال انجام
در حال انجام
Completed
تکمیل کامل
تکمیل کامل
Partial
تکمیل ناقص و Refund
تکمیل ناقص و Refund
Canceled
لغو و بازگشت وجه
لغو و بازگشت وجه
needs_review
نیازمند بررسی فنی
نیازمند بررسی فنی
HTTP Statusهای REST
| کد | معنی |
|---|---|
| 200 | موفق |
| 202 | پذیرفتهشده و در صف |
| 400 | درخواست نامعتبر |
| 401 | کلید یا IP نامعتبر |
| 402 | موجودی ناکافی |
| 404 | یافت نشد |
| 422 | خطای اعتبارسنجی سرویس، تعداد یا لینک |
| 429 | Rate Limit یا سقف روزانه |
| 500 | خطای داخلی همراه Request ID |
در خطاهای 500، مقدار
X-Request-ID را برای پشتیبانی ارسال کنید. این شناسه برای پیدا کردن لاگ دقیق درخواست استفاده میشود.