Transactions are the core financial records in Finper. Each transaction records a movement of money — an expense, an income, or a non-computable entry — linked to a specific account and category. Transactions also carry an optional store reference, which is auto-created if the named store does not yet exist. All endpoints require theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/soker90/finper/llms.txt
Use this file to discover all available pages before exploring further.
token header.
Transaction Type Reference
| Type | Description |
|---|---|
expense | Money leaving an account (e.g. a purchase, a bill payment). |
income | Money entering an account (e.g. a salary, a refund). |
not_computable | A movement that should not be counted in income/expense totals (e.g. an inter-account transfer recorded manually). |
POST /api/transactions
Create a new transaction for the authenticated user.POST /api/transactions
If a
store name is provided and no store with that name exists for the user, a new store record is created automatically. This allows quick entry without pre-registering every merchant.Request Body
Transaction date as a Unix timestamp in milliseconds (e.g.
1704067200000 for 2024-01-01).Monetary amount of the transaction. Use the absolute value — the
type field determines direction.Transaction type. One of:
expense, income, not_computable.ID of the category to associate this transaction with. The category must belong to the authenticated user.
ID of the account this transaction is recorded against. The account must belong to the authenticated user.
Name of the store or merchant. If the name does not match an existing store for this user, a new store is created automatically.
Optional free-text note for the transaction.
Optional array of tag strings. Each tag must be 30 characters or fewer; a maximum of 10 tags per transaction is allowed.
Response — 201 Created
Returns the newly created transaction object with thecategory and account fields populated.
Example
GET /api/transactions
List transactions for the authenticated user, with optional filtering.GET /api/transactions
Query Parameters
Filter to transactions on this exact date (Unix ms). Exact-match on the stored timestamp.
Filter by category ID. Returns only transactions belonging to this category.
Filter by transaction type. One of:
expense, income, not_computable.Filter by account ID. Returns only transactions for the specified account.
Filter by store ID. Returns only transactions linked to the specified store.
Page number for pagination (1-based).
Response — 200 OK
Returns an array of transaction objects. Thecategory and account fields are populated with their respective objects.
Unique identifier of the transaction.
Transaction date as Unix milliseconds.
Monetary amount.
One of
expense, income, or not_computable.Populated category object (id, name, type).
Populated account object (id, name, bank).
Store name, if provided.
Free-text note, if provided.
Array of tag strings, if any.
Example
PUT /api/transactions/:id
Replace all fields of an existing transaction (full update).PUT /api/transactions/:id
Path Parameters
The unique identifier of the transaction to update.
Request Body
The same fields asPOST /api/transactions. All fields are considered in the replacement — omitted optional fields are cleared.
Transaction date as Unix milliseconds.
Monetary amount.
One of:
expense, income, not_computable.Category ID.
Account ID.
Store name (optional).
Free-text note (optional).
Array of tag strings (optional).
Response — 200 OK
Returns the updated transaction object.Example
DELETE /api/transactions/:id
Permanently delete a transaction.DELETE /api/transactions/:id
Path Parameters
The unique identifier of the transaction to delete.