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
@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 }