Add validate code extended access for issuing cards#75096
Conversation
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
…ode-extended-access-app
…ode-extended-access-app
|
Nice, I think the Auth PR just got merged so we can unhold this! |
|
Yep, though we'll need the auth PR to be deployed for this to be mergable - that should happen tomorrow as we've already had an auth deploy today 🙇 |
|
Backend PR has been merged, and should be live on Monday 🍀 |
|
@NikkiWines, we're getting an error when confirming card creation after the second attempt: Screen.Recording.2026-01-12.at.16.08.08.movThe server's response to the command |
|
Yes, I can repro this locally. I'm almost positive this is because we're using the staging server for Marqeta for dev requests and so the cards won't be provisioned correctly, but cc: @MariaHCD since you have knowledge of that logic 🙇 |
|
@NikkiWines yes, I got the bugbot issue too: https://github.com/Expensify/Expensify/issues/584462#issuecomment-3742204419 @brunovjk We recently made some internal changes to route test domains/workspaces to the Marqeta sandbox. I believe the workspace you are testing with was originally provisioned on Marqeta production, so now that test workspaces use the sandbox, card-related requests for it won’t work (since the workspace and associated records don’t exist in sandbox). I would recommend creating a fresh test workspace:
Let me know if you run into any issues with the new setup! |
|
@NikkiWines Yes, yesterday I had some problems creating a new account and adding the test bank account. I'll get back here in a moment, sorry for the delay. |
|
No worries, thank you!! 🙌 |
|
Im on it now |
|
@NikkiWines and @MariaHCD, I'm trying to connect a bank account to a new account. I'm doing what I always do, but I'm stuck on the "Onfido" verification. Am I doing something wrong? Screen.Recording.2026-01-15.at.10.56.28.movThank you very much. |
|
Hmm, @brunovjk I get the same thing from the Workspaces flow so I'm not sure. However, if you go to Expensify Classic for the same account and go to Settings > Workspaces > Your Workspace > Workflows > Make or track payments > and then select "Direct" and try to add a bank account from there using the same credentials and dummy data for the extra values it asks for (they aren't relevant) it might work? It worked for me at least 😅 |
…ode-extended-access-app
brunovjk
left a comment
There was a problem hiding this comment.
LGTM, works well.
NAB: @NikkiWines do you think it's worth removing the hardcoded numbers (convert timestamp from microseconds to milliseconds and 1 hour in microseconds) and using some CONST? Thank you.
|
@carlosmiceli Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
Thanks for your perserverence with reviewing + testing @brunovjk 🙇
I thought about this, but since the microseconds -> milliseconds only used in the one location I thought it was fine to keep inline. For the 1 hour bit, it's only used in the test so I don't feel strongly about it |
There was a problem hiding this comment.
Not sure if you wanna review it too @NikkiWines ?
Update: so dumb, this is your PR.
|
All yours @heyjennahay |
|
yay, thanks everyone 🙌 |
|
✋ 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/NikkiWines in version: 9.3.5-0 🚀
|
|
🚀 Deployed to production by https://github.com/Beamanator in version: 9.3.5-7 🚀
|

Explanation of Change
Updates the virtual card and physical card so that we conditionally require a validateCode - we want one the first time they assign a card and then not again until the timeout has expired.
Held on PR: https://github.com/Expensify/Auth/pull/18885
Fixed Issues
$ https://github.com/Expensify/Expensify/issues/543813
PROPOSAL: N/A internal
Tests
Verify+ Issue CardagainOffline tests
N/A cards cannot be issued offline
QA Steps
Same as test steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectioncanBeMissingparam foruseOnyxtoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, 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.ScrollViewcomponent to make it scrollable when more elements are added to the page.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
Simulator.Screen.Recording.-.iPhone.16.Pro.-.2025-12-19.at.16.29.51.mov
MacOS: Chrome / Safari
https://github.com/user-attachments/assets/62486d57-2273-4629-9f04-21770b022c69)
MacOS: Desktop
Screen.Recording.2025-12-15.at.16.31.32.mov
Screen.Recording.2025-12-15.at.16.06.45.mov