Column.ACH (Column v1.0.0)

Copy Markdown View Source

ACH transfer origination and receipt.

Supports CREDIT and DEBIT, standard and same-day settlement. Entry class codes: PPD, CCD, WEB, TEL, POP, IAT.

Creating a credit

{:ok, transfer} = Column.ACH.create(%{
  bank_account_id: "bacc_123",
  counterparty_id: "cpty_456",
  amount: 10_000,          # in cents
  currency_code: "USD",
  type: "CREDIT",
  entry_class_code: "PPD",
  company_entry_description: "PAYROLL",
  effective_date: "2024-06-15"
})

Same-day ACH

Column.ACH.create(%{..., same_day: true})

Returns

Use create_return/2 when you receive an inbound ACH you need to reject (e.g. account frozen). reverse/2 is for reversing an ACH you originated within 5 business days.

Summary

Functions

Cancel an ACH transfer (only possible before it has been submitted to the network).

Create an ACH transfer (CREDIT or DEBIT).

Create an ACH positive pay rule to block unauthorized debits.

Create an ACH return for an inbound transfer.

Delete an ACH positive pay rule.

Get an ACH transfer by ID.

Get an ACH positive pay rule.

Get a specific ACH return.

List all ACH transfers. Supports cursor pagination and optional filters.

List ACH positive pay rules.

List all ACH returns for a transfer.

Reverse an ACH transfer you originated. Must be within 5 business days of settlement. Full amount only.

Types

id()

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

opts()

@type opts() :: keyword()

params()

@type params() :: map()

result()

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

Functions

cancel(id, opts \\ [])

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

Cancel an ACH transfer (only possible before it has been submitted to the network).

create(params, opts \\ [])

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

Create an ACH transfer (CREDIT or DEBIT).

create_positive_pay_rule(params, opts \\ [])

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

Create an ACH positive pay rule to block unauthorized debits.

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

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

Create an ACH return for an inbound transfer.

delete_positive_pay_rule(id, opts \\ [])

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

Delete an ACH positive pay rule.

get(id, opts \\ [])

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

Get an ACH transfer by ID.

get_positive_pay_rule(id, opts \\ [])

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

Get an ACH positive pay rule.

get_return(return_id, opts \\ [])

@spec get_return(String.t(), opts()) :: result()

Get a specific ACH return.

list(opts \\ [])

@spec list(opts()) :: result()

List all ACH transfers. Supports cursor pagination and optional filters.

list_positive_pay_rules(opts \\ [])

@spec list_positive_pay_rules(opts()) :: result()

List ACH positive pay rules.

list_returns(id, opts \\ [])

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

List all ACH returns for a transfer.

reverse(id, params \\ %{}, opts \\ [])

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

Reverse an ACH transfer you originated. Must be within 5 business days of settlement. Full amount only.