update_transaction
Modify an existing YNAB transaction with only the fields you want to change—account, date, amount, payee, category, memo, cleared, approved, or flag color.
Instructions
Update an existing transaction. Only provide the fields you want to change.
Future-dated transactions are not permitted. Split transaction amounts and dates cannot be changed. If an existing transaction is a split, category_id cannot be changed and updating subtransactions is not supported.
Args: plan_id: The plan ID (use list_plans to find available IDs) transaction_id: The transaction ID to update account_id: New account ID date: New date (YYYY-MM-DD, must not be in the future) amount: New amount in dollars (negative for outflow, positive for inflow) payee_id: New payee ID. For account transfers, use target account's transfer_payee_id. payee_name: New payee name (resolves to existing or creates a new payee) category_id: New category ID. Use null with subtransactions to create a split. memo: New memo (max 500 chars) cleared: 'cleared', 'uncleared', or 'reconciled' approved: Whether the transaction is approved flag_color: 'red', 'orange', 'yellow', 'green', 'blue', 'purple', or null subtransactions: For creating a new split, list of dicts with: amount, payee_id, payee_name, category_id, memo exclude_fields: Optional list of field names to exclude from the response. If omitted, the model's default exclude list is used (see FIELDS.md). Pass [] to return all fields. Pass a custom list to override the default.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| memo | No | ||
| amount | No | ||
| cleared | No | ||
| plan_id | Yes | ||
| approved | No | ||
| payee_id | No | ||
| account_id | No | ||
| flag_color | No | ||
| payee_name | No | ||
| category_id | No | ||
| exclude_fields | No | ||
| transaction_id | Yes | ||
| subtransactions | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |