Skip to content

Commit

Permalink
Merge branch 'main' into mkzie2-issue/50368
Browse files Browse the repository at this point in the history
  • Loading branch information
mkzie2 committed Nov 22, 2024
2 parents 8d99484 + a35df5b commit 4e737b3
Show file tree
Hide file tree
Showing 171 changed files with 3,935 additions and 1,065 deletions.
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1009006503
versionName "9.0.65-3"
versionCode 1009006505
versionName "9.0.65-5"
// Supported language variants must be declared here to avoid from being removed during the compilation.
// This also helps us to not include unnecessary language variants in the APK.
resConfigs "en", "es"
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
title: Receive and Pay Bills
description: Expensify bill management and payment methods.
---

Easily receive and pay vendor or supplier bills directly in Expensify. Your vendors don’t even need an Expensify account! Manage everything seamlessly in one place.

# Receiving Bills

Expensify makes it easy to receive bills in three simple ways:

### 1. Directly from Vendors
Share your Expensify billing email with vendors to receive bills automatically.

- Set a Primary Contact under **Settings > Domains > Domain Admins**.
- Ask vendors to email bills to your billing address: `[email protected]` (e.g., for *expensify.com*, use `[email protected]`).
- Once emailed, the bill is automatically created in Expensify, ready for payment.

### 2. Forwarding Emails
Received a bill in your email? Forward it to Expensify.

- Ensure your Primary Contact is set under **Settings > Domains > Domain Admins**.
- Forward bills to `[email protected]`. Example: `[email protected]` (e.g., for *expensify.com*, use `[email protected]`).
- Expensify will create a bill automatically, ready for payment.

### 3. Manual Upload
Got a paper bill? Create a bill manually in [Expensify](https://www.expensify.com/):

1. Log in to [Expensify](https://www.expensify.com).
2. Go to **Reports > New Report > Bill**.
3. Enter the invoice details: sender’s email, merchant name, amount, and date.
4. Upload the invoice as a receipt.


# Paying Bills in Expensify

Expensify makes it easy to manage and pay vendor bills with a straightforward workflow and flexible payment options. Here’s how it works:

## Bill Pay Workflow

1. **SmartScan & Create**: When a vendor sends a bill, Expensify automatically SmartScans the document and creates a bill.
2. **Submission to Primary Contact**: The bill is submitted to the primary contact, who can review it on the Reports page under their default group policy.
3. **Communication**: If the approver needs clarification, they can communicate directly with the sender via the invoice linked to the bill.
4. **Approval Workflow**: Once reviewed, the bill follows your workspace’s approval process. The final approver handles the payment.
5. **Accounting Integration**: During approval, the bill is coded with the correct GL codes from your connected accounting software. Once approved, it can be exported back to your accounting system.

## Payment Methods

Expensify offers several ways to pay bills. Choose the method that works best for you:

### 1. ACH Bank-to-Bank Transfer

Fast and fee-free, this method requires a connected [business bank account](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/bank-accounts/Connect-US-Business-Bank-Account).

**How to Pay via ACH:**
1. Log in to your [Expensify web account](https://www.expensify.com/).
2. Find the bill on the Home or Reports page.
3. Click **Pay** and select the ACH option.

**Fees:** None.

---

### 2. Credit or Debit Card

Pay vendors using a credit or debit card. This option is available for US and international customers paying US vendors with a US business bank account.

**How to Pay with a Card:**
1. Log in to your [Expensify web account](https://www.expensify.com/).
2. Open the bill details and click **Pay**.
3. Enter your card information to complete the payment.

**Fees:** 2.9% of the total amount paid.

---

### 3. Venmo

If both you and the vendor have Venmo accounts connected to Expensify, you can pay through Venmo. Learn how to set up Venmo [here](https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/Third-Party-Payments#setting-up-third-party-payments).

**Fees:** Venmo charges a 3% sender’s fee.

---

### 4. Pay Outside Expensify

If you prefer to pay outside Expensify, you can still track the payment within the platform.

**How to Mark as Paid Outside Expensify:**
1. Log in to your [Expensify web account](https://www.expensify.com/).
2. Open the bill details and click **Pay**.
3. Select **Mark as Paid** to update its status.

**Fees:** None.
{% include faq-begin.md %}

## Who receives vendor bills in Expensify?
bills are sent to the Primary Contact listed under **Settings > Domains > [Domain Name] > Domain Admins**.

## Who can view and pay a bill?
Only the primary domain contact can view and pay a bill.

## How can others access bills?
The primary contact can share bills or grant Copilot access for others to manage payments.

## Is bill Pay supported internationally?
Currently, payments are only supported in USD.

## What's the difference between a bill and an Invoice in Expensify?
A bill represents a payable amount owed to a vendor, while an Invoice is a receivable amount owed to you.
{% include faq-end.md %}
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,9 @@ Wait until the end of the second business day. If you still don’t see them, pl

Once that's all set, make sure to contact your account manager or concierge, and our team will be able to re-trigger those three test transactions!

## Is my data safe?

We take security seriously. Our measures align with what banks use to protect sensitive financial data. We regularly test and update our security to stay ahead of any threats. Plus, we’re checked daily by McAfee for extra reassurance against hackers. You can verify our security strength below or on the McAfee SECURE site. Discover how Expensify safeguards your information [here](https://help.expensify.com/articles/new-expensify/settings/Encryption-and-Data-Security).

{% include faq-end.md %}

Expand Down
1 change: 1 addition & 0 deletions docs/redirects.csv
Original file line number Diff line number Diff line change
Expand Up @@ -603,3 +603,4 @@ https://help.expensify.com/articles/expensify-classic/spending-insights/Custom-T
https://help.expensify.com/articles/expensify-classic/spending-insights/Default-Export-Templates,https://help.expensify.com/articles/expensify-classic/spending-insights/Export-Expenses-And-Reports/
https://help.expensify.com/articles/expensify-classic/spending-insights/Other-Export-Options,https://help.expensify.com/articles/expensify-classic/spending-insights/Export-Expenses-And-Reports/
https://help.expensify.com/articles/expensify-classic/travel/Edit-or-cancel-travel-arrangements,https://help.expensify.com/articles/expensify-classic/travel/Book-with-Expensify-Travel
https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/payments/Create-and-Pay-Bills,https://help.expensify.com/articles/expensify-classic/bank-accounts-and-payments/payments/Receive-and-Pay-Bills
2 changes: 1 addition & 1 deletion help/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ Every PR pushed by an authorized Expensify employee or representative will autom
3. Install Ruby and Jekyll
4. Build the entire site using Jekyll
5. Create a "preview" of the newly built site in Cloudflare
6. Record a link to that preview in the PR.
6. Record a link to that preview in the PR

## How to deploy the site for real
Whenever a PR that touches the `/help` directory is merged, it will re-run the build just like before. However, it will detect that this build is being run from the `main` branch, and thus push the changes to the `production` Cloudflare environment -- meaning, it will replace the contents hosted at https://newhelp.expensify.com
2 changes: 1 addition & 1 deletion ios/NewExpensify/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>9.0.65.3</string>
<string>9.0.65.5</string>
<key>FullStory</key>
<dict>
<key>OrgId</key>
Expand Down
2 changes: 1 addition & 1 deletion ios/NewExpensifyTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>9.0.65.3</string>
<string>9.0.65.5</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion ios/NotificationServiceExtension/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleShortVersionString</key>
<string>9.0.65</string>
<key>CFBundleVersion</key>
<string>9.0.65.3</string>
<string>9.0.65.5</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
Expand Down
8 changes: 4 additions & 4 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2661,7 +2661,7 @@ PODS:
- RNSound/Core (= 0.11.2)
- RNSound/Core (0.11.2):
- React-Core
- RNSVG (15.6.0):
- RNSVG (15.9.0):
- DoubleConversion
- glog
- hermes-engine
Expand All @@ -2681,9 +2681,9 @@ PODS:
- ReactCodegen
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- RNSVG/common (= 15.6.0)
- RNSVG/common (= 15.9.0)
- Yoga
- RNSVG/common (15.6.0):
- RNSVG/common (15.9.0):
- DoubleConversion
- glog
- hermes-engine
Expand Down Expand Up @@ -3295,7 +3295,7 @@ SPEC CHECKSUMS:
RNScreens: de6e57426ba0e6cbc3fb5b4f496e7f08cb2773c2
RNShare: bd4fe9b95d1ee89a200778cc0753ebe650154bb0
RNSound: 6c156f925295bdc83e8e422e7d8b38d33bc71852
RNSVG: 1079f96b39a35753d481a20e30603fd6fc4f6fa9
RNSVG: b2fbe96b2bb3887752f8abc1f495953847e90384
SDWebImage: 066c47b573f408f18caa467d71deace7c0f8280d
SDWebImageAVIFCoder: 00310d246aab3232ce77f1d8f0076f8c4b021d90
SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c
Expand Down
13 changes: 7 additions & 6 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
"version": "9.0.65-3",
"version": "9.0.65-5",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
Expand Down Expand Up @@ -168,7 +168,7 @@
"react-native-screens": "3.34.0",
"react-native-share": "11.0.2",
"react-native-sound": "^0.11.2",
"react-native-svg": "15.6.0",
"react-native-svg": "15.9.0",
"react-native-tab-view": "^3.5.2",
"react-native-url-polyfill": "^2.0.0",
"react-native-view-shot": "3.8.0",
Expand Down
19 changes: 17 additions & 2 deletions src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2843,6 +2843,7 @@ const CONST = {
AMEX_CUSTOM_FEED: {
CORPORATE: 'American Express Corporate Cards',
BUSINESS: 'American Express Business Cards',
PERSONAL: 'American Express Personal Cards',
},
DELETE_TRANSACTIONS: {
RESTRICT: 'corporate',
Expand Down Expand Up @@ -2969,8 +2970,8 @@ const CONST = {

// eslint-disable-next-line max-len, no-misleading-character-class
EMOJI: /[\p{Extended_Pictographic}\u200d\u{1f1e6}-\u{1f1ff}\u{1f3fb}-\u{1f3ff}\u{e0020}-\u{e007f}\u20E3\uFE0F]|[#*0-9]\uFE0F?\u20E3/gu,
// eslint-disable-next-line max-len, no-misleading-character-class
EMOJIS: /[\p{Extended_Pictographic}](\u200D[\p{Extended_Pictographic}]|[\u{1F3FB}-\u{1F3FF}]|[\u{E0020}-\u{E007F}]|\uFE0F|\u20E3)*|[\u{1F1E6}-\u{1F1FF}]{2}|[#*0-9]\uFE0F?\u20E3/gu,
// eslint-disable-next-line max-len, no-misleading-character-class, no-empty-character-class
EMOJIS: /[\p{Extended_Pictographic}](\u200D[\p{Extended_Pictographic}]|[\u{1F3FB}-\u{1F3FF}]|[\u{E0020}-\u{E007F}]|\uFE0F|\u20E3)*|[\u{1F1E6}-\u{1F1FF}]{2}|[#*0-9]\uFE0F?\u20E3/du,
// eslint-disable-next-line max-len, no-misleading-character-class
EMOJI_SKIN_TONES: /[\u{1f3fb}-\u{1f3ff}]/gu,

Expand Down Expand Up @@ -3007,6 +3008,10 @@ const CONST = {
return new RegExp(`[\\n\\s]|${this.SPECIAL_CHAR.source}|${this.EMOJI.source}`, 'gu');
},

get ALL_EMOJIS() {
return new RegExp(this.EMOJIS, this.EMOJIS.flags.concat('g'));
},

MERGED_ACCOUNT_PREFIX: /^(MERGED_\d+@)/,
ROUTES: {
VALIDATE_LOGIN: /\/v($|(\/\/*))/,
Expand Down Expand Up @@ -5959,6 +5964,9 @@ const CONST = {
ACTION_TYPES: {
VIEW: 'view',
REVIEW: 'review',
SUBMIT: 'submit',
APPROVE: 'approve',
PAY: 'pay',
DONE: 'done',
PAID: 'paid',
},
Expand Down Expand Up @@ -6294,10 +6302,17 @@ const CONST = {
},

DEBUG: {
FORMS: {
REPORT: 'report',
REPORT_ACTION: 'reportAction',
TRANSACTION: 'transaction',
TRANSACTION_VIOLATION: 'transactionViolation',
},
DETAILS: 'details',
JSON: 'json',
REPORT_ACTIONS: 'actions',
REPORT_ACTION_PREVIEW: 'preview',
TRANSACTION_VIOLATIONS: 'violations',
},

REPORT_IN_LHN_REASONS: {
Expand Down
Loading

0 comments on commit 4e737b3

Please sign in to comment.