Skip to content

Transactions ​

The household's transaction ledger, implemented in finance.trove.transactions. Transactions arrive via CSV/OFX/QFX import, SimpleFIN bank sync (see Imports) or manual entry, and are enriched with categories, receipts, and subscription detection.

MethodPathPurpose
GET/v1/transactionsList/filter/page the ledger
POST/v1/transactionsRecord a transaction by hand
GET/v1/transactions/{id}One transaction
PATCH/v1/transactions/{id}Update category, merchant, notes, tags or transfer link ({"transferGroupId": null} unlinks a transfer)
DELETE/v1/transactions/{id}Remove a manually entered transaction (synced rows: 409)

Full schemas: openapi/trove-core.yaml, tag Transactions.

GET /v1/transactions takes page, limit (default 50, maximum 500), sort (date,asc, date,desc, amount,asc, amount,desc), from/to (ISO dates), type, accountId, categoryId and q (up to 200 characters). Unpaired transfers between your own accounts are matched into pairs by an hourly job.

Accounts (tag: Accounts) ​

MethodPathPurpose
GET/POST/v1/accountsList / create accounts
GET/PUT/DELETE/v1/accounts/{id}Read, replace, remove an account
POST/v1/accounts/exchange-setup-tokenExchange a SimpleFIN setup token
POST/v1/accounts/{id}/syncSync now
GET/v1/accounts/{id}/sync-logsRecent sync runs

See Imports for the sync routes.

A pre-built Postman collection, generated from the same spec, ships at docs/postman/ — see its README.

Released under the AGPL-3.0-or-later License.