SMS Consent & Opt-In Evidence

Last updated: August 21, 2026 · Evidence last verified: 2026-08-21

Reviewer: start here

This is the single opt-in evidence page for the G8 Events messaging program. Its canonical URL is https://www.g8events.com/sms-consent. It is public and requires no login, no account, and no contact with us.

Below are all five live consent paths, each with the exact URL, the exact disclosure text shown to the user, and hosted screenshots of the real screen. Two paths sit behind sign-in; for those, the screenshots are the proof, so you are never asked to create an account. A sixth entry documents a consent-capable API that has no shipped user surface and is therefore not an active opt-in path.

An evidence summary table and a machine-readable JSON manifest (with the SHA-256 of every screenshot) are at the bottom of this page.

About this page

This page describes every way a person can give SMS consent to G8 Events (G8 Events LLC), the exact disclosure shown at each path, and how to verify each one. It exists so carriers and messaging reviewers can independently verify our consent flows.

This page documents our consent paths; it does not itself collect consent, phone numbers, or any personal information.

Every screenshot below is a capture of the exact production component named beneath it, rendered with synthetic fixture data (a fictional 555-01XX phone number and an example.com address). No real customer, order, ticket, or account data appears in any image.

Program disclosures

The following disclosures apply to every G8 Events text message and are shown at each opt-in path below:

  • Message frequency varies.
  • Msg & data rates may apply.
  • Reply STOP to opt out, HELP for help.
  • Marketing SMS consent is optional, is a separate and explicit opt-in, is unchecked by default, and is not a condition of purchase.
  • See our Terms & Conditions and Privacy Policy.

1. Phone sign-in (one-time passcode)

Public — https://www.g8events.com/signin · Consent API: no consent record; sends a verification OTP only

Anyone can sign in with a phone number. The one-time passcode verifies identity only; it does not create marketing consent.

  1. Open https://www.g8events.com/signin (public, no login required).
  2. The phone number field and the Continue with Phone button appear in the sign-in card.
  3. The disclosure below is rendered directly beneath the button, before any code can be sent.
By continuing with your phone number, you agree to receive one-time passcode (OTP) text messages from G8 Events to verify your identity at sign-in. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help. This does not sign you up for marketing messages.
G8 Events sign-in page showing the phone number field, the Continue with Phone button, and the adjacent one-time passcode SMS disclosure naming the brand, message frequency, rates, and STOP/HELP. (desktop capture from a 1280×900 CSS-pixel browser viewport)
Production /signin page: phone field, Continue with Phone action, and the adjacent OTP SMS disclosure naming G8 Events, message frequency, rates, and STOP/HELP.Desktop capture · browser viewport target: 1280×900 CSS px · source: app/signin/page.tsxURL: https://www.g8events.com/sms-consent-evidence/signin-otp-desktop.pngSHA-256: 7f083eb085cb9244eef77b1c16df7be5459a202f21f63d670cc3e64b7bbc3c11 · 217,317 bytes
G8 Events sign-in page showing the phone number field, the Continue with Phone button, and the adjacent one-time passcode SMS disclosure naming the brand, message frequency, rates, and STOP/HELP. (mobile capture from a 390×844 CSS-pixel browser viewport)
Production /signin page: phone field, Continue with Phone action, and the adjacent OTP SMS disclosure naming G8 Events, message frequency, rates, and STOP/HELP.Mobile capture · browser viewport target: 390×844 CSS px · source: app/signin/page.tsxURL: https://www.g8events.com/sms-consent-evidence/signin-otp-mobile.pngSHA-256: c2683563c2e2169f5ac992081a1473c0087f3ef4f12557f0d90b9c1d6604f384 · 244,095 bytes

2. Guest checkout (ticket purchase)

Public — start at https://www.g8events.com/events · Consent API: POST /api/checkout

Entering a phone number authorizes transactional SMS for that order, with the disclosure shown adjacent to the phone field. A separate, unchecked marketing checkbox appears below it; marketing consent is recorded only if the buyer explicitly checks it, and the checkbox states that consent is not a condition of purchase.

  1. Open https://www.g8events.com/events (public catalog, no login required).
  2. Choose any currently listed event and select a ticket quantity; the order panel opens.
  3. The phone field shows the transactional disclosure beneath it; the separate marketing checkbox below it is unchecked by default.
By providing your phone number, you agree to receive transactional SMS from G8 Events — ticket delivery, order confirmations, and event-critical updates. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Text me early access to G8 event presales, VIP upgrades & exclusive offers Msg & data rates may apply. Reply STOP to cancel, HELP for help. ~4 msgs/mo. Consent is not a condition of purchase.

Note: every event listed publicly right now is an age-gated nightlife event. Rather than deep-link one as consent evidence, the hosted screenshot below shows the exact production order panel rendered with synthetic fixture data. The live catalog URL above still lets you walk the flow yourself.

G8 Events guest checkout order panel showing the phone number field with the transactional SMS disclosure beneath it and the separate marketing SMS checkbox in its default unchecked state. (desktop capture from a 1280×900 CSS-pixel browser viewport)
Production checkout order panel (synthetic fixture event): phone field with the transactional disclosure, then the separate marketing checkbox shown in its default unchecked state with optional / not-a-condition-of-purchase language.Desktop capture · browser viewport target: 1280×900 CSS px · source: src/components/event-page/order-summary.tsxURL: https://www.g8events.com/sms-consent-evidence/guest-checkout-desktop.pngSHA-256: e013902f9986d5059c3f73c5ca723f7b0cd8da38b77156d9ad90ec71dbd4b56c · 601,472 bytes
G8 Events guest checkout order panel showing the phone number field with the transactional SMS disclosure beneath it and the separate marketing SMS checkbox in its default unchecked state. (mobile capture from a 390×844 CSS-pixel browser viewport)
Production checkout order panel (synthetic fixture event): phone field with the transactional disclosure, then the separate marketing checkbox shown in its default unchecked state with optional / not-a-condition-of-purchase language.Mobile capture · browser viewport target: 390×844 CSS px · source: src/components/event-page/order-summary.tsxURL: https://www.g8events.com/sms-consent-evidence/guest-checkout-mobile.pngSHA-256: 0a58d4f28487d10937f60e2492568e689de325e898eac20caf3f43ae690ac613 · 738,182 bytes

3. Sold-out event waitlist

Public — from any sold-out listing at https://www.g8events.com/events · Consent API: POST /api/waitlist

The phone field is optional; providing a number opts in to SMS ticket-availability alerts for that event only, with this disclosure shown directly under the phone field.

  1. Open https://www.g8events.com/events (public catalog, no login required).
  2. Choose a sold-out event and tap Join Waitlist.
  3. The optional phone field shows the event-specific SMS alert disclosure beneath it.
By providing your phone number, you agree to receive SMS ticket-availability alerts from G8 Events for this event. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.

Note: as above, current public listings are age-gated nightlife events, so the hosted screenshot below shows the exact production waitlist form rendered with synthetic fixture data rather than deep-linking a listing.

G8 Events sold-out event waitlist form showing the optional phone number field with the event-specific SMS ticket-availability alert disclosure directly beneath it. (desktop capture from a 1280×900 CSS-pixel browser viewport)
Production waitlist form (synthetic fixture event): optional phone field with the event-specific SMS alert disclosure directly beneath it; consent applies to that event's availability alerts only.Desktop capture · browser viewport target: 1280×900 CSS px · source: src/components/waitlist-button.tsxURL: https://www.g8events.com/sms-consent-evidence/waitlist-desktop.pngSHA-256: 69e923cd9a9c87f6a43bd4c90d4e9546c61d2b5bb5ef87fcd7893cee0b0e1e27 · 358,776 bytes
G8 Events sold-out event waitlist form showing the optional phone number field with the event-specific SMS ticket-availability alert disclosure directly beneath it. (mobile capture from a 390×844 CSS-pixel browser viewport)
Production waitlist form (synthetic fixture event): optional phone field with the event-specific SMS alert disclosure directly beneath it; consent applies to that event's availability alerts only.Mobile capture · browser viewport target: 390×844 CSS px · source: src/components/waitlist-button.tsxURL: https://www.g8events.com/sms-consent-evidence/waitlist-mobile.pngSHA-256: bf75a2b33b9eb2266315272f57442033578fcb47bf03a52351b46b19bc4bce0c · 452,662 bytes

4. Profile completion (signed in)

Account required — hosted screenshot below — https://www.g8events.com/complete-profile · Consent API: POST /api/profile/complete

After signing in at /signin, new users complete their profile at /complete-profile. Entering a phone number records transactional consent with the transactional disclosure shown adjacent to the field. Two separate, unchecked checkboxes offer optional event-alert SMS and optional marketing SMS. The exact disclosures rendered on that page are reproduced here from the same shared copy the production page uses:

By providing your phone number, you agree to receive transactional SMS from G8 Events — ticket delivery, order confirmations, and event-critical updates. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Event Alerts: SMS updates from G8 Events about events you are attending, including schedule changes, venue updates, and day-of reminders. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Marketing & Promotions: recurring marketing SMS from G8 Events — new event announcements, presales, and exclusive offers. Marketing consent is optional and is not a condition of purchase. Message frequency varies. Msg & data rates may apply. Reply STOP to cancel, HELP for help.

Account required — hosted screenshot below. You do not need to sign in or contact us: the images below are the evidence for this path, served publicly from this domain.

G8 Events profile completion form showing the phone number field with the transactional disclosure and the separate event-alert and marketing SMS checkboxes, both unchecked. (desktop capture from a 1280×900 CSS-pixel browser viewport)
Production profile completion form (synthetic fixture user): phone field with the transactional disclosure; the event-alert and marketing checkboxes below it are separate and unchecked by default.Desktop capture · browser viewport target: 1280×900 CSS px · source: src/components/profile-completion-form.tsxURL: https://www.g8events.com/sms-consent-evidence/profile-completion-desktop.pngSHA-256: 4bb2217adc5bf9adbe709c21c42b5f80cb197368d89cb0c7f76d4263c77166f2 · 742,167 bytes
G8 Events profile completion form showing the phone number field with the transactional disclosure and the separate event-alert and marketing SMS checkboxes, both unchecked. (mobile capture from a 390×844 CSS-pixel browser viewport)
Production profile completion form (synthetic fixture user): phone field with the transactional disclosure; the event-alert and marketing checkboxes below it are separate and unchecked by default.Mobile capture · browser viewport target: 390×844 CSS px · source: src/components/profile-completion-form.tsxURL: https://www.g8events.com/sms-consent-evidence/profile-completion-mobile.pngSHA-256: 208c345733217ab2b46b329e087af74adcf75cfd0605c55b0b489ae242a703ab · 836,764 bytes

5. SMS preference center (signed in)

Account required — hosted screenshot below — https://www.g8events.com/profile/sms-preferences · Consent API: PATCH /api/preferences/sms

Signed-in users can enable or disable Event Alerts and Marketing & Promotions at /profile/sms-preferences. Each toggle renders the user's recorded server state and can never create consent without an explicit tap; for a new number every toggleable scope is off. Each toggle shows its full disclosure directly beneath it, reproduced here from the same shared copy the production page uses:

Event Alerts: SMS updates from G8 Events about events you are attending, including schedule changes, venue updates, and day-of reminders. Message frequency varies. Msg & data rates may apply. Reply STOP to opt out, HELP for help.
Marketing & Promotions: recurring marketing SMS from G8 Events — new event announcements, presales, and exclusive offers. Marketing consent is optional and is not a condition of purchase. Message frequency varies. Msg & data rates may apply. Reply STOP to cancel, HELP for help.

If a number is opted out at the carrier level (STOP), the toggles are disabled until the user replies START to re-enable SMS. The second pair of screenshots below shows exactly that suppressed state.

Account required — hosted screenshot below. You do not need to sign in or contact us: the images below are the evidence for this path, served publicly from this domain.

G8 Events SMS preference center showing the Event Alerts and Marketing and Promotions toggles in their default off state, each with its full adjacent disclosure, plus the carrier opt-out explanation. (desktop capture from a 1280×900 CSS-pixel browser viewport)
Production SMS preference center (synthetic fixture user): Event Alerts and Marketing & Promotions toggles off, each with its full disclosure beneath it. The second capture shows the carrier-level STOP state, where all SMS is suppressed until the user replies START.Desktop capture · browser viewport target: 1280×900 CSS px · source: app/profile/sms-preferences/sms-preferences-form.tsxURL: https://www.g8events.com/sms-consent-evidence/preference-center-desktop.pngSHA-256: 8016afd5cadc62002f500c1fb47fa8649679f097baaec681572efadd3509152f · 1,232,192 bytes
G8 Events SMS preference center showing the Event Alerts and Marketing and Promotions toggles in their default off state, each with its full adjacent disclosure, plus the carrier opt-out explanation. (mobile capture from a 390×844 CSS-pixel browser viewport)
Production SMS preference center (synthetic fixture user): Event Alerts and Marketing & Promotions toggles off, each with its full disclosure beneath it. The second capture shows the carrier-level STOP state, where all SMS is suppressed until the user replies START.Mobile capture · browser viewport target: 390×844 CSS px · source: app/profile/sms-preferences/sms-preferences-form.tsxURL: https://www.g8events.com/sms-consent-evidence/preference-center-mobile.pngSHA-256: 599db080756fa6a9744c447bd900b508db704a43d528a4925f644749367c318a · 958,043 bytes
G8 Events SMS preference center showing the Event Alerts and Marketing and Promotions toggles in their default off state, each with its full adjacent disclosure, plus the carrier opt-out explanation. (desktop capture from a 1280×900 CSS-pixel browser viewport)
Production SMS preference center (synthetic fixture user): Event Alerts and Marketing & Promotions toggles off, each with its full disclosure beneath it. The second capture shows the carrier-level STOP state, where all SMS is suppressed until the user replies START.Desktop capture · browser viewport target: 1280×900 CSS px · source: app/profile/sms-preferences/sms-preferences-form.tsxURL: https://www.g8events.com/sms-consent-evidence/preference-center-suppressed-desktop.pngSHA-256: 9ba948568a61668ed87dbba1041827bd687e7b0f8fcf9d3584617a65877226e8 · 1,361,488 bytes
G8 Events SMS preference center showing the Event Alerts and Marketing and Promotions toggles in their default off state, each with its full adjacent disclosure, plus the carrier opt-out explanation. (mobile capture from a 390×844 CSS-pixel browser viewport)
Production SMS preference center (synthetic fixture user): Event Alerts and Marketing & Promotions toggles off, each with its full disclosure beneath it. The second capture shows the carrier-level STOP state, where all SMS is suppressed until the user replies START.Mobile capture · browser viewport target: 390×844 CSS px · source: app/profile/sms-preferences/sms-preferences-form.tsxURL: https://www.g8events.com/sms-consent-evidence/preference-center-suppressed-mobile.pngSHA-256: 1fbd5e0139af3080800506622c66d505343a79fb3ef955753f78bb71555a6d8a · 1,011,846 bytes

6. Mobile app text preferences — not an active opt-in path

No shipped user surface — nothing to open · Consent API: PATCH /api/mobile/v1/me

Our mobile API exposes an endpoint that can accept an SMS preference update, so we list it here for inventory completeness. It is not an active opt-in path: no shipped user surface reaches it, and no consent has been or can be collected through the app as it ships today. We are not presenting a development-only screen as evidence of a flow users cannot reach.

The reason is recorded verbatim in the unavailableReason field of the machine-readable manifest below, and is shown here:

Not an active opt-in path — no hosted screenshot exists

The mobile API can accept an SMS preference update, so it is listed here for inventory completeness. The shipped iOS source was audited at immutable origin/main commit 4a67cb8caaac988df80c8264133d215fb463fac9: both profile entry points and the SMSPrefsScreen destination are compiled out of release builds by #if DEBUG guards, while the production runtime policy sets supportsSMSPreferences=false and showsSMSSettings=false; ProductionTruthfulnessTests pins both values. No consent can originate through the app as shipped, so there is no honest live mobile opt-in screenshot to host, and we will not present a debug-only screen as carrier evidence. If a production surface ships, this inventory must be updated with its own hosted capture before it is claimed as an opt-in path.

  • g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8Events/Features/Attendee/AProfileScreen.swift lines 43-47, 150-163, and 291-300 (#if DEBUG entry-point and destination guards)
  • g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8Events/Shared/Services/G8Environment.swift lines 90-100 (production supportsSMSPreferences=false; showsSMSSettings=false)
  • g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8EventsTests/ProductionTruthfulnessTests.swift lines 12 and 58-62 (production flags pinned false)

Evidence summary

The same facts as the machine-readable manifest, in human-readable form. Every hosted image URL is public and its SHA-256 is printed beneath the image in each section above.

ScenarioLive routeConsent scopeDefault stateDisclosure versionHosted evidenceSource componentVerified
Phone sign-in (one-time passcode)https://www.g8events.com/signinotp-only (identity verification; no marketing consent created)No checkboxes; the OTP disclosure is displayed adjacent to the phone field before a code can be requested.2026-08-20app/signin/page.tsx2026-08-21
Guest checkout (ticket purchase)https://www.g8events.com/eventstransactional (ticket delivery, order confirmations, event-critical updates); separate optional marketingThe marketing SMS checkbox is unchecked (default off); marketing consent is recorded only on an explicit check.2026-08-20src/components/event-page/order-summary.tsx2026-08-21
Sold-out event waitlisthttps://www.g8events.com/eventsevent-specific ticket-availability SMS alerts (phone field optional)The phone field is optional and empty by default; no SMS consent is created without a voluntarily entered number.2026-08-20src/components/waitlist-button.tsx2026-08-21
Profile completion (signed in)https://www.g8events.com/complete-profiletransactional; separate optional event-alert and marketing scopesThe event-alert and marketing SMS checkboxes are both unchecked (default off).2026-08-20src/components/profile-completion-form.tsx2026-08-21
SMS preference center (signed in)https://www.g8events.com/profile/sms-preferencesevent_alert and marketing toggles; carrier-level STOP suppression honoredToggles render the recorded server state only; for a new number every toggleable scope is off, and a carrier-level STOP leaves them disabled by default.2026-08-20app/profile/sms-preferences/sms-preferences-form.tsx2026-08-21
Mobile app text preferences — API exists, no shipped user surfaceNone — no shipped app screen reaches this endpointevent_alert and marketing scopes; would write the same consent records as the web preference centerNot applicable — no user-facing surface is shipped, so no consent can originate here today.2026-08-20None — no shipped user surfaceapp/api/mobile/v1/me/route.ts2026-08-21

Machine-readable manifest

Embedded in this page as <script type="application/json" id="sms-consent-evidence-manifest">. Each entry carries the scenario id, live route, consent scope, default state, disclosure version, the exact production source component, and every hosted asset URL with its sha256 and byte size.

{
  "program": "G8 Events (G8 Events LLC) A2P 10DLC messaging",
  "page": "https://www.g8events.com/sms-consent",
  "lastVerified": "2026-08-21",
  "assetBaseUrl": "https://www.g8events.com/sms-consent-evidence",
  "scenarios": [
    {
      "id": "signin-otp",
      "title": "Phone sign-in (one-time passcode)",
      "access": "public",
      "liveRoute": "https://www.g8events.com/signin",
      "consentApi": null,
      "consentScope": "otp-only (identity verification; no marketing consent created)",
      "defaultState": "No checkboxes; the OTP disclosure is displayed adjacent to the phone field before a code can be requested.",
      "disclosureVersion": "2026-08-20",
      "sourceComponent": "app/signin/page.tsx",
      "reviewedSourceEvidence": null,
      "steps": [
        "Open https://www.g8events.com/signin (public, no login required).",
        "The phone number field and the Continue with Phone button appear in the sign-in card.",
        "The OTP disclosure is rendered directly beneath the button, before any code can be sent."
      ],
      "unavailableReason": null,
      "assets": [
        {
          "url": "https://www.g8events.com/sms-consent-evidence/signin-otp-desktop.png",
          "viewport": "desktop",
          "width": 1280,
          "height": 900,
          "sha256": "7f083eb085cb9244eef77b1c16df7be5459a202f21f63d670cc3e64b7bbc3c11",
          "bytes": 217317
        },
        {
          "url": "https://www.g8events.com/sms-consent-evidence/signin-otp-mobile.png",
          "viewport": "mobile",
          "width": 390,
          "height": 844,
          "sha256": "c2683563c2e2169f5ac992081a1473c0087f3ef4f12557f0d90b9c1d6604f384",
          "bytes": 244095
        }
      ]
    },
    {
      "id": "guest-checkout",
      "title": "Guest checkout (ticket purchase)",
      "access": "public",
      "liveRoute": "https://www.g8events.com/events",
      "consentApi": "POST /api/checkout",
      "consentScope": "transactional (ticket delivery, order confirmations, event-critical updates); separate optional marketing",
      "defaultState": "The marketing SMS checkbox is unchecked (default off); marketing consent is recorded only on an explicit check.",
      "disclosureVersion": "2026-08-20",
      "sourceComponent": "src/components/event-page/order-summary.tsx",
      "reviewedSourceEvidence": null,
      "steps": [
        "Open https://www.g8events.com/events (public catalog, no login required).",
        "Choose any currently listed event and select a ticket quantity; the order panel opens.",
        "The phone field shows the transactional disclosure beneath it; the separate marketing checkbox below it is unchecked by default."
      ],
      "unavailableReason": null,
      "assets": [
        {
          "url": "https://www.g8events.com/sms-consent-evidence/guest-checkout-desktop.png",
          "viewport": "desktop",
          "width": 1280,
          "height": 900,
          "sha256": "e013902f9986d5059c3f73c5ca723f7b0cd8da38b77156d9ad90ec71dbd4b56c",
          "bytes": 601472
        },
        {
          "url": "https://www.g8events.com/sms-consent-evidence/guest-checkout-mobile.png",
          "viewport": "mobile",
          "width": 390,
          "height": 844,
          "sha256": "0a58d4f28487d10937f60e2492568e689de325e898eac20caf3f43ae690ac613",
          "bytes": 738182
        }
      ]
    },
    {
      "id": "waitlist",
      "title": "Sold-out event waitlist",
      "access": "public",
      "liveRoute": "https://www.g8events.com/events",
      "consentApi": "POST /api/waitlist",
      "consentScope": "event-specific ticket-availability SMS alerts (phone field optional)",
      "defaultState": "The phone field is optional and empty by default; no SMS consent is created without a voluntarily entered number.",
      "disclosureVersion": "2026-08-20",
      "sourceComponent": "src/components/waitlist-button.tsx",
      "reviewedSourceEvidence": null,
      "steps": [
        "Open https://www.g8events.com/events (public catalog, no login required).",
        "Choose a sold-out event and tap Join Waitlist.",
        "The optional phone field shows the event-specific SMS alert disclosure beneath it."
      ],
      "unavailableReason": null,
      "assets": [
        {
          "url": "https://www.g8events.com/sms-consent-evidence/waitlist-desktop.png",
          "viewport": "desktop",
          "width": 1280,
          "height": 900,
          "sha256": "69e923cd9a9c87f6a43bd4c90d4e9546c61d2b5bb5ef87fcd7893cee0b0e1e27",
          "bytes": 358776
        },
        {
          "url": "https://www.g8events.com/sms-consent-evidence/waitlist-mobile.png",
          "viewport": "mobile",
          "width": 390,
          "height": 844,
          "sha256": "bf75a2b33b9eb2266315272f57442033578fcb47bf03a52351b46b19bc4bce0c",
          "bytes": 452662
        }
      ]
    },
    {
      "id": "profile-completion",
      "title": "Profile completion (signed in)",
      "access": "account",
      "liveRoute": "https://www.g8events.com/complete-profile",
      "consentApi": "POST /api/profile/complete",
      "consentScope": "transactional; separate optional event-alert and marketing scopes",
      "defaultState": "The event-alert and marketing SMS checkboxes are both unchecked (default off).",
      "disclosureVersion": "2026-08-20",
      "sourceComponent": "src/components/profile-completion-form.tsx",
      "reviewedSourceEvidence": null,
      "steps": null,
      "unavailableReason": null,
      "assets": [
        {
          "url": "https://www.g8events.com/sms-consent-evidence/profile-completion-desktop.png",
          "viewport": "desktop",
          "width": 1280,
          "height": 900,
          "sha256": "4bb2217adc5bf9adbe709c21c42b5f80cb197368d89cb0c7f76d4263c77166f2",
          "bytes": 742167
        },
        {
          "url": "https://www.g8events.com/sms-consent-evidence/profile-completion-mobile.png",
          "viewport": "mobile",
          "width": 390,
          "height": 844,
          "sha256": "208c345733217ab2b46b329e087af74adcf75cfd0605c55b0b489ae242a703ab",
          "bytes": 836764
        }
      ]
    },
    {
      "id": "preference-center",
      "title": "SMS preference center (signed in)",
      "access": "account",
      "liveRoute": "https://www.g8events.com/profile/sms-preferences",
      "consentApi": "PATCH /api/preferences/sms",
      "consentScope": "event_alert and marketing toggles; carrier-level STOP suppression honored",
      "defaultState": "Toggles render the recorded server state only; for a new number every toggleable scope is off, and a carrier-level STOP leaves them disabled by default.",
      "disclosureVersion": "2026-08-20",
      "sourceComponent": "app/profile/sms-preferences/sms-preferences-form.tsx",
      "reviewedSourceEvidence": null,
      "steps": null,
      "unavailableReason": null,
      "assets": [
        {
          "url": "https://www.g8events.com/sms-consent-evidence/preference-center-desktop.png",
          "viewport": "desktop",
          "width": 1280,
          "height": 900,
          "sha256": "8016afd5cadc62002f500c1fb47fa8649679f097baaec681572efadd3509152f",
          "bytes": 1232192
        },
        {
          "url": "https://www.g8events.com/sms-consent-evidence/preference-center-mobile.png",
          "viewport": "mobile",
          "width": 390,
          "height": 844,
          "sha256": "599db080756fa6a9744c447bd900b508db704a43d528a4925f644749367c318a",
          "bytes": 958043
        },
        {
          "url": "https://www.g8events.com/sms-consent-evidence/preference-center-suppressed-desktop.png",
          "viewport": "desktop",
          "width": 1280,
          "height": 900,
          "sha256": "9ba948568a61668ed87dbba1041827bd687e7b0f8fcf9d3584617a65877226e8",
          "bytes": 1361488
        },
        {
          "url": "https://www.g8events.com/sms-consent-evidence/preference-center-suppressed-mobile.png",
          "viewport": "mobile",
          "width": 390,
          "height": 844,
          "sha256": "1fbd5e0139af3080800506622c66d505343a79fb3ef955753f78bb71555a6d8a",
          "bytes": 1011846
        }
      ]
    },
    {
      "id": "mobile-app",
      "title": "Mobile app text preferences — API exists, no shipped user surface",
      "access": "not-live",
      "liveRoute": "None — no shipped app screen reaches this endpoint",
      "consentApi": "PATCH /api/mobile/v1/me",
      "consentScope": "event_alert and marketing scopes; would write the same consent records as the web preference center",
      "defaultState": "Not applicable — no user-facing surface is shipped, so no consent can originate here today.",
      "disclosureVersion": "2026-08-20",
      "sourceComponent": "app/api/mobile/v1/me/route.ts",
      "reviewedSourceEvidence": [
        "g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8Events/Features/Attendee/AProfileScreen.swift lines 43-47, 150-163, and 291-300 (#if DEBUG entry-point and destination guards)",
        "g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8Events/Shared/Services/G8Environment.swift lines 90-100 (production supportsSMSPreferences=false; showsSMSSettings=false)",
        "g8events-ios@4a67cb8caaac988df80c8264133d215fb463fac9 — G8EventsTests/ProductionTruthfulnessTests.swift lines 12 and 58-62 (production flags pinned false)"
      ],
      "steps": null,
      "unavailableReason": "The mobile API can accept an SMS preference update, so it is listed here for inventory completeness. The shipped iOS source was audited at immutable origin/main commit 4a67cb8caaac988df80c8264133d215fb463fac9: both profile entry points and the SMSPrefsScreen destination are compiled out of release builds by #if DEBUG guards, while the production runtime policy sets supportsSMSPreferences=false and showsSMSSettings=false; ProductionTruthfulnessTests pins both values. No consent can originate through the app as shipped, so there is no honest live mobile opt-in screenshot to host, and we will not present a debug-only screen as carrier evidence. If a production surface ships, this inventory must be updated with its own hosted capture before it is claimed as an opt-in path.",
      "assets": []
    }
  ]
}

Opt-out and help

  • Reply STOP to any G8 Events message to opt out of all SMS at the carrier level. Reply START to re-enable. Keyword handling is processed at /api/sms/webhook.
  • Reply HELP for help, or contact hello@g8events.com.
  • Signed-in users can also manage Event Alert and Marketing preferences at /profile/sms-preferences.

Legal

Privacy Policy · Terms & Conditions