Lithic.Types.Card (Lithic v1.0.0)

Copy Markdown View Source

Type definitions for Lithic Card objects.

Fields

  • "token" — unique card identifier
  • "account_token" — account the card belongs to
  • "type""VIRTUAL", "PHYSICAL", "MERCHANT_LOCKED", "SINGLE_USE"
  • "state""OPEN", "PAUSED", "CLOSED"
  • "last_four" — last 4 digits of PAN
  • "exp_month" — expiry month (2-digit string)
  • "exp_year" — expiry year (4-digit string)
  • "spend_limit" — integer, in smallest currency unit
  • "spend_limit_duration""TRANSACTION", "MONTHLY", "ANNUALLY", "FOREVER"
  • "memo" — optional label
  • "funding" — funding source map
  • "pan" — full PAN (only present in certain contexts, e.g. embed)
  • "cvv" — CVV (only present in certain contexts)
  • "created" — RFC 3339 timestamp

Summary

Types

card_type()

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

create_params()

@type create_params() :: %{
  :type => card_type(),
  optional(:account_token) => String.t(),
  optional(:card_program_token) => String.t(),
  optional(:digital_card_art_token) => String.t(),
  optional(:exp_month) => String.t(),
  optional(:exp_year) => String.t(),
  optional(:memo) => String.t(),
  optional(:product_id) => String.t(),
  optional(:shipping_address) => map(),
  optional(:shipping_method) => String.t(),
  optional(:spend_limit) => non_neg_integer(),
  optional(:spend_limit_duration) => String.t(),
  optional(:state) => state()
}

state()

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

t()

@type t() :: %{required(String.t()) => term()}

update_params()

@type update_params() :: %{
  optional(:auth_rule_token) => String.t(),
  optional(:digital_card_art_token) => String.t(),
  optional(:memo) => String.t(),
  optional(:spend_limit) => non_neg_integer(),
  optional(:spend_limit_duration) => String.t(),
  optional(:state) => state()
}