List transactions

GET /api/v1/transactions

Retrieve bank transactions with filtering by date, ledger, source account, counter ledger, journal entry, or tags.

Operation ID: list_transactions_api_v1_transactions_get · View as markdown · OpenAPI slice

Authentication

Bearer token authentication. Pass your DayZero API token in the Authorization header and the target business UUID in x-business-id.

Parameters

Query

id array · string default: []

Filter by specific transaction UUIDs

ledger_id array · string default: []

Filter by bank account ledger UUIDs

opposing_ledger_id string

Filter by opposing ledger UUID (the category/expense ledger from journal entry line entries)

source_account_id array · string default: []

Filter by Teal source account IDs (bank accounts from Plaid)

tag_id array · string default: []

Filter by assigned tag UUIDs

journal_entry_id string

Filter by associated journal entry UUID

start_date string · date-time

Include transactions from this date (ISO 8601)

end_date string · date-time

Include transactions up to this date (ISO 8601)

search string

Search transactions by description or counterparty name (case-insensitive partial match)

amount_direction string

Filter by amount direction: 'inflow' for positive amounts (money in), 'outflow' for negative amounts (money out)

only_uncategorized boolean default: False

Filter to show only uncategorized transactions (those without a journal entry or linked to system uncategorized ledgers)

cursor string

Cursor for pagination

limit integer

Pagination limit

direction string default: next

Pagination direction: 'next' or 'prev'

include_total_count boolean default: False

Whether to include total count (expensive - avoid if possible)

sort_by string

Column name to sort by (e.g. 'created_at', 'amount', 'name'). When changing sort, reset cursor to None.

descending boolean default: True

Sort direction: true for descending (newest/largest first), false for ascending

Responses

200 Successful Response

items array · TransactionListItemResponse requiredTransactionListItemResponse

List of items

29 fields
id string required

Unique identifier (UUID7).

amount integer required

Amount in cents. Positive = deposit/income, negative = withdrawal/expense.

currency string

Currency code (USD, CAD, AUD, EUR, or GBP).

datetime string · date required

The date the transaction occurred.

counterparty string

Clean counterparty/merchant name extracted from bank data.

description string

Transaction memo/description (cleaned).

meta object

Additional metadata (raw Plaid description in raw_plaid_description).

categorization_method string

How categorized: 'manual', 'rule', 'ai', or null if uncategorized.

posted_status string

Bank status: 'pending' or 'posted'.

review_status string

Review status: 'unreviewed', 'reviewed', 'flagged'.

source string

Transaction origin: 'manual', 'plaid', or 'bulk_upload'. Determines if the transaction can be deleted.

opposing_line_entry_ids array · string

Linked line entry UUIDs for categorization.

personal boolean

True if marked as personal (non-business) expense.

journal_entry_id string

Linked journal entry UUID.

teal_id string

External Teal accounting system ID.

teal_ledger_id string

Teal ledger ID.

teal_source_account_id string

Teal source account ID.

ledger_id string

Bank account (ledger) UUID.

ledger_name string

Bank account (ledger) name for display.

ledger_type string

Ledger account type: asset, liability, equity, revenue, or expense.

business_id string

Business UUID.

reconciled boolean

True if reconciled with bank statement.

invoice_ids array · string

Invoice UUIDs linked via payments (from invoice_payments junction table).

bill_ids array · string

Bill UUIDs linked via payments (from bill_payments junction table).

created_at string · date-time

Record creation timestamp.

updated_at string · date-time

Last update timestamp.

comment_count integer

Number of comments on this transaction.

journal_entry JournalEntryResponse

Full journal entry details if categorized.

opposing_line_entries array · OpposingLineEntryResponse

Opposing line entries showing the category/account(s) this transaction was posted to. Empty if uncategorized.

total integer

Total number of items (null when not calculated for performance)

limit integer

Pagination limit

next_cursor string

Cursor for next page

prev_cursor string

Cursor for previous page

has_next boolean required

Whether there are more items

has_prev boolean required

Whether there are previous items

401 Unauthorized - Authentication required

403 Forbidden - Insufficient permissions

422 Validation Error

detail array · ValidationError ValidationError
5 fields
loc array · string | integer required
msg string required
type string required
input object
ctx object