Moov.BankAccounts (Moov v1.0.0)

Copy Markdown View Source

Link and verify bank accounts. Verification can happen via instant micro-deposits, or via Plaid Link / MX (verify/initiate_verification). Linking a bank account automatically creates payment methods for every rail it's eligible for (ACH debit/credit, RTP/instant, wire, etc).

See https://docs.moov.io/api/sources/bank-accounts/.

Summary

Functions

Completes verification with the data/code returned by the verification provider.

Retrieves a single linked bank account.

Gets the current verification status for a linked bank account.

Initiates instant micro-deposit verification for a linked bank account.

Initiates verification (e.g. via Plaid/MX) for a linked bank account.

Links a bank account to an account.

Lists an account's linked bank accounts.

Functions

complete_micro_deposits(client, account_id, bank_account_id, params)

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

Completes micro-deposit verification.

params: %{amounts: [12, 34]} - the two deposit amounts in cents, in any order.

complete_verification(client, account_id, bank_account_id, params)

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

Completes verification with the data/code returned by the verification provider.

delete(client, account_id, bank_account_id)

@spec delete(Moov.Client.t(), String.t(), String.t()) ::
  {:ok, term()} | {:error, Moov.Error.t()}

Unlinks a bank account.

get(client, account_id, bank_account_id)

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

Retrieves a single linked bank account.

get_verification_status(client, account_id, bank_account_id)

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

Gets the current verification status for a linked bank account.

initiate_micro_deposits(client, account_id, bank_account_id)

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

Initiates instant micro-deposit verification for a linked bank account.

initiate_verification(client, account_id, bank_account_id, params \\ %{})

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

Initiates verification (e.g. via Plaid/MX) for a linked bank account.

link(client, account_id, params)

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

Links a bank account to an account.

params: :holder_name, :holder_type ("individual" or "business"), :routing_number, :account_number, :bank_account_type ("checking" or "savings"), or :plaid_token / :mx_authorization_code if linking through an aggregator instead of raw account numbers.

list(client, account_id, opts \\ [])

@spec list(Moov.Client.t(), String.t(), keyword()) ::
  {:ok, [map()]} | {:error, Moov.Error.t()}

Lists an account's linked bank accounts.