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 Owner
Current Issue Owner: @Pujan92
Upwork Automation - Do Not Edit
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
v/:accountID/:validateCode) — validates silently, no input requiredOnboarding
onboarding/work-email-validation)onboarding/private-domain)missing-personal-details/:cardID/confirm-magic-code)One-time validation gates
Account-level (shown once when an unverified account tries to take an action):
settings/security/delegate/verify-account)settings/security/two-factor-auth/verify-account)workspaces/:policyID/company-cards/verify-account)add-bank-account/verify-account)bank-account/verify-account)workspaces/:policyID/invoices/verify-account)workspaces/add-domain/verify-account)settings/wallet/add-bank-account/select-country/verify-account)travel/verify-account)/:transactionID/:reportID/verify-account)/confirmation/:transactionID/:reportID/verify-account)r/:reportID/verify-account)e/:reportID/verify-account)search/verify-account,search/view/:reportID/verify-account,search/r/:reportID/verify-account)DynamicVerifyAccountPage.tsx)Per-contact-method (shown once per email/phone):
settings/profile/contact-methods/:contactMethod/details)workspaces/:policyID/expensify-card/:fundID/verify-work-email)workspaces/:policyID/company-cards/:feed/verify-work-email)Magic code required each time
settings/security/delegate/:login/role/:role/confirm/magic-code,settings/security/delegate/:login/confirm-role/:newRole)settings/profile/private-personal-details/confirm)settings/profile/contact-methods/:contactMethod/set-default/confirm)settings/profile/contact-methods/new/confirm-magic-code)settings/security/merge-accounts/:login/magic-code)workspaces/:policyID/expensify-card/issue-new/confirm-magic-code)settings/wallet/card/:cardID/confirm-magic-code)settings/wallet/travel-cvv/verify-account)settings/wallet/card/:cardID/report-card-lost-or-damaged/:reason/confirm-magic-code)settings/wallet/card/:cardID/report-virtual-fraud/verify-account)Error messages
Universal (all flows that accept code input):
Sign-in only (additional 2FA / recovery code errors):
Merge accounts only:
Notes
src/languages/*.ts, preserve per-locale typography and TS string delimiters.Issue Owner
Current Issue Owner: @Pujan92Upwork Automation - Do Not Edit