Lithic.Resources.Cards (Lithic v1.0.0)

Copy Markdown View Source

Manage Lithic cards — virtual, physical, single-use, and merchant-locked.

Lifecycle

{:ok, card} = Lithic.Cards.create(%{type: "VIRTUAL"})
{:ok, card} = Lithic.Cards.update(card["token"], %{state: "PAUSED"})
{:ok, card} = Lithic.Cards.renew(card["token"], %{shipping_address: addr})
{:ok, card} = Lithic.Cards.reissue(card["token"], %{shipping_address: addr})
{:ok, card} = Lithic.Cards.convert_physical(card["token"], %{shipping_address: addr})

Pagination / Streaming

{:ok, page} = Lithic.Cards.list(page_size: 25, state: "OPEN")
Lithic.Cards.stream() |> Enum.take(50)

Summary

Functions

Convert a virtual card to a physical card.

Retrieve a single card by token.

Get the balances for a card.

Get the card program for a card.

Get an embed URL for displaying card PAN/CVV without PCI scope.

Fetch behavioral signals for a card.

Get the available spend limit for a card.

List cards with cursor-based pagination.

List card programs.

List financial transactions on a card.

Provision a card for a digital wallet (Apple Pay, Google Pay, Samsung Pay).

Reissue a physical card (replace lost/stolen).

Renew a card (generates a new PAN, keeps token).

Search for a card by PAN (primary account number).

Lazily stream all cards across pages.

Functions

convert_physical(card_token, params, opts \\ [])

@spec convert_physical(String.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Lithic.Error.t()}

Convert a virtual card to a physical card.

create(params, opts \\ [])

@spec create(
  map(),
  keyword()
) :: {:ok, map()} | {:error, Lithic.Error.t()}

Create a card.

Required: type"VIRTUAL", "PHYSICAL", "MERCHANT_LOCKED", "SINGLE_USE".

get(card_token, opts \\ [])

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

Retrieve a single card by token.

get_balance(card_token, opts \\ [])

@spec get_balance(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Lithic.Error.t()}

Get the balances for a card.

get_card_program(card_program_token, opts \\ [])

@spec get_card_program(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Lithic.Error.t()}

Get the card program for a card.

get_embed_url(card_token, params \\ %{}, opts \\ [])

@spec get_embed_url(String.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Lithic.Error.t()}

Get an embed URL for displaying card PAN/CVV without PCI scope.

get_financial_transaction(card_token, financial_transaction_token, opts \\ [])

@spec get_financial_transaction(String.t(), String.t(), keyword()) ::
  {:ok, map()} | {:error, Lithic.Error.t()}

Get a financial transaction on a card.

get_signals(card_token, opts \\ [])

@spec get_signals(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Lithic.Error.t()}

Fetch behavioral signals for a card.

get_spend_limit(card_token, opts \\ [])

@spec get_spend_limit(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Lithic.Error.t()}

Get the available spend limit for a card.

list(opts \\ [])

@spec list(keyword()) :: {:ok, Lithic.Page.t(map())} | {:error, Lithic.Error.t()}

List cards with cursor-based pagination.

Options: page_size, starting_after, ending_before, state, account_token.

list_card_programs(opts \\ [])

@spec list_card_programs(keyword()) ::
  {:ok, Lithic.Page.t(map())} | {:error, Lithic.Error.t()}

List card programs.

list_financial_transactions(card_token, opts \\ [])

@spec list_financial_transactions(
  String.t(),
  keyword()
) :: {:ok, Lithic.Page.t(map())} | {:error, Lithic.Error.t()}

List financial transactions on a card.

provision(card_token, params, opts \\ [])

@spec provision(String.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Lithic.Error.t()}

Provision a card for a digital wallet (Apple Pay, Google Pay, Samsung Pay).

reissue(card_token, params \\ %{}, opts \\ [])

@spec reissue(String.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Lithic.Error.t()}

Reissue a physical card (replace lost/stolen).

renew(card_token, params \\ %{}, opts \\ [])

@spec renew(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Lithic.Error.t()}

Renew a card (generates a new PAN, keeps token).

search_by_pan(pan, opts \\ [])

@spec search_by_pan(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Lithic.Error.t()}

Search for a card by PAN (primary account number).

stream(opts \\ [])

@spec stream(keyword()) :: Enumerable.t()

Lazily stream all cards across pages.

update(card_token, params, opts \\ [])

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

Update a card.

web_push_provision(card_token, params, opts \\ [])

@spec web_push_provision(String.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Lithic.Error.t()}

Web push provision a card.