TreasuryPrime.ManualHold (TreasuryPrime v1.0.0)

Copy Markdown View Source

Manual holds place a temporary hold on funds in an account — reducing its available_balance (but not current_balance) by amount until the hold is released or it expires. Commonly used to reserve funds for a pending obligation (e.g. a check that hasn't cleared yet, a disputed transaction under investigation) without actually moving money.

Creating a hold

{:ok, hold} =
  TreasuryPrime.ManualHold.create(client, %{
    account_id: "acct_1234567890",
    amount: "250.00",
    description: "Reserve for pending dispute"
  })

Releasing a hold early

TreasuryPrime.ManualHold.release(client, hold.id)

Summary

Functions

Places a hold on funds. Required: account_id, amount.

Fetches a single manual hold by id.

Lists manual holds.

Releases a hold before it would otherwise expire.

Updates a manual hold.

Types

t()

@type t() :: %TreasuryPrime.ManualHold{
  account_id: String.t() | nil,
  amount: String.t() | nil,
  created_at: String.t() | nil,
  description: String.t() | nil,
  id: String.t() | nil,
  org_id: String.t() | nil,
  status: String.t() | nil,
  updated_at: String.t() | nil,
  userdata: map() | nil
}

Functions

create(client, params, opts \\ [])

@spec create(TreasuryPrime.Client.t(), map(), keyword()) ::
  {:ok, t()} | {:error, TreasuryPrime.Error.t()}

Places a hold on funds. Required: account_id, amount.

create!(client, params, opts \\ [])

@spec create!(TreasuryPrime.Client.t(), map(), keyword()) :: t()

get(client, id)

@spec get(TreasuryPrime.Client.t(), String.t()) ::
  {:ok, t()} | {:error, TreasuryPrime.Error.t()}

Fetches a single manual hold by id.

get!(client, id)

@spec get!(TreasuryPrime.Client.t(), String.t()) :: t()

list(client, params \\ %{})

@spec list(TreasuryPrime.Client.t(), map()) ::
  {:ok, TreasuryPrime.Page.t()} | {:error, TreasuryPrime.Error.t()}

Lists manual holds.

Filterable params

account_id, status.

list!(client, params \\ %{})

release(client, id)

@spec release(TreasuryPrime.Client.t(), String.t()) ::
  {:ok, t()} | {:error, TreasuryPrime.Error.t()}

Releases a hold before it would otherwise expire.

update(client, id, params)

@spec update(TreasuryPrime.Client.t(), String.t(), map()) ::
  {:ok, t()} | {:error, TreasuryPrime.Error.t()}

Updates a manual hold.

update!(client, id, params)

@spec update!(TreasuryPrime.Client.t(), String.t(), map()) :: t()