Log a savings deposit
log_savings_depositAdds- What it does
- Adds a new record and leaves what you had alone. Safe to retry: the same call twice changes nothing more.
- Permission
- Savings goals, change
goals:write
What your assistant is told
Add a deposit toward one savings goal, bumping the goal's running total. goal_id is the goal's UUID (from get_savings_goal_progress). amount_minor is the deposit in integer minor units (cents, > 0); currency is 3-letter ISO and MUST be the goal's own currency — a deposit is never converted, a different code is refused; occurred_at_iso is when the deposit happened, ISO-8601 WITH the user's UTC offset (ask if you don't know it) — without one it is refused, because it could land in the wrong month. Pass a stable idempotency_key so a retry does not double-count; re-using one key for a different goal or amount is refused rather than silently dropped. Returns the updated goal with its new current total. This tool does NOT create goals — the goal must already exist.
Parameters
goalIdid, requiredUUID of the existing savings goal. Useget_savings_goal_progressto list goal ids.amountMinorwhole number, requiredDeposit amount in integer minor units (cents). Must be > 0.currencytext, requiredThe goal's own 3-letter ISO 4217 currency code, e.g. "EUR". A different currency is refused, not converted.occurredAtIsotext, requiredWhen the deposit happened, ISO-8601 WITH the user's UTC offset, e.g. "2026-06-17T09:30:00+03:00" (or "…Z" on UTC). Refused without one. If you don't know the user's offset, ask.idempotencyKeytext, requiredStable idempotency key so a retry does not double-count the deposit.