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

# Search Expenses

`GET /v1/web/expense`

Pure domain search — returns expense records without transaction/merchant/receipt enrichment. Use /v1/web/expense/enriched for the accounting view.

## Query parameters

- `ids` string
- `transactionIds` string
- `statuses` string
- `page` integer
- `pageSize` integer
- `orderBy` string

## Response `200`

Default Response

- object
  - `items` object[], required
    - `id` string, required
    - `status` union, required
      - 'draft'
      - 'submitted'
      - 'approved'
      - 'returned'
      - 'deleted'
    - `creatorUserId` string, required
    - `accountingDate` string, date-time, nullable, required
    - `memo` string, nullable, required
    - `description` string, nullable, required
    - `referenceNumber` string, nullable, required
    - `rutterCustomerId` string, nullable, required
    - `rutterVendorId` string, nullable, required
    - `rutterDepartmentId` string, nullable, required
    - `rutterLocationId` string, nullable, required
    - `billable` boolean, nullable, required
    - `spendCategoryId` 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'
    - `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
    - `readyAt` string, date-time, nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `deletedAt` string, date-time, nullable, required
    - `transactionId` string, required
  - `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)
