Column.InternationalWires (Column v1.0.0)

Copy Markdown View Source

Cross-border SWIFT wire transfers in 100+ currencies.

FX quote lifecycle

When sending in a foreign currency, you must first obtain and book an FX quote:

# 1. Request a quote
{:ok, quote} = Column.InternationalWires.request_fx_quote(%{
  buy_currency: "EUR",
  sell_currency: "USD",
  buy_amount: 10_000
})

# 2. Book the quote (locks the rate)
{:ok, booked} = Column.InternationalWires.book_fx_quote(quote["id"])

# 3. Create the transfer referencing the booked quote
{:ok, wire} = Column.InternationalWires.create(%{
  bank_account_id: "bacc_123",
  counterparty_id: "cpty_456",
  fx_quote_id: booked["id"],
  beneficiary_name: "Acme GmbH",
  beneficiary_iban: "DE89370400440532013000",
  beneficiary_address: %{...}
})

Tracking

Use track/2 to get SWIFT gpi status updates on outgoing transfers.

Summary

Functions

Book (lock) a foreign exchange quote.

Cancel an outgoing international wire.

Cancel a foreign exchange quote.

Create an international wire transfer.

Submit an amendment to an international wire.

Get an international wire transfer by ID.

Get a foreign exchange quote by ID.

Get the current FX rate sheet.

List all international wire transfers.

Request a foreign exchange quote.

Return an incoming international wire.

Track an international wire transfer via SWIFT gpi.

Types

id()

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

opts()

@type opts() :: keyword()

params()

@type params() :: map()

result()

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

Functions

book_fx_quote(id, opts \\ [])

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

Book (lock) a foreign exchange quote.

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

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

Cancel an outgoing international wire.

cancel_fx_quote(id, opts \\ [])

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

Cancel a foreign exchange quote.

create(params, opts \\ [])

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

Create an international wire transfer.

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

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

Submit an amendment to an international wire.

get(id, opts \\ [])

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

Get an international wire transfer by ID.

get_fx_quote(id, opts \\ [])

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

Get a foreign exchange quote by ID.

get_fx_rate_sheet(opts \\ [])

@spec get_fx_rate_sheet(opts()) :: result()

Get the current FX rate sheet.

list(opts \\ [])

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

List all international wire transfers.

request_fx_quote(params, opts \\ [])

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

Request a foreign exchange quote.

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

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

Return an incoming international wire.

track(id, opts \\ [])

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

Track an international wire transfer via SWIFT gpi.