pub struct MT200 {
pub field_20: Field20,
pub field_32a: Field32A,
pub field_53b: Option<Field53B>,
pub field_56: Option<Field56IntermediaryAD>,
pub field_57: Field57DebtInstitution,
pub field_72: Option<Field72>,
}
Expand description
MT200: Financial Institution Transfer for its Own Account
§Purpose
Used for transfers between financial institutions where the institution is acting for its own account, not on behalf of a customer. This message type facilitates proprietary fund movements between institutions for purposes such as liquidity management, nostro account funding, or internal account adjustments.
§Scope
This message is:
- Sent between financial institutions for their own account transfers
- Used for nostro/vostro account management and liquidity adjustments
- Applicable for same-currency transfers between correspondent accounts
- Not used for customer-initiated transfers or third-party payments
- Compatible with real-time gross settlement (RTGS) systems
- Suitable for both domestic and cross-border institutional transfers
§Key Features
- Simplified Structure: Streamlined format for institution-to-institution transfers
- Own Account Focus: Specifically designed for proprietary institutional movements
- Direct Routing: Minimal intermediary support for direct institutional transfers
- Settlement Efficiency: Optimized for same-day value and immediate settlement
- Correspondent Banking: Built for nostro/vostro account management
- Minimal Validation: No complex customer validation rules required
§Common Use Cases
- Nostro account funding and adjustments
- Vostro account management
- Liquidity transfers between branches
- Foreign exchange position management
- End-of-day settlement positions
- Cash concentration and disbursement
- Internal book transfers between institutions
§Message Structure
- Field 20: Transaction Reference Number (mandatory) - Unique sender reference
- Field 32A: Value Date, Currency Code, Amount (mandatory) - Settlement details
- Field 53B: Sender’s Correspondent (optional) - Account at correspondent bank
- Field 56: Intermediary (optional) - Intermediary institution if required
- Field 57: Account With Institution (mandatory) - Institution maintaining the account
- Field 72: Sender to Receiver Information (optional) - Additional instructions
§Network Validation Rules
- No specific network validation rules apply to MT200
- Standard SWIFT field format validations apply
- BIC and account number format validations as per SWIFT standards
§Integration Considerations
- Banking Systems: Direct integration with treasury and liquidity management systems
- Settlement: Compatible with major settlement systems and RTGS platforms
- Processing: Typically processed with high priority for same-day value
- Reconciliation: Simplified reconciliation due to institution-to-institution nature
§Relationship to Other Messages
- Related to MT202: MT202 is used when acting on behalf of customers
- Related to MT205: MT205 includes mandatory ordering institution field
- Confirmations: May generate MT900 (debit) or MT910 (credit) confirmations
- Account Reporting: Reflected in MT940/MT950 account statements
- Status Updates: May receive MT192/MT196 for queries and responses
Fields§
§field_20: Field20
§field_32a: Field32A
§field_53b: Option<Field53B>
§field_56: Option<Field56IntermediaryAD>
§field_57: Field57DebtInstitution
§field_72: Option<Field72>
Implementations§
Source§impl MT200
impl MT200
Sourcepub fn new(
transaction_reference: Field20,
value_date_amount: Field32A,
account_with_institution: Field57DebtInstitution,
) -> Self
pub fn new( transaction_reference: Field20, value_date_amount: Field32A, account_with_institution: Field57DebtInstitution, ) -> Self
Creates a new MT200 message with mandatory fields
Sourcepub fn with_senders_correspondent(self, correspondent: Field53B) -> Self
pub fn with_senders_correspondent(self, correspondent: Field53B) -> Self
Sets the sender’s correspondent (Field 53B)
Sourcepub fn with_intermediary(self, intermediary: Field56IntermediaryAD) -> Self
pub fn with_intermediary(self, intermediary: Field56IntermediaryAD) -> Self
Sets the intermediary institution (Field 56)
Sourcepub fn with_sender_to_receiver_info(self, info: Field72) -> Self
pub fn with_sender_to_receiver_info(self, info: Field72) -> Self
Sets sender to receiver information (Field 72)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for MT200
impl<'de> Deserialize<'de> for MT200
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 MT200
impl SwiftMessageBody for MT200
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 MT200
Auto Trait Implementations§
impl Freeze for MT200
impl RefUnwindSafe for MT200
impl Send for MT200
impl Sync for MT200
impl Unpin for MT200
impl UnwindSafe for MT200
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