StackTrading Docs

Email Template Registry — Stack Trading

Project: Stack Trading Date Created: 2026-07-26 Author/Agent: Antigravity (Agent 3 — Architect) Version: v2.8

Channel classification:

  • AWS SES — Transactional emails. Contain credentials, security tokens, or time-sensitive operational data. Deployed by SotaTek.
  • Klaviyo — Marketing & lifecycle emails. Middleware emits webhook payload → Klaviyo manages delivery timing, layout, and copy. Out of SotaTek scope.

Changelog

DateVersionUpdated itemBeforeAfterNotes
2026-10-27v2.7 → v2.8SES-27 → SES-44, SES-28 → SES-45 renumber (heading, anchor, Email ID, Trigger template)RTrader_Setup_NonPro = SES-27, RTrader_Setup_Pro = SES-28 — both IDs collided with email_content_request.md (SES-27 Defense_Protocol_Recharged, SES-28 Address_Correction_Request); UC_9.17 links #ses-44 / #ses-45 were brokenRTrader_Setup_NonPro = SES-44, RTrader_Setup_Pro = SES-45Aligned to UC_9.17
2026-10-27v2.6 → v2.7SES-28 Trigger — Live account_statusaccount_status IN ('Active_Lx_DMA', ...)account_status = 'Active_DMA' (current_level >= 1)Client confirmed 2026-09-14 — account_status is a flat enum; level is held in current_level (UC_5.8 BR_5.8.9)
2026-09-10v2.5 → v2.6KLA-05 (Coupon_Expiring_Soon) — variable renameTiming: Discount_Code_Duration_Days.Timing: Post_Failure_Retention_Days.Pure rename, no logic change. Mirrors UC_4.10.2 BR_4.10.2.3. Ops-editable rename, per technical team recommendation (BA session, 2026-09-10).
2026-09-08v2.4 → v2.5SES-30 — khối PODNote ghi khối POD MENTORSHIP STATUS chỉ render khi trader có pod_leader_id, trader không thuộc pod nào thì ẩn cả khối (assumption A-12 của BA).Giữ nguyên copy hiện tại, render cho mọi trader, không rẽ nhánh theo pod_leader_id.BA chốt 2026-09-08: "cứ giữ y nguyên như mail hiện tại vẫn được". ⚠️ Hệ quả: trader không thuộc Pod nào vẫn đọc được câu "your active Pod Mentorship seat has been released to the waitlist" — BA đã cân nhắc và chấp nhận.
2026-09-08v2.3 → v2.4SES-30 — gỡ CTABody có nút [Reactivate Market Data] trỏ tới biến reactivation_url; khối POD kết thúc bằng câu "click the link below to instantly reactivate your data feeds" + note về việc click sẽ khôi phục feed ngay.Gỡ hoàn toàn CTA và biến reactivation_url. Khối POD chỉ còn thông báo ghế Pod đã nhả; thêm khối HOW TO RESUME chỉ trader vào Settings → Market Data Management bấm Resubscribe trên từng feed. Email thuần thông báo, không còn hành động gộp.Chỉ đạo trực tiếp của BA 2026-09-08 — một CTA duy nhất buộc phải gộp nhiều feed ở nhiều trạng thái thanh toán khác nhau, đẻ ra quá nhiều nhánh. Đóng luôn 2 mục Open Items của UC_4.17.1 (CTA gộp khi tổng $0; nhãn CTA lệch với nút dashboard).
2026-09-08v2.2 → v2.3SES-16, SES-17, SES-30, SES-31 — điểm đến của CTAKhông entry nào ghi CTA dẫn về màn nào. SES-31 ghi checkout_link trỏ về "trang Checkout chuẩn" pre-config product_id = MARKET_DATA. SES-30 ghi reactivation_url là bulk toggle miễn phí rồi đưa trader về tab.SES-16 [Update Payment Method →] → Market Data Management tab (không mở modal) — vì chỉ link Change trên billing bar mới có nhóm APM; link Change trong modal Subscribe chỉ mở Change Payment Card (thẻ NMI). SES-17 / SES-30 / SES-31 → mở modal Subscribe to Market Data pre-fill feed đăng ký gần nhất + phương thức thanh toán gần nhất. SES-30 vẫn là hành động gộp, nhưng tính tiền hay không quyết định theo từng feed bằng market_data_paid_until.Chỉ đạo trực tiếp của BA 2026-09-08. Ref UC_4.17.1 BR_4.17.1.26 (mới). ⏳ Còn mở: modal hiển thị gì khi mọi feed pre-fill đều miễn phí (tổng $0) — UC_4.17.1 §10 mục 11.
2026-07-26v1.0Initial document—Full SES + Klaviyo registryCR-20260726-001 applied
2026-07-28v1.1SES-21, SES-22 (removed)Marked ⚠️ Superseded by CR-20260727-003; kept for history only.Removed entirely — client confirmed Blacklist/Duplicate cases are hard-blocked pre-payment at Step 5 onBlur; Zapier Flow 1 no longer has a refund/reject path to dispatch these emails.Confirmed no remaining references before deletion.
2026-07-28v1.2SES-23 TriggerNo CR reference — dangling citation in UC_2.7-2.8_v1.md §Step 3 Exception.Added Ref: CR-20260728-004 to Trigger field.Fix dangling citation found during audit.
2026-07-29v1.3Klaviyo Events scope noteBlanket statement: all events out of SotaTek scope, middleware/Zapier-routed.Added trigger-mechanism exception: KLA-02 and KLA-22 fire via direct frontend-to-Klaviyo API call (no middleware/Zapier); all other events unchanged.Client clarification, 2026-07-29 (Waitlist/Newsletter direct dual-call architecture)
2026-07-30v1.4SES-01, SES-02 Discord command copyDiscord /link [Generated UUID] command embedded inline in a sentence.Command isolated into its own copyable code block (```/link [discord_link_token]```); surrounding sentence kept as plain text guidance. Placeholder renamed to [discord_link_token] to match actual field (Zapier Flow 1 Step 6 — Zapier Integration V7.pdf §Flow 1).Client comment, 2026-07-30: full command + value should be in a codebox so it's copy-pasteable and works as-is.
2026-07-30v1.5SES-02 Futures/Forex layout; SES-01 & SES-02 Discord copy wordingFutures/Forex sections styled as plain italic inline labels; Discord instruction said "paste this command exactly as shown".Futures/Forex sections given distinct bold header labels (🔷/🔶 markers) for clearer visual separation in the rendered email; Discord instruction reworded to explicitly state "copy the command below and paste it directly into the channel".Client comment, 2026-07-30: make Futures vs. Forex distinction clearer via text size/bolding/layout; Discord block should indicate copy-paste directly into Discord to link account.
2026-08-14v1.6SES-04, SES-07, SES-08, SES-16, SES-17 (full templates); SES-24, SES-25 (new); SES-26 removedSES-04/07/08/16/17 had "Full Email: Pending". SES-24/25 did not exist. SES-26 was added in error.SES-04: Full template with kyc_link + dots_onboarding_link per Flow 3A. SES-07/08: KYC retry/final-fail templates. SES-16/17: Market data payment failure / feeds disabled. SES-24: KYC manual reset (Flow 3.1). SES-25: Market Data Setup login link (Flow 3D, Futures only). SES-26 removed — Flow 3F Option B payment is completed on dashboard; no email sent.Stage 3 SES template completion pass. STAGE3-042 applied.
2026-08-16v1.7SES-14 (full template); Trigger field correctedTrigger: "International trader's Dots payout profile suspended / action required". Recipient: "Affected international trader". Full Email: Pending.Two variants: Variant A (tax form rejected — STAGE3-082, new flow_link) + Variant B (account suspended — STAGE3-038, payout_portal_url). Trigger expanded to cover both trigger paths. Recipient corrected to all traders (not international only — BR_5.4.8 applies all asset classes).
2026-08-22v1.8SES-07 Trigger; SES-07 Required content block 1Trigger: "RESUBMISSION_REQUESTED (document unclear / expired / partial). Also fired when a prior session expires or is abandoned…" — incorrectly listed expired as a document-quality reason inside RESUBMISSION_REQUESTED, and described expired/abandoned as a secondary note. Content block 1: "Explanation that the previous verification attempt requires resubmission" — not accurate for expired/abandoned path.Trigger: clearly separates RESUBMISSION_REQUESTED (document unclear / partial) from expired (Code 9104) / abandoned as independent Veriff webhook statuses, with auto-renewal logic from CR-20260812-002 cited. Content block 1: covers both resubmission and session-expired/abandoned paths.CR-20260812-002 applied — expired/abandoned are independent Veriff webhook statuses, not subcategories of RESUBMISSION_REQUESTED.
2026-08-22v1.8 → v1.9SES-26 (new)—Live_Onboarding_Credentials — Flow 3H Go Live credentials email. Two variants: Futures (R|Trader Pro download + CMR signing note); Forex (MT5/TraderEvolution). credentials_claimed_at initialized to NULL at provisioning.STAGE3-060 / H-12 confirmed 2026-08-15. Renamed from Live_Onboarding_Level_1. Triggered after POST /provisioning/live-trader Step 4 DB write succeeds (BR_5.8.12).
2026-10-16v2.xSES-29: Required content block 5 (new); email body — "Ensure Accuracy of Manually Entered Information" note addedRequired content blocks: 4 items, no mention of phone rejection re-entry. Email body "Important Compliance Notes" had only "Do Not Alter Pre-filled Information" + "Sequential Validation".Added required content block 5: warning that Dots re-entry link on phone rejection has no prefill — trader enters all information from scratch. Added "Ensure Accuracy of Manually Entered Information" note to email body.BA confirmed 2026-10-16 — aligns with UC_5.2 v2.5 BR_5.2.13.
2026-10-15v2.xSES-26 → SES-43 renumberSES-26SES-43 — client confirmed correct ID 2026-10-15.
2026-09-04v2.1 → v2.2SES-31 (new)Không có entry nào cho email invoice thủ công của Path A. Urgent_Data_Payment_Required (SES-16) bị dùng lẫn cho cả nhánh nhắc prepay EOM−7 lẫn nhánh charge lỗi EOM−3.SES-31 (mới): Invoice_APM_email — Flow 22 Path A, trigger EOM−7, CTA [Pay Invoice] → checkout_link. Body nêu song song hệ quả 2 tier trong một template thay vì tách variant. Tách bạch vai trò: SES-31 = nhắc trader APM tự trả (EOM−7); SES-16 = báo charge thẻ thất bại (EOM−3, Path B).Copy chốt do BA cung cấp 2026-09-04. Làm rõ ranh giới mà [MDM-BIZ-18] để lẫn.
2026-09-04v2.0 → v2.1SES-16, SES-17 (full templates confirmed); SES-30 (new)SES-16 và SES-17 để "Full Email (Assumption — exact copy pending client marketing team)" với copy placeholder do BA tự đặt; SES-16 chỉ có 1 bản, không rẽ nhánh theo tier; không có entry nào cho Zombie_Account_Pause.SES-16: copy chốt, tách 2 variant theo market_data_billable — Variant A (LIVE Level 1–2, mất toàn bộ feed kể cả CME) và Variant B (LIVE Level 3+, chỉ mất add-on). Bỏ mọi câu hứa grace period / retry. SES-17: copy chốt. SES-30 (mới): Zombie_Account_Pause — Flow 12, kèm khối POD MENTORSHIP STATUS và CTA reactivation_url. Cả 3 bổ sung field From = support@stacktrading.com.Copy chốt do BA cung cấp 2026-09-04. Khớp [MDM-BIZ-18] (email bắt buộc rẽ nhánh theo tier) và [MDM-ZAPF-06] (không retry hằng ngày). ⚠️ SES-17 dùng một template chung cho cả 2 tier — xem khối 📌 ở mục SES-17 bên dưới. (Con trỏ cũ tới UC_4.17.1 §10 mục 15 đã hỏng: mục đó bị gỡ khi Open Items rút từ 18 xuống 10 ở bản v2.)
2026-08-26v1.9 → v2.0SES-04: template key, trigger, content — Dots split out; SES-29 (new)SES-04: template Live_Onboarding_Level_1; trigger included Dots onboarding link simultaneously; email body had both kyc_link + dots_onboarding_link in one emailSES-04 renamed to Live_Onboarding_Compliance_Initiation; Veriff kyc_link only — Dots deferred to SES-29. SES-29 (new): Dots_Payout_Setup — dispatched from Flow 3B (UC_5.2) after Veriff APPROVED with flow_link from POST /v2/flows.Client confirmed 2026-08-26. BR_5.1.2 + UC_5.1 Step 4 already correct. Email split now reflected in SES registry.

AWS SES Emails

SES-01 — Welcome (Pre-Provisioning)

CR-20260726-001: Splits original Welcome_Sim_Challenge (Zapier V7 Step 8) into 3 emails. This is Email 1 — sent immediately after payment, before provisioning completes.

FieldValue
Email IDSES-01
Template KeyWelcome_Sim_Challenge_Part1
TriggerImmediately after POST /execute-checkout returns HTTP 200 (pre-provisioning)
RecipientNew trader — email from PII capture (Step 5)
UC ReferenceUC_2.8.2 §2

Required content blocks (confirmed — client, 2026-07-26):

  1. General welcome messaging and marketing assets
  2. Expectation-setting notice: provisioning is underway
  3. Links to community content and insights
  4. Discord Onboarding block: invite link + /link [UUID] command instruction for #verify channel

Full Email (Assumption — exact copy pending client marketing team):


Subject: Welcome to Stack Trading — Your Account is Being Set Up

Header: Welcome to the Trading Floor, [First Name].

Body:

You're in. Your payment was successful and we're now securely building your trading account in the background. This typically takes just a few minutes — we'll email you the moment your credentials are ready.

While you wait:

[Community insights link] | [Market analysis link] | [Blog / resources link]


Join Our Discord

Get connected to your fellow traders right now. Join our official Discord server: [Discord Invite URL]

Once inside, go to the #verify channel, then copy the command below and paste it directly into the channel to link your account:

/link [discord_link_token]

This will instantly unlock your Associate Trader role and private trading floor channels — even before your platform account is fully ready.


Footer: Stack Trading | support@stacktrading.com


SES-02 — Claim Account (Post-Provisioning)

CR-20260726-001: This is Email 2 — sent after SIM provisioning completes. Contains platform credentials and the single-use claim link.

FieldValue
Email IDSES-02
Template KeyWelcome_Sim_Challenge
TriggerAfter POST /provision-sim-user completes and returns platform_username + platform_password_ciphertext
RecipientSame trader
UC ReferenceUC_2.8.2 §2; UC_2.8.3

Required content blocks (confirmed — Zapier Integration V7 §Flow 1 Step 8):

  1. platform_username displayed in plaintext (password never included)
  2. Single-use "Claim Your Account" link (48 h JWT) — requires email verification, forces Dashboard + MFA enrollment
  3. Platform-specific connection guide:
    • Futures: R|Trader Pro download link + mandatory activation instructions
    • Futures (platform-specific): Connection guide for chosen platform (TradeSea / Quantower / ATAS / Motivewave / Sierra Chart / TradingView)
    • Forex: MT5 or TraderEvolution connection guide
  4. Discord Onboarding block (same as SES-01)

Security: platform_password_ciphertext must NEVER appear in this email.

Full Email (Assumption — exact copy pending client marketing team):


Subject: Your Stack Trading Account is Ready — Claim It Now

Header: Your Trading Platform is Ready.

Body:

Your Stack Trading SIM account has been provisioned. Use the details below to get started.

Your Platform Username: [platform_username]

[Claim Your Account →] (single-use link, valid 48 hours)

Clicking the link above will prompt you to verify your email, enroll in MFA, and securely access your trading credentials from the dashboard.


Connect Your Platform

🔷 FUTURES TRADERS — Mandatory Step You must download R|Trader Pro and log in using your provided credentials to activate your CME data feeds and digitally sign your exchange agreements. Your data feed will remain disabled until you complete this authentication. Your chosen platform will have market data upon completion of this step.

[Download R|Trader Pro] | [Platform connection guide for: TradeSea / Quantower / ATAS / Motivewave / Sierra Chart / TradingView]

🔶 FOREX TRADERS [MT5 connection guide] | [TraderEvolution connection guide]


Join Our Discord

Already joined? Go to the #verify channel, then copy the command below and paste it directly into the channel to unlock your private trading floor channels:

/link [discord_link_token]

Not yet? Join here: [Discord Invite URL]


Footer: Stack Trading | support@stacktrading.com


CR-20260726-001: Email 3 — dispatched on demand when user's claim link has expired.

FieldValue
Email IDSES-03
Template KeyWelcome_Sim_Challenge_Resend
TriggerUser clicks [Resend Activation Link] on expired claim screen → POST /public/resend-activation-link (public, no auth — Ref: CR-20260728-006) → new 48 h JWT generated. Distinct from the Admin-only POST /resend-welcome (via BPS), which also dispatches this same template when Ops triggers a resend.
RecipientSame trader (email on file)
UC ReferenceUC_2.8.3 §5 Exceptional Flow

Required content: Same structure as SES-02 with a fresh single-use claim link.

Full Email (Assumption — exact copy pending client marketing team):


Subject: Your New Stack Trading Activation Link

Header: Here's your new account activation link.

Body:

Your previous link expired. We've generated a fresh one for you below — it's valid for 48 hours.

Your Platform Username: [platform_username]

[Claim Your Account →] (single-use link, valid 48 hours)

If you continue to experience issues, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


SES-04 — Live Onboarding (Veriff KYC Initiation)

FieldValue
Email IDSES-04
Template KeyLive_Onboarding_Compliance_Initiation
TriggerFlow 3A (Branch A — New Trader): Veriff session generated successfully (POST /v1/sessions returns HTTP 200). Dispatched after Veriff session creation succeeds. Dots payout setup link is NOT included here — it is sent separately in SES-29 (Dots Payout Setup) from Flow 3B after Veriff APPROVED.
RecipientTrader who passed SIM challenge and requires full onboarding (New Trader branch)
UC ReferenceUC_5.1 §5 Step 4

Template name history: renamed from Live_Onboarding_Level_1 to Live_Onboarding_Compliance_Initiation (STAGE3-060 / 2026-08-15) to avoid collision with Live_Onboarding_Credentials email at Flow 3H.

Required content blocks:

  1. kyc_link — Veriff hosted verification URL (applies to all traders, all asset classes post-STAGE3-037)
  2. Clear instruction to complete identity verification — this is the only action required from this email
  3. Expectation-setting: trader will receive a second email to set up their payout profile once identity verification is complete

Note: dots_onboarding_link / flow_link is NOT included in this email. Dots payout setup link is dispatched in SES-29 (template: Dots_Payout_Setup) from Flow 3B (UC_5.2) after Veriff returns APPROVED. (Source: UC_5.1 BR_5.1.2; STAGE3-050 / STAGE3-060; client confirmed 2026-08-26)

Full Email (Client-confirmed — 2026-10-15):


Subject: Welcome to Level [Insert Level]. Identity Verification Required.

Body:

Congratulations on passing the Associate Track entrance exam. You have proven you can execute.

You are no longer in a simulation. Your next step is trading live capital. If you are transitioning from a perpetual demo firm, understand that the psychology of real money changes today. Manage your risk accordingly.

To activate your live Level 1 account, you must complete your identity verification.


Step 1: Identity Verification

Verify your identity through our secure KYC portal. This typically takes 2 to 5 minutes with a government-issued ID.

[Start Identity Verification →] (link: kyc_link)

Once your identity is verified, we will send you a second email with a link to complete your payout profile setup. Both steps are required before your live account can be activated and funded.

If you have any questions, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com

[Insert Level] in the subject is a dynamic variable — resolved 2026-10-15. Zapier variable name TBD (e.g., {{trader_level}} or {{current_level}}); dev to confirm exact token at implementation.


SES-05 — Restricted Region Notice

FieldValue
Email IDSES-05
Template KeyRestricted_Region_Notice
TriggerPost-payment restricted region check match (Zapier fail-safe). Issued simultaneously with automated refund (or, for payment_method = CRYPTO, simultaneously with the ledger log + Freshdesk compliance ticket — Ref: CR-20260727-004, since crypto refunds cannot be automated).
RecipientTrader whose billing country matched Compliance_geo_restrictions
UC ReferenceUC_2.8.2 §2

Required content: Immediate refund notice — inform user their payment has been refunded due to regional restrictions. For crypto, wording must reflect manual treasury desk restitution rather than an automated refund (Ref: CR-20260727-004).

Full Email: Pending


SES-23 — SIM Provisioning Failure (Ops Alert)

FieldValue
Email IDSES-23
Template KeySIM_Provisioning_Failed
TriggerFlow 1 Step 3 Exception — fired on two paths: (1) POST /provision-sim-user fails after 3 retry attempts (initial + 5 s + 30 s) → "Manual" escalation path (step 5); (2) "Zapier Call Failure" — call did not complete, HALT immediately (step 4). Both paths: Ops is alerted via Freshdesk ticket; this email notifies the user that provisioning is delayed. (Ref: CR-20260728-004)
RecipientTrader whose SIM account provisioning failed
UC ReferenceUC_2.8.2 §2

Required content: Inform user their payment was successful but account setup is delayed. Assure them Ops has been alerted and will email their access link shortly.

Full Email: To be determined


SES-48 — Platform License Provisioning Failed (Escalated to Ops)

FieldValue
Email IDSES-48
Template KeyPlatform_License_Provisioning_Failed
TriggerATAS/MotiveWave B2B license API call (CHR-130) fails after 3 retry attempts, during Checkout provisioning. Unlike SES-23, this does NOT halt provisioning — Rithmic account is kept and the user proceeds to login normally; only the platform-specific license is affected. Fired to the trader at the same time as the Ops Slack alert (Ref: common_rules.md §19.4, QnA confirmed Adam Culver 2026-10-15)
RecipientTrader whose platform_selection is ATAS or MotiveWave and whose license call failed
UC ReferenceUC_2.7-2.8 (CHR-130)

Required content: Inform the user that checkout and account setup otherwise completed successfully — their Rithmic credentials are ready and they can log in normally — but there was an issue generating their [platform_selection] charting license specifically. Reassure them this has been escalated to Operations and they'll receive a follow-up email once their platform license is ready.

Full Email:

Subject: Action Needed on Your [platform_selection] License — Our Team Is On It

Header: We Hit a Snag Setting Up Your [platform_selection] License, [First Name].

Body:

We weren't able to automatically generate your [platform_selection] charting license during setup.

Our Operations team has already been notified and is setting up your [platform_selection] license manually. You'll receive a follow-up email with your license details as soon as it's ready.

No further action is needed on your end right now.

If you have any questions in the meantime, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


SES-06 — Security Reset Complete

| Field | Value |

| ---------------- | -------------------------------------------------------------- | | Email ID | SES-06 | | Template Key | Security_Reset_Complete | | Trigger | User completes 2FA token reset / platform credential rotation | | Recipient | Trader requesting security reset |

Required content: Confirmation that platform 2FA tokens have been invalidated and reset.

Full Email: Pending


SES-07 — Identity Verification Retry

FieldValue
Email IDSES-07
Template KeyIdentity_Verification_Retry
TriggerFlow 3B: Veriff webhook returns RESUBMISSION_REQUESTED (document unclear / partial), OR Veriff webhook status expired (Code 9104) / abandoned received — auto-renewal triggered (CR-20260812-002). Attempt counter: veriff_attempts < 3.
RecipientTrader with pending KYC whose session requires resubmission
UC ReferenceUC_5.2 §5 Step 3B

Required content blocks (per Zapier V7 §Flow 3B):

  1. Explanation that the previous verification attempt requires resubmission (RESUBMISSION_REQUESTED) or that the Veriff session expired / was abandoned without completion (expired/abandoned webhook)
  2. Remaining attempt count: [3 - veriff_attempts] attempt(s) remaining
  3. kyc_link — fresh Veriff session URL for resubmission
  4. Guidance on what to improve (clearer documents, better lighting)

Full Email (Client-confirmed — 2026-10-15):


Subject: Your Identity Verification Needs Attention, [First Name].

Header: Your Identity Verification Needs Attention, [First Name].

Body:

Our identity verification partner was unable to process your submitted documents. This can happen when images are blurry, partially cropped, or expired.

You have [3 - veriff_attempts] attempt(s) remaining.

Tips for a successful resubmission:

  • Ensure your document is fully visible and not cropped
  • Use good lighting and avoid glare or shadows
  • Make sure the document is valid and not expired
  • Submit a government-issued ID (passport, national ID, or driver's license)

[Retry Identity Verification →] (link: kyc_link)

If you believe this is an error, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


SES-08 — Identity Verification Failed (Final)

FieldValue
Email IDSES-08
Template KeyIdentity_Verification_Failed_Final
TriggerFlow 3B: Veriff returns DECLINED AND veriff_attempts = 3 (third failure — hard compliance block). veriff_failed_flag = TRUE set in Users table. No further retries permitted without Ops manual reset.
RecipientTrader who exhausted all 3 KYC attempts
UC ReferenceUC_5.2 §5 Step 3C; UC_5.4

Required content blocks (per Zapier V7 §Flow 3B):

  1. Clear notice that identity verification has failed after the maximum number of attempts
  2. Statement that the account cannot be activated at this time
  3. Contact instruction — trader must reach support to discuss options (manual Ops review path)
  4. No retry link (hard block — veriff_failed_flag = TRUE)

Full Email (Client-confirmed — 2026-10-15):


Subject: Action Required: Live Onboarding Paused - Identity Verification Unsuccessful

Header: We Were Unable to Verify Your Identity, [First Name].

Body:

Unfortunately, our automated compliance system was unable to verify your identity after three attempts.

Because identity verification is a strict regulatory requirement for Live Direct Market Access, your onboarding sequence has been paused and your account remains locked.

You do not need to contact support. Our system has automatically generated a secure escalation ticket for your profile. An analyst from our Operations Team will conduct a manual compliance review of your document submissions and reach out to you directly via this email address within 24 hours with your next steps.


Footer: Stack Trading | support@stacktrading.com


SES-09 — Compliance Review Required (Internal)

FieldValue
Email IDSES-09
Template KeyCompliance_Review_Required
TriggerBackground check flag or matching exception detected
RecipientInternal — Operations Desk only (not sent to trader)

Required content: Internal alert to operations desk with flag details for manual review.

Full Email: Pending


SES-10 — Drawdown Defense Activated

FieldValue
Email IDSES-10
Template KeyDrawdown_Defense_Activated_Initial
TriggerTrader hits Drawdown Defense threshold → 48-hour cooling-off lockout commences
RecipientAffected trader

Required content: Notification that the 48-hour mandatory cooling-off lockout has commenced. Include lockout end time.

Full Email: Pending


SES-11 — Drawdown Defense Ready

FieldValue
Email IDSES-11
Template KeyDrawdown_Defense_Ready
Trigger48-hour cooling-off window completes
RecipientAffected trader

Required content: Cooling-off window completion confirmation + updated risk parameters.

Full Email: Pending


SES-12 — Pod Founding Leader Welcome

FieldValue
Email IDSES-12
Template KeyPod_Founding_Leader_Welcome
TriggerFlow 1.5: Signwell webhook (Founding Pod Leader Agreement signed) — sent at Step 8, after the provisioning gate (UC_8.2.13)
RecipientNew Founding Pod Leader

Required content:

  1. 100% discount Amplify coupon code for Associate Track
  2. Google Workspace invitation link and onboarding instructions
  3. Mentor profile Typeform link
  4. (Only if Discord not linked — discord_user_id IS NULL) Discord invite URL + instruction to type /link [discord_link_token] in #verify (token from UC_8.2.13 Step 7.5; BA decision 2026-10-30)

Security: Workspace passwords must NOT be emailed. SSO/MFA enforced on first login.

Full Email: Pending


SES-13 — Level 6 International Contractor

FieldValue
Email IDSES-13
Template KeyLevel_6_International_Contractor
TriggerFlow 6 Path B (International): Trader reaches Level 6 AND Dots payout profile check returns payout_status = 'Active'. If Dots check fails/suspended instead, Dots_Profile_Action_Needed (SES-14) fires and this Zap HALTs — SES-13 is not sent until re-validated as Active.
RecipientInternational trader reaching Level 6 (remains a 1099/Dots contractor — no W-2 conversion)
SourceZapier Integration V7.pdf, Flow 6 "Level 6 Transition (W-2 vs. International)" — Path B (International); confirmed timing per QnA_Level_Promotion.md §B (Round Q&A) Q3/A3

Required content blocks:

  1. Congratulations on reaching Level 6, framed as remaining a contractor (not converting to W-2) with higher payout splits
  2. Explain "Base Income" is now paid as a monthly retainer (not hourly/salary like the W-2 track)
  3. Country-specific contractor documentation: link/attachment to the Independent Contractor Agreement for e-signature (per-country template)
  4. Instruction that the signed agreement must be uploaded/stored before the transition is complete

Note: Unlike SES-14, this template has only one variant — it fires solely on the International path after the Dots gate passes. There is no separate "US" variant of SES-13 (US path uses Level_6_Offer_Configurator + Rippling W2_Offer_Template instead, per Flow 6 Path A).

Full Email (Assumption — exact copy pending client marketing team):

Subject: Congratulations on Reaching Level 6 — Next Steps for Your Contractor Agreement

Header: Congrats on Level 6, [First Name].

Body:

As an International Trader, you remain a contractor but now earn higher payout splits. Your "Base Income" will be paid going forward as a monthly retainer.

To complete your transition, please review and sign your country-specific contractor documentation:

[Review & Sign Your Contractor Agreement →] (link: contractor_agreement_link)

Once signed, your agreement will be stored on file and your Level 6 international contractor status will be fully active.

If you have questions about this agreement, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


SES-14 — Dots Profile Action Needed

FieldValue
Email IDSES-14
Template KeyDots_Profile_Action_Needed
TriggerUC_5.4 — two paths dispatch this template: (1) Dots suspension webhook fires → payout_status = 'Suspended' (BR_5.4.8 / STAGE3-038); (2) W-9/W-8BEN tax form rejected by Dots Compliance (Kịch bản 1 / STAGE3-082) → new flow_link generated via POST /v2/flows.
RecipientAffected trader (US or international — all asset classes)
UC ReferenceUC_5.4 §7 Exceptional Flow · BR_5.4.8 · BR_5.4.9

Required content blocks:

  1. Clear statement: payout profile requires action before live trading can proceed
  2. Explain the specific issue (tax form rejection OR account suspension)
  3. CTA to resolve: Variant A — new flow_link to re-complete tax form; Variant B — link to Dots payout portal
  4. Warning that account activation (Flow 3D) is blocked until resolved

Non-blocking rule (BR_5.4.9): Email dispatch failure must NOT roll back the payout_status = 'Suspended' DB write. Both must execute independently.

Full Email (Assumption — exact copy pending client marketing team):

⚠️ Two variants — select based on trigger path:


Variant A — Tax form rejected (Kịch bản 1 / STAGE3-082)

Subject: Action Required: Your Payout Profile Needs to Be Resubmitted

Header: Your Payout Setup Needs Attention, [First Name].

Body:

Our payout partner was unable to process your tax form submission. This can happen when the information submitted does not match your verified identity documents.

To continue with your live account activation, you need to resubmit your payout profile using the link below:

[Complete Your Payout Profile →] (link: flow_link — new session generated)

Inside, you will be asked to:

  • Re-confirm your tax information (W-9 or W-8BEN)
  • Verify your payout routing details

Your live account cannot be activated until your payout profile is verified. This step is required by our payout partner for compliance purposes.

If you believe this was sent in error or need help completing the form, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


Variant B — Profile suspended / paused / failed (STAGE3-038)

Subject: Action Required: Your Payout Profile Has Been Suspended

Header: Your Payout Profile Requires Immediate Attention, [First Name].

Body:

Your payout profile has been flagged by our payout partner and is currently suspended. As a result, your live trading onboarding cannot proceed until this is resolved.

Common reasons for suspension include:

  • A tax form (W-9 / W-8BEN) that requires re-verification
  • A linked bank account that is no longer active or valid
  • A compliance flag raised by our payout partner

To review and resolve your payout profile, log in to the payout portal:

[Manage Your Payout Profile →] (link: payout_portal_url)

If you are unable to resolve the issue through the portal, contact support@stacktrading.com and reference your account. Our team will escalate to the payout partner on your behalf.

Your live account activation is paused until your payout profile status is restored to Active.


Footer: Stack Trading | support@stacktrading.com


SES-15 — Monthly Data Invoice Available

FieldValue
Email IDSES-15
Template KeyMonthly_Data_Invoice_Available
TriggerMonthly market data invoice generated for Futures traders with billable data
RecipientFutures traders with market_data_billable = TRUE

Required content: Notification that monthly market data statement is available in the dashboard, with link.

Full Email: Pending


SES-16 — Urgent Data Payment Required

FieldValue
Email IDSES-16
Template KeyUrgent_Data_Payment_Required
TriggerFlow 22 — lần charge định kỳ tại EOM−3 (Path B) thất bại, middleware đẩy event INVOICE_PAYMENT_FAILED. Payload bắt buộc có card_brand và card_last_4.
RecipientFutures trader (LIVE) có market data payment thất bại
Fromsupport@stacktrading.com
Variants2 bản, rẽ nhánh theo market_data_billable (tức theo Level). Variant A = LIVE Level 1–2. Variant B = LIVE Level 3+.
UC ReferenceUC_4.17.1 §6.10 / BR_4.17.1.20

Biến của template: [First Name] · [Billing Month] · [Amount] · [Card Brand] · [Last 4] · [Feed List] · [End of Month Date]

📌 [Feed List] chỉ liệt kê các feed sẽ bị tắt, không phải toàn bộ feed trong hoá đơn. Với Level 3+, base CME nằm trong hoá đơn nhưng không bị tắt nên không xuất hiện ở đây.

⚠️ Copy không được hứa retry hằng ngày. Hệ thống chỉ thử charge đúng 2 lần — EOM−3 và Day 0. Ref: BR_4.17.1.23. 📌 Trader trả bằng APM không có vault → [Card Brand] / [Last 4] là null → dùng nhánh fallback: "Your most recent payment via {APM_name} was unsuccessful." 🔗 CTA [Update Payment Method →] dẫn về Market Data Management tab (không mở modal nào). Lý do: trader bị decline thẻ có thể muốn chuyển hẳn sang APM, mà chỉ link Change trên billing bar của tab mới mở Change Payment Method có nhóm APM — link Change bên trong modal Subscribe chỉ mở Change Payment Card (thẻ NMI, không có APM). Ref: UC_4.17.1 BR_4.17.1.26.


Variant A — LIVE Level 1 hoặc Level 2

(trader tự trả 100% market data, gồm cả base CME)

Subject: Action required: update your card before [End of Month Date]

Hi [First Name],

We tried to charge your card on file for your [Billing Month] market data subscription, and the payment did not go through.

────────────────────────────────────   WHAT HAPPENED ──────────────────────────────────── • Payment failed: [Amount] for [Billing Month] • Card on file: [Card Brand] ending in [Last 4] • Feeds affected: [Feed List]

────────────────────────────────────   WHAT YOU NEED TO DO ──────────────────────────────────── Update your payment method before [End of Month Date].

  [Update Payment Method →]

If [Card Brand] ending in [Last 4] is expired or no longer valid, replace it with a working card. If it's still good, check with your bank that the charge isn't being blocked.

────────────────────────────────────   WHAT'S AT RISK ──────────────────────────────────── If that final attempt fails on [End of Month Date], your market data feeds will be switched off the same day. You can resubscribe later from Settings → Market Data, but your feeds will remain off until a payment clears. For assistance, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


Variant B — LIVE Level 3 trở lên

(firm cover base CME, trader chỉ trả add-on)

Subject: Action required: update your card before [End of Month Date]

Hi [First Name],

We tried to charge your card on file for your [Billing Month] market data subscription, and the payment did not go through.

────────────────────────────────────   WHAT HAPPENED ──────────────────────────────────── • Payment failed: [Amount] for [Billing Month] • Card on file: [Card Brand] ending in [Last 4] • Feeds affected: [Feed List]

────────────────────────────────────   WHAT YOU NEED TO DO ──────────────────────────────────── Update your payment method before [End of Month Date].

  [Update Payment Method →]

If [Card Brand] ending in [Last 4] is expired or no longer valid, replace it with a working card. If it's still good, check with your bank that the charge isn't being blocked.

────────────────────────────────────   WHAT'S AT RISK ──────────────────────────────────── If that final attempt fails on [End of Month Date], your premium exchange feeds will be switched off the same day. Your base CME feed will remain active as it is covered by the firm. You can resubscribe to your premium feeds later from Settings → Market Data, but they will remain off until a payment clears. For assistance, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


SES-17 — Data Feed Downgraded

FieldValue
Email IDSES-17
Template KeyData_Feed_Downgraded
TriggerFlow 22 — End of Month Hard Check ngày cuối tháng: Market_Data_Billable == True AND Last_Data_Payment_Status == Failed → broker API tắt feed. Gửi kèm dashboard notification severity CRITICAL.
RecipientFutures trader (LIVE) vừa bị tắt feed
Fromsupport@stacktrading.com
UC ReferenceUC_4.17.1 §6.10 / BR_4.17.1.20

Biến của template: [First Name] · [Disabled Feeds list]

🔗 CTA [Re-Subscribe to Market Data →] mở thẳng modal Subscribe to Market Data, pre-fill sẵn các feed trader đăng ký gần nhất + phương thức thanh toán gần nhất. Ref: UC_4.17.1 BR_4.17.1.26. 📌 Một template dùng chung cho cả 2 tier — KHÔNG tách variant. Email này chỉ báo feed nào vừa bị tắt và hướng dẫn resubscribe. Trader LIVE Level 1–2 bị tắt cả base CME thì chính họ hiểu là phải mua lại mới trade được, nên không cần copy riêng. Khác SES-16 (2 variant) vì SES-16 phải giải thích hệ quả sẽ xảy ra, còn SES-17 chỉ báo việc đã xảy ra.

Subject: Your additional market data feeds have been disabled

Hi [First Name],

Your card was still declined by the end of the month, so we've turned off your additional exchange feeds to keep your account in good standing.

────────────────────────────────────   WHAT'S CHANGED ──────────────────────────────────── ⏸ Disabled as of today: • [Disabled Feeds list]

────────────────────────────────────   HOW TO RESUBSCRIBE ──────────────────────────────────── You can restore your premium feeds at any time. Simply log into your dashboard, navigate to Market Data Management, and select the feeds you need. Once your payment clears, your feeds will be re-enabled instantly.

  [Re-Subscribe to Market Data →]

────────────────────────────────────   WHY THIS HAPPENED ──────────────────────────────────── This was an automated routine aligned with CME market data billing. If you no longer need the additional feeds, you can leave them disabled and continue trading with your base CME feed.

────────────────────────────────────

Footer: Stack Trading | support@stacktrading.com


SES-18 — News Liquidation Alert

FieldValue
Email IDSES-18
Template KeyNews_Liquidation_Alert
TriggerAutomated position flattening triggered during high-impact economic event
RecipientAffected trader

Required content: Urgent notice detailing automated position flattening due to high-impact economic event. Include event name and timestamp.

Full Email: Pending


SES-19 — Overnight Auto-Liquidation Alert

FieldValue
Email IDSES-19
Template KeyOvernight_Auto_Liquidation_Alert
TriggerAutomated margin flatten executed 30 seconds prior to exchange lockout
RecipientAffected trader

Required content: Automated margin flatten notice 30 seconds prior to exchange lockout. Include position details and next steps.

Full Email: Pending


SES-20 — Live Account Closed

FieldValue
Email IDSES-20
Template KeyLive_Account_Closed
TriggerTrader capital depleted or contract resigned → account permanently terminated
RecipientTerminated trader

Required content: Final account termination notice. Include reason (capital depletion or resignation) and next steps (e.g. retry offer).

Full Email: Pending



SES-24 — Identity Verification Manual Reset

FieldValue
Email IDSES-24
Template KeyIdentity_Verification_Manual_Reset
TriggerFlow 3.1: BPS Ops admin triggers POST /api/bps/kyc/reset for a trader. veriff_failed_flag cleared, veriff_attempts = 0, new Veriff session created. Distinct from POST /resend-welcome (Flow 41) which must NOT be used for KYC reset.
RecipientTrader whose KYC has been manually reset by Ops
UC ReferenceUC_5.1 §5 AC-5.1-10; UC_5.3

Required content blocks (per UC_5.1 AC-5.1-10 and Zapier V7 §Flow 3.1):

  1. Notification that the identity verification process has been reset by the operations team
  2. Fresh kyc_link — new Veriff session URL
  3. Confirmation that the attempt counter has been reset (trader has full 3 attempts again)
  4. Instruction to complete verification at their earliest opportunity

Security: This email is Ops-triggered only. The BPS admin endpoint (POST /api/bps/kyc/reset) is authenticated and audited. A Slack alert is also sent to the Ops channel upon reset.

Full Email (Assumption — exact copy pending client marketing team):


Subject: Your Identity Verification Has Been Reset

Header: Ready to Try Again, [First Name].

Body:

Our operations team has reviewed your account and reset your identity verification. You now have a fresh start — your attempt count has been reset to zero.

Please complete your identity verification using the secure link below:

[Start Identity Verification →] (link: kyc_link)

If you have any difficulty completing verification, contact support@stacktrading.com and reference your account.


Footer: Stack Trading | support@stacktrading.com


SES-25 — Market Data Setup (Level 1 Setup Form)

FieldValue
Email IDSES-25
Template KeyLevel_1_Setup_Form
TriggerFlow 3D: All aggregation gates pass for a Futures trader (identity verified + payout approved + Rippling ICA signed) → account_status set to first active level → Market Data Setup login link generated and dispatched. Applies to Futures traders only (Forex traders follow a different activation path).
RecipientFutures trader who has completed all Level 1 onboarding steps
UC ReferenceUC_5.5; UC_5.8

Required content blocks (per Zapier V7 §Flow 3D):

  1. Congratulations — all onboarding steps completed
  2. Market Data Setup login link (single-use or time-limited) to configure exchange data subscriptions
  3. Instruction: must complete Market Data Setup before live trading begins
  4. Reference to the R|Trader Pro step (required for CME data feed activation — already covered in SES-02, but brief reminder here)

Full Email (Client-confirmed — 2026-10-15):


Subject: Final Step: Complete Your Market Data Setup

Header: Almost There, [First Name] — One Last Step.

Body:

You've completed all the core onboarding requirements. There's one final step before you can start live trading: configure your market data subscriptions.

[Access Market Data Setup →] (link: market_data_setup_login_link)

Inside, you'll select your exchange data packages. Your selections will determine which markets you can trade and the associated monthly data fees.


Please note that as a Level 1 and Level 2 provisional trader, you are responsible for paying these market data feed fees. Once you successfully advance to Level 3, Stack Trading will fully reimburse your Base CME fees and cover that specific base cost going forward. Premium feeds (NYMEX, COMEX, CBOT) are always the responsibility of the trader at all levels.


Reminder: If you haven't already, download R|Trader Pro and log in with your credentials to sign your CME market data agreements.

Once setup is complete, your live account will be fully activated.

For assistance, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


SES-26 — Market Data Payment Link REMOVED (2026-08-14) Flow 3F Option B payment is completed entirely on the dashboard (frontend calls Calculate Cart + Execute Checkout endpoints inline). No payment link is emailed. (Source: QnA STAGE3-042 confirmed 2026-08-12) SES-26 re-assigned 2026-08-22, then renumbered to SES-43 (client confirmed 2026-10-15) — see entry below.


SES-43 — Go Live Credentials

FieldValue
Email IDSES-43 (renumbered from SES-26 — client confirmed 2026-10-15)
Template KeyLive_Onboarding_Credentials
TriggerFlow 3H Step 5 — fired immediately after POST /provisioning/live-trader Step 4 DB write succeeds (account_status → live, credentials stored). Not sent if Step 4 fails (BR_5.8.12).
RecipientTrader whose live DMA account was just provisioned
UC ReferenceUC_5.8 §5 Step 5

Template name history: renamed from Live_Onboarding_Level_1 per H-12 / STAGE3-060, confirmed 2026-08-15.

Required content blocks (per UC_5.8 BR_5.8.12–14 + screen spec):

  1. Congratulations — live account has been provisioned
  2. platform_username — trader's login handle
  3. CTA button → Dashboard Connections page (app.stacktrading.com/settings/connections) — trader retrieves password via GET /platform-credentials after Auth0 OTP login; password is displayed once on UI only (platform_password_ciphertext — never emailed, BR_5.8.14)
  4. connection_guide_url — link to PDF or Notion setup guide for the platform
  5. (Futures only) R|Trader Pro download link + note that CME subscriber agreements must be signed on first login before data feeds are unlocked
  6. (Forex only) platform name (platform_selection: MT5 or TraderEvolution); trader retrieves server/connection details from Dashboard
  7. Support contact

credentials_claimed_at initialized to NULL at provisioning; set on first GET /platform-credentials call (first Dashboard view). Zapier checks credentials_claimed_at IS NULL before allowing automated credential resend to prevent abuse on active live accounts.

Full Email — 🔷 Futures variant (Client-confirmed — 2026-10-15):


Subject: Live Account Provisioned: Futures DMA

Body:

[First_Name],

Your Stack Trading live Direct Market Access (DMA) account is provisioned.

For security purposes, platform passwords and license keys are never transmitted via email. Log in to your dashboard to retrieve your encrypted connection details.

[Dashboard Screenshot Placeholder]

Action Required: Market Data Activation

To activate your market data feeds, you must sign your CME exchange agreements. You can do this via:

  • Web portal (Mac & Windows): [CME Agreement Portal link]
  • R|Trader Pro app (Windows only): download and sign on first login

Your market data feeds will remain locked until agreements are signed.

Platform: [Platform Name]

[View Connection Guide]


Footer: Stack Trading | support@stacktrading.com

CME agreement signing — confirmed 2026-10-15: Two options: (1) Web portal — browser-based, compatible with Mac and Windows; (2) R|Trader Pro desktop app — Windows only. Email copy reflects both options.


Full Email — 🔶 Forex variant (Client-confirmed — 2026-10-15):


Subject: Live Account Provisioned: Forex DMA

Body:

[First_Name],

Your Stack Trading live account is provisioned.

For security purposes, platform passwords are never transmitted via email. Log in to your dashboard to retrieve your encrypted connection details.

[Dashboard Screenshot Placeholder]

[Reveal Credentials Screenshot in Dashboard]

Platform: [Platform Name]

[View Connection Guide]


Footer: Stack Trading | support@stacktrading.com


SES-44 — R|Trader Pro Setup Instructions (SIM — Non-Professional)

FieldValue
Email IDSES-44 (renumbered from SES-27)
Template KeyRTrader_Setup_NonPro
TriggerFlow 39 — BPS Admin triggers POST /bps/resend-rtrader-instructions for a trader with account_status = 'SIM_ACTIVE' (Level 0). Middleware resolves template = 'SES-44', fires RESEND_RTRADER_INSTRUCTIONS webhook to Zapier with this template flag.
RecipientFutures SIM trader whose CME subscriber agreements have not been signed
UC ReferenceUC_9.17 §3

CME classification rationale: SIM traders operate with simulated capital. CME Group classifies this as personal/educational use → Non-Professional designation applies. Monthly fee: ~$18/exchange/month (firm-covered, trader pays $0.00).

Required content blocks:

  1. Subject: "Stack Trading: Market Data & R|Trader Pro Setup"
  2. platform_username — trader's Rithmic login username
  3. R|Trader Pro download link (official Rithmic URL)
  4. Password retrieval instructions — direct to Dashboard GET /platform-credentials after Auth0 OTP login. Password displayed once on UI only. Password MUST NOT appear in email (never emailed).
  5. Agreement signing walkthrough — Step-by-step:
    • Login to R|Trader Pro using provided credentials
    • Select classification: Non-Professional
    • Sign all 4 exchange subscriber agreements: CME, CBOT, NYMEX, COMEX
    • Close R|Trader Pro and connect trading platform (NinjaTrader 8 / Quantower / etc.) to begin receiving live data
  6. Note: Real-time data feeds remain locked on all connected platforms until signing is complete

SES-45 — R|Trader Pro Setup Instructions (Live DMA — Professional)

FieldValue
Email IDSES-45 (renumbered from SES-28)
Template KeyRTrader_Setup_Pro
TriggerFlow 39 — BPS Admin triggers POST /bps/resend-rtrader-instructions for a trader with account_status = 'Active_DMA' (current_level >= 1). Middleware resolves template = 'SES-45', fires RESEND_RTRADER_INSTRUCTIONS webhook to Zapier with this template flag.
RecipientFutures Live DMA trader (Level 1+) whose CME subscriber agreements have not been signed
UC ReferenceUC_9.17 §3

CME classification rationale: Live DMA traders operate with the firm's proprietary capital. CME Group legally mandates Professional classification for all proprietary capital trading, regardless of the individual's background. Rithmic's gateway automatically enforces Professional status for Live sub-accounts. Fee: $137.50/exchange/month (firm-covered per BR_5.6.7 allocation). Selecting Non-Professional for a Live funded account is a CME compliance violation — the firm is liable.

Required content blocks:

  1. Subject: "Stack Trading: Market Data & R|Trader Pro Setup"
  2. platform_username — trader's Rithmic login username
  3. R|Trader Pro download link (official Rithmic URL)
  4. Password retrieval instructions — direct to Dashboard GET /platform-credentials after Auth0 OTP login. Password displayed once on UI only. Password MUST NOT appear in email (never emailed).
  5. Agreement signing walkthrough — Step-by-step:
    • Login to R|Trader Pro using provided credentials
    • Select classification: Professional — mandatory for proprietary capital accounts
    • Sign all 4 exchange subscriber agreements: CME, CBOT, NYMEX, COMEX
    • Close R|Trader Pro and connect trading platform (NinjaTrader 8 / Quantower / etc.) to begin receiving live data
  6. ⚠️ Compliance warning: selecting Non-Professional on a Live funded account constitutes a CME regulatory violation. If you are unsure, contact support before proceeding.
  7. Note: Real-time data feeds remain locked on all connected platforms until signing is complete

SES-29 — Dots Payout Profile Setup

FieldValue
Email IDSES-29
Template KeyDots_Payout_Setup
TriggerFlow 3B (UC_5.2) — fired after Veriff returns APPROVED webhook AND Middleware completes the 3-step Dots payee creation: (1) POST /v2/users with Veriff legal_name; (2) PUT /v2/users/{id}/addresses with normalized address; (3) POST /v2/flows returns flow_link. Email dispatched with the flow_link. NOT sent at Flow 3A — Dots payee creation does not happen until Veriff APPROVED.
RecipientTrader whose Veriff KYC was just approved (New Trader branch — Branch A from Flow 3A)
UC ReferenceUC_5.2 §5 Step 4A; UC_5.1 BR_5.1.2

Required content blocks:

  1. Confirmation that identity verification was successful
  2. flow_link — personalized Dots payout setup URL (session-scoped, generated via POST /v2/flows):
    • US traders (Billing_Country = 'US'): W-9 tax form pre-filled with Veriff legal_name + address
    • International traders (Billing_Country ≠ 'US'): W-8BEN tax form pre-filled with Veriff legal_name + address
  3. Clear instruction: payout profile setup is required before the live account can be activated
  4. Expectation-setting: trader will only need to enter TIN (W-9) or DOB + citizenship + signature (W-8BEN) — name and address are already pre-filled
  5. Warning: if Dots rejects phone number and re-issues a re-entry link, no fields are pre-filled — trader must enter all information manually

Security: flow_link is a personalized, session-scoped URL from Dots. Must be included as an HTTPS URL and must NOT be logged in plaintext application logs.

Note: Legal name and address are pre-filled by Middleware before flow_link is generated. Dots does NOT pre-fill TIN (W-9) or DOB (W-8BEN) — trader must enter these on the Dots UI. If Veriff did not extract DOB, the DOB field is left blank for trader to fill in (non-blocking, per CR-20260825-001 DOB null-safe handling).

Dots IRS TIN matching: Runs against the stored profile name (POST /v2/users with Veriff legal_name) — NOT the W-9 payload names. Bug in Dots currently in fix as of 2026-08-25 (CR-20260825-001).

Full Email (Client-confirmed — 2026-10-15):

Note: Client submitted this as "SES-42" but template key Dots_Payout_Setup matches this entry (SES-29). No new SES entry created — content applied here.


Subject: Identity Verification Approved. Payout Setup Required.

Body:

Your identity verification is approved. You have one final compliance step before we provision your Level 1 live trading credentials: set up your payout profile and submit your regulatory tax documentation.


Payout Profile Setup

Configure your payout methods and authorize future earnings disbursements by signing the appropriate tax form:

  • US Traders: Submit Form W-9
  • International Traders: Submit Form W-8BEN

[Set Up Payout Profile →] (link: dots_onboarding_link)


Important Compliance Notes

Do Not Alter Pre-filled Information: Your legal name and standardized address are pre-populated directly from your verified identity documents to ensure global regulatory compliance. Modifying these fields will trigger automated verification failures and immediately block your account activation.

Ensure Accuracy of Manually Entered Information: If any required information is not pre-filled, ensure that all manually entered details are accurate and match your legal information, verified identity documents, and the email address registered on our platform. Any discrepancies may result in verification failures or delays in account activation.

Sequential Validation: Your live trading credentials will not be issued until your payout profile status is officially marked as Active and Payable.

If you encounter issues with address verification, contact support@stacktrading.com immediately.


Footer: Stack Trading | support@stacktrading.com


SES-30 — Zombie Account Pause

FieldValue
Email IDSES-30
Template KeyZombie_Account_Pause
TriggerFlow 12 — The "Zombie" Protocol. Cron hằng ngày 02:00 AM Central quét last_trade_date < (Today − 30) → broker API tắt toàn bộ feed (kể cả base CME) → gửi email này.
RecipientTrader không đặt lệnh trong 30 ngày liên tiếp
Fromsupport@stacktrading.com
UC ReferenceUC_4.17.1 §6.9 / BR_4.17.1.21

Biến của template: [First Name] · [Platform_Name]

🚫 Email này KHÔNG có CTA. Nút [Reactivate Market Data] và biến reactivation_url đã được gỡ bỏ (chỉ đạo BA 2026-09-08). Trader bật lại feed chỉ từ dashboard, bằng nút Resubscribe trên từng feed card — email chỉ thông báo và chỉ đường. Lý do gỡ: một CTA duy nhất trong email buộc phải là hành động gộp cho nhiều feed ở nhiều trạng thái thanh toán khác nhau (feed còn trong tháng đã trả thì miễn phí, feed sang tháng mới thì phải checkout), đẻ ra quá nhiều nhánh không cần thiết. Ref: UC_4.17.1 §6.9, BR_4.17.1.26. 📌 Khối POD MENTORSHIP STATUS giữ nguyên như copy hiện tại, render cho mọi trader — không rẽ nhánh theo pod_leader_id (BA chốt 2026-09-08). Khối này nằm trong email market data vì Flow 12 khi tắt feed cũng nhả luôn ghế Pod của trader (giảm Current_Count của Pod Leader, set Pod Status = Inactive_Hold) — Ref: UC_4.17.1 §6.9 bước 5.

Subject: Your market data is paused - 1 click to reactivate

Hello [First Name],

Your live market data has been paused. Because your account has not registered a trade execution in 30 days, we have disabled your active exchange feeds to manage inactive connections.

Your account, evaluation status, and historical data remain exactly where you left them.

WHAT IS PAUSED

Live market data feeds in [Platform_Name]

WHAT REMAINS ACTIVE

Account credentials and terminal login access Evaluation or funded status Saved layouts, journals, and trade history

POD MENTORSHIP STATUS

Due to 30 days of inactivity, your active Pod Mentorship seat has been released to the waitlist.

HOW TO RESUME

When you are ready to trade again, open Settings → Market Data Management in your dashboard and switch your feeds back on with the Resubscribe button on each feed.

Note: If your previous Pod Mentor has reached maximum capacity during your absence, you will be placed at the front of the waitlist for the next available mentorship seat.


Footer: Stack Trading | support@stacktrading.com


SES-31 — Market Data Invoice (APM / Manual Payment)

FieldValue
Email IDSES-31
Template KeyInvoice_APM_email
TriggerFlow 22 Path A (customer_vault_id IS NULL) — cron chạy tại EOM−7, sinh invoice gộp và gửi payment link để trader tự thanh toán. Gửi kèm dashboard notification severity WARN, category Billing & Subscriptions.
RecipientTrader thanh toán bằng APM (không có vault token trên NMI)
Fromsupport@stacktrading.com
UC ReferenceUC_4.17.1 §6.10 Path A / BR_4.17.1.20

Biến của template: [First Name] · checkout_link

📌 Một template duy nhất, KHÔNG tách variant theo tier. Body nêu song song hệ quả của cả 2 tier (Provisional Traders (Levels 1 and 2) và Senior Traders (Level 3 and above)) để trader tự đối chiếu. 📌 Gửi đúng một lần tại EOM−7, không có ladder nhắc lại. Lần liên lạc thứ hai (nếu trader không trả) là email hạ cấp SES-17 ở ngày cuối tháng. 🔗 CTA [Pay Invoice] mở modal Subscribe to Market Data trên dashboard, pre-fill sẵn các feed trader đăng ký gần nhất + phương thức thanh toán gần nhất — không phải portal thanh toán riêng, cũng không phải trang Checkout đứng riêng. Process Payment Webhook bắt payload success → cập nhật market_data_paid_until. Ref: UC_4.17.1 BR_4.17.1.26.

Subject: Action Required: Manual Payment Needed for Market Data

Hello [First Name],

Your market data subscription renews on the 1st of the upcoming month.

Because your account utilizes a non-recurring payment method, we cannot execute an automatic renewal. You must manually settle your open invoice to maintain your data feeds.

[Pay Invoice] (link: checkout_link)

Service Interruption Warning

If payment is not captured by the end of the month, your unpaid data feeds will be automatically revoked by the exchange:

Provisional Traders (Levels 1 and 2): Your base CME data feed will be disconnected.

Senior Traders (Level 3 and above): Your premium add-on feeds (NYMEX, COMEX, CBOT) will be disconnected. Your base CME feed is subsidized by the firm and will remain active.

For assistance, contact support@stacktrading.com.


Footer: Stack Trading | support@stacktrading.com


Freshdesk Platform Emails (FD)

Emails in this section are sent automatically by Freshdesk on behalf of Stack Trading — not dispatched via AWS SES or Klaviyo. Copy is configured in Freshdesk Email Notifications settings (Admin → Email Notifications → Requester Notifications). SotaTek scope: define required content per ticket type; Freshdesk platform handles actual delivery.

FD-01 — New Ticket Auto-Reply (Support Ticket Acknowledgement)

FieldValue
Email IDFD-01
Template KeyFreshdesk built-in: Requester Notifications → New Ticket Created
TriggerFreshdesk creates a new support ticket for a trader (any path: UC_5.2 DECLINED / attempt-2 escalation, UC_5.8 Live Provisioning Failure, Flow 22 escalation, Flow 38 Discord Bot, or trader submits ticket manually via helpdesk portal). Sent automatically to the ticket requester's email.
RecipientTrader (ticket requester)
Fromsupport@stacktrading.com (Freshdesk reply-to)
UC ReferenceUC_5.2 BR_5.2.5 · UC_5.8 §7 Exc-1 · CR-20260720-004

Variables: {{ticket.id}} · {{ticket.url}} · [First Name] (Freshdesk requester name field — renders as Hi <name> when name is present; plain Hi, as fallback when absent)

Subject: We've received your support request — Ticket #{{ticket.id}}

Hi {{ticket.requester.name}},

We would like to acknowledge that we have received your request and a ticket has been created.

A support representative will be reviewing your request and will send you a personal response (usually within 1 business day).

To view the status of the ticket or add comments, please visit: View Ticket

If the button doesn't work, copy-paste this URL in your browser's address bar: {{ticket.url}}

Thank you for your patience.


Footer: Regards, Stack Trading Support Team | support@stacktrading.com

📌 Note: The <name> placeholder in the original Freshdesk template (Hi <name>) is Freshdesk's default merge tag for the requester's name. Confirm with client whether to use {{ticket.requester.name}} (renders full name) or {{ticket.requester.first_name}} (renders first name only) for the greeting.


Klaviyo Events (Marketing & Lifecycle)

All events below are out of SotaTek scope. Middleware emits webhook payload → Klaviyo API. Copy, layout, and delivery timing managed by client marketing team.

Trigger mechanism exception: KLA-02 (Future_Newsletter_Welcome) and KLA-22 (Waitlist_Welcome) are triggered by a direct frontend-to-Klaviyo API call (email + UTM parameters), bypassing the Node.js middleware and Zapier entirely — Ref: UC_1.2.1, UC_2.1.3. All other events in the table below remain middleware/Zapier-routed. Content, layout, and delivery timing for all events remain out of SotaTek scope regardless of trigger mechanism.

IDEvent KeyLifecycle Context
KLA-01Cart_AbandonmentFrontend onBlur on email field (Step 5). Recovers high-intent traffic before checkout drop-off.
KLA-02Future_Newsletter_WelcomeHomepage footer widget subscription. Initial market insights and onboarding content.
KLA-03Challenge_FailedPerformance encouragement + evaluation reset CTA. Fired 1 hour after failure (Flow 7B cool-down).
KLA-04Retention_Offer_DiscountAutomatic retry promotion code for traders who lose a funded live account.
KLA-05Coupon_Expiring_SoonCountdown alert for unused discount. Timing: Post_Failure_Retention_Days.
KLA-06Promotion_Level_3Performance metrics, certificate, data fee refund status at Level 3.
KLA-07Promotion_Level_6W2 benefits or cash-flex salary configurator link for Level 6 promotion.
KLA-08Promotion_StandardMilestone update celebrating account progress, unlocking higher capital tiers.
KLA-09Level_24_Prestige_ResetEnterprise celebration: complete path clearance and performance evaluation.
KLA-10Perk_Unlocked_GeneralAutomated fulfillment notification for merchandise / luxury accessories (Flow 25/26/37).
KLA-11Stagnation_WarningSequential account preservation check-ins for inactive evaluation seats.
KLA-12Velocity_Reward_UnlockedViral loop: challenge discount vouchers for hitting Everflow affiliate milestones.
KLA-13Template_Mentee_Trading_PlanForm distribution: trader data, risk models, visual chart strategy docs.
KLA-14Template_Mentee_SurveyQualitative data capture for internal mentor compliance scores.
KLA-15Pod_Leader_InviteCompensation frameworks + single-click pod allocation button for candidates.
KLA-16Pod_Leader_WelcomePod Leader welcome kit: private Discord routing, calendar access.
KLA-17Pod_Assignment_ConfirmationIntroduces new trader to their assigned pod mentor.
KLA-18Pod_Waitlist_NotificationFIFO queue status update for traders waiting for open pod mentor seat.
KLA-19Pod_Reassigned_NotificationMentor transition notice following pod leadership suspension or restructuring.
KLA-20Pod_Leader_Vesting_PaidStatement confirming carry payouts cleared to banking channel.
KLA-21Broadcast_Media_Guest_AlertUpcoming studio media guests or scheduled Discord AMAs announcement.
KLA-22Waitlist_WelcomeWaitlist lead capture form submission. Initial welcome and expectation setting for platform opening.

On this page