Skip to content

Docs updates for E/A#99341 Pay report global reimbursements prompt - #100744

Open
MelvinBot wants to merge 1 commit into
mainfrom
claude-corpayPayModalHelpDocs
Open

Docs updates for E/A#99341 Pay report global reimbursements prompt#100744
MelvinBot wants to merge 1 commit into
mainfrom
claude-corpayPayModalHelpDocs

Conversation

@MelvinBot

Copy link
Copy Markdown
Contributor

Explanation of Change

Help site follow-up to #99341, which replaced the red inline error on the pay report action with a centered Pay report modal when an approver pays a report, the workspace's USD VBBA is not enabled for global reimbursement, and the submitter has a non-USD deposit account. The modal offers Enable Global Reimbursements and Cancel.

Nothing on the help site described this prompt, so admins hitting it had no article to land on. Two focused additions:

docs/articles/new-expensify/wallet-and-payments/Global-Reimbursement-United-States.md
Adds ## How to start Enable Global Reimbursements from the Pay report prompt — the new second entry point into the USD global reimbursement setup flow, what each button does, and the state the report is left in after Cancel.

docs/articles/new-expensify/wallet-and-payments/Pay-Expenses.md
Adds an FAQ entry, ## Why do I see a Pay report prompt asking me to enable global reimbursements?, matching the search intent of an admin who just hit the modal. It sits alongside the existing "Why don't I see my bank account when I click Pay?" entry.

Authoring compliance and label verification

Applied docs/HELP_AUTHORING_GUIDELINES.md, docs/HELPSITE_NAMING_CONVENTIONS.md, and docs/TEMPLATE.md:

  • Both new headings are ##, task-based, and start with an action verb or question word.
  • No new # headings; single workflow per addition; no ### or deeper.
  • Button names bolded, in Sentence case, no quotation marks.
  • Cross-link uses a relative path and descriptive anchor text ("Learn how to enable global reimbursements on a USD business bank account").
  • No screenshots suggested — the prompt is a two-button confirmation modal that the written steps fully describe.

UI labels verified rather than paraphrased:

  • Pay report, Enable Global Reimbursements, and Cancel match common.corpayPayModalTitle, common.enableGlobalReimbursements, and common.cancel in src/languages/en.ts as consumed by src/components/EnableGlobalReimbursementsPayModal.tsx. The prompt sentence is quoted verbatim from common.corpayPayModalPrompt.
  • Enable Global Reimbursements is the same string the Wallet page renders (src/pages/settings/Wallet/WalletPage/index.tsx), so the article's existing Account > Wallet reference stays consistent.
  • Checked Account > Wallet and Spend > Reports against the running web app. Both labels match. Enable Global Reimbursements does not render on the Wallet page without a verified USD business bank account, so the article does not claim it is always visible.

npm run spell-changed passes on both files (0 issues).

Fixed Issues

$
PROPOSAL:

Tests

// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review"
// Please describe what tests you performed that validates your changed worked.

  • Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: The human co-author must fill out the QA tests you ran before marking this PR as "ready for review".
// Please describe what QA needs to do to validate your changes and what areas do they need to test for regressions.
// These must be filled out, or the issue title must include "[No QA]."

  • Verify that no errors appear in the JS console

PR Author Checklist

  • I linked the correct issue in the ### Fixed Issues section above
  • I wrote clear testing steps that cover the changes made in this PR
    • I added steps for local testing in the Tests section
    • I added steps for the expected offline behavior in the Offline steps section
    • I added steps for Staging and/or Production testing in the QA steps section
    • I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
    • I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
    • I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).
  • I included screenshots or videos for tests on all platforms
  • I ran the tests on all platforms & verified they passed on:
    • Android: Native
    • Android: mWeb Chrome
    • iOS: Native
    • iOS: mWeb Safari
    • MacOS: Chrome / Safari
  • I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
  • I followed proper code patterns (see Reviewing the code)
    • I verified that comments were added to code that is not self explanatory
    • I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
    • I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
  • If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
  • I followed the guidelines as stated in the Review Guidelines
  • I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
  • If a new CSS style is added I verified that:
    • A similar style doesn't already exist
    • The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))
  • If new assets were added or existing ones were modified, I verified that:
    • The assets are optimized and compressed (for SVG files, run npm run compress-svg)
    • The assets load correctly across all supported platforms.
  • If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
  • If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
  • If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
  • If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
  • If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:
    • I verified that all the inputs inside a form are aligned with each other.
    • I added Design label and/or tagged @Expensify/design so the design team can review the changes.
  • I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
  • If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari

@ShridharGoel, please review the files changed and confirm they reflect the current behavior. Then post a new comment saying @MelvinBot mark this PR as ready for review.

Co-authored-by: Shridhar Goel <ShridharGoel@users.noreply.github.com>
@MelvinBot
MelvinBot requested a review from a team September 9, 2026 19:54
@MelvinBot MelvinBot added the HelpDot Apply this label if the issue relates to ExpensifyHelp label Sep 9, 2026
@ShridharGoel

Copy link
Copy Markdown
Contributor

@MelvinBot mark this PR as ready for review

@MelvinBot
MelvinBot marked this pull request as ready for review September 10, 2026 06:44
@melvin-bot

melvin-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown

Concierge reviewer checklist:

  • I have verified the accuracy of the article
    • The article is within a hub that makes sense, and the navigation is correct
    • All processes, screenshots, and examples align with current product behavior.
    • All links within the doc have been verified for correct destination and functionality.
  • I have verified the readability of the article
    • The article's language is clear, concise, and free of jargon.
    • The grammar, spelling, and punctuation are correct.
    • The article contains at least one image, or that an image is not necessary
  • I have verified the formatting of the article
    • The article has consistent formatting (headings, bullet points, etc.) with other HelpDot articles and that aligns with the HelpDot formatting standards.
    • The article has proper text spacing and breaks for readability.
  • I have verified the article has the appropriate tone and style
    • The article's tone is professional, friendly, and suitable for the target audience.
    • The article's tone, terminology, and voice are consistent throughout.
  • I have verified the overall quality of the article
    • The article is not missing any information, nor does it contain redundant information.
    • The article fully addresses user needs.
  • I have verified that all requested improvements have been addressed

For more detailed instructions on completing this checklist, see How do I review a HelpDot PR as a Concierge Team member?

cc @kadiealexander

@melvin-bot
melvin-bot Bot requested review from kadiealexander and removed request for a team September 10, 2026 06:44
@melvin-bot

melvin-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown

@kadiealexander 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]

@MelvinBot

MelvinBot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Done — this PR is now Ready for review.

  • Draft status removed (isDraft: false)
  • Reviewers: Expensify/pullerbear team and stephanieelliott
  • Assignee: ShridharGoel

⚠️ One thing to fix before merge: the Tests and QA Steps sections still contain the // TODO: **The human co-author** must fill out... placeholders. I left those for you to fill in — I won't write test steps on your behalf. For this docs-only change (two help-site markdown files), "Same as tests" / a [No QA] note is likely all that's needed, but that call is yours.


view run · view recording


---

## How to start Enable Global Reimbursements from the Pay report prompt

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Readability / heading violation: "How to start Enable Global Reimbursements from the Pay report prompt" is grammatically broken ("start Enable Global Reimbursements"). Rewrite as a clean task-based heading, e.g. ## How to enable global reimbursements from the Pay report prompt. Per HELP_AUTHORING_GUIDELINES.md Section 2, headings must be clear task-based phrases.


If your workspace has a verified USD business bank account that is not yet enabled for global reimbursements, and the submitter's deposit account is in a currency other than USD, Expensify prompts you at payment time instead of showing an error on the report.

The prompt is titled **Pay report** and reads: This submitter has a non-USD bank account. Enable global reimbursements to pay the report, or ask them to add a USD bank account.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Readability: The quoted prompt text runs directly into the sentence after "reads:", so it is unclear where the UI copy begins and ends. Set the quoted prompt apart (e.g. as a blockquote or in quotation marks) so members can distinguish the exact on-screen text from the surrounding instruction.

@github-actions

Copy link
Copy Markdown
Contributor

HelpDot Documentation Review

Overall Assessment

This PR is a focused, well-scoped help-site follow-up to #99341. It adds documentation for the new Pay report modal that prompts approvers to enable global reimbursements when paying a non-USD submitter from a USD business bank account. Two additive changes: a new setup entry-point section in Global-Reimbursement-United-States.md and a matching FAQ entry in Pay-Expenses.md. Both additions are grounded in verified UI strings and match real admin search intent. The changes are small (26 additions, 0 deletions) and do not modify existing content.

Scores Summary

  • Readability: 8/10 - Clear sentences, correct numbered steps, and good scannability. Minor ding for one awkward heading ("How to start Enable Global Reimbursements...") that reads unnaturally because a button name is jammed into the verb position.
  • AI Readiness: 8/10 - Both new ## headings are task/question-based and use the full feature name; the FAQ entry mirrors realistic search phrasing. Heading depth stays at ##. Not penalizing pre-existing file-level metadata/heading issues since they are outside the diff.
  • Style Compliance: 9/10 - UI labels (Pay report, Enable Global Reimbursements, Cancel) are bolded, in exact casing, and verified against en.ts rather than paraphrased. State names (Approved) bolded. Cross-link uses a relative path with descriptive anchor text.

Key Findings

  • Strong verification discipline: button and modal strings were confirmed against src/languages/en.ts and the rendering component instead of being paraphrased, satisfying the exact-UI-terminology rule.
  • The FAQ entry correctly sits under the existing FAQ heading and follows the question-form convention alongside sibling entries.
  • Cross-link is compliant: relative path, descriptive anchor, placed in an explanatory paragraph (not inside a numbered step).
  • Heading nit: ## How to start Enable Global Reimbursements from the Pay report prompt is task-based and searchable but grammatically awkward. Consider ## How to enable global reimbursements from the Pay report prompt (verb + feature) for cleaner phrasing while preserving searchability.
  • The quoted prompt sentence ("This submitter has a non-USD bank account...") is reproduced verbatim, which aids retrieval; consider setting it off consistently (e.g., as a quote) so it is clearly the literal modal text.

Recommendations

  • Priority: Reword the ## How to start Enable Global Reimbursements... heading so the action verb governs the sentence rather than the button name.
  • Optional: Visually distinguish the verbatim modal prompt text so readers recognize it as literal UI copy.
  • No blocking issues found; both additions comply with the governance guidelines.

Files Reviewed

  • docs/articles/new-expensify/wallet-and-payments/Global-Reimbursement-United-States.md - New setup entry-point section. Compliant; minor heading-phrasing suggestion.
  • docs/articles/new-expensify/wallet-and-payments/Pay-Expenses.md - New FAQ entry with compliant cross-link. Compliant.

Note: Detailed line-by-line feedback has been provided as inline comments.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: cb3005fcb6

ℹ️ 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".

2. When the **Pay report** prompt appears, select **Enable Global Reimbursements**.
3. Complete the business information, agreement, and signer steps described above.

Selecting **Enable Global Reimbursements** opens the same setup flow you can start from **Account > Wallet**, beginning at the business information step.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document the locked-account branch before promising setup

When the payer's account is locked, selecting Enable Global Reimbursements does not open the setup flow: EnableGlobalReimbursementsPayModal calls showLockedAccountModal() and only navigates to business information in the unlocked branch. Qualify this instruction (and the equivalent claim in the Pay Expenses FAQ) so locked users are not told to expect a wizard they cannot reach.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

HelpDot Apply this label if the issue relates to ExpensifyHelp

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants