---
title: "Search Enriched Expenses"
method: GET
path: "/v1/web/expense/enriched"
tags: ["Expense"]
---

# Search Enriched Expenses

`GET /v1/web/expense/enriched`

Returns expenses enriched with transaction, merchant, receipt, and accounting integration mapping data. Use `transactionStages` to include authorizations alongside settled transactions.

## Query parameters

- `ids` string
- `accountIds` string
- `cardIds` string
- `userIds` string
- `vendorIds` string
- `transactionIds` string
- `transactionStages` string
- `statuses` string
- `transactionStatuses` string
- `spendCategoryIds` string
- `syncEligibilities` string
- `syncStatuses` string
- `hasPolicyViolations` boolean
- `hasExpense` boolean
- `merchantNameLike` string
- `cardHolderNameLike` string
- `transactionDateStart` string, date-time
- `transactionDateEnd` string, date-time
- `amountMin` string
- `amountMax` string
- `page` integer
- `pageSize` integer
- `orderBy` string

## Response `200`

Default Response

- object
  - `items` object[], required
    - `transactionId` string, required
    - `transactionStage` union, required
      - 'authorization'
      - 'settled'
    - `expenseId` string, nullable, required
    - `accountId` string, required
    - `cardId` string, required
    - `mcc` string, nullable, required
    - `merchantId` string, required
    - `merchantName` string, nullable, required
    - `merchantLogoUrl` string, nullable, required
    - `merchantConfidence` string, nullable, required
    - `transactionDate` string, date-time, required
    - `clearedDate` string, date-time, nullable, required
    - `spendCategoryId` string, nullable, required
    - `spendCategories` object[], required
      - `id` string, required
      - `name` string, required
      - `type` union, required
        - 'primary'
        - 'secondary'
    - `amount` string, required
    - `currency` string, required
    - `cardHolderName` string, required
    - `cardHolderId` string, required
    - `status` union, required
      - 'draft'
      - 'submitted'
      - 'approved'
      - 'returned'
      - 'deleted'
    - `creatorUserId` string, nullable, required
    - `policyViolations` union[], nullable, required — Fields that were still missing at the most-recent submit. Empty if submitted clean (or never submitted).
      - union
        - 'memo'
        - 'receipt'
        - 'spendCategoryId'
    - `accountingDate` string, date-time, nullable, required
    - `memo` string, nullable, required
    - `description` string, nullable, required
    - `referenceNumber` string, nullable, required
    - `rutterCustomerId` string, nullable, required
    - `billable` boolean, nullable, required
    - `receiptId` string, nullable, required
    - `receiptStatus` union, required
      - 'active'
      - 'deleted'
    - `file` object, nullable, required
      - `name` string, required
      - `bucketName` string, required
      - `path` string, required
    - `deletedAt` string, date-time, nullable, required
    - `rutterGlAccountId` string, nullable, required
    - `rutterGlAccountName` string, nullable, required
    - `rutterDepartmentId` string, nullable, required
    - `rutterDepartmentName` string, nullable, required
    - `rutterLocationId` string, nullable, required
    - `rutterLocationName` string, nullable, required
    - `rutterVendorId` string, nullable, required
    - `rutterVendorName` string, nullable, required
    - `vendorId` string, nullable, required
    - `rutterCustomerName` string, nullable, required
    - `aiSuggestedSpendCategoryId` string, nullable, required
    - `aiSuggestionConfidence` union, required
      - 'high'
      - 'medium'
      - 'low'
    - `aiSuggestionReasoning` string, nullable, required
    - `vendorSyncStatus` union, required
      - 'inProgress'
      - 'successful'
      - 'failed'
    - `syncEligibility` union, required
      - 'pending'
      - 'ready'
      - 'skipped'
    - `latestSync` object, nullable, required
      - `status` union, required
        - 'inProgress'
        - 'successful'
        - 'failed'
      - `createdAt` string, date-time, required
      - `completedAt` string, date-time
      - `error` object
        - `type` string, required
        - `code` string, required
        - `message` string, required
        - `source` string
  - `hasNext` boolean, required
  - `totalCount` integer, required

## Other responses

- `400` — Default Response
- `401` — The access to this resource has been denied
- `403` — The access to this resource is forbidden
- `default` — Catch-all error response for any unexpected internal errors

---

[API](https://skmtc.net/funneldash/apis/surface-web-api.md) · [All operations](https://skmtc.net/funneldash/apis/surface-web-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/funneldash/surface-web-api/revisions/ac700d65f443/schema)
