SMS Terms & Opt-In

How we collect SMS consent — and what messages we'll send.

HarvestEngine sends only transactional SMS to authenticated users: sign-in codes, second-factor verification codes, account-security alerts, and trade-approval links for portfolio rebalancing proposals. We never send marketing or promotional SMS. This page documents the opt-in flow, the consent language users see, and the operational details required for our messaging program.

How users opt in

Phone numbers are collected at one of two points in the authentication flow, both of which require an explicit user action:

  1. Sign-in by text at https://app.harvestengine.ai/auth/sms/start. The user enters their phone number and email, taps Send me a code, receives a 6-digit code via SMS, and enters the code to complete sign-in. The opt-in disclosure (quoted below) appears directly under the form before the user submits.
  2. Phone enrollment after sign-in at https://app.harvestengine.ai/onboarding/phone. Users who created their account with Google, Microsoft, Apple, or email + password are asked to verify a phone number for sign-in security. The same disclosure language appears on this page before submission.

Submitting either form is the affirmative action that grants consent. Users may decline and use a non-SMS sign-in method (Google, Microsoft, Apple, or email + password) instead.

Screenshots of the live opt-in pages

The two pages where the consent language appears, captured from the production sign-in flow:

Sign in by text — phone, email, Send me a code, with the opt-in disclosure underneath
Step 1 — /auth/sms/start (passwordless sign-in by text). Consent language directly under Send me a code.
Verify your mobile number — phone entry plus consent disclosure for users signed in via SSO or password
Step 2 — /onboarding/phone (post-SSO phone enrollment). Same consent language; phone-only because email is already on file.

Exact consent language shown to users

The following disclosure is rendered immediately under the phone-number entry field on both opt-in pages:

By continuing you agree to receive transactional SMS from HarvestEngine for sign-in codes, security alerts, trade-approval links, and harvest summaries. Msg & data rates may apply. Message frequency varies. Reply STOP to opt out, HELP for help. See our Terms and Privacy Policy.

What we send

All HarvestEngine SMS traffic falls into one of four transactional categories:

We do not send marketing SMS, promotional offers, cross-sell, advertising, surveys, or third-party content. Phone numbers are never sold, rented, traded, or shared with any party for any marketing purpose, ever.

Sample messages

Message frequency

Approximately 5 messages per month per active user, driven by the user's own activity (sign-ins, trade approvals, portfolio events). Inactive users receive zero messages. There is no recurring scheduled broadcast.

How users opt out

Reply STOP to any HarvestEngine message at any time. The carrier-mandated confirmation reply is sent automatically and the phone number is immediately marked opted-out in our database. We will not send further SMS to that number unless the user re-opts-in by replying START.

Other recognized keywords:

Help & support

Reply HELP to any HarvestEngine message and you will receive:

HarvestEngine support: visit https://app.harvestengine.ai/privacy or email support@harvestengine.ai. Reply STOP to opt out. Msg & data rates may apply.

You can also email support@harvestengine.ai directly, or reach our privacy team at privacy@harvestengine.ai.

Carrier & cost disclosures

Data handling

Phone numbers are stored in HarvestEngine's Postgres database with row-level security scoped to the owning user account. They are used solely for the transactional messages described above and are subject to the same retention and deletion rules as the rest of your account data — see our Privacy Policy for the full operational summary.

This page is the operational summary of HarvestEngine's SMS messaging program for purposes of carrier and CTIA compliance review. The formal Terms of Service govern in case of conflict. Last updated: 2026-05-05.