Updated Apr 10, 2026

Signal authentication

Lock your webhook with a secret so only your alerts reach your accounts.

Why authenticate?

TransisTrade webhook URLs are unguessable, but long-lived. If an alert payload leaks — for example in a shared TradingView strategy — anyone could replay trades into your account. A secret key closes that gap.

Always authenticate live accounts
Paper accounts can skip this during testing, but any connection running in Live mode should require a secret.

The secret key

Every TransisTrade workspace has a secret key that looks like:

tt_sk_live_c7a02c4b9f91a84f7d12

Find it under Bridge → Modifier → Signal authentication. It's revealed once, copyable from the UI, and can be rotated in one click.

Including it in alerts

Add a secret field to your TradingView alert payload:

json
{
  "secret": "tt_sk_live_c7a02c4b9f91a84f7d12",
  "symbol": "{{ticker}}",
  "side": "{{strategy.order.action}}",
  "qty": {{strategy.position_size}}
}

Any payload missing the secret, or with a mismatched secret, is rejected at the edge and never reaches your broker. Rejections appear in Bridge → Logs with status Rejected.

Rotating your secret

Rotate whenever you suspect exposure or on a scheduled cadence (quarterly is a healthy default). Rotation requires updating every TradingView alert that uses TransisTrade.

  1. In the portal, open Bridge → Modifier.
  2. Click Rotate. The old key stays valid for a 10-minute grace window.
  3. Update your TradingView alert payloads with the new key before the grace window expires.

Advanced: HMAC signing

For programmatic sources (your own strategy runners, CI pipelines, bots), TransisTrade also accepts HMAC-signed requests using the header:

bash
X-Transis-Signature: t=<unix>,v1=<hmac_sha256(body, secret)>

The signature must be computed over the raw request body and the signing timestamp. Requests with a timestamp older than five minutes are rejected as stale.

Troubleshooting

SymptomLikely cause
All signals rejected after rotationTradingView alert still uses the old secret
Intermittent rejectsMixed alerts — some pointing to old vs new secret
invalid_signature on HMACSigning over a pretty-printed body instead of raw bytes