Column.Entities (Column v1.0.0)

Copy Markdown View Source

KYC and KYB entity management.

Entities represent persons or businesses on the Column platform. KYC/KYB compliance state gates what operations (transfers, account creation) are available.

Person entity lifecycle

{:ok, person} = Column.Entities.create_person(%{
  first_name: "Ada",
  last_name: "Lovelace",
  email: "ada@example.com",
  phone_number: "+14155551234",
  date_of_birth: "1815-12-10",
  ssn: "123-45-6789",
  address: %{
    line_1: "123 Main St",
    city: "San Francisco",
    state: "CA",
    postal_code: "94102",
    country_code: "US"
  }
})

Business entity lifecycle

{:ok, biz} = Column.Entities.create_business(%{
  business_name: "Acme Corp",
  ein: "12-3456789",
  business_type: "corporation",
  phone_number: "+14155559999",
  address: %{...}
})

Summary

Functions

Create a business entity (KYB).

Submit third-party evidence for an entity (e.g. from a KYC provider).

Submit evidence with a file upload (multipart/form-data).

Create a compliance narrative for an entity.

Create a person entity (KYC).

Delete an entity.

Delete a compliance narrative.

Get an entity by ID.

Get the KYC/KYB compliance status for an entity.

Get evidence submitted for an entity.

Get additional KYC/KYB requirements for an entity.

Link an associated person to a business entity.

List all entities. Supports cursor pagination.

List associated persons (beneficial owners) for a business entity.

List compliance narratives for an entity.

Submit additional KYC/KYB requirements.

Update associated persons for a business entity.

Update a business entity.

Update a person entity.

Types

id()

@type id() :: String.t()

list_result()

@type list_result() :: {:ok, map()} | {:error, Column.Error.t()}

opts()

@type opts() :: keyword()

params()

@type params() :: map()

result()

@type result() :: {:ok, map()} | {:error, Column.Error.t()}

Functions

create_business(params, opts \\ [])

@spec create_business(params(), opts()) :: result()

Create a business entity (KYB).

create_evidence(id, params, opts \\ [])

@spec create_evidence(id(), params(), opts()) :: result()

Submit third-party evidence for an entity (e.g. from a KYC provider).

create_evidence_upload(id, upload_opts, opts \\ [])

@spec create_evidence_upload(id(), keyword(), opts()) :: result()

Submit evidence with a file upload (multipart/form-data).

file_path is the local path to the document to upload.

Column.Entities.create_evidence_upload("ent_123",
  file_path: "/tmp/passport.pdf",
  document_type: "passport"
)

create_narrative(id, params, opts \\ [])

@spec create_narrative(id(), params(), opts()) :: result()

Create a compliance narrative for an entity.

create_person(params, opts \\ [])

@spec create_person(params(), opts()) :: result()

Create a person entity (KYC).

delete(id, opts \\ [])

@spec delete(id(), opts()) :: result()

Delete an entity.

delete_narrative(id, narrative_id, opts \\ [])

@spec delete_narrative(id(), String.t(), opts()) :: result()

Delete a compliance narrative.

get(id, opts \\ [])

@spec get(id(), opts()) :: result()

Get an entity by ID.

get_compliance(id, opts \\ [])

@spec get_compliance(id(), opts()) :: result()

Get the KYC/KYB compliance status for an entity.

get_evidence(id, opts \\ [])

@spec get_evidence(id(), opts()) :: list_result()

Get evidence submitted for an entity.

get_requirements(id, opts \\ [])

@spec get_requirements(id(), opts()) :: result()

Get additional KYC/KYB requirements for an entity.

list(opts \\ [])

@spec list(opts()) :: list_result()

List all entities. Supports cursor pagination.

list_associated_persons(id, opts \\ [])

@spec list_associated_persons(id(), opts()) :: list_result()

List associated persons (beneficial owners) for a business entity.

list_narratives(id, opts \\ [])

@spec list_narratives(id(), opts()) :: list_result()

List compliance narratives for an entity.

submit_requirements(id, params, opts \\ [])

@spec submit_requirements(id(), params(), opts()) :: result()

Submit additional KYC/KYB requirements.

update_associated_persons(id, params, opts \\ [])

@spec update_associated_persons(id(), params(), opts()) :: result()

Update associated persons for a business entity.

update_business(id, params, opts \\ [])

@spec update_business(id(), params(), opts()) :: result()

Update a business entity.

update_person(id, params, opts \\ [])

@spec update_person(id(), params(), opts()) :: result()

Update a person entity.