ویب ہوک نفاذ گائیڈ

ایک HTTPS URL رجسٹر کریں اور ریئل ٹائم، HMAC-سائنڈ ایونٹ پشز وصول کریں جب سمارٹ منی سگنلز فائر ہوں — کوئی پولنگ نہیں۔ یہ گائیڈ رجسٹریشن، ایونٹ فلٹرنگ، دستخط تصدیق، اور دوبارہ کوشش کے رویے کا احاطہ کرتی ہے۔

جائزہ

پولنگ کرنے کے بجائے /v1/confirm یا سگنل فیڈ، ایک ویب ہوک رجسٹر کریں اور Smart Money API آپ کے اینڈ پوائنٹ پر ایک ایونٹ POST کرے گا جیسے ہی ایک مماثل سگنل فائر ہوتا ہے۔ ہر ڈیلیوری HMAC-SHA256 کے ساتھ سائنڈ ہوتی ہے تاکہ آپ تصدیق کر سکیں کہ یہ واقعی ہماری طرف سے ہے۔

آؤٹ باؤنڈ ویب ہوکس دستیاب ہیں Pro اور Enterprise پلانز پر۔

ویب ہوک رجسٹر کریں

POST کریں /v1/webhooks پر اپنی API کلید کے ساتھ X-API-Key ہیڈر میں۔ باڈی کو چار فیلڈز کی ضرورت ہے:

فیلڈٹائپتفصیل
urlstringایونٹس وصول کرنے کے لیے HTTPS اینڈ پوائنٹ (شروع ہونا ضروری ہے https://)
eventsarrayوہ ایونٹ نام جو وصول کرنے ہیں، مثلاً ["HIGH","MEDIUM","VETO"] یا ["*"]
symbolsarrayفلٹر کرنے کے لیے علامات، مثلاً ["BTC","ETH"] یا ["*"]
secretstringآپ کا سائننگ سیکرٹ — کم از کم 16 حروف۔ ہیشڈ اسٹور کیا گیا؛ دستخطوں کی تصدیق کے لیے خام ویلیو اپنے پاس رکھیں۔
cURL
curl -X POST https://api.smartmoneyapi.com/v1/webhooks \ -H "X-API-Key: sm_your_key" \ -H "Content-Type: application/json" \ -d '{ "url": "https://yourapp.com/webhooks/smartmoney", "events": ["HIGH", "MEDIUM"], "symbols": ["BTC", "ETH"], "secret": "a-long-random-secret-16-plus-chars" }'
201 Created
{ "webhook_id": 42, "url": "https://yourapp.com/webhooks/smartmoney", "events": ["HIGH", "MEDIUM"], "symbols": ["BTC", "ETH"], "message": "Webhook registered. Test with POST /v1/webhooks/test" }

ایونٹ فلٹرز

ڈیلیوریز ان ایونٹس کے لیے فائر ہوتی ہیں جن کا نام اور علامت آپ کی رجسٹریشن سے مماثل ہو۔ عام ایونٹ نامز تصدیقی اعتماد کی بالٹیاں ہیں — HIGH, MEDIUM, VETO — کے علاوہ جنرک SIGNAL ایونٹس۔ استعمال کریں ["*"] تمام ایونٹس یا تمام علامات وصول کرنے کے لیے۔

ڈیلیوری اور ہیڈرز

ہر ڈیلیوری ایک HTTP POST ہوتی ہے جس میں JSON باڈی اور یہ ہیڈرز ہوتے ہیں:

ہیڈرویلیو
X-SmartMoney-Eventایونٹ کا نام (مثلاً HIGH)
X-SmartMoney-Signatureدرخواست کی باڈی کا HMAC-SHA256 ہیکس ڈائجسٹ (نیچے دیکھیں)
Content-Typeapplication/json
User-AgentSmartMoneyAPI-Webhook/1.0
مثال پے لوڈ
{ "event": "HIGH", "ts": "2026-07-01T18:22:05Z", "symbol": "BTC", "direction": "long", "confidence": "HIGH", "composite": 0.74, "webhook_id": 42 }

کسی بھی کے ساتھ جواب دیں 2xx اسٹیٹس کو تسلیم کرنے کے لیے۔ غیر-2xx (یا ٹائم آؤٹ) دوبارہ کوشش کو متحرک کرتا ہے۔

دستخطوں کی تصدیق

میں دستخط X-SmartMoney-Signature درخواست کی باڈی کا ایک HMAC-SHA256 ہیکس ڈائجسٹ ہے۔ HMAC کلید آپ کے رجسٹرڈ سیکرٹ کا SHA-256 ہیکس ڈائجسٹ ہے (آپ کا خام سیکرٹ ہماری طرف سے صرف ہیشڈ اسٹور ہوتا ہے)۔ تصدیق کے لیے: کلید اخذ کریں، خام باڈی کو HMAC کریں، اور ایک مستقل وقت کی چیک کے ساتھ موازنہ کریں۔ کوئی بھی درخواست مسترد کریں جو ناکام ہو۔

پائتھون (Flask ریسیور)
import hashlib, hmac from flask import Flask, request, abort app = Flask(__name__) MY_SECRET = "a-long-random-secret-16-plus-chars" # the value you registered @app.post("/webhooks/smartmoney") def receive(): raw = request.get_data() # exact bytes of the body sig = request.headers.get("X-SmartMoney-Signature", "") key = hashlib.sha256(MY_SECRET.encode()).hexdigest() # HMAC key = sha256(secret) hex expected = hmac.new(key.encode(), raw, hashlib.sha256).hexdigest() if not hmac.compare_digest(expected, sig): abort(401) event = request.get_json() # ... act on event["event"], event["symbol"], event["composite"] ... return "", 200
Node.js (Express ریسیور)
import crypto from "crypto"; import express from "express"; const app = express(); const MY_SECRET = "a-long-random-secret-16-plus-chars"; // Capture the raw body so the signature check uses the exact bytes. app.post("/webhooks/smartmoney", express.raw({ type: "*/*" }), (req, res) => { const sig = req.get("X-SmartMoney-Signature") || ""; const key = crypto.createHash("sha256").update(MY_SECRET).digest("hex"); const expected = crypto.createHmac("sha256", key).update(req.body).digest("hex"); const ok = expected.length === sig.length && crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(sig)); if (!ok) return res.status(401).end(); const event = JSON.parse(req.body.toString()); // ... act on event ... res.status(200).end(); });
کے خلاف تصدیق کریں خام، غیر پارسڈ درخواست کی باڈی — پارسڈ JSON کو دوبارہ سیریلائز کرنے سے بائٹ آرڈر یا سپیسنگ تبدیل ہو سکتی ہے اور چیک کو توڑ سکتی ہے۔

دوبارہ کوششیں

اگر آپ کا اینڈ پوائنٹ واپس نہیں کرتا 2xx (یا ٹائم آؤٹ ہو جاتا ہے — ڈیلیوری ٹائم آؤٹ 10s ہے)، Smart Money API 3 بار تک ایکسپونینشل بیک آف کے ساتھ دوبارہ کوشش کرتا ہے (تقریباً 1s, 4s, پھر 16s)۔ اپنے ہینڈلر کو ایڈیمپوٹینٹ بنائیں تاکہ دوبارہ ڈیلیورڈ ایونٹ کو دو بار پروسیس کرنا محفوظ ہو۔

ان باؤنڈ ویب ہوکس (TradingView)

الگ سے، آپ ہمیں ایک ان باؤنڈ الرٹ بھیج سکتے ہیں۔ POST /v1/tradingview/webhook ایک TradingView الرٹ وصول کرتا ہے، اسے چلاتا ہے /confirm، اور تصدیق واپس کرتا ہے۔ چونکہ TradingView کسٹم ہیڈرز نہیں بھیج سکتا، یہ JSON باڈی میں ایک secret فیلڈ کے ذریعے تصدیق کرتا ہے (نہ کہ X-API-Key)۔ بھیجیں secret, symbol، اور direction (long/short)؛ اختیاری طور پر timeframe, strategy، اور price.

ریئل ٹائم سگنلز کو جوڑنے کے لیے تیار ہیں؟

اپنی API کلید حاصل کریں
مفت شروع کریں — 100 کالز/دن، کوئی کارڈ نہیں

ایک API سے 3 ایکسچینجز پر لائیو وہیل فلو، فنڈنگ، اوپن انٹرسٹ اور آن چین ڈیٹا حاصل کریں۔ مفت ٹیئر، کوئی کریڈٹ کارڈ نہیں، کسی بھی وقت اپ گریڈ کریں۔

مفت شروع کریں →
لائیو API کنسول آزمائیں → (اکاؤنٹ کی ضرورت نہیں)
30 سیکنڈز میں اپنی API کلید حاصل کریں

بنانے کے لیے تیار ہیں؟ ایک مفت API کلید حاصل کریں (100 کالز/دن، کوئی کارڈ نہیں) اور لائیو وہیل، فنڈنگ اور آن چین ڈیٹا کھینچنا شروع کریں۔

اپنی API کلید حاصل کریں →