---
title: "List transactions with filters"
method: GET
path: "/companies/{companyId}/transactions"
tags: ["Transactions"]
---

# List transactions with filters

`GET /companies/{companyId}/transactions`

## Request

- Base URL: `https://api.medianfi.com/api/v1`
- URL: `https://api.medianfi.com/api/v1/companies/{companyId}/transactions`
- Auth: HTTP bearer

## Query parameters

- `entityId` union
  - string, uuid
  - 'consolidated'
- `status` 'needs_review' | 'categorized'
- `direction` 'in' | 'out'
- `dateFrom` string, date
- `dateTo` string, date
- `bankAccountId` string, uuid
- `sourceProvider` string
- `sourceAccountId` union
  - string, uuid
  - string[]
- `categoryGlAccountId` union
  - string, uuid
  - string[]
- `classId` string, uuid
- `tagId` union
  - string, uuid
  - string[]
- `untagged` 'true' | 'false'
- `categoryState` 'uncategorized'
- `includeUnassignedSource` 'true' | 'false'
- `includeUnassignedCategory` 'true' | 'false'
- `search` string
- `sort` 'date_desc' | 'date_asc' | 'amount_desc' | 'amount_asc' | 'confidence_desc' | 'confidence_asc'
- `limit` integer
- `cursor` string

## Response `200`

Paginated list of transactions

- TransactionsListResponse
  - `success` boolean
  - `data` Transaction[]
    - `journalEntryUnavailableReason` 'scope_mismatch' | 'ambiguous_posting': Detail responses only. Present when `journalEntry` is null although an entry is linked.
    - `matchedDocumentUnavailableReason` 'scope_mismatch': Detail responses only. Present when `matchedDocument` is null although a document is matched.
    - `id` string, uuid
    - `companyId` string, uuid
    - `entityId` string, uuid
    - `occurredOn` string, date
    - `description` string
    - `merchant` string, nullable
    - `amountCents` integer
    - `currency` string
    - `direction` 'in' | 'out'
    - `status` 'needs_review' | 'categorized'
    - `categoryGlAccountId` string, uuid, nullable
    - `classId` string, uuid, nullable
    - `className` string, nullable
    - `hasReceipt` boolean
    - `bankAccountId` string, uuid, nullable
    - `merchantName` string, nullable
    - `notes` string, nullable
    - `isSplit` boolean
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
  - `meta` PaginationMeta
    - `nextCursor` string, nullable
    - `hasMore` boolean

## Other responses

- `401`: Authentication required
- `403`: Insufficient permissions or not a company member

---

[API](https://skmtc.dev/medianfi/apis/median-api.md) · [All operations](https://skmtc.dev/medianfi/apis/median-api/llms.txt) · [OpenAPI document](https://skmtc.dev/medianfi/apis/median-api/revisions/20090ea32b0d?raw)
