Loki Docs
Tools › Transactions › Update a transaction

Update a transaction

update_transactionChanges
What it does
Changes or deletes something you had. Your assistant can ask you to confirm first. Safe to retry: the same call twice changes nothing more.
Permission
Transactions, change transactions:write

What your assistant is told

Edit an existing transaction the user already logged — correct a wrong amount, fix the category (this is ALSO how you RECATEGORIZE a transaction), change the date, or fix/clear the note. transaction_id is the transaction's UUID (from get_transactions_in_range). This is a SPARSE patch: pass only the fields you want to change; every omitted field keeps its current value. category accepts a category NAME (case-insensitive) or UUID — use list_categories for valid names. amount_minor is integer minor units (cents, > 0); occurred_at_iso is ISO-8601 and MUST carry the user's UTC offset (ask if you don't know it) — without one the corrected date can land in the wrong month; is_expense flips money-out vs money-in. For description: omit to keep the current note, pass an empty string "" to clear it. account (id, alias or IBAN) MOVES the transaction to another of the user's accounts. kind turns a standard transaction into a transfer (its category is dropped) or back (then category is required). Returns the updated transaction. To REMOVE a transaction instead of correcting it, use delete_transaction; to add a new one use log_transaction.

Parameters

  • transactionIdid, requiredUUID of the transaction to edit. Use get_transactions_in_range to find it.
  • amountMinorwhole number, optionalNew amount in integer minor units (cents, > 0). Omit to keep the current amount.
  • currencytext, optionalNew 3-letter ISO 4217 currency code. Omit to keep the current currency.
  • categorytext, optionalNew category NAME (case-insensitive) or UUID — this is how you recategorize. Omit to keep the current category.
  • occurredAtIsotext, optionalNew occurred-at timestamp, ISO-8601 WITH the user's UTC offset, e.g. "2026-06-17T09:30:00+03:00". Refused without one. Omit to keep the current date.
  • isExpensetrue or false, optionaltrue = expense (money out), false = income (money in). Omit to keep unchanged.
  • descriptiontext, optionalNew free-text note. Omit to keep the current note; pass an empty string "" to clear it.
  • accounttext, optionalAccount id, alias or IBAN to move it to. Omit to keep its account.
  • kindtext, optional"standard" or "transfer". Omit to keep the current kind.
  • counterpartAccounttext, optionalA transfer's other account (id, alias or IBAN); "" clears it. Omit to keep it.