pub struct Field60F {
pub debit_credit_mark: String,
pub value_date: NaiveDate,
pub currency: String,
pub amount: f64,
}
Expand description
Field 60: Opening Balance
§Purpose
Specifies the opening balance of an account in customer statement messages (MT 940) and other cash management contexts. This field establishes the starting position for account balance calculations and provides the foundation for statement processing and account reconciliation. Essential for cash management and account monitoring.
§Format Options Overview
- Option F: First opening balance - initial balance at statement start
- Option M: Intermediate opening balance - balance after sequence breaks
§Business Context Applications
- Customer Statements: Opening balance for MT 940 Customer Statement Message
- Cash Management: Starting position for balance calculations
- Account Reconciliation: Foundation for account balance verification
- Sequence Processing: Balance continuation across statement sequences
§Network Validation Requirements
- Date Validation: Value date must be valid calendar date
- Currency Validation: Must be valid ISO 4217 currency code
- Amount Format: Decimal amount with proper precision
- Mark Validation: Debit/Credit mark must be D (Debit) or C (Credit)
§Balance Calculation Context
§Opening Balance Logic
- First Balance (F): Initial balance at beginning of statement period
- Intermediate Balance (M): Balance at sequence break within statement
- Continuity: Ensures balance continuity across statement processing
- Verification: Enables balance verification and reconciliation
§Statement Processing
- MT 940 Integration: Core component of customer statement messages
- Sequence Management: Handles statement sequence breaks
- Balance Chain: Links to statement lines (Field 61) and closing balance (Field 62)
- Period Definition: Establishes statement period starting point
§Regional Considerations
- European Banking: SEPA statement requirements and Euro processing
- US Banking: Federal Reserve and commercial bank statement standards
- Asian Markets: Local banking statement requirements
- Cross-Border: Multi-currency account statement processing
§Error Prevention Guidelines
- Date Verification: Confirm value date is within acceptable range
- Currency Consistency: Ensure currency matches account currency
- Amount Precision: Verify amount precision matches currency requirements
- Mark Validation: Confirm debit/credit mark is appropriate
§Related Fields Integration
- Field 61: Statement Line (transaction details)
- Field 62: Closing Balance (ending balance)
- Field 64: Closing Available Balance (available funds)
- Field 65: Forward Available Balance (future availability)
§Compliance Framework
- Banking Regulations: Compliance with local banking statement requirements
- Audit Documentation: Proper balance documentation for audit trails
- Customer Communication: Clear balance communication to account holders
- Reconciliation Support: Foundation for account reconciliation processes
§See Also
-
Swift FIN User Handbook: Opening Balance Specifications
-
MT 940 Message Standards: Customer Statement Message
-
Cash Management Guidelines: Balance Processing Standards
-
Account Statement Requirements: Regional Banking Standards
Field 60F: First Opening Balance
Initial opening balance at the beginning of a statement period. Used when starting a new statement or account balance sequence.
Fields§
§debit_credit_mark: String
Debit or Credit mark
Format: 1!a - ‘D’ (Debit) or ‘C’ (Credit) Indicates whether the opening balance is a debit or credit position
value_date: NaiveDate
Value date of the opening balance
Format: 6!n (YYMMDD) - Date when balance is effective Must be valid calendar date within acceptable range
currency: String
Currency of the balance
Format: 3!a - ISO 4217 currency code (USD, EUR, GBP, etc.) Must match account currency for consistency
amount: f64
Opening balance amount
Format: 15d - Decimal amount with comma separator Precision must match currency requirements
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Field60F
impl<'de> Deserialize<'de> for Field60F
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl SwiftField for Field60F
impl SwiftField for Field60F
Source§fn to_swift_string(&self) -> String
fn to_swift_string(&self) -> String
Source§fn format_spec() -> &'static str
fn format_spec() -> &'static str
impl StructuralPartialEq for Field60F
Auto Trait Implementations§
impl Freeze for Field60F
impl RefUnwindSafe for Field60F
impl Send for Field60F
impl Sync for Field60F
impl Unpin for Field60F
impl UnwindSafe for Field60F
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more