ISO20022.Camt053.TransactionDetails (ISO20022 v0.1.0)

Copy Markdown View Source

Individual transaction details from <TxDtls> within an entry details block.

Remittance information

remittance_info is one of:

  • {:unstructured, text} — free-text string (max 140 chars, from <Ustrd>)
  • {:structured, %{ref: ..., ref_type: ..., creditor_ref: ...}} — from <Strd>
  • nil — no remittance info present

related_parties is a map with optional keys: :debtor, :debtor_account, :creditor, :creditor_account, :ultimate_debtor, :ultimate_creditor, each being a %{name, iban, other_id} map.

related_agents is a map with optional keys: :debtor_agent, :creditor_agent, each being a %{bic, name} map.

Summary

Types

agent()

@type agent() :: %{bic: String.t() | nil, name: String.t() | nil}

party()

@type party() :: %{
  name: String.t() | nil,
  iban: String.t() | nil,
  other_id: String.t() | nil
}

refs()

@type refs() :: %{
  message_id: String.t() | nil,
  account_servicer_ref: String.t() | nil,
  payment_info_id: String.t() | nil,
  instruction_id: String.t() | nil,
  end_to_end_id: String.t() | nil,
  tx_id: String.t() | nil,
  mandate_id: String.t() | nil,
  uetr: String.t() | nil
}

remittance_info()

@type remittance_info() ::
  {:unstructured, String.t()}
  | {:structured,
     %{
       ref: String.t() | nil,
       ref_type: String.t() | nil,
       creditor_ref: String.t() | nil
     }}
  | nil

t()

@type t() :: %ISO20022.Camt053.TransactionDetails{
  amount: Decimal.t() | nil,
  credit_debit: :credit | :debit | nil,
  currency: String.t() | nil,
  purpose: String.t() | nil,
  refs: refs() | nil,
  related_agents: map() | nil,
  related_parties: map() | nil,
  remittance_info: remittance_info()
}