TreasuryPrime.IncomingAch (TreasuryPrime v1.0.0)

Copy Markdown View Source

Read-only visibility into ACH transfers originated by a third party outside of Treasury Prime (the reverse of TreasuryPrime.Ach, which is for transfers you originate).

Treasury Prime doesn't create an TreasuryPrime.Ach object for these — the resulting funds movement simply posts as a TreasuryPrime.Transaction on the recipient's account (look for a desc starting with "INCOMING ACH"). This resource exists purely to expose descriptive detail about that incoming transfer (originator name, addenda, etc.) and, where your bank partner supports it, to initiate a return of an incoming credit or debit you need to reject.

Returning an incoming ACH

Use return/3 with one of the supported NACHA return codes:

  • "R10" - customer advises not authorized
  • "R20" - non-transaction account
  • "R29" - corporate customer advises not authorized

Returns are subject to your bank partner's availability and NACHA timing rules (generally within 2 business days of receipt, or up to 60 days for unauthorized consumer debits).

Summary

Functions

Fetches a single incoming ACH transfer by id.

Lists incoming ACH transfers.

Initiates a return for an incoming ACH transfer. return_code must be one of "R10", "R20", or "R29". Availability depends on your bank partner.

Updates an incoming ACH transfer (see return/3 for the common case).

Types

t()

@type t() :: %TreasuryPrime.IncomingAch{
  account_id: String.t() | nil,
  addenda: [String.t()] | nil,
  amount: String.t() | nil,
  created_at: String.t() | nil,
  description: String.t() | nil,
  direction: String.t() | nil,
  error: String.t() | nil,
  id: String.t() | nil,
  org_id: String.t() | nil,
  originator_name: String.t() | nil,
  sec_code: String.t() | nil,
  status: String.t() | nil,
  trace_number: String.t() | nil,
  updated_at: String.t() | nil,
  userdata: map() | nil
}

Functions

get(client, id)

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

Fetches a single incoming ACH transfer 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 incoming ACH transfers.

Filterable params

account_id, direction, status, trace_number.

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

return(client, id, return_code)

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

Initiates a return for an incoming ACH transfer. return_code must be one of "R10", "R20", or "R29". Availability depends on your bank partner.

update(client, id, params)

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

Updates an incoming ACH transfer (see return/3 for the common case).

update!(client, id, params)

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