MT200

Struct MT200 

Source
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

Source

pub fn validate() -> &'static str

Get validation rules for this message type

Source§

impl MT200

Source

pub fn new( transaction_reference: Field20, value_date_amount: Field32A, account_with_institution: Field57DebtInstitution, ) -> Self

Creates a new MT200 message with mandatory fields

Source

pub fn with_senders_correspondent(self, correspondent: Field53B) -> Self

Sets the sender’s correspondent (Field 53B)

Source

pub fn with_intermediary(self, intermediary: Field56IntermediaryAD) -> Self

Sets the intermediary institution (Field 56)

Source

pub fn with_sender_to_receiver_info(self, info: Field72) -> Self

Sets sender to receiver information (Field 72)

Trait Implementations§

Source§

impl Clone for MT200

Source§

fn clone(&self) -> MT200

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 MT200

Source§

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

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

impl<'de> Deserialize<'de> for MT200

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 MT200

Source§

fn eq(&self, other: &MT200) -> 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 MT200

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 MT200

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

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§

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> 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>,