Two-level hierarchy
Every transaction can carry two category fields:category_primary— the top-level group, such asFOOD_AND_DRINKorTRANSPORTATIONcategory_detailed— a granular subcategory nested under the primary, such asFOOD_AND_DRINK_GROCERIESorTRANSPORTATION_GAS_AND_FUEL
FOOD_AND_DRINK_.
Where categories come from
A transaction’s category can be set by three sources, in increasing order of precedence:- Provider-assigned — Plaid and Teller classify transactions automatically during sync using their own enrichment pipelines. These values populate
category_primaryandcategory_detailedon initial import. - Rule-assigned — Breadbox’s rules engine can override the provider category based on conditions you define. See Auto-categorize transactions with rules.
- Manually overridden — You can set a category directly on any transaction from the dashboard or via the API. Manual overrides take the highest precedence and are protected from being overwritten by rules.
The category_override flag
When you manually set a transaction’s category, Breadbox marks it with . This signals to the rules engine that the transaction has a deliberate human assignment and should not be touched.
Rules that would otherwise reassign the category are skipped for any transaction where
category_override is not 'none'. Tags and comments from rules still apply — only set_category actions are suppressed.DELETE /api/v1/transactions/{id}/category. This removes the override and re-enables rule-based categorization on the next sync.
Overriding a category from the dashboard
Open the transaction
Navigate to Transactions in the dashboard sidebar and click any transaction to open its detail view.
Edit the category
Click the category field or the edit icon next to it. A dropdown appears showing all available categories.
Managing categories via the API
Breadbox lets you create your own categories, update existing ones, merge duplicates, and delete categories you no longer need. The snippets below are a quick tour — see the full Categories API reference for every parameter, response shape, and error code.List all categories
List all categories
Override a transaction's category
Override a transaction's category
Reset a category to the provider default
Reset a category to the provider default
Create a custom category
Create a custom category
Update a category
Update a category
Merge a category into another
Merge a category into another
Merging reassigns all transactions from the source category to the target, then deletes the source.
Delete a category
Delete a category
Batch-categorize multiple transactions
Batch-categorize multiple transactions
Set the category on up to 500 transactions in a single request. Each item pairs a transaction with its target category, so you can assign different categories in one call.