Skip to content

Commit 8ae6f9d

Browse files
committed
Merge remote-tracking branch 'origin/main' into perf/total-selectable-items-count
2 parents e94429a + d8c5117 commit 8ae6f9d

272 files changed

Lines changed: 8496 additions & 3219 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Mobile-Expensify

assets/images/coins-button.svg

Lines changed: 1 addition & 0 deletions
Loading

assets/images/multifactorAuthentication/card-reader.svg

Lines changed: 1 addition & 0 deletions
Loading
Lines changed: 1 addition & 0 deletions
Loading

config/eslint/eslint.seatbelt.tsv

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,6 @@
199199
"../../src/components/VideoPlayer/BaseVideoPlayer.tsx" "no-restricted-syntax" 1
200200
"../../src/components/VideoPlayer/BaseVideoPlayer.tsx" "react-hooks/refs" 13
201201
"../../src/components/VideoPlayer/BaseVideoPlayer.tsx" "react-hooks/set-state-in-effect" 2
202-
"../../src/components/WalletStatementModal/index.tsx" "@typescript-eslint/no-deprecated/frameBorder" 1
203202
"../../src/components/WideRHPContextProvider/useShouldRenderOverlay.ts" "react-hooks/set-state-in-effect" 1
204203
"../../src/components/ZeroWidthView/index.tsx" "no-restricted-syntax" 2
205204
"../../src/hooks/useAnimatedHighlightStyle/index.ts" "react-hooks/set-state-in-effect" 2
@@ -285,7 +284,6 @@
285284
"../../src/libs/Notification/PushNotification/shouldShowPushNotification.ts" "no-restricted-syntax" 2
286285
"../../src/libs/Notification/PushNotification/subscribeToPushNotifications.ts" "no-restricted-syntax" 1
287286
"../../src/libs/OptionsListUtils/index.ts" "@typescript-eslint/no-deprecated/deprecatedAllReportActions" 2
288-
"../../src/libs/OptionsListUtils/index.ts" "@typescript-eslint/no-deprecated/deprecatedAllSortedReportActions[iouReportID]" 1
289287
"../../src/libs/OptionsListUtils/index.ts" "@typescript-eslint/no-deprecated/deprecatedAllSortedReportActions[reportID]" 1
290288
"../../src/libs/OptionsListUtils/index.ts" "@typescript-eslint/no-deprecated/deprecatedCachedOneTransactionThreadReportIDs[reportID]" 2
291289
"../../src/libs/OptionsListUtils/index.ts" "@typescript-eslint/no-deprecated/deprecatedLastReportActions[reportID]" 3
@@ -307,7 +305,7 @@
307305
"../../src/libs/ReportUtils.ts" "@typescript-eslint/no-deprecated/getReportName" 3
308306
"../../src/libs/ReportUtils.ts" "@typescript-eslint/no-deprecated/getSearchReportName" 1
309307
"../../src/libs/ReportUtils.ts" "@typescript-eslint/no-deprecated/translateLocal" 43
310-
"../../src/libs/ReportUtils.ts" "rulesdir/no-onyx-connect" 17
308+
"../../src/libs/ReportUtils.ts" "rulesdir/no-onyx-connect" 16
311309
"../../src/libs/SearchUIUtils.ts" "@typescript-eslint/no-deprecated/getSearchReportName" 1
312310
"../../src/libs/SubscriptionUtils.ts" "rulesdir/no-onyx-connect" 1
313311
"../../src/libs/TransactionUtils/index.ts" "@typescript-eslint/no-deprecated/translateLocal" 5
@@ -501,7 +499,6 @@
501499
"../../src/pages/inbox/report/ContextMenu/PopoverReportActionContextMenu.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
502500
"../../src/pages/inbox/report/ContextMenu/PopoverReportActionContextMenu.tsx" "react-hooks/refs" 29
503501
"../../src/pages/inbox/report/ListBoundaryLoader.tsx" "react-hooks/set-state-in-effect" 1
504-
"../../src/pages/inbox/report/PureReportActionItem.tsx" "react-hooks/refs" 2
505502
"../../src/pages/inbox/report/PureReportActionItem.tsx" "react-hooks/set-state-in-effect" 1
506503
"../../src/pages/inbox/report/ReactionList/HeaderReactionList.tsx" "no-restricted-syntax" 1
507504
"../../src/pages/inbox/report/ReportActionCompose/ComposerWithSuggestions.tsx" "@typescript-eslint/no-deprecated/InteractionManager.runAfterInteractions" 1
@@ -653,7 +650,6 @@
653650
"../../src/pages/workspace/expensifyCard/WorkspaceEditCardLimitPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
654651
"../../src/pages/workspace/expensifyCard/WorkspaceEditCardLimitTypePage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
655652
"../../src/pages/workspace/expensifyCard/WorkspaceExpensifyCardDetailsPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 2
656-
"../../src/pages/workspace/hr/WorkspaceHRPage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
657653
"../../src/pages/workspace/hr/gusto/GustoApprovalModePage.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
658654
"../../src/pages/workspace/members/ImportMembersPage.tsx" "no-restricted-syntax" 1
659655
"../../src/pages/workspace/members/ImportMembersPage.tsx" "rulesdir/no-default-id-values" 1

docs/_data/_routes.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -319,3 +319,8 @@ platforms:
319319
title: Event Management
320320
icon: /assets/images/envelope-receipt.svg
321321
description: "Learn how to create and manage Travel Events for group bookings."
322+
323+
- href: travel-invoicing
324+
title: Travel Invoicing
325+
icon: /assets/images/subscription-annual.svg
326+
description: "Centralize travel payments so employees can book trips without using personal cards or submitting reimbursements."

docs/articles/new-expensify/reports-and-expenses/Attach-and-edit-receipts-on-expenses.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Attach and edit receipts on expenses
33
description: Learn how to properly attach, verify, and troubleshoot receipts on expenses in New Expensify for audits and accounting.
4-
keywords: [New Expensify,attach receipt, verify receipt, missing receipt, expense attachments, audit trail, New Expensify, receipt not showing, crop receipt, rotate receipt, trim receipt]
4+
keywords: [New Expensify, attach receipt, verify receipt, missing receipt, expense attachments, audit trail, receipt not showing, crop receipt, rotate receipt, trim receipt, receipt upload failed, receipt upload error, save receipt, delete expense]
55
internalScope: Audience is Expensify members and Workspace Admins. Covers attaching, replacing, and cropping receipts on expenses. Does not cover SmartScan configuration or receipt forwarding via email.
66
---
77

@@ -122,5 +122,12 @@ No. Receipts in the comments section are considered supplemental and are not inc
122122
## Can I crop or rotate an eReceipt?
123123
No. eReceipts cannot be cropped or rotated. The **Crop** button is available for uploaded or scanned image receipts only. The **Rotate** button is available for image receipts and PDF receipts on web or mobile web. PDF rotation is not available in the native mobile app.
124124

125+
## What should I do if my receipt upload fails?
126+
127+
If the upload fails (for example, due to a lost network connection), you'll see the message "Receipt upload failed. Save the receipt, or delete the expense and lose it." with two options:
128+
129+
- **Save receipt** — downloads the receipt image to your device so you don't lose it. You can then re-create the expense and attach the saved receipt.
130+
- **Delete expense** — removes the failed expense entirely. The receipt will be lost if you haven't saved it first.
131+
125132
## Can I attach both the card and itemized restaurant receipts?
126133
Yes. Attach the **card receipt** to the expense itself, and upload the **itemized receipt** in the report comments as supporting documentation.

docs/articles/new-expensify/workspaces/Create-expense-categories.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,19 @@ Expensify learns your category preferences over time and suggests them automatic
127127
- Existing expenses are not updated retroactively.
128128
- These suggestions are based on patterns and may vary by user.
129129

130+
## How to set default categories by MCC code
131+
132+
Expensify can automatically assign a default category based on the merchant's MCC (Merchant Category Code). For example, you can set all airline expenses to default to a "Flights" category.
133+
134+
To manage MCC default categories:
135+
136+
1. In the **navigation tabs** (on the left on web, and at the bottom on mobile), click **Workspaces**.
137+
2. Click your **workspace name**.
138+
3. Click **Categories**.
139+
4. Click **More**
140+
5. Click **Settings**.
141+
6. Update the default category for any MCC group (e.g., Airlines, Gas, Groceries).
142+
130143
## Workspace Merchant Rules
131144

132145
Workspace Admins can configure [**Workspace Merchant Rules**](https://help.expensify.com/articles/new-expensify/workspaces/Workspace-Merchant-Rules) to apply consistent categories based on merchant name across all workspace members.

docs/articles/new-expensify/workspaces/Require-tags-and-categories-for-expenses.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ When this setting is turned on, expenses must include a **tag** or **category**
3838

3939
# Default Spend Categories
4040

41-
Expensify learns how you categorize expenses by merchant and automatically applies those preferences going forward. You can always update or override a category, and Expensify will learn your changes over time.
41+
Expensify can automatically assign categories based on the merchant's MCC (Merchant Category Code). For example, airline expenses can default to a "Flights" category. Expensify also learns how you categorize expenses by merchant and applies those preferences going forward. You can always update or override a category, and Expensify will learn your changes over time.
4242

4343
## Manage Default Spend Categories
4444

docs/articles/new-expensify/workspaces/Workspace-Rules.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ Once enabled, go to the **Rules** tab in the left menu to manage expense-level s
3636
- **Itemized receipt required over** – Require itemized receipts for expenses over a specific amount.
3737
- **Max expense amount** – Set a per-expense spending cap (supports decimals).
3838
- **Max expense age (Days)** – Define how old an expense can be (whole numbers only).
39-
- **Cash expense default** - Choose whether cash expenses are reimbursable by default. Note: [Workspace Merchant Rules](https://help.expensify.com/articles/new-expensify/workspaces/Workspace-Merchant-Rules) can also set reimbursable status on a per-merchant basis.
40-
- **Billable default** – Choose whether expenses are billable by default. Note: [Workspace Merchant Rules](https://help.expensify.com/articles/new-expensify/workspaces/Workspace-Merchant-Rules) can also set billable status on a per-merchant basis.
39+
- **Cash expense default** - Choose whether cash expenses are reimbursable by default. Note: [Workspace Merchant Rules](/articles/new-expensify/workspaces/Workspace-Merchant-Rules) can also set reimbursable status on a per-merchant basis.
40+
- **Billable default** – Choose whether expenses are billable by default. Note: [Workspace Merchant Rules](/articles/new-expensify/workspaces/Workspace-Merchant-Rules) can also set billable status on a per-merchant basis.
4141
- **Require company cards for all purchases** - Flag out-of-pocket expenses that should have been made with a company card. Only available after company cards are connected to the workspace.
4242
- **eReceipts** – Enable automatic receipt generation for all USD card transactions up to $75 (requires USD as default currency).
4343
- **Merchant-based automation** – Automatically apply categories, tags, and other fields using Workspace Merchant Rules.
@@ -140,9 +140,9 @@ Available option:
140140

141141
# How to manage default categories and billable behavior
142142

143-
You can set workspace-wide defaults to automate categorization and tagging.
143+
You can set workspace-wide defaults to automate categorization and tagging.
144144

145-
- **Default categories** – Auto-assign a category based on the merchant’s MCC. Set this under **Categories > Settings**.
145+
- **Default categories** – Auto-assign a category based on the merchant’s MCC (Merchant Category Code). This is configured under **Categories > Settings**, not under Rules. See [Create Expense Categories](/articles/new-expensify/workspaces/Create-expense-categories).
146146
- **Billable expenses** – Decide when tagging is required based on whether an expense is marked billable. Set this under **Tags > Settings**.
147147

148148
**Note:** Default category and billable settings use general automation logic. If you need consistent, merchant-specific outcomes that apply across all members, use **Workspace Merchant Rules** instead.

0 commit comments

Comments
 (0)