> ## Documentation Index
> Fetch the complete documentation index at: https://help.dash.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Receipt inbox

> Upload receipts in bulk on the web, let Dash.fi match them to card transactions, and clean up matches with row-level indicators and bulk actions.

The **receipt inbox** is the receipt-first workflow in the Dash.fi web app. Drop a stack of receipts in and Dash.fi reads each one, matches it to a card transaction, and files it against the resulting expense. Anything the matcher isn't sure about lands in one place for you to sort out.

<Note>
  The receipt inbox is part of the Expenses product. Your organisation must have Expense Management enabled to use it.
</Note>

## When to use it

Use the receipt inbox when you want to work receipt-first rather than transaction-first:

* Upload a batch of receipts as soon as you have them, without waiting for card transactions to appear.
* Review matches the AI wasn't confident about, in one place.
* Confirm auto-matched receipts before they're submitted, or detach ones that landed on the wrong transaction.

To attach a receipt to a specific transaction you already have open, use the receipt section on the expense sheet in [Submitting expenses](/expense-management/submitting-expenses#receipt) instead.

## Opening the inbox

Go to **Expenses → Receipts** in the left-hand navigation. The inbox has three tabs:

| Tab         | Shows                                                                          |
| ----------- | ------------------------------------------------------------------------------ |
| **Review**  | Receipts waiting on you — needs review, no match, match failed, or scan failed |
| **Matched** | Receipts linked to a transaction (auto-matched or user-confirmed)              |
| **All**     | Every receipt on your account                                                  |

Above the list, a header row shows the current view label and a live count of receipts in that tab.

## Uploading receipts

You can add receipts three ways:

* Drag one or more files onto the drop zone anywhere on the page.
* Click **Browse** in the drop zone to open the file picker. The picker supports multi-select — hold ⌘ (macOS) or Ctrl (Windows) to pick several files, or Shift-click to pick a range.
* On the expense sheet, click **Replace** to swap a single receipt on an already-attached expense.

Accepted formats: JPG, PNG, PDF. Maximum file size: 10 MB per file.

### Multi-file upload

When you drop or pick more than one file, Dash.fi uploads up to five at a time in parallel. A progress card appears above the list with a row per file — filename, a progress bar, and one of three states:

| State         | Meaning                                                                                                                                                      |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Uploading** | The file is transferring. The progress bar and percentage tick up in real time.                                                                              |
| **Done**      | Upload succeeded. Dash.fi starts OCR and matching in the background.                                                                                         |
| **Failed**    | The upload didn't complete — for example, the file exceeded 10 MB or the connection dropped. Failed rows stay visible after the batch so you can retry them. |

Once the batch finishes, Dash.fi shows a toast summarising the result — for example, **Uploaded 8 receipts** or **Uploaded 6, failed to upload 2**. Files that exceeded the size limit are counted as skipped in the same toast.

Successful uploads then move through the pipeline — OCR reads the merchant, amount, and date, then the matcher looks for a card transaction to attach the receipt to.

## Forwarding receipts by email

If a receipt already lives in your email — an airline itinerary, a ride-share confirmation, a SaaS invoice — you can forward it to your personal receipt inbox address instead of downloading and uploading the file. Every Dash.fi user has their own address in the form `<slug>@receipts.dash.fi`, and each supported attachment on a forwarded email becomes a receipt on your account, then runs through the same OCR and transaction matcher as an uploaded file.

### Open the Forward by email sheet

1. Go to **Expenses → Receipts**.
2. Click **Forward by email** in the top-right of the page. A side sheet opens with your forwarding address at the top and an activity feed below.
3. Click the copy button next to the address to put it on your clipboard. Save it in your email client's contacts so it's one tap away next time you need to forward something.

The address is personal and frozen for the life of your account, so you don't have to re-copy it. The sheet also lists the three-step pipeline — forward, scan, match — as a quick reference.

<Note>
  Dash.fi only accepts forwards from the address you sign in with. Forwards from a teammate's mailbox land on their receipts, not yours, and forwards from external addresses are rejected. See [Receipts on mobile](/mobile/receipts) for the full sender check.
</Note>

### Read the activity feed

The activity feed lists every email that reached your address, newest first. Each row shows the sender, subject (when present), when the email was received, the per-email status, and — when the email had attachments — a chevron that expands the row to show each attachment with its own outcome. Truncated senders, subjects, and file names reveal the full value on hover.

Narrow the feed with the **Status** dropdown above the list — **All statuses** (default), **Received**, **Processed**, **Rejected**, or **Failed**. The dropdown resets you to page 1, and the pagination footer lets you switch between 10, 25, or 50 rows per page. Closing and reopening the sheet also jumps back to page 1 with fresh results.

#### Email status

| Status        | Meaning                                                                                                 |
| ------------- | ------------------------------------------------------------------------------------------------------- |
| **Received**  | Dash.fi is still processing the email.                                                                  |
| **Processed** | The email was accepted and at least one attachment was handled.                                         |
| **Rejected**  | The email failed a guardrail check; the row shows the rejection reason underneath the pill.             |
| **Failed**    | Processing errored unexpectedly. Reach out to [support@dash.fi](mailto:support@dash.fi) if it persists. |

Rejection reasons Dash.fi records:

| Reason                        | What happened                                                                                                |
| ----------------------------- | ------------------------------------------------------------------------------------------------------------ |
| **Unknown inbox**             | The address the email was sent to doesn't match a provisioned inbox.                                         |
| **Sender not on your domain** | The sender's domain isn't one of your organization's user domains.                                           |
| **Failed authentication**     | The envelope sender failed SPF authentication.                                                               |
| **Flagged as spam**           | SES flagged the email as spam or carrying a virus.                                                           |
| **Unknown sender**            | The domain matches, but the sending address isn't a Dash.fi user. Forward from the mailbox you sign in with. |
| **Volume limit exceeded**     | The address received too many emails in a short window.                                                      |
| **No usable attachment**      | The email had no supported, readable attachment.                                                             |

#### Attachment outcomes

Expand a row with the chevron to see every attachment on the email. Each attachment has its own status pill, and skip or duplicate reasons appear beneath it.

| Outcome             | Meaning                                                                                                                                        |
| ------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| **Processing**      | The attachment is being uploaded as a receipt.                                                                                                 |
| **Receipt added**   | A receipt was created. Click **View receipt** to jump to the matching expense on the **All** tab.                                              |
| **Skipped**         | The attachment was unsupported, unreadable, or oversized — the skip reason shows underneath the pill.                                          |
| **Duplicate**       | The same file content already exists as one of your live receipts, so no new receipt was created. Click **View receipt** to open the original. |
| **Receipt deleted** | The receipt this attachment became has since been deleted. Forwarding the same content again re-imports it.                                    |
| **Failed**          | Import errored unexpectedly.                                                                                                                   |

### Jump to a forwarded receipt

The **View receipt** link on an imported or duplicate attachment closes the sheet, switches you to the **All** tab, and opens the matching receipt — even if it's on a later page of the inbox. From there you can accept a match, pick a different candidate, or work the receipt exactly as if you'd uploaded it yourself.

<Note>
  The mobile app has the same activity feed and address under **Receipts → + → Email a receipt**. See [Receipts on mobile](/mobile/receipts) for the mobile flow.
</Note>

## Row indicators

Each row shows a small badge on the merchant logo or thumbnail that tells you at a glance where the receipt stands. Hover any badge to see a tooltip with the full explanation.

| Badge                                            | Meaning                                                                                                                                                            |
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Paperclip** on the transaction's merchant logo | The receipt is attached to a card transaction — auto-matched or user-confirmed.                                                                                    |
| **Lock** on the transaction's merchant logo      | The receipt is attached, and the underlying expense has been submitted or approved. You can't detach or delete it from the inbox until the expense is unsubmitted. |
| **Sparkle** on a candidate merchant logo         | Dash.fi has a high-confidence suggested match that you haven't confirmed yet. Open the receipt to accept or reject the suggestion.                                 |
| **Clock** on the generic receipt icon            | The receipt is waiting for a card transaction to match — the merchant logo appears here once a match is found.                                                     |

Rows still being read or matched show a spinner and an **Extracting details…** subtitle; they can't be selected until processing finishes.

## Bulk actions

Select rows with the checkboxes on the left of the table. The list paginates 10 receipts per page — selection persists as you page through the current tab and clears automatically when you switch tabs.

* Click a checkbox to toggle a single row.
* Shift-click a checkbox to select a range from the last row you clicked.
* Click the header checkbox to select every eligible row on the current page.

A bulk action bar appears at the top with the count of selected receipts. Each button shows how many of your selected rows the action will actually touch — for example, **Delete 6** or **Detach 4**. Ineligible rows are skipped, and a toast summarises how many succeeded, failed, and were skipped.

| Action     | What it does                                                                                                             | Eligible receipts                                                                                                          |
| ---------- | ------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| **Delete** | Removes the receipt from your inbox. Can't be undone.                                                                    | Unmatched receipts (never auto-attached or confirmed) whose attached expense — if any — hasn't been submitted or approved. |
| **Detach** | Returns the receipt to the inbox so it can be re-matched. The card transaction is unlinked but the receipt file is kept. | Auto-matched and user-confirmed receipts whose attached expense hasn't been submitted or approved.                         |

### Confirmation and eligibility

Both actions open a confirmation dialog with the count of receipts that will be touched. Confirm to run the action in the background — the dialog closes immediately and each affected row shows its own spinner while Dash.fi works through the batch.

Receipts on a submitted or approved expense are locked (they show the lock badge). Both bulk delete and bulk detach skip them — unsubmit the expense first if you need to change the receipt. If your selection includes locked rows, the counts on the bulk buttons and the summary toast reflect what actually ran — for example, **Deleted 8, skipped 2**.

## Working through the review queue

The **Review** tab is where you'll spend most of your time. Click any row to open the receipt sheet on the right; from there you can:

* **Accept a suggested match** on rows with the sparkle badge — the receipt attaches to the suggested transaction.
* **Pick a different candidate** if the top suggestion isn't right — the sheet lists the runners-up.
* **Search for a transaction** with **Find transaction** when the matcher couldn't come up with any candidates.
* **Merge into an existing expense** when the target transaction already has a receipt on it, instead of creating a duplicate.
* **Delete** the receipt if it was uploaded by mistake or is a duplicate.

## Receipt statuses

| Status               | Meaning                                                                |
| -------------------- | ---------------------------------------------------------------------- |
| **Reading receipt…** | OCR or matching is still running                                       |
| **Auto-matched**     | The matcher linked the receipt to a transaction with high confidence   |
| **Confirmed**        | You confirmed the match                                                |
| **Needs review**     | The matcher found candidates but wants you to pick one                 |
| **No match**         | No candidate transaction matched                                       |
| **Match failed**     | Matching hit an error — retry from the sheet                           |
| **Scan failed**      | OCR couldn't parse the file — try a clearer copy or a different format |

## Related

* [Submitting expenses](/expense-management/submitting-expenses) — the transaction-first flow for adding receipts, memos, and categories from the expense sheet
* [Receipts on mobile](/mobile/receipts) — the same inbox in the Dash.fi iOS and Android app, including the mobile version of forwarding by email
* [Download receipts as a ZIP](/expense-management/submitting-expenses#download-receipts-as-a-zip) — pull every receipt for a filtered set of expenses into a single archive
