TreasuryPrime.CheckDeposit (TreasuryPrime v1.0.0)

Copy Markdown View Source

Remote Deposit Capture (RDC) — deposit a check by uploading photos of the front and back.

Images must first be uploaded via TreasuryPrime.File.upload/3 (JPEG or PNG) to obtain front_image_file_id / back_image_file_id, which are then referenced here.

Depositing a check

{:ok, front_file} = TreasuryPrime.File.upload(client, front_image_binary, "image/jpeg")
{:ok, back_file} = TreasuryPrime.File.upload(client, back_image_binary, "image/jpeg")

{:ok, deposit} =
  TreasuryPrime.CheckDeposit.create(client, %{
    account_id: "acct_1234567890",
    amount: "100.00",
    front_image_file_id: front_file.id,
    back_image_file_id: back_file.id,
    person_id: "psn_1234567890",
    device: %{os_name: "ios", os_version: "18"}
  }, idempotency_key: TreasuryPrime.Idempotency.generate_key())

The OCR fields (ocr_amount, ocr_account_number, ocr_routing_number, ocr_check_number) are populated by the RDC provider once the deposit is processed and are useful for reconciling against the amount you submitted (see amount_discrepancy_detected).

Summary

Functions

Submits a check deposit. Required: account_id, amount, front_image_file_id, back_image_file_id.

Fetches a single check deposit by id.

Lists check deposits.

Updates a check deposit.

Types

t()

@type t() :: %TreasuryPrime.CheckDeposit{
  account_id: String.t() | nil,
  amount: String.t() | nil,
  amount_discrepancy_detected: boolean() | nil,
  back_image_file_id: String.t() | nil,
  created_at: String.t() | nil,
  decision_data: map() | nil,
  device: map() | nil,
  error: String.t() | nil,
  front_image_file_id: String.t() | nil,
  id: String.t() | nil,
  ocr_account_number: String.t() | nil,
  ocr_amount: String.t() | nil,
  ocr_check_number: String.t() | nil,
  ocr_routing_number: String.t() | nil,
  org_id: String.t() | nil,
  person_id: String.t() | nil,
  rdc_provider_full: map() | nil,
  review_information: list() | nil,
  risk_rating: String.t() | nil,
  risk_rating_description: 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()}

Submits a check deposit. Required: account_id, amount, front_image_file_id, back_image_file_id.

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 check deposit 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 check deposits.

Filterable params

account_id, person_id, status.

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

update(client, id, params)

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

Updates a check deposit.

update!(client, id, params)

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