MT920

Struct MT920 

Source
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

  1. MT920 sent with specific account and message type requests
  2. Receiving institution validates request parameters
  3. Requested information extracted from account systems
  4. Appropriate response message(s) generated and sent
  5. 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§

Source§

impl MT920

Source

pub fn validate() -> &'static str

Get validation rules for this message type

Trait Implementations§

Source§

impl Clone for MT920

Source§

fn clone(&self) -> MT920

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MT920

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for MT920

Source§

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 PartialEq for MT920

Source§

fn eq(&self, other: &MT920) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for MT920

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl SwiftMessageBody for MT920

Source§

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>

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>

Create from field map with configuration for error collection
Source§

fn to_fields(&self) -> HashMap<String, Vec<String>>

Convert to field map
Source§

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>

Get required field tags for this message type
Source§

fn optional_fields() -> Vec<&'static str>

Get optional field tags for this message type
Source§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Fake for T

Source§

fn fake<U>(&self) -> U
where Self: FakeBase<U>,

Source§

fn fake_with_rng<U, R>(&self, rng: &mut R) -> U
where R: Rng + ?Sized, Self: FakeBase<U>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,