Skip to main content
Expense reports are the foundation of expense management in New Expensify. They allow you to organize, track, and submit expenses for approval and reimbursement.

What are Expense Reports?

An expense report is a collection of expenses submitted together for approval and reimbursement. Reports can be created automatically or manually, depending on your workspace settings.

Report Types

New Expensify supports several types of reports:

Expense Reports

Standard expense reports for business expenses that require approval and reimbursement

Invoice Reports

Invoices sent to or received from external parties for business transactions

Track Expense Reports

Personal expenses tracked for tax purposes or personal records

Money Request Reports

Individual expense requests or IOU reports between users

Report States

Reports move through different states during their lifecycle:
// From src/libs/ReportUtils.ts
function isOpenReport(report: OnyxEntry<Report>): boolean {
    return report?.stateNum === CONST.REPORT.STATE_NUM.OPEN && report?.statusNum === CONST.REPORT.STATUS_NUM.OPEN;
}

function isProcessingReport(report: OnyxEntry<Report>): boolean {
    return report?.stateNum === CONST.REPORT.STATE_NUM.SUBMITTED && report?.statusNum === CONST.REPORT.STATUS_NUM.SUBMITTED;
}

Common Report States

StateDescription
OpenReport is being created and expenses can be added
ProcessingReport has been submitted and is awaiting approval
ApprovedReport has been approved by all required approvers
ReimbursedReport has been paid out to the submitter
ClosedReport is finalized and archived

Report Components

Report Details

Each report contains essential information:
  • Report Name: Auto-generated or custom title
  • Report ID: Unique identifier for the report
  • Policy: The workspace the report belongs to
  • Owner: The person who created the report
  • Manager: The person responsible for approving the report
  • Total Amount: Sum of all expenses on the report
  • Currency: The report’s currency
  • Created Date: When the report was created
  • Submitted Date: When the report was submitted for approval

Report Actions

Reports track all actions taken on them:
// From src/libs/actions/Report/index.ts
function addComment({
    report,
    notifyReportID,
    ancestors,
    text,
    timezoneParam,
    currentUserAccountID,
    shouldPlaySound,
    isInSidePanel,
    pregeneratedResponseParams,
    reportActionID,
}: AddCommentParams) {
    if (shouldPlaySound) {
        playSound(SOUNDS.DONE);
    }
    addActions({report, notifyReportID, ancestors, timezoneParam, currentUserAccountID, text, isInSidePanel, pregeneratedResponseParams, reportActionID});
}

Report Features

Automatic Report Creation

Reports can be created automatically based on your workspace settings:
  • Instant Submit: Each expense creates its own report
  • Daily: Expenses are grouped into daily reports
  • Weekly: Expenses are grouped into weekly reports
  • Monthly: Expenses are grouped into monthly reports
  • Manual: You create reports manually

Report Threads

Each report has a chat thread where team members can:
  • Discuss expenses
  • Request clarification
  • Provide receipts
  • Add comments and notes
Report threads help maintain context and communication history for each expense report.

Working with Reports

Viewing Report Details

The Report Details page provides a comprehensive view of the report:
// From src/pages/ReportDetailsPage.tsx
function ReportDetailsPage({policy, report, route, reportMetadata}: ReportDetailsPageProps) {
    const {translate, localeCompare, formatPhoneNumber} = useLocalize();
    const {isOffline} = useNetwork();
    
    const isExpenseReport = isMoneyRequestReport || isInvoiceReport || isMoneyRequest;
    const isSingleTransactionView = isMoneyRequest || isTrackExpenseReport;
    const isReportArchived = useReportIsArchived(report?.reportID);
    
    // ... Report details rendering logic
}

Report Navigation

Access reports from:
  • Inbox: View all your active reports
  • Workspace: Filter reports by workspace
  • Search: Find specific reports using search
  • Notifications: Access reports from notification alerts

Best Practices

Use meaningful report names and add relevant comments to help approvers understand the context of your expenses.
Submit reports in a timely manner to ensure faster reimbursement and accurate financial records.
Always review your report for accuracy, completeness, and policy compliance before submission.
Monitor report threads and respond quickly to any questions or requests from approvers.

Creating Reports

Learn how to create and manage expense reports

Approval Workflows

Understand the approval process

Report Fields

Customize reports with custom fields

Build docs developers (and LLMs) love