Transaction types
CashCat supports three transaction types:Payment
Payments are spending transactions that draw from your budget categories. When you buy groceries, pay a bill, or make any purchase, you record a payment. Payment transactions must include:amount— The amount spent (positive number)category_id— Which budget category to spend fromaccount_id— Which account the money came fromdate— When the transaction occurred
Payments decrease both your account balance and your category budget.
Income
Income transactions add money to your accounts. This could be your paycheck, freelance payment, gift money, or any other funds coming in. Income transactions include:amount— The amount received (positive number)account_id— Which account receives the moneydate— When the income arrivedcategory_id— Optional, usually not needed
Starting balance
Starting transactions set the initial balance when you first add an account to CashCat. They don’t affect your budget categories—they simply establish where your accounts begin.Starting transactions don’t require a
category_id and aren’t counted as income in your budget.How transactions affect your budget
The type of transaction determines its impact:| Type | Account Balance | Category Budget |
|---|---|---|
| Payment | Decreases | Decreases |
| Income | Increases | No direct effect* |
| Starting | Sets initial balance | Not affected |
Transaction details
Every transaction can include: Required fields:amount— Monetary value (always positive)date— Transaction date in YYYY-MM-DD formattype— One of: payment, income, or starting
account_id— Which account (uses default if not specified)category_id— Which budget category (required for payments)vendor— Where the transaction occurredvendor_id— Link to a vendor recorddescription— Additional notes
If you don’t specify an
account_id, CashCat uses your default account. If you don’t have a default account set, it uses your first account.Vendors
Vendors help you track where you spend money. You can reference vendors by:- Name — Simple text string in the
vendorfield - ID — Reference to a vendor record using
vendor_id
- Consistent naming across transactions
- Filtering and reporting by vendor
- Auto-categorization in future transactions
Filtering and searching
The Transactions API provides powerful filtering: By time:month=2024-03— All transactions in March 2024start_dateandend_date— Custom date range
category_id— Transactions for a specific categoryaccount_id— Transactions in a specific account
amount_minandamount_max— Amount range filters
vendor_id— Transactions with a specific vendorvendor— Search vendor names (partial match)
description_contains— Search transaction descriptions
Editing past transactions
One of CashCat’s strengths is flexibility. You can edit past transactions, and the system automatically recalculates:- Account balances
- Category spending
- Rollover amounts for future months
Balance calculations are performed on-demand when you request them, ensuring they’re always accurate even after editing historical data.
Idempotency
When creating transactions via the API, you can use anIdempotency-Key header to prevent duplicate transactions. If you retry a request with the same key, CashCat returns the original transaction instead of creating a duplicate.
- Mobile apps that might retry on network issues
- Integrations that process webhooks
- Automated transaction imports