Skip to content

[Due for payment 2026-07-30] [$250] Update all Magic Code front-end references in New Expensify #96180

Description

@MelvinBot

Problem

We want to update all Magic Code front-end references throughout New Expensify (NewDot). "Magic code" copy appears across authentication, onboarding, verification gates, and per-action confirmation flows, and needs to be updated consistently everywhere it is surfaced to the user.

Scope

Update every user-facing front-end reference to the magic code across the flows below. This is a front-end-only pass over NewDot copy/strings (including src/languages/*.ts), not a behavior change.

Authentication

  • Sign-in (home) — user enters emailed magic code to log in
  • SSO vs. magic code choice (home) — user chooses magic code instead of SSO; triggers code send
  • Email link auto-login (v/:accountID/:validateCode) — validates silently, no input required

Onboarding

  • Work email validation (onboarding/work-email-validation)
  • Private domain validation (onboarding/private-domain)
  • Missing personal details (missing-personal-details/:cardID/confirm-magic-code)

One-time validation gates

Account-level (shown once when an unverified account tries to take an action):

  • Add a delegate/copilot (settings/security/delegate/verify-account)
  • Enable 2FA (settings/security/two-factor-auth/verify-account)
  • Add or refresh company card feed (workspaces/:policyID/company-cards/verify-account)
  • Add bank account to wallet (add-bank-account/verify-account)
  • Add bank account for reimbursements (bank-account/verify-account)
  • Set up invoicing bank account (workspaces/:policyID/invoices/verify-account)
  • Add workspace domain (workspaces/add-domain/verify-account)
  • Select country for international deposit account (settings/wallet/add-bank-account/select-country/verify-account)
  • Request travel access (travel/verify-account)
  • Create a money request (/:transactionID/:reportID/verify-account)
  • Confirm a money request (/confirmation/:transactionID/:reportID/verify-account)
  • Perform action on a report (r/:reportID/verify-account)
  • Perform action on an expense report (e/:reportID/verify-account)
  • Perform action from search (search/verify-account, search/view/:reportID/verify-account, search/r/:reportID/verify-account)
  • Enable wallet (DynamicVerifyAccountPage.tsx)

Per-contact-method (shown once per email/phone):

  • Verify a newly added contact method (settings/profile/contact-methods/:contactMethod/details)
  • Connect Expensify Card feed to workspace (workspaces/:policyID/expensify-card/:fundID/verify-work-email)
  • Connect company card feed to workspace (workspaces/:policyID/company-cards/:feed/verify-work-email)

Magic code required each time

  • Add or update a delegate/copilot (settings/security/delegate/:login/role/:role/confirm/magic-code, settings/security/delegate/:login/confirm-role/:newRole)
  • Update sensitive personal details (settings/profile/private-personal-details/confirm)
  • Set default contact method (settings/profile/contact-methods/:contactMethod/set-default/confirm)
  • Add a new contact method (settings/profile/contact-methods/new/confirm-magic-code)
  • Merge accounts (settings/security/merge-accounts/:login/magic-code)
  • Enable Biometric MFA (modal)
  • Issue a new Expensify Card (workspaces/:policyID/expensify-card/issue-new/confirm-magic-code)
  • View card PAN/CVV (settings/wallet/card/:cardID/confirm-magic-code)
  • View Travel Invoicing Card CVV (settings/wallet/travel-cvv/verify-account)
  • Report card lost or damaged (settings/wallet/card/:cardID/report-card-lost-or-damaged/:reason/confirm-magic-code)
  • Report virtual card fraud (settings/wallet/card/:cardID/report-virtual-fraud/verify-account)

Error messages

Universal (all flows that accept code input):

  • Empty field: "Please enter your magic code"
  • Wrong code: "Incorrect or invalid magic code. Please try again or request a new code."
  • Server errors: displayed as-is from the API response — no client-side copy

Sign-in only (additional 2FA / recovery code errors):

  • Empty 2FA field: "Please enter your two-factor authentication code"
  • Wrong 2FA code: "Incorrect two-factor authentication code. Please try again."
  • Empty recovery code field: "Please enter your recovery code"
  • Wrong recovery code: "Incorrect recovery code. Please try again."

Merge accounts only:

  • Unrecognized server error: "Something went wrong. Please try again later."

Notes

  • This is the App/front-end companion to the broader tracking effort (internal tracking issue: Expensify/Expensify#657264).
  • When editing src/languages/*.ts, preserve per-locale typography and TS string delimiters.
Issue OwnerCurrent Issue Owner: @Pujan92
Upwork Automation - Do Not Edit

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions