Struct MT196

Source
pub struct MT196 {
    pub field_20: GenericReferenceField,
    pub field_21: GenericReferenceField,
    pub field_76: GenericMultiLine6x35,
    pub field_77a: Option<GenericMultiLine20x35>,
    pub field_11a: Option<GenericTextField>,
    pub field_79: Option<GenericMultiLine6x35>,
    pub field_23b: Option<GenericTextField>,
    pub field_32a: Option<Field32A>,
    pub field_50: Option<Field50>,
    pub field_59: Option<Field59>,
    pub field_71a: Option<GenericTextField>,
}
Expand description

§MT196: Answers (Customer Messages)

This message is sent by a financial institution to provide answers, confirmations, or status information in response to queries or requests related to customer messages. MT196 is used for answering customer credit transfer queries and other customer-related inquiries.

§Key Features

  • Answer provision: Official responses to customer message queries
  • Reference tracking: Links to the original message through reference fields
  • Conditional structure: Either narrative (field 79) or copy of original message fields
  • Answer codes: Standardized answer codes with supplementary data
  • Narrative support: Additional narrative description capability

§Field Structure

The message follows a conditional structure where either field 79 (narrative description) or a copy of the mandatory fields from the original message may be present, but not both.

§Answer Process

Used when a receiver needs to provide answers, confirmations, or status updates regarding previously received customer messages, including confirmations of execution, status updates, or responses to specific queries.

Fields§

§field_20: GenericReferenceField

Transaction Reference Number - Field 20

Unique reference assigned by the sender for this answer message. This reference is used throughout the answer lifecycle for tracking, acknowledgment, and audit purposes. Must be unique within sender’s system per business day.

§field_21: GenericReferenceField

Related Reference - Field 21

Contains the reference from field 20 of the message being answered. This creates a direct link between the answer and the original message, enabling complete audit trails and transaction tracking.

§field_76: GenericMultiLine6x35

Answers - Field 76

Contains response codes, narratives, and supplementary data. Includes confirmation codes (1-33), cancellation codes (CNCL, PDCR, RJCR), and reason codes with optional supplementary details in parentheses.

§field_77a: Option<GenericMultiLine20x35>

Narrative - Field 77A (Optional)

Free-form narrative description that supplements the answer codes in field 76. Used for providing additional context, explanations, or details about the answers.

§field_11a: Option<GenericTextField>

MT and Date of the Original Message - Field 11a (Optional)

Specifies the message type and date of the original message being answered. Can be in Option R format (with session/ISN) or Option S format (date only).

§field_79: Option<GenericMultiLine6x35>

Narrative Description of Original Message - Field 79 (Conditional)

Contains narrative description of the original message being answered. Must be present if copy of original message fields is not included. Cannot be used together with copy of original message fields.

§field_23b: Option<GenericTextField>

Copy of Mandatory Fields from Original Message - Multiple Fields (Conditional)

When present, contains a copy of at least the mandatory fields from the original message. This helps identify the exact transaction being answered. Cannot be used together with field 79 according to conditional rule C1.

For customer messages (MT103): Would include fields 23B, 32A, 50, 59, 71A

§field_32a: Option<Field32A>§field_50: Option<Field50>§field_59: Option<Field59>§field_71a: Option<GenericTextField>

Implementations§

Source§

impl MT196

Source

pub fn validation_rules() -> &'static str

Get the validation rules for this message type

Trait Implementations§

Source§

impl Clone for MT196

Source§

fn clone(&self) -> MT196

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 MT196

Source§

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

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

impl<'de> Deserialize<'de> for MT196

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 MT196

Source§

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

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 MT196

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 MT196

Auto Trait Implementations§

§

impl Freeze for MT196

§

impl RefUnwindSafe for MT196

§

impl Send for MT196

§

impl Sync for MT196

§

impl Unpin for MT196

§

impl UnwindSafe for MT196

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