Add a Time sensitive to-do for employees with missing deposit accounts - #96623
Conversation
|
Hey, I noticed you changed If you want to automatically generate translations for other locales, an Expensify employee will have to:
Alternatively, if you are an external contributor, you can run the translation script locally with your own OpenAI API key. To learn more, try running: npx ts-node ./scripts/generateTranslations.ts --helpTypically, you'd want to translate only what you changed by running |
Codecov Report❌ Looks like you've decreased code coverage for some files. Please write tests to increase, or at least maintain, the existing level of code coverage. See our documentation here for how to interpret this table.
|
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 89c755aa46
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 89c755aa46
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Have we been doing that? I'm not convinced that this is regression from changes on this PR, as we just call |
Ah yes I see, thank you! will try to fix it |
|
@ZhenjaHorbach navigation after account validation should be fixed now, I also replaced all Screen.Recording.2026-08-05.at.13.48.33.mov |
Yes |
And this works well |
|
🚧 grgia has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/grgia in version: 9.4.52-0 🚀
|
Help site review — docs changes required ✅I reviewed the changes in this PR against the help site ( Good news: you already documented the feature itself in
That line is accurate, so the feature is covered. One correction is still required, though: the sentence directly beneath that list still reads:
That blanket claim is now inaccurate — the Time-sensitive section covers non-card alerts (blocked workflows, locked bank accounts, and your new reimbursement/deposit-account alert). The "active card" qualifier only applies to the Expensify Card fraud alert. Adding your new bullet directly above it makes the contradiction plain. Draft help site PR: #98211 — scopes that one sentence to @sharabai, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
Hi @sharabai.The QA team is unable to validate Test 2 (Wallet payment exclusion – not manually verified). The test requires a non-test Expensify Wallet / test-pending wallet. We set up the wallet using the usual Plaid flow, but we’re getting an error when trying to complete Step 1. Could you please advise how we can set up the required wallet for this test? 96623-Web-2.mp4 |
|
@sharabai is still OOO until thursday and I'm not sure how to do that, but maybe @MariaHCD can help here? I tried to do this test with an unactivated recipient and it returns the same error and I checked response from the backend and it's the same as @sharabai described in the note for this test (error code 666, same description). I also tested with activated account and added bank account via Enable wallet with abandoned state on Verify identity step, then Paying with wallet works, but I'm not sure if this is the same as pending wallet state |
|
Right, or @joekaufmanexpensify might know. |
|
I found this issue about supporting testing wallets in the pending state that was recently completed. I think I pieced together test steps from it. Going to share them to you in slack @IuliiaHerets |
|
@joekaufmanexpensify After following the steps you shared, the behavior doesn’t match what’s outlined. We can’t send money to User D without completing the Enable Wallet flow. Since we’re unable to test this PR on our side, could you please verify it internally? Grabando.1562.mp4 |
|
Checked off for QA! |
|
🚀 Deployed to production by https://github.com/roryabraham in version: 9.4.52-11 🚀
Bundle Size Analysis (Sentry): |


Explanation of Change
This PR adds a Time sensitive Home item when an ACH reimbursement is queued because the current payee has no personal deposit account. It uses the queued action's
paymentTypeto exclude Wallet/KYC waits, opens the existing bank-account setup flow, and adds the required route, copy, documentation, and unit coverage.Fixed Issues
$ #88187
$ #97462
PROPOSAL: #88187 (comment)
Tests
ACH reimbursement waiting for a personal bank account
Preconditions:
Wallet payment exclusion (not manually verified)
Note
I couldn't manually verify this case with the available test setup. The payer has a test Wallet, while an unactivated recipient is treated as a non-test Wallet, and the backend rejects that pairing with error code 666: “Cannot mix test and non-test wallets in a payment.” Therefore, the queued Wallet state can't currently be reached with these test accounts.
Note
@MariaHCD is working on fixing this in this issue. Once that's done, testing should be possible by following these steps:
All you would need to do to set up a test pending wallet is just to fill out the additional details form with the test data and then abandon the KYC flow. That will result in a test pending wallet.Preconditions:
Offline tests
N/A — this change only derives UI from existing Onyx state and opens the existing bank-account setup flow. It adds no API calls, writes, or offline-specific behavior.
QA Steps
Same as tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
time.card.mp4
fix.success.navigation.mp4