Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/Expensify/App into feat/#Ex…
Browse files Browse the repository at this point in the history
…pensify#23220-bidirectional-pagination
  • Loading branch information
perunt committed Oct 23, 2023
2 parents 6c6adc4 + 743a95d commit 92becc1
Show file tree
Hide file tree
Showing 131 changed files with 2,309 additions and 1,493 deletions.
2 changes: 2 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,12 @@ module.exports = {
overrides: [
{
files: ['*.js', '*.jsx', '*.ts', '*.tsx'],
plugins: ['react'],
rules: {
'rulesdir/no-multiple-onyx-in-file': 'off',
'rulesdir/onyx-props-must-have-default': 'off',
'react-native-a11y/has-accessibility-hint': ['off'],
'react/jsx-no-constructed-context-values': 'error',
'react-native-a11y/has-valid-accessibility-descriptors': [
'error',
{
Expand Down
58 changes: 28 additions & 30 deletions .github/workflows/deployExpensifyHelp.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,30 @@
# Deploying the ExpensifyHelp Jekyll site by dynamically generating routes file
name: Deploy ExpensifyHelp

on:
# Runs on pushes targeting the default branch
# Run on any push to main that has changes to the docs directory
push:
branches: ["main"]

# Allows you to run this workflow manually from the Actions tab
branches:
- main
paths:
- 'docs/**'

# Run on any pull request (except PRs against staging or production) that has changes to the docs directory
pull_request:
types: [opened, synchronize]
branches-ignore: [staging, production]
paths:
- 'docs/**'

# Run on any manual trigger
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
Expand All @@ -32,9 +34,6 @@ jobs:
- name: Setup NodeJS
uses: Expensify/App/.github/actions/composite/setupNode@main

- name: Setup Pages
uses: actions/configure-pages@f156874f8191504dae5b037505266ed5dda6c382

- name: Create docs routes file
run: ./.github/scripts/createDocsRoutes.sh

Expand All @@ -44,19 +43,18 @@ jobs:
source: ./docs/
destination: ./docs/_site

- name: Upload artifact
uses: actions/upload-pages-artifact@64bcae551a7b18bcb9a09042ddf1960979799187
- name: Deploy to Cloudflare Pages
uses: cloudflare/pages-action@f0a1cd58cd66095dee69bfa18fa5efd1dde93bca
id: deploy
with:
path: ./docs/_site

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@af48cf94a42f2c634308b1c9dc0151830b6f190a
apiToken: ${{ secrets.CLOUDFLARE_PAGES_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
projectName: helpdot
directory: ./docs/_site

- name: Leave a comment on the PR
uses: actions-cool/maintain-one-comment@de04bd2a3750d86b324829a3ff34d47e48e16f4b
if: ${{ github.event_name == 'pull_request' }}
with:
token: ${{ secrets.OS_BOTIFY_TOKEN }}
body: ${{ format('A preview of your ExpensifyHelp changes have been deployed to {0} ⚡️', steps.deploy.outputs.alias) }}
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1001038701
versionName "1.3.87-1"
versionCode 1001038900
versionName "1.3.89-0"
}

flavorDimensions "default"
Expand Down
74 changes: 71 additions & 3 deletions docs/articles/expensify-classic/expensify-card/Statements.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,73 @@
---
title: Statements
description: Statements
title: — Expensify Card Statements and Settlements
description: Learn how the Expensify Card statement and settlements work!
---
## Resource Coming Soon!

# Overview
Expensify offers several settlement types and a statement that provides a detailed view of transactions and settlements. We discuss specifics on both below.

# How to use Expensify Card Statement and Settlements
## Using the statement
If your domain uses the Expensify Card and you have a validated Business Bank Account, access the Expensify Card statement at Settings > Domains > Company Cards > Reconciliation Tab > Settlements.

The Expensify Card statement displays individual transactions (debits) and their corresponding settlements (credits). Each Expensify Cardholder has a Digital Card and a Physical Card, which are treated the same in settlement, reconciliation, and exporting to your accounting system.

Here's a breakdown of crucial information in the statement:
- **Date:** For card payments, it shows the debit date; for card transactions, it displays the purchase date.
- **Entry ID:** This unique ID groups card payments and transactions together.
- **Withdrawn Amount:** This applies to card payments, matching the debited amount from the Business Bank Account.
- **Transaction Amount:** This applies to card transactions, matching the expense purchase amount.
- **User email:** Applies to card transactions, indicating the cardholder's Expensify email address.
- **Transaction ID:** A unique ID for locating transactions and assisting Expensify Support in case of issues. Transaction IDs are handy for reconciling pre-authorizations. To find the original purchase, locate the Transaction ID in the Settlements tab of the reconciliation dashboard, download the settlements as a CSV, and search for the Transaction ID within it.

![Expanded card settlement that shows the various items that make up each card settlement.](https://help.expensify.com/assets/images/ExpensifyHelp_SettlementExpanded.png){:width="100%"}

The Expensify Card statement only shows payments from existing Business Bank Accounts under Settings > Account > Payments > Business Accounts. If a Business Account is deleted, the statement won't contain data for payments from that account.

## Exporting your statement
When using the Expensify Card, you can export your statement to a CSV with these steps:

1. Login to your account on the web app and click on Settings > Domains > Company Cards.
2. Click the Reconciliation tab at the top right, then select Settlements.
3. Enter your desired statement dates using the Start and End fields.
4. Click Search to access the statement for that period.
5. You can view the table or select Download to export it as a CSV.

![Click the Download CSV button in the middle of the page to export your card settlements.](https://help.expensify.com/assets/images/ExpensifyHelp_SettlementExport.png){:width="100%"}

## Expensify Card Settlement Frequency
Paying your Expensify Card balance is simple with automatic settlement. There are two settlement frequency options:
- **Daily Settlement:** Your Expensify Card balance is paid in full every business day, meaning you’ll see an itemized debit each business day.
- **Monthly Settlement:** Expensify Cards are settled monthly, with your settlement date determined during the card activation process. With monthly, you’ll see only one itemized debit per month. (Available for Plaid-connected bank accounts with no recent negative balance.)

## How settlement works
Each business day (Monday through Friday, excluding US bank holidays) or on your monthly settlement date, we calculate the total of posted Expensify Card transactions since the last settlement. The settlement amount represents what you must pay to bring your Expensify Card balance back to $0.

We'll automatically withdraw this settlement amount from the Verified Business Bank Account linked to the primary domain admin. You can set up this bank account in the web app under Settings > Account > Payments > Bank Accounts.

Once the payment is made, your Expensify Card balance will be $0, and the transactions are considered "settled."

To change your settlement frequency or bank account, go to Settings > Domains > [Domain Name] > Company Cards. On the Company Cards page, click the Settings tab, choose a new settlement frequency or account from the dropdown menu, and click Save to confirm the change.

![Change your card settlement account or settlement frequency via the dropdown menus in the middle of the screen.](https://help.expensify.com/assets/images/ExpensifyHelp_CardSettings.png){:width="100%"}

# Expensify Card Statement and Settlements FAQs
## Can you pay your balance early if you've reached your Domain Limit?
If you've chosen Monthly Settlement, you can manually initiate settlement using the "Settle Now" button. We'll settle the outstanding balance and then perform settlement again on your selected predetermined monthly settlement date.

If you opt for Daily Settlement, the Expensify Card statement will automatically settle daily through an automatic withdrawal from your business bank account. No additional action is needed on your part.

## Will our domain limit change if our Verified Bank Account has a higher balance?
Your domain limit may fluctuate based on your cash balance, spending patterns, and history with Expensify. Suppose you've recently transferred funds to the business bank account linked to Expensify card settlements. In that case, you should expect a change in your domain limit within 24 hours of the transfer (assuming your business bank account is connected through Plaid).

## How is the “Amount Owed” figure on the card list calculated?
The amount owed consists of all Expensify Card transactions, both pending and posted, since the last settlement date. The settlement amount withdrawn from your designated Verified Business Bank Account only includes posted transactions.

Your amount owed decreases when the settlement clears. Any pending transactions that don't post timely will automatically expire, reducing your amount owed.

## **How do I view all unsettled expenses?**
To view unsettled expenses since the last settlement, use the Reconciliation Dashboard's Expenses tab. Follow these steps:
1. Note the dates of expenses in your last settlement.
2. Switch to the Expenses tab on the Reconciliation Dashboard.
3. Set the start date just after the last settled expenses and the end date to today.
4. The Imported Total will show the outstanding amount, and you can click through to view individual expenses.
Original file line number Diff line number Diff line change
@@ -1,5 +1,41 @@
---
title: Coming Soon
description: Coming Soon
title: Expensify and TSheets/QuickBooks Time Integration Guide
description: This help document explains how to connect TSheets/QuickBooks Time to your Expensify policy
---
## Resource Coming Soon!
# Overview

Connecting Expensify with TSheets/QuickBooks Time can streamline your expense tracking and time management processes. This integration allows you to automatically sync time entries from TSheets/QuickBooks Time with expenses in Expensify, ensuring accurate and efficient expense reporting.

# How to set up the Expensify and TSheets/QuickBooks Time integration

Before you begin, make sure you have the following:

- **Expensify account:** You must have an active Expensify account.
- **TSheets account:** You must have a TSheets account and admin privileges to set up the integration.

Now, follow these steps to set up the integration:

1. Log into your Expensify account on your web browser

2. Go to **Settings > Workspaces > Group > Workspace Name > Connections > TSheets**

3. Click **Connect to TSheets**

4. Follow the on-screen instructions to sign in to your TSheets account and grant Expensify access.

5. Once the integration is authorized, you may need to configure some preferences.
- Specify how you want TSheets time entries to be imported into Expensify. You can typically customize settings like the date range, project/task mapping, and expense categories.

6. Now, we’d recommend testing the integration.
- Create a sample time entry in TSheets and check if it’s automatically reflected in your Expensify account.

7. If the test is successful, save your integration settings.

8. You may also want to schedule regular syncs or specify how often Expensify should pull data from TSheets.

With the integration set up, your TSheets time entries will now appear in Expensify as expenses. You can review, categorize, and submit these expenses as needed.

Congratulations! You've successfully integrated Expensify with TSheets, simplifying your expense tracking and reporting process.

For questions, don't hesitate to reach out to concierge@expensify.com or chat directly with your account manager

Loading

0 comments on commit 92becc1

Please sign in to comment.