pub struct MT941 {
pub field_20: Field20,
pub field_21: Option<Field21NoOption>,
pub field_25: Field25AccountIdentification,
pub field_28: Field28,
pub field_13d: Option<Field13D>,
pub field_60f: Field60F,
pub field_90d: Option<Field90D>,
pub field_90c: Option<Field90C>,
pub field_62f: Field62F,
pub field_64: Option<Field64>,
pub field_65: Option<Vec<Field65>>,
pub field_86: Option<Field86>,
}
Expand description
MT941: Balance Report Message
§Purpose
Used to report account balance information with summary details for a specific period. This message provides balance reporting with optional transaction summaries and is typically used for balance monitoring and cash management without detailed transaction information.
§Scope
This message is:
- Sent by account servicing institutions for balance reporting
- Used for periodic balance reporting (daily, weekly, monthly)
- Applied when detailed transaction information is not required
- Essential for cash position monitoring and liquidity management
- Part of streamlined cash management and treasury operations
§Key Features
- Balance Focus: Emphasis on balance information rather than transaction detail
- Summary Information: Optional transaction summaries without individual entries
- Period Reporting: Statement numbering and period identification
- Available Balance: Forward available balance information for cash planning
- Simplified Structure: Streamlined format for efficient balance reporting
- Cash Management: Optimized for automated cash management systems
§Common Use Cases
- Daily balance reporting for cash management
- Automated liquidity monitoring
- Treasury position reporting
- Balance verification and confirmation
- Cash forecasting and planning support
- Correspondent banking balance monitoring
- Investment account balance reporting
- Multi-currency position reporting
§Field Structure
- 20: Transaction Reference (mandatory) - Unique report reference
- 21: Related Reference (optional) - Reference to related period or statement
- 25: Account Identification (mandatory) - Account being reported
- 28: Statement Number (mandatory) - Report numbering and sequence
- 13D: Date/Time Indication (optional) - Report timing information
- 60F: Opening Balance (mandatory) - Starting balance for reporting period
- 90D: Number/Sum of Debit Entries (optional) - Debit transaction summary
- 90C: Number/Sum of Credit Entries (optional) - Credit transaction summary
- 62F: Closing Balance (mandatory) - Ending balance for reporting period
- 64: Available Balance (optional) - Available balance information
- 65: Forward Available Balance (optional, repetitive) - Future balance projections
- 86: Information to Account Owner (optional) - Additional balance information
§Network Validation Rules
- Currency Consistency: All balance fields must use the same currency code
- Reference Format: Transaction references must follow SWIFT formatting standards
- Required Fields: All mandatory fields must be present and properly formatted
- Date Validation: All dates must be valid and properly sequenced
- Amount Validation: All amounts must be properly formatted with currency precision
- Summary Consistency: Entry summaries must be consistent with balance calculations
- Account Validation: Account identification must be valid and properly formatted
§SRG2025 Status
- Structural Changes: None - MT941 format remains unchanged in SRG2025
- Validation Updates: Additional validation for balance accuracy and completeness
- Processing Improvements: Improved support for automated balance reporting
- Compliance Notes: Enhanced capabilities for real-time balance delivery
§Integration Considerations
- Banking Systems: Core component of balance reporting and cash management systems
- Treasury Systems: Primary input for automated treasury and liquidity management
- API Integration: Essential for modern digital banking and cash management platforms
- Regulatory Reporting: Critical for compliance and audit trail requirements
§Relationship to Other Messages
- Triggered by: MT920 (Request Message) for on-demand balance reporting
- Complements: MT940 (detailed statements) and MT942 (interim reports)
- Supports: Cash management, treasury operations, and balance monitoring workflows
- Integrates with: Customer communication and digital banking platforms
Fields§
§field_20: Field20
§field_21: Option<Field21NoOption>
§field_25: Field25AccountIdentification
§field_28: Field28
§field_13d: Option<Field13D>
§field_60f: Field60F
§field_90d: Option<Field90D>
§field_90c: Option<Field90C>
§field_62f: Field62F
§field_64: Option<Field64>
§field_65: Option<Vec<Field65>>
§field_86: Option<Field86>
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for MT941
impl<'de> Deserialize<'de> for MT941
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>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl SwiftMessageBody for MT941
impl SwiftMessageBody for MT941
Source§fn message_type() -> &'static str
fn message_type() -> &'static str
Get the message type identifier (e.g., “103”, “202”)
Source§fn from_fields(
fields: HashMap<String, Vec<(String, usize)>>,
) -> SwiftResult<Self>
fn from_fields( fields: HashMap<String, Vec<(String, usize)>>, ) -> SwiftResult<Self>
Create from field map with sequential consumption tracking
Source§fn from_fields_with_config(
fields: HashMap<String, Vec<(String, usize)>>,
config: &ParserConfig,
) -> Result<ParseResult<Self>, ParseError>
fn from_fields_with_config( fields: HashMap<String, Vec<(String, usize)>>, config: &ParserConfig, ) -> Result<ParseResult<Self>, ParseError>
Create from field map with configuration for error collection
Source§fn required_fields() -> Vec<&'static str>
fn required_fields() -> Vec<&'static str>
Get required field tags for this message type
Source§fn optional_fields() -> Vec<&'static str>
fn optional_fields() -> Vec<&'static str>
Get optional field tags for this message type
impl StructuralPartialEq for MT941
Auto Trait Implementations§
impl Freeze for MT941
impl RefUnwindSafe for MT941
impl Send for MT941
impl Sync for MT941
impl Unpin for MT941
impl UnwindSafe for MT941
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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