pub struct MT920 {
pub field_20: Field20,
pub sequence: Vec<MT920Sequence>,
}
Expand description
MT920: Request Message
§Purpose
Used to request specific account information or statement messages from another financial institution. This message allows institutions to request various types of account-related data including balances, statements, and transaction details on a per-account basis.
§Scope
This message is:
- Sent between financial institutions to request account information
- Used to request specific message types (MT940, MT941, MT942, MT950)
- Applied for correspondent banking and account servicing relationships
- Essential for account monitoring and reconciliation processes
- Part of automated cash management and reporting systems
§Key Features
- Message Type Specification: Field 12 specifies the exact message type requested
- Account-Specific Requests: Individual account identification for targeted requests
- Balance Requirements: Specific balance information requirements using field 34F
- Repetitive Structure: Multiple account requests in a single message
- Flexible Reporting: Support for different statement and balance message types
- Automated Processing: Designed for systematic and automated information requests
§Common Use Cases
- Requesting daily account statements (MT940)
- Obtaining balance and transaction reports (MT941)
- Requesting interim transaction statements (MT942)
- Getting periodic balance statements (MT950)
- Cash management system automation
- Correspondent banking account monitoring
- Regulatory reporting data collection
- Liquidity management and planning
§Message Structure
§Header Section
- 20: Transaction Reference (mandatory) - Unique reference for this request
§Repetitive Sequence (MT920Sequence)
Each sequence represents a request for a specific account and contains:
- 12: Message Type Requested (mandatory) - MT940, MT941, MT942, or MT950
- 25: Account Identification (mandatory) - Account for which information is requested
- 34F: Amount Fields (optional) - Specific balance or amount requirements
§Field 12 - Message Types Requested
Valid message types that can be requested:
- 940: Customer Statement Message (detailed transaction statement)
- 941: Balance Report Message (balance information with summary)
- 942: Interim Transaction Report (interim statement with real-time updates)
- 950: Statement Message (balance statement with transaction summary)
§Field 34F - Amount Requirements
Optional field that can specify:
- Debit Information: When requesting debit balance details
- Credit Information: When requesting credit balance details
- Currency Specification: Specific currency for balance reporting
- Threshold Amounts: Minimum amounts for transaction reporting
§Network Validation Rules
- C1 Rule: If message requested is 942, field 34F for debit must be present
- C2 Rule: When both 34F fields present, first must be ‘D’ (debit), second must be ‘C’ (credit)
- C3 Rule: Currency code must be consistent across all 34F entries
- Message Type Validation: Field 12 must contain valid SWIFT MT type (940, 941, 942, 950)
- Reference Format: Transaction references must follow SWIFT formatting standards
- Required Fields: All mandatory fields must be present and properly formatted
§Processing Workflow
§Request Processing
- MT920 sent with specific account and message type requests
- Receiving institution validates request parameters
- Requested information extracted from account systems
- Appropriate response message(s) generated and sent
- Requesting institution processes received information
§Automated Integration
- Integration with cash management systems
- Scheduled automated requests for regular reporting
- Real-time balance monitoring capabilities
- Exception-based reporting triggers
§SRG2025 Status
- No Structural Changes: MT920 format remains unchanged in SRG2025
- Enhanced Validation: Additional validation for request accuracy and completeness
- Digital Integration: Improved support for digital banking and API integration
- Real-time Capabilities: Enhanced support for real-time information requests
§Integration Considerations
- Banking Systems: Direct integration with account management and core banking systems
- Cash Management: Essential component of comprehensive cash management solutions
- API Gateway: Often used in conjunction with modern API-based banking services
- Reporting Systems: Critical input for automated reporting and compliance systems
§Relationship to Other Messages
- Triggers: MT940, MT941, MT942, MT950 response messages
- Supports: Account monitoring, cash management, and reconciliation processes
- Complements: Confirmation messages (MT900, MT910) for complete account visibility
- Integrates with: Broader cash management and treasury operation workflows
Fields§
§field_20: Field20
§sequence: Vec<MT920Sequence>
Implementations§
Trait Implementations§
Source§impl<'de> Deserialize<'de> for MT920
impl<'de> Deserialize<'de> for MT920
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 MT920
impl SwiftMessageBody for MT920
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 to_ordered_fields(&self) -> Vec<(String, String)>
fn to_ordered_fields(&self) -> Vec<(String, String)>
Convert to ordered field list for MT serialization
Returns fields in the correct sequence order for multi-sequence messages
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 MT920
Auto Trait Implementations§
impl Freeze for MT920
impl RefUnwindSafe for MT920
impl Send for MT920
impl Sync for MT920
impl Unpin for MT920
impl UnwindSafe for MT920
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