Skip to content

Commit

Permalink
Merge branch 'Expensify:main' into fix/43623
Browse files Browse the repository at this point in the history
  • Loading branch information
daledah authored Jul 9, 2024
2 parents dcb160f + 4ecfa0f commit 4c80b47
Show file tree
Hide file tree
Showing 209 changed files with 9,071 additions and 1,669 deletions.
2 changes: 1 addition & 1 deletion .github/actions/javascript/bumpVersion/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -1928,7 +1928,7 @@ class SemVer {
do {
const a = this.build[i]
const b = other.build[i]
debug('prerelease compare', i, a, b)
debug('build compare', i, a, b)
if (a === undefined && b === undefined) {
return 0
} else if (b === undefined) {
Expand Down
38 changes: 37 additions & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,24 @@ jobs:

- name: 🚀 Push tags to trigger staging deploy 🚀
run: git push --tags

- name: Warn deployers if staging deploy failed
if: ${{ failure() }}
uses: 8398a7/action-slack@v3
with:
status: custom
custom_payload: |
{
channel: '#deployer',
attachments: [{
color: "#DB4545",
pretext: `<!subteam^S4TJJ3PSL>`,
text: `💥 NewDot staging deploy failed. 💥`,
}]
}
env:
GITHUB_TOKEN: ${{ github.token }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}

deployProduction:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -65,6 +83,24 @@ jobs:
PR_LIST: ${{ steps.getReleasePRList.outputs.PR_LIST }}

- name: 🚀 Create release to trigger production deploy 🚀
run: gh release create ${{ env.PRODUCTION_VERSION }} --generate-notes
run: gh release create ${{ env.PRODUCTION_VERSION }} --notes '${{ steps.getReleaseBody.outputs.RELEASE_BODY }}'
env:
GITHUB_TOKEN: ${{ steps.setupGitForOSBotify.outputs.OS_BOTIFY_API_TOKEN }}

- name: Warn deployers if production deploy failed
if: ${{ failure() }}
uses: 8398a7/action-slack@v3
with:
status: custom
custom_payload: |
{
channel: '#deployer',
attachments: [{
color: "#DB4545",
pretext: `<!subteam^S4TJJ3PSL>`,
text: `💥 NewDot production deploy failed. 💥`,
}]
}
env:
GITHUB_TOKEN: ${{ github.token }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1009000505
versionName "9.0.5-5"
versionCode 1009000512
versionName "9.0.5-12"
// 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
33 changes: 33 additions & 0 deletions assets/images/product-illustrations/folder-with-papers.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion docs/_layouts/default.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
<script defer src="/assets/js/main.js"></script>
<script defer src="/assets/js/platform-tabs.js"></script>
<script defer src="/assets/js/selector.js"></script>
<script async src="https://cse.google.com/cse.js?cx=41f40d6e5c14246ff"></script>
<script async src="https://cse.google.com/cse.js?cx=4149bc31c5c314a1a"></script>
<!-- Google Tag Manager -->
<script>(function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-TQBQW7CR');</script>
<!-- End Google Tag Manager -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ description: Expensify Card Settings for Employees

# Using Your Expensify Visa® Commercial Card

## Getting Started
### Activate Your Card
You can start using your card immediately upon receipt by logging into your Expensify account, heading to your Home tab, and following the prompts on the _**Activate your Expensify Card**_ task.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,50 +1,50 @@
---
title: Expensify Card - Transaction Disputes & Fraud
description: Learn how to dispute an Expensify Card transaction.
description: Understand how to dispute an Expensify Card transaction.
---
# Overview
When using your Expensify Visa® Commercial Card, you may come across transaction errors, which can include things like:
- Unrecognized, unauthorized, or fraudulent charges.
- Transactions of an incorrect amount.
# Disputing Expensify Card Transactions
While using your Expensify Visa® Commercial Card, you might encounter transaction errors, such as:
- Unauthorized transaction activity
- Incorrect transaction amounts.
- Duplicate charges for a single transaction.
- Missing a promised merchant refund.
- Missing merchant refunds.

You’ll find all the relevant information on handling these below.
When that happens, you may need to file a dispute for one or more transactions.

# How to Navigate the Dispute Process
## Disputing a Transaction

If you spot an Expensify Card transaction error, please contact us immediately at [[email protected]](mailto:[email protected]). After that, we'll ask a few questions to better understand the situation. If the transaction has already settled in your account (no longer pending), we can file a dispute with our card processor on your behalf.

If you suspect fraud on your Expensify Card, don't hesitate to cancel it by heading to Settings > Account > Credit Card Import > Request A New Card. Better safe than sorry!

Lastly, if you haven’t enabled Two-Factor Authentication (2FA) yet, please do so ASAP to add an additional layer of security to your account.
If you notice a transaction error on your Expensify Card, contact us immediately at [email protected]. We will ask a few questions to understand the situation better, and file a dispute with our card processor on your behalf.

## Types of Disputes
The most common types of disputes are:
- Unauthorized or fraudulent disputes
- Service disputes

There are two main dispute types:
### Unauthorized or fraudulent disputes
- Charges made after your card was lost or stolen.
- Unauthorized charges while your card is in your possession (indicating compromised information).
- Continued charges for a canceled recurring subscription.

1. Unauthorized charges/fraud disputes, which include:
- Charges made with your card after it was lost or stolen.
- Unauthorized charges while your card is still in your possession (indicating compromised card information).
- Continued charges for a canceled recurring subscription.
**If there are transactions made with your Expensify Card you don't recognize, you'll want to do the following right away:**
1. Cancel your card by going to _**Settings > Account > Credit Card Import > Request A New Card**_.
2. Enable Two-Factor Authentication (2FA) for added security under _**Settings > Account > Account Details > Two Factor Authentication**_.

2. Service disputes, which include:
- Received damaged or defective merchandise.
- Charged for merchandise but never received it.
- Double-charged for a purchase made with another method (e.g., cash).
- Made a return but didn't receive a timely refund.
- Multiple charges for a single transaction.
- Charges settled for an incorrect amount.
### Service Disputes
- Received damaged or defective merchandise.
- Charged for merchandise that was never received.
- Double-charged for a purchase made with another method (e.g., cash).
- Made a return but didn't receive a refund.
- Multiple charges for a single transaction.
- Charges settled for an incorrect amount.

You don't need to categorize your dispute; we'll handle that. However, this may help you assess if a situation warrants a dispute. In most cases, the initial step for resolving a dispute should be contacting the merchant, as they can often address the issue promptly.
For service disputes, contacting the merchant is often the quickest way to resolve the dispute.

## Simplifying the Dispute Process

To ensure the dispute process goes smoothly, please:
- Provide detailed information about the disputed charge, including why you're disputing it, what occurred, and any steps you've taken to address the issue.
- If you recognize the merchant but not the charge, and you've transacted with them before, contact the merchant directly, as it may be a non-fraudulent error.
- Include supporting documentation like receipts or cancellation confirmations when submitting your dispute to enhance the likelihood of a favorable resolution (not required but highly recommended).
To ensure a smooth dispute process, please:
- Provide detailed information about the disputed charge, including why you're disputing it and any steps you've taken to address the issue.
- If you recognize the merchant but not the charge, contact the merchant directly.
- Include supporting documentation (e.g., receipts, cancellation confirmations) when submitting your dispute to increase the chances of a favorable resolution (recommended but not required).
- Make sure the transaction isn't pending (pending transactions cannot be disputed).


{% include faq-begin.md %}

Expand Down
Loading

0 comments on commit 4c80b47

Please sign in to comment.