82322: The real return reason is only show in Expensify Classic when a report payment bounces#84823
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✅ Changes either increased or maintained existing code coverage, great job!
|
|
@abbasifaizan70 You need to complete all author checklist At For language translation we need to complete and get confirmation as a checklist item
You can apply this translation patch by existing generate tool |
|
@twisterdotcom We could create adhoc here and test via supportal if you have some account with the report actions |
|
I could not fully reproduce this flow locally because it depends on external CorPay + VBA reimbursement processing and an async ACH bounce callback from the payment processor. Local/dev environments do not provide a controllable real bounce event with returnReason parity to production flows. |
|
My real account has these report actions on yeah: ID: R00SM0kFitop (Long ID: 6191040852169979) |
joekaufmanexpensify
left a comment
There was a problem hiding this comment.
Great change!
|
@suneox updates translations and added a comment on why we cannot test it locally. Can u take a look? Thanks |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppI cannot simulate that case. Android: mWeb ChromeI cannot simulate that case. iOS: HybridAppI cannot simulate that case. iOS: mWeb SafariI cannot simulate that case. MacOS: Chrome / SafariI cannot simulate that case. |
suneox
left a comment
There was a problem hiding this comment.
Since we haven't set up data for this case, but based on the schema and api response, the change set LGTM
|
@mountiny added test cases. Thanks |
|
🚧 @mountiny has triggered a test Expensify/App build. You can view the workflow run here. |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
Nice!
I think this is fine, and we should eventually add an "Explain" option to these which can link what we need. cc @marcaaron how would I go about requesting that next? |
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.3.40-0 🚀
|
|
@abbasifaizan70 @joekaufmanexpensify I think QA team can't meet this precondition, could this be verified internally?
|
|
🚀 Deployed to staging by https://github.com/mountiny in version: 9.3.40-0 🚀
|

Explanation of Change
Updated New Expensify to show the actual ACH bounce returnReason in report actions (couldn't process the payment: {returnReason}) instead of always showing a generic bank-account issue message.
When returnReason is missing, it now falls back to couldn't process the payment due to an incorrect routing/account number or closed account, with new translation keys added consistently across locales.
Fixed Issues
$ #82322
PROPOSAL: #82322 (comment)
Tests
Precondition:
Have an approved reimbursable report on a workspace with a CorPay reimbursement account set on it. Have a deposit account set that is not USD.
Offline tests
QA Steps
same as tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand 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
MacOS: Chrome / Safari