Budget management — one-off and recurring budgets.
Requires budgets:read and budgets:write scopes.
get/2 and list/2 are cached 5 minutes per user.
Write operations (create, update, archive, delete) invalidate the cache.
Summary
Functions
Archive a budget. Requires budgets:write. Invalidates cache.
Create a budget. Requires budgets:write. Invalidates list cache.
Create a one-off budget. Requires budgets:write.
Create a recurring budget. Requires budgets:write.
Delete a budget. Requires budgets:write. Invalidates cache.
Get a budget by ID. Cached 5 min.
Get budget details (period breakdown). Requires budgets:read.
Get transactions within a budget. Requires budgets:read.
List all budgets. Cached 5 min.
List recommended budgets based on spending patterns. Requires budgets:read.
List budget summaries. Requires budgets:read.
Update a budget. Requires budgets:write. Invalidates cache.
Functions
@spec archive(Tink.Client.t(), String.t()) :: {:ok, map()} | {:error, Tink.Error.t()}
Archive a budget. Requires budgets:write. Invalidates cache.
@spec create(Tink.Client.t(), map()) :: {:ok, map()} | {:error, Tink.Error.t()}
Create a budget. Requires budgets:write. Invalidates list cache.
@spec create_one_off(Tink.Client.t(), map()) :: {:ok, map()} | {:error, Tink.Error.t()}
Create a one-off budget. Requires budgets:write.
@spec create_recurring(Tink.Client.t(), map()) :: {:ok, map()} | {:error, Tink.Error.t()}
Create a recurring budget. Requires budgets:write.
@spec delete(Tink.Client.t(), String.t()) :: :ok | {:error, Tink.Error.t()}
Delete a budget. Requires budgets:write. Invalidates cache.
@spec get(Tink.Client.t(), String.t()) :: {:ok, map()} | {:error, Tink.Error.t()}
Get a budget by ID. Cached 5 min.
@spec get_details(Tink.Client.t(), String.t()) :: {:ok, map()} | {:error, Tink.Error.t()}
Get budget details (period breakdown). Requires budgets:read.
@spec get_transactions(Tink.Client.t(), String.t(), keyword()) :: {:ok, map()} | {:error, Tink.Error.t()}
Get transactions within a budget. Requires budgets:read.
@spec list( Tink.Client.t(), keyword() ) :: {:ok, map()} | {:error, Tink.Error.t()}
List all budgets. Cached 5 min.
@spec list_recommended(Tink.Client.t()) :: {:ok, map()} | {:error, Tink.Error.t()}
List recommended budgets based on spending patterns. Requires budgets:read.
@spec list_summaries(Tink.Client.t()) :: {:ok, map()} | {:error, Tink.Error.t()}
List budget summaries. Requires budgets:read.
@spec update(Tink.Client.t(), String.t(), map()) :: {:ok, map()} | {:error, Tink.Error.t()}
Update a budget. Requires budgets:write. Invalidates cache.