defmodule ISO20022.Camt053.BankTxCode do
@moduledoc """
ISO 20022 Bank Transaction Code from `<BkTxCd>`.
Uses the three-level External Code List hierarchy:
- `domain` — e.g. `"PMNT"` (Payments)
- `family` — e.g. `"RCDT"` (Received Credit Transfer), `"ICDT"` (Issued Credit Transfer)
- `sub_family` — e.g. `"XBCT"` (Cross-Border Credit Transfer)
A proprietary code may be present instead of or alongside the ISO code.
"""
@type t :: %__MODULE__{
domain: String.t() | nil,
family: String.t() | nil,
sub_family: String.t() | nil,
proprietary_code: String.t() | nil,
proprietary_issuer: String.t() | nil
}
defstruct [:domain, :family, :sub_family, :proprietary_code, :proprietary_issuer]
end