Webhook Implementation Guide

ஒரு HTTPS URL ஐ பதிவு செய்து, ஸ்மார்ட்-மணி சிக்னல்கள் தூண்டப்படும் போது உண்மையான நேர, HMAC-கையொப்பமிடப்பட்ட நிகழ்வு புஷ்களைப் பெறுங்கள் — பாலிங் இல்லை. இந்த வழிகாட்டி பதிவு, நிகழ்வு வடிகட்டுதல், கையொப்பம் சரிபார்ப்பு மற்றும் மீண்டும் முயற்சி நடத்தையை உள்ளடக்கியது.

Overview

பாலிங் செய்வதற்கு பதிலாக /v1/confirm அல்லது சிக்னல் ஃபீட், ஒரு வெப்ஹூக்கை பதிவு செய்து, ஸ்மார்ட் மணி API உங்கள் முனையத்திற்கு ஒரு நிகழ்வை POST செய்யும் போது ஒரு பொருந்தக்கூடிய சிக்னல் தூண்டப்படும். ஒவ்வொரு டெலிவரியும் HMAC-SHA256 உடன் கையொப்பமிடப்பட்டுள்ளது, எனவே அது உண்மையில் எங்களிடமிருந்து வந்தது என்பதை நீங்கள் சரிபார்க்கலாம்.

வெளிச்செல்லும் வெப்ஹூக்கள் கிடைக்கின்றன Pro மற்றும் எண்டர்பிரைஸ் திட்டங்களில்.

Register a Webhook

POST செய்யுங்கள் /v1/webhooks உங்கள் API விசையுடன் X-API-Key தலைப்பு. உடல் நான்கு புலங்கள் தேவை:

FieldTypeDescription
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" }

Event Filters

உங்கள் பதிவுடன் பொருந்தக்கூடிய நிகழ்வு பெயர் மற்றும் சின்னத்திற்கான டெலிவரிகள் தூண்டப்படுகின்றன. பொதுவான நிகழ்வு பெயர்கள் உறுதிப்படுத்தல் நம்பிக்கை வாளிகள் — HIGH, MEDIUM, VETO — மற்றும் பொதுவான SIGNAL நிகழ்வுகள். பயன்படுத்தவும் ["*"] அனைத்து நிகழ்வுகளையும் அல்லது அனைத்து சின்னங்களையும் பெற.

Delivery & Headers

ஒவ்வொரு டெலிவரியும் ஒரு HTTP POST ஒரு JSON உடல் மற்றும் இந்த தலைப்புகளுடன்:

HeaderValue
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 நிலையை ஒப்புக்கொள்ளுங்கள். Non-2xx (அல்லது டைம்அவுட்) மீண்டும் முயற்சியைத் தூண்டும்.

Verifying Signatures

கையொப்பம் X-SmartMoney-Signature கோரிக்கை உடலின் HMAC-SHA256 ஹெக்ஸ் டைஜெஸ்ட் ஆகும். HMAC விசை என்பது நீங்கள் பதிவு செய்த ரகசியத்தின் SHA-256 ஹெக்ஸ் டைஜெஸ்ட் ஆகும் (உங்கள் மூல ரகசியம் எப்போதும் எங்கள் பக்கத்தில் ஹாஷ் செய்யப்பட்டு சேமிக்கப்படுகிறது). சரிபார்க்க: விசையைப் பெறுங்கள், மூல உடலை HMAC செய்யுங்கள், மற்றும் ஒரு நிலையான நேர சரிபார்ப்புடன் ஒப்பிடுங்கள். தோல்வியடைந்த எந்த கோரிக்கையையும் நிராகரிக்கவும்.

Python (Flask receiver)
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 receiver)
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(); });
Verify against the மூல, பாகுபடுத்தப்படாத கோரிக்கை உடல் — பாகுபடுத்தப்பட்ட JSON ஐ மீண்டும் தொடர்புபடுத்துவது பைட் வரிசை அல்லது இடைவெளியை மாற்றலாம் மற்றும் சரிபார்ப்பை உடைக்கலாம்.

Retries

உங்கள் முனையம் ஒரு பதிலைத் தரவில்லை என்றால் 2xx (அல்லது டைம்அவுட் — டெலிவரி டைம்அவுட் 10 வினாடிகள்), ஸ்மார்ட் மணி API அதிவேக பேக்அஃப் (தோராயமாக 1 வினாடி, 4 வினாடிகள், பின்னர் 16 வினாடிகள்) உடன் 3 முறை வரை மீண்டும் முயற்சிக்கிறது. உங்கள் ஹேண்ட்லரை ஐடெம்போடென்ட் ஆக மாற்றவும், அதனால் மீண்டும் வழங்கப்பட்ட நிகழ்வை இரண்டு முறை செயல்படுத்துவது பாதுகாப்பானது.

Inbound Webhooks (TradingView)

தனித்தனியாக, நீங்கள் ஒரு அனுப்பலாம் உள்வரும் எங்களுக்கு எச்சரிக்கை. POST /v1/tradingview/webhook ஒரு TradingView எச்சரிக்கையைப் பெறுகிறது, அதை இயக்குகிறது /confirm, மற்றும் உறுதிப்படுத்தலைத் தருகிறது. TradingView தனிப்பயன் தலைப்புகளை அனுப்ப முடியாது என்பதால், அது ஒரு மூலம் அங்கீகரிக்கப்படுகிறது secret JSON உடலில் உள்ள புலம் (இல்லை X-API-Key). அனுப்பவும் secret, symbol, மற்றும் direction (long/short); விருப்பமாக timeframe, strategy, மற்றும் price.

Ready to wire up real-time signals?

Get your API key
Start free — 200 calls/day, no card

Get live whale flow, funding, open interest and on-chain data across 3 exchanges from one API. Free tier, no credit card, upgrade any time.

Start free →
Try the live API console → (no account needed)
Get your API key in 30 seconds

Ready to build? Grab a free API key (200 calls/day, no card) and start pulling live whale, funding and on-chain data.

Get your API key →