TreasuryPrime.BusinessApplication (TreasuryPrime v1.0.0)

Copy Markdown View Source

Captures identifying/KYB information for a business as part of opening a business account, including its beneficial owners, control persons, and signers (each represented by a TreasuryPrime.PersonApplication). Once approved, business_id is populated with the resulting TreasuryPrime.Business.

Creating one

{:ok, business_app} =
  TreasuryPrime.BusinessApplication.create(client, %{
    name: "Acme Goods Inc",
    legal_structure: "llc",
    tin: "11-3344555",
    established_on: "2014-08-01",
    incorporation_state: "DE",
    description: "Buying and selling of goods",
    naics: "42",
    naics_description: "Wholesale Trade",
    phone_number: "4155551111",
    physical_address: %{
      street_line_1: "115 West St",
      city: "Benicia",
      state: "CA",
      postal_code: "94510"
    },
    person_applications: [
      %{id: ceo_person_app.id, roles: ["signer"], ownership_percentage: 60, title: "CEO"},
      %{id: cfo_person_app.id, roles: ["control_person", "signer"], ownership_percentage: 20, title: "CFO"}
    ]
  })

At least one associated person application must carry the "control_person" role, per FinCEN Customer Due Diligence (CDD) rules for legal entity customers.

Summary

Functions

Creates a business application. Required: name, legal_structure, tin, physical_address, person_applications (with at least one "control_person").

Fetches a single business application by id.

Lists business applications.

Updates a business application (only possible before its account application is approved).

Types

person_application_ref()

@type person_application_ref() :: %{
  id: String.t(),
  roles: [String.t()],
  ownership_percentage: number() | nil,
  title: String.t() | nil
}

t()

@type t() :: %TreasuryPrime.BusinessApplication{
  bank_id: String.t() | nil,
  bankdata: map() | nil,
  business_id: String.t() | nil,
  created_at: String.t() | nil,
  dba: String.t() | nil,
  description: String.t() | nil,
  established_on: String.t() | nil,
  id: String.t() | nil,
  incorporation_state: String.t() | nil,
  legal_structure: String.t() | nil,
  mailing_address: map() | nil,
  naics: String.t() | nil,
  naics_description: String.t() | nil,
  name: String.t() | nil,
  person_applications: [person_application_ref()] | nil,
  phone_number: String.t() | nil,
  physical_address: map() | nil,
  status: String.t() | nil,
  tin: 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()}

Creates a business application. Required: name, legal_structure, tin, physical_address, person_applications (with at least one "control_person").

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 business application 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 business applications.

Filterable params

status, tin.

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

update(client, id, params)

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

Updates a business application (only possible before its account application is approved).

update!(client, id, params)

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