pub struct MT202 {Show 19 fields
pub field_20: Field20,
pub field_21: Field21,
pub field_32a: Field32A,
pub field_58a: Field58A,
pub field_13c: Option<Vec<Field13C>>,
pub field_52a: Option<Field52A>,
pub field_53a: Option<Field53A>,
pub field_54a: Option<Field54A>,
pub field_56a: Option<Field56A>,
pub field_57a: Option<Field57A>,
pub field_72: Option<Field72>,
pub field_50a: Option<Field50>,
pub field_59a: Option<Field59A>,
pub field_70: Option<Field70>,
pub field_33b: Option<Field33B>,
pub field_52a_seq_b: Option<Field52A>,
pub field_56a_seq_b: Option<Field56A>,
pub field_57a_seq_b: Option<Field57A>,
pub field_72_seq_b: Option<Field72>,
}
Expand description
§MT202: General Financial Institution Transfer
§Overview
MT202 enables financial institutions to transfer funds between themselves for their own account or for the account of their customers. It serves as the backbone for correspondent banking relationships, facilitating both institutional transfers and cover payments for customer transactions. The MT202 supports various transfer scenarios including nostro/vostro account movements, liquidity management, and settlement processing.
§Message Type Specification
Message Type: 202
Category: Financial Institution Transfers (Category 2)
Usage: General Financial Institution Transfer
Processing: Real-time gross settlement (RTGS) and net settlement
Network: SWIFT FIN (Financial network)
§Message Variants
MT202 - Standard financial institution transfer
MT202.COV - Cover message for customer credit transfers
§Message Structure
The MT202 message consists of mandatory and optional fields organized in specific sequences:
§Mandatory Fields (Core Requirements)
- Field 20: Transaction Reference Number (sender’s unique reference)
- Field 21: Related Reference (link to previous message or transaction)
- Field 32A: Value Date/Currency/Amount (settlement details)
- Field 58A: Beneficiary Institution (final receiving institution)
§Optional Fields (Enhanced Processing)
Field 13C - Time Indication (processing timing)
Field 52A - Ordering Institution (sender's bank)
Field 53A - Sender's Correspondent (intermediate bank)
Field 54A - Receiver's Correspondent (intermediate bank)
Field 56A - Intermediary Institution (routing bank)
Field 57A - Account With Institution (beneficiary's correspondent)
Field 72 - Sender to Receiver Information (processing instructions)
§MT202.COV Specific Fields (Cover Message)
When used as a cover message for customer transfers:
Field 50A - Ordering Customer (ultimate originator)
Field 59A - Beneficiary Customer (ultimate recipient)
Field 70 - Remittance Information (payment details)
Field 33B - Currency/Instructed Amount (original amount)
§Business Applications
§Primary Use Cases
- Nostro/Vostro movements: Account movements between correspondent banks
- Liquidity management: Funding and cash management between institutions
- Settlement processing: Final settlement of payment obligations
- Cover payments: Cover for underlying customer credit transfers
- Reimbursement: Institution-to-institution reimbursements
- Treasury operations: Bank treasury funding and investment settlements
§Industry Sectors
- Correspondent Banking: Managing correspondent account relationships
- Central Banking: Central bank operations and monetary policy implementation
- Commercial Banking: Inter-bank funding and settlement
- Investment Banking: Securities settlement and margin funding
- Corporate Banking: Large corporate cash management
- Trade Finance: Trade settlement and financing
§Routing and Settlement Patterns
§Direct Settlement
Ordering Institution → Beneficiary Institution
(Field 52A → Field 58A)
§Correspondent Banking Chain
Ordering Institution → Sender's Correspondent → Receiver's Correspondent → Beneficiary Institution
(Field 52A → Field 53A → Field 54A → Field 58A)
§Complex Multi-Institution Routing
Ordering Institution → Sender's Correspondent → Intermediary →
Account With Institution → Beneficiary Institution
(Field 52A → Field 53A → Field 56A → Field 57A → Field 58A)
§Field Relationships and Dependencies
§Time Indication (Field 13C)
- Multiple occurrences: Field 13C can appear multiple times for different timing requirements
- CLS timing: Cut-off times for Continuous Linked Settlement
- TARGET timing: European Central Bank TARGET system timing
- Local timing: Domestic settlement system timing requirements
§Institution Chain Validation
- All institutions must have valid correspondent relationships
- BIC codes must be active and reachable via SWIFT network
- Account numbers must be valid for the specified institutions
- Routing must comply with sanctions and regulatory requirements
§Cover Message Requirements (MT202.COV)
- Field 50A (Ordering Customer) becomes mandatory for cover messages
- Field 59A (Beneficiary Customer) identifies ultimate beneficiary
- Field 70 (Remittance Information) provides payment purpose details
- Field 33B used for currency conversion scenarios
§Validation Rules and Compliance
§Network Validated Rules (SWIFT Standards)
- T20: Related reference format validation
- T21: Transaction reference uniqueness
- T32: Date and amount format validation
- T58: Beneficiary institution BIC validation
- C20: Reference number consistency
- C21: Related reference requirement
- C58: Institution identification completeness
§Business Rule Validations
- Transaction and related references should be unique per sender per day
- Value date should be valid business day for settlement currency
- Institution chain should form valid correspondent relationships
- Time indications should be reasonable for processing requirements
- Cover message fields should be consistent with underlying transaction
§Regulatory Compliance
- Sanctions Screening: All institutions subject to sanctions checks
- Regulatory Reporting: Large value transfer reporting requirements
- AML/KYC: Know Your Customer requirements for cover messages
- Correspondent Banking: Due diligence and compliance monitoring
- Capital Requirements: Basel III liquidity and capital impact
§Error Handling and Processing
§Field 72 Processing Instructions
/INT/Internal transfer between own accounts
/COV/Cover payment for customer transfer
/REIMBURSEMENT/Reimbursement payment
/SETTLEMENT/Settlement of obligations
§Common Processing Scenarios
- Same-day settlement: Immediate settlement requirement
- Future-dated: Settlement on specific future date
- Recurring: Standing instruction processing
- Amendment: Modification of previous instruction
- Cancellation: Reversal of previous transfer
Fields§
§field_20: Field20
Transaction Reference Number - Field 20
Unique sender’s reference identifying this specific financial institution transfer. Used throughout the transfer lifecycle for tracking, reconciliation, and audit. Must be unique within the sender’s system per business day.
Format: Up to 16 alphanumeric characters
Usage: Mandatory in all MT202 variants
Business Rule: Should follow sender’s reference numbering scheme
field_21: Field21
Related Reference - Field 21
Reference to a related message or transaction that this MT202 is associated with. Critical for linking cover payments to underlying customer transfers and for maintaining audit trails across related transactions.
Format: Up to 16 alphanumeric characters
Usage: Mandatory in all MT202 messages
Relationship: Links to previous messages or transactions
field_32a: Field32A
Value Date/Currency/Amount - Field 32A
Core settlement details specifying when, in what currency, and for what amount the institutional transfer should be processed. The value date determines when the settlement occurs between the institutions.
Components: Date (YYMMDD) + Currency (3 chars) + Amount (decimal)
Business Rule: Value date should be valid business day for currency
Settlement: Determines actual settlement timing between institutions
field_58a: Field58A
Beneficiary Institution - Field 58A
Identifies the financial institution that will receive the funds being transferred. This is the final destination institution in the transfer chain and must be clearly identified for successful settlement.
Format: [/account]BIC code
Usage: Mandatory in all MT202 messages
Settlement: Final destination for fund settlement
field_13c: Option<Vec<Field13C>>
Time Indication - Field 13C (Optional, Repetitive)
Provides specific timing instructions for transfer processing, including cut-off times for various settlement systems and coordination requirements. Can appear multiple times for different timing requirements.
Usage: Optional, used for time-sensitive transfers
Multiple: Can appear multiple times for different systems
Format: Time + UTC offsets for coordination
Business Value: Enables precise timing control across settlement systems
field_52a: Option<Field52A>
Ordering Institution - Field 52A (Optional)
Identifies the financial institution that is ordering the transfer. This is typically the sender’s own institution or the institution acting on behalf of the ordering party.
Format: [/account]BIC code
Usage: Optional, identifies ordering institution
Routing Role: First institution in the transfer chain
field_53a: Option<Field53A>
Sender’s Correspondent - Field 53A (Optional)
Identifies the correspondent bank of the sending institution. Used in correspondent banking arrangements where direct settlement relationships may not exist between sender and receiver.
Format: [/account]BIC code
Usage: Optional, facilitates correspondent banking
Routing Role: Intermediate institution in transfer chain
field_54a: Option<Field54A>
Receiver’s Correspondent - Field 54A (Optional)
Identifies the correspondent bank of the receiving institution. Critical for cross-border transfers where direct correspondent relationships may not exist between institutions.
Format: [/account]BIC code
Usage: Optional, enables correspondent banking
Routing Role: Receiving-side correspondent institution
field_56a: Option<Field56A>
Intermediary Institution - Field 56A (Optional)
Identifies an intermediary bank in the transfer routing chain. Acts as a pass-through institution between correspondents or provides additional routing capabilities.
Format: [/account]BIC code
Usage: Optional, facilitates complex routing
Routing Role: Intermediate routing institution
field_57a: Option<Field57A>
Account With Institution - Field 57A (Optional)
Identifies the institution where the beneficiary institution maintains its account. Used for indirect settlement arrangements where the beneficiary institution settles through another bank.
Format: [/account]BIC code
Usage: Optional, enables indirect settlement
Settlement Role: Settlement institution for beneficiary
field_72: Option<Field72>
Sender to Receiver Information - Field 72 (Optional)
Free-format field for processing instructions, operational information, and special handling requirements. Critical for conveying processing context and operational requirements.
Format: Up to 6 lines of 35 characters each
Usage: Optional, provides processing context
Content: Instructions, references, operational information
field_50a: Option<Field50>
Ordering Customer - Field 50A (Optional, Cover Messages)
Identifies the ultimate ordering customer when MT202 is used as a cover message for customer credit transfers. This field links the institutional transfer to the underlying customer transaction.
Usage: Optional, mandatory for MT202.COV
Cover Role: Ultimate originator of underlying transaction
Format: [/account]BIC or name/address
field_59a: Option<Field59A>
Beneficiary Customer - Field 59A (Optional, Cover Messages)
Identifies the ultimate beneficiary customer when MT202 is used as a cover message. This field identifies the final recipient of the underlying customer transfer being covered.
Usage: Optional, used in cover messages
Cover Role: Ultimate beneficiary of underlying transaction
Format: [/account]BIC or name/address
field_70: Option<Field70>
Remittance Information - Field 70 (Optional, Cover Messages)
Provides details about the purpose and context of the underlying customer transfer when MT202 is used as a cover message. Contains payment references and remittance details.
Usage: Optional, used in cover messages
Format: Up to 4 lines of 35 characters each
Purpose: Payment description, invoice numbers, contract references
field_33b: Option<Field33B>
Currency/Instructed Amount - Field 33B (Optional, Cover Messages)
Original amount and currency as instructed by the ordering customer when different from the settlement amount in Field 32A. Used in cross-currency cover scenarios.
Usage: Optional, for cross-currency covers
Format: Currency code + Amount
Relationship: May differ from Field 32A for FX transactions
field_52a_seq_b: Option<Field52A>
Ordering Institution - Field 52A Sequence B (Optional, Cover Messages)
Identifies the ordering institution in the underlying customer transaction when MT202 is used as a cover message. This can be different from the institutional ordering institution in Sequence A.
Usage: Optional, MT202.COV Sequence B only
Cover Role: Ordering institution for underlying customer transaction
Difference: Distinct from Sequence A Field 52A (institutional context)
field_56a_seq_b: Option<Field56A>
Intermediary Institution - Field 56A Sequence B (Optional, Cover Messages)
Identifies an intermediary institution in the underlying customer transaction routing chain when MT202 is used as a cover message. This provides the customer transaction routing context separate from institutional routing.
Usage: Optional, MT202.COV Sequence B only
Cover Role: Intermediary for underlying customer transaction
Routing: Customer transaction routing, not institutional routing
field_57a_seq_b: Option<Field57A>
Account With Institution - Field 57A Sequence B (Optional, Cover Messages)
Identifies the account with institution in the underlying customer transaction when MT202 is used as a cover message. This specifies where the beneficiary customer’s account is held in the underlying transaction.
Usage: Optional, MT202.COV Sequence B only
Cover Role: Beneficiary’s bank for underlying customer transaction
Context: Customer transaction settlement, not institutional settlement
field_72_seq_b: Option<Field72>
Sender to Receiver Information - Field 72 Sequence B (Optional, Cover Messages)
Provides additional processing instructions and information specific to the underlying customer transaction when MT202 is used as a cover message. This is separate from institutional processing instructions in Sequence A.
Usage: Optional, MT202.COV Sequence B only
Cover Role: Customer transaction processing instructions
Content: Customer-specific instructions, references, operational information
Implementations§
Source§impl MT202
impl MT202
Sourcepub fn new(
field_20: Field20,
field_21: Field21,
field_32a: Field32A,
field_58a: Field58A,
) -> Self
pub fn new( field_20: Field20, field_21: Field21, field_32a: Field32A, field_58a: Field58A, ) -> Self
Create a new MT202 with required fields only
Sourcepub fn new_complete(
field_20: Field20,
field_21: Field21,
field_32a: Field32A,
field_58a: Field58A,
field_13c: Option<Vec<Field13C>>,
field_52a: Option<Field52A>,
field_53a: Option<Field53A>,
field_54a: Option<Field54A>,
field_56a: Option<Field56A>,
field_57a: Option<Field57A>,
field_72: Option<Field72>,
field_50a: Option<Field50>,
field_59a: Option<Field59A>,
field_70: Option<Field70>,
field_33b: Option<Field33B>,
field_52a_seq_b: Option<Field52A>,
field_56a_seq_b: Option<Field56A>,
field_57a_seq_b: Option<Field57A>,
field_72_seq_b: Option<Field72>,
) -> Self
pub fn new_complete( field_20: Field20, field_21: Field21, field_32a: Field32A, field_58a: Field58A, field_13c: Option<Vec<Field13C>>, field_52a: Option<Field52A>, field_53a: Option<Field53A>, field_54a: Option<Field54A>, field_56a: Option<Field56A>, field_57a: Option<Field57A>, field_72: Option<Field72>, field_50a: Option<Field50>, field_59a: Option<Field59A>, field_70: Option<Field70>, field_33b: Option<Field33B>, field_52a_seq_b: Option<Field52A>, field_56a_seq_b: Option<Field56A>, field_57a_seq_b: Option<Field57A>, field_72_seq_b: Option<Field72>, ) -> Self
Create a new MT202 with all fields for complete functionality
Sourcepub fn transaction_reference(&self) -> &str
pub fn transaction_reference(&self) -> &str
Get the transaction reference
Get the related reference
Sourcepub fn currency_code(&self) -> &str
pub fn currency_code(&self) -> &str
Get the currency code
Sourcepub fn amount_decimal(&self) -> f64
pub fn amount_decimal(&self) -> f64
Get the transaction amount as decimal
Sourcepub fn beneficiary_institution_bic(&self) -> &str
pub fn beneficiary_institution_bic(&self) -> &str
Get the beneficiary institution BIC
Sourcepub fn time_indications(&self) -> Option<&Vec<Field13C>>
pub fn time_indications(&self) -> Option<&Vec<Field13C>>
Get time indications if present
Sourcepub fn ordering_institution(&self) -> Option<&Field52A>
pub fn ordering_institution(&self) -> Option<&Field52A>
Get ordering institution if present
Sourcepub fn senders_correspondent(&self) -> Option<&Field53A>
pub fn senders_correspondent(&self) -> Option<&Field53A>
Get sender’s correspondent if present
Sourcepub fn receivers_correspondent(&self) -> Option<&Field54A>
pub fn receivers_correspondent(&self) -> Option<&Field54A>
Get receiver’s correspondent if present
Sourcepub fn intermediary_institution(&self) -> Option<&Field56A>
pub fn intermediary_institution(&self) -> Option<&Field56A>
Get intermediary institution if present
Sourcepub fn account_with_institution(&self) -> Option<&Field57A>
pub fn account_with_institution(&self) -> Option<&Field57A>
Get account with institution if present
Sourcepub fn sender_to_receiver_info(&self) -> Option<&Field72>
pub fn sender_to_receiver_info(&self) -> Option<&Field72>
Get sender to receiver information if present
Sourcepub fn ordering_customer(&self) -> Option<&Field50>
pub fn ordering_customer(&self) -> Option<&Field50>
Get ordering customer if present (cover message)
Sourcepub fn beneficiary_customer(&self) -> Option<&Field59A>
pub fn beneficiary_customer(&self) -> Option<&Field59A>
Get beneficiary customer if present (cover message)
Sourcepub fn remittance_information(&self) -> Option<&Field70>
pub fn remittance_information(&self) -> Option<&Field70>
Get remittance information if present (cover message)
Sourcepub fn instructed_amount(&self) -> Option<&Field33B>
pub fn instructed_amount(&self) -> Option<&Field33B>
Get instructed amount if present (cover message)
Sourcepub fn is_cover_message(&self) -> bool
pub fn is_cover_message(&self) -> bool
Check if this is a cover message (MT202.COV)
Sourcepub fn is_cross_currency(&self) -> bool
pub fn is_cross_currency(&self) -> bool
Check if this is a cross-currency transfer
Sourcepub fn get_variant(&self) -> &'static str
pub fn get_variant(&self) -> &'static str
Get the message variant type
Sourcepub fn get_routing_chain(&self) -> Vec<(&str, String)>
pub fn get_routing_chain(&self) -> Vec<(&str, String)>
Get all institution fields in routing order
Sourcepub fn validate_structure(&self) -> bool
pub fn validate_structure(&self) -> bool
Check if all required fields are present and valid
Sourcepub fn validate_cover_message(&self) -> bool
pub fn validate_cover_message(&self) -> bool
Validate cover message requirements
Sourcepub fn get_time_indications_with_descriptions(&self) -> Vec<String>
pub fn get_time_indications_with_descriptions(&self) -> Vec<String>
Get all time indications with descriptions
Sourcepub fn has_cls_timing(&self) -> bool
pub fn has_cls_timing(&self) -> bool
Check if message has CLS timing requirements
Sourcepub fn has_target_timing(&self) -> bool
pub fn has_target_timing(&self) -> bool
Check if message has TARGET timing requirements
Sourcepub fn get_processing_instructions(&self) -> Vec<String>
pub fn get_processing_instructions(&self) -> Vec<String>
Get processing instructions from field 72
Sourcepub fn ordering_institution_seq_b(&self) -> Option<&Field52A>
pub fn ordering_institution_seq_b(&self) -> Option<&Field52A>
Get ordering institution from sequence B if present (cover message)
Sourcepub fn intermediary_institution_seq_b(&self) -> Option<&Field56A>
pub fn intermediary_institution_seq_b(&self) -> Option<&Field56A>
Get intermediary institution from sequence B if present (cover message)
Sourcepub fn account_with_institution_seq_b(&self) -> Option<&Field57A>
pub fn account_with_institution_seq_b(&self) -> Option<&Field57A>
Get account with institution from sequence B if present (cover message)
Sourcepub fn sender_to_receiver_info_seq_b(&self) -> Option<&Field72>
pub fn sender_to_receiver_info_seq_b(&self) -> Option<&Field72>
Get sender to receiver information from sequence B if present (cover message)
Sourcepub fn get_customer_routing_chain(&self) -> Vec<(&str, String)>
pub fn get_customer_routing_chain(&self) -> Vec<(&str, String)>
Get customer transaction routing chain from sequence B (cover message)
Sourcepub fn get_customer_processing_instructions(&self) -> Vec<String>
pub fn get_customer_processing_instructions(&self) -> Vec<String>
Get processing instructions from sequence B field 72 (cover message)