Struct MT950

Source
pub struct MT950 {
    pub field_20: GenericReferenceField,
    pub field_21: Option<GenericReferenceField>,
    pub field_25: GenericTextField,
    pub field_28c: Field28C,
    pub field_60: GenericBalanceField,
    pub statement_lines: Vec<MT950StatementLine>,
    pub field_62: GenericBalanceField,
    pub field_64: Option<GenericBalanceField>,
    pub field_65: Option<GenericBalanceField>,
}
Expand description

§MT950: Statement Message

This message is used by financial institutions to send account statements to correspondent banks or financial institutions for nostro account management. Unlike MT940 which is used for customer statements, MT950 is specifically designed for inter-bank statement reporting and nostro account reconciliation.

§Key Features

  • Nostro account statements: Inter-bank account statement reporting
  • Correspondent banking: Statement exchange between financial institutions
  • Account reconciliation: Detailed transaction history for reconciliation
  • Multi-currency support: Statement reporting in various currencies
  • Transaction details: Complete transaction information with narrative
  • Balance tracking: Opening and closing balance information

§Field Structure

All fields follow the enhanced macro system with proper validation rules. The message supports repetitive statement lines for multiple transactions.

§Business Rules

  • All balance fields must use the same currency
  • Each transaction line (Field 61) may have accompanying narrative (Field 86)
  • Statement supports multi-part statements via Field 28C
  • Balances use comma as decimal separator

Fields§

§field_20: GenericReferenceField

Transaction Reference Number - Field 20

Unique reference for this statement message. Used for tracking and referencing this specific statement.

§field_21: Option<GenericReferenceField>

Related Reference - Field 21 (Optional)

Links to MT920 request if applicable. Provides connection to statement request that triggered this response.

§field_25: GenericTextField

Account Identification - Field 25

IBAN or nostro account identifier. Identifies the correspondent account for which statement is provided.

§field_28c: Field28C

Statement/Sequence Number - Field 28C

Statement sequence number and optional page number. Enables proper sequencing of multi-part statements.

§field_60: GenericBalanceField

Opening Balance - Field 60F or 60M

Opening balance at start of statement period. May be booked (60F) or interim (60M) balance.

§statement_lines: Vec<MT950StatementLine>

Statement Lines (Repetitive)

Transaction lines with optional accompanying narrative. Each line represents one transaction with optional Field 86.

§field_62: GenericBalanceField

Closing Balance - Field 62F or 62M

Closing balance at end of statement period. May be booked (62F) or interim (62M) balance.

§field_64: Option<GenericBalanceField>

Closing Available Balance - Field 64 (Optional)

Available funds at close of statement period. Shows actual spendable balance for the nostro account.

§field_65: Option<GenericBalanceField>

Forward Available Balance - Field 65 (Optional)

Value-dated available balance for future periods. Shows projected available funds considering pending transactions.

Implementations§

Source§

impl MT950

Source

pub fn validation_rules() -> &'static str

Get the validation rules for this message type

Trait Implementations§

Source§

impl Clone for MT950

Source§

fn clone(&self) -> MT950

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

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

Performs copy-assignment from source. Read more
Source§

impl Debug for MT950

Source§

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

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

impl<'de> Deserialize<'de> for MT950

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 MT950

Source§

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

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

const 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 MT950

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 MT950

Source§

fn message_type() -> &'static str

Get the message type identifier (e.g., “103”, “202”)
Source§

fn from_fields(fields: HashMap<String, Vec<String>>) -> SwiftResult<Self>

Create from field map
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§

impl StructuralPartialEq for MT950

Auto Trait Implementations§

§

impl Freeze for MT950

§

impl RefUnwindSafe for MT950

§

impl Send for MT950

§

impl Sync for MT950

§

impl Unpin for MT950

§

impl UnwindSafe for MT950

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> 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> 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<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,