Lithic.Types.Transaction (Lithic v1.0.0)

Copy Markdown View Source

Type definitions for Lithic Transaction objects.

All monetary amounts are integers in the smallest currency unit (e.g. cents for USD).

Fields

  • "token" — unique transaction identifier
  • "account_token" — associated account
  • "card_token" — card used
  • "amount" — authorization amount, integer
  • "amounts" — breakdown map (cardholder, hold, merchant, settlement)
  • "authorization_amount" — original authorization amount
  • "authorization_code" — network authorization code
  • "avs" — address verification result map
  • "card_acceptor" — merchant/card acceptor details
  • "created" — RFC 3339 timestamp
  • "currency" — ISO 4217 code
  • "events" — list of transaction event maps
  • "merchant" — merchant details (descriptor, city, country, mcc, acceptor_id)
  • "network""INTERLINK", "MAESTRO", "MASTERCARD", "UNKNOWN", "VISA"
  • "network_risk_score" — integer 0-999
  • "pos" — point of sale details
  • "result""ACCOUNT_STATE_TRANSACTION_FAIL", "APPROVED", "BANK_CONNECTION_ERROR", "BANK_NOT_VERIFIED", "CARD_CLOSED", "CARD_PAUSED", "DECLINED", "FRAUD_ADVICE", "INACTIVE_ACCOUNT", "INCORRECT_PIN", "INCORRECT_SECURITY_CODE", "INSUFFICIENT_FUNDS", "MERCHANT_BLACKLIST", "SINGLE_USE_RECHARGED", "SWITCH_INOPERATIVE_ADVICE", "UNAUTHORIZED_MERCHANT", "UNKNOWN_HOST_TIMEOUT", "USER_TRANSACTION_LIMIT"
  • "settled_amount" — settled amount
  • "status""BOUNCED", "DECLINED", "EXPIRED", "PENDING", "SETTLED", "SETTLING", "VOIDED"
  • "token_info" — digital wallet token info
  • "updated" — RFC 3339 timestamp

Summary

Types

result()

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

simulate_authorization_params()

@type simulate_authorization_params() :: %{
  :card_token => String.t(),
  :amount => pos_integer(),
  optional(:descriptor) => String.t(),
  optional(:mcc) => String.t(),
  optional(:merchant_acceptor_id) => String.t(),
  optional(:merchant_amount) => pos_integer(),
  optional(:merchant_currency) => String.t(),
  optional(:partial_approval_capable) => boolean(),
  optional(:status) => String.t()
}

status()

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

t()

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