CFONB.Operation.Details (CFONB v0.1.0)

Copy Markdown View Source

Structured content gathered from the 05 (complément) records that follow a 04 operation.

Each 05 record carries a 3-character qualifier (positions 46-48) and a 70-character information zone (positions 49-118). merge/3 decodes that zone according to the qualifier and folds it into this struct, so an operation exposes ready-to-use fields such as debtor, operation_reference or fee instead of raw lines.

Repeated LIB lines are concatenated (newline-separated). Unrecognized qualifiers are preserved verbatim under unknown, keyed by qualifier.

Field names and semantics mirror the Ruby cfonb gem.

Summary

Functions

Folds one 05 record — its qualifier and raw 70-char info zone — into the given details struct.

Types

t()

@type t() :: %CFONB.Operation.Details{
  client_reference: String.t() | nil,
  creditor: String.t() | nil,
  creditor_identifier: String.t() | nil,
  creditor_identifier_type: String.t() | nil,
  debtor: String.t() | nil,
  debtor_identifier: String.t() | nil,
  debtor_identifier_type: String.t() | nil,
  exchange_rate: Decimal.t() | nil,
  fee: Decimal.t() | nil,
  fee_currency: String.t() | nil,
  free_label: String.t() | nil,
  operation_reference: String.t() | nil,
  original_amount: Decimal.t() | nil,
  original_currency: String.t() | nil,
  purpose: String.t() | nil,
  structured_label: String.t() | nil,
  ultimate_creditor: String.t() | nil,
  ultimate_debtor: String.t() | nil,
  unknown: %{optional(String.t()) => String.t()},
  unstructured_label: String.t() | nil,
  unstructured_label_2: String.t() | nil
}

Functions

merge(details, qualifier, info)

@spec merge(t(), String.t(), binary()) :: t()

Folds one 05 record — its qualifier and raw 70-char info zone — into the given details struct.