Skip to content
Open app

List finance transactions

GET
/v1/finance/transactions

Cursor-paginated ledger entries (read-only). Requires scope finance:read.

after
integer
limit
integer
default: 25 >= 1 <= 100
type
string
Allowed values: income expense
status
string
Allowed values: completed pending refunded failed
contactId
integer
currency
string

Paginated transaction list.

object
items
Array<object>
object
id
integer
type
string
Allowed values: income expense
amount
number
currency
string
status
string
Allowed values: completed pending refunded failed
occurredAt
string format: date-time
description
string
nullable
categoryId
integer
nullable
contactId
integer
nullable
productName
string
nullable
fee
number
nullable
net

Amount minus fee when a fee is present.

number
nullable
sourceLabel
string
nullable
invoiceId
integer
nullable
nextCursor
integer
nullable
hasMore
boolean

Missing or invalid bearer token.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "unauthorized",
"message": "Invalid bearer principal"
}

The API key does not have the required scope for this operation.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "forbidden",
"message": "scope contacts:write is required"
}