TreasuryPrime.Counterparty (TreasuryPrime v1.0.0)

Copy Markdown View Source

A counterparty represents the external bank account on the other side of an ACH or wire transfer — i.e. who you're sending money to, or pulling money from. Created once and then referenced by counterparty_id from TreasuryPrime.Ach.create/3 and TreasuryPrime.Wire.create/3.

Creating a counterparty for ACH

{:ok, counterparty} =
  TreasuryPrime.Counterparty.create(client, %{
    name_on_account: "Adam Smith",
    ach: %{
      account_number: "12345678",
      routing_number: "87654321",
      account_type: "checking"
    }
  })

Creating a counterparty for wire

{:ok, counterparty} =
  TreasuryPrime.Counterparty.create(client, %{
    name_on_account: "Adam Smith",
    wire: %{
      account_number: "12345678",
      routing_number: "87654321",
      bank_name: "Example Bank",
      bank_address: %{
        street_line_1: "123 Main St",
        city: "New York",
        state: "NY",
        postal_code: "10001",
        country: "US"
      }
    }
  })

A single counterparty may have both ach and wire sub-objects set if the same external account should be reachable by either rail.

Summary

Functions

Creates a counterparty. Required: name_on_account, plus at least one of ach or wire.

Fetches a single counterparty by id.

Lists counterparties.

Updates a counterparty.

Types

t()

@type t() :: %TreasuryPrime.Counterparty{
  ach: map() | nil,
  created_at: String.t() | nil,
  id: String.t() | nil,
  name: String.t() | nil,
  name_on_account: String.t() | nil,
  updated_at: String.t() | nil,
  userdata: map() | nil,
  wire: map() | nil
}

Functions

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

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

Creates a counterparty. Required: name_on_account, plus at least one of ach or wire.

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 counterparty 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 counterparties.

Filterable params

name_on_account.

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

update(client, id, params)

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

Updates a counterparty.

update!(client, id, params)

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