Column.Simulation (Column v1.0.0)

Copy Markdown View Source

Sandbox simulation endpoints.

Trigger real network events synthetically in the sandbox environment so you can test end-to-end flows without external parties or waiting for actual network settlement windows.

These endpoints only work in the sandbox environment. Calling them against a production API key will return a 403 error.

Test a full ACH credit flow

# 1. Simulate an inbound ACH credit arriving
{:ok, _} = Column.Simulation.receive_ach_credit(%{
  bank_account_id: "bacc_123",
  amount: 100_000,
  currency_code: "USD",
  company_name: "EMPLOYER CORP",
  entry_class_code: "PPD"
})

# 2. Settle the resulting ACH transfer
{:ok, transfers} = Column.ACH.list(bank_account_id: "bacc_123")
transfer_id = hd(transfers["data"])["id"]
{:ok, _} = Column.Simulation.settle_ach(transfer_id)

Test a realtime RFP

{:ok, _} = Column.Simulation.receive_realtime_rfp(%{
  bank_account_id: "bacc_123",
  amount: 50_000,
  currency_code: "USD"
})

Summary

Functions

Simulate depositing an issued check (sandbox only).

Simulate receiving an inbound ACH credit.

Simulate receiving an inbound ACH debit.

Simulate receiving an inbound international wire.

Simulate receiving an inbound realtime transfer.

Simulate receiving a realtime Request for Payment.

Simulate receiving an inbound domestic wire.

Simulate receiving a wire drawdown request.

Simulate receiving a wire return request.

Simulate settling an ACH transfer.

Simulate settling a check deposit.

Simulate settling a domestic wire transfer.

Types

id()

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

opts()

@type opts() :: keyword()

params()

@type params() :: map()

result()

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

Functions

deposit_check(params, opts \\ [])

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

Simulate depositing an issued check (sandbox only).

receive_ach_credit(params, opts \\ [])

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

Simulate receiving an inbound ACH credit.

receive_ach_debit(params, opts \\ [])

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

Simulate receiving an inbound ACH debit.

receive_international_wire(params, opts \\ [])

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

Simulate receiving an inbound international wire.

receive_realtime(params, opts \\ [])

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

Simulate receiving an inbound realtime transfer.

receive_realtime_rfp(params, opts \\ [])

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

Simulate receiving a realtime Request for Payment.

receive_wire(params, opts \\ [])

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

Simulate receiving an inbound domestic wire.

receive_wire_drawdown_request(params, opts \\ [])

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

Simulate receiving a wire drawdown request.

receive_wire_return_request(params, opts \\ [])

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

Simulate receiving a wire return request.

settle_ach(id, opts \\ [])

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

Simulate settling an ACH transfer.

settle_check(id, opts \\ [])

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

Simulate settling a check deposit.

settle_wire(id, opts \\ [])

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

Simulate settling a domestic wire transfer.