pub struct Field77T {
pub envelope_type: String,
pub envelope_format: String,
pub envelope_identifier: String,
}
Expand description
§Field 77T: Envelope Contents
§Overview
Field 77T contains envelope contents information in SWIFT MT103.REMIT messages, providing structured data about the remittance information envelope. This field is mandatory for MT103.REMIT messages and contains codes that identify the type and format of remittance information being transmitted. It supports the Extended Remittance Registration (ERR) framework for structured remittance data exchange.
§Format Specification
Format: 1!a1!a/35x
- 1!a: Envelope type code (1 alphabetic character)
- 1!a: Envelope format code (1 alphabetic character)
- /: Separator
- 35x: Envelope identifier (up to 35 characters)
§Structure
RD/REMITTANCE-2024-001234567890
││ │
││ └─ Envelope identifier (up to 35 chars)
│└─── Format code (D = Detailed)
└──── Type code (R = Remittance)
§Field Components
- Envelope Type: Single character indicating envelope content type
- Envelope Format: Single character indicating data format
- Envelope Identifier: Unique identifier for the envelope contents
§Usage Context
Field 77T is used in:
- MT103.REMIT: Single Customer Credit Transfer with Remittance (mandatory)
§Business Applications
- Structured remittance: Supporting ISO 20022 remittance data
- Extended remittance: Enabling detailed payment information
- Regulatory compliance: Meeting remittance reporting requirements
- Automated processing: Supporting straight-through remittance processing
- Invoice matching: Facilitating automated accounts receivable processing
§Envelope Type Codes
§R - Remittance Information
- Description: Contains structured remittance data
- Usage: Standard remittance information envelope
- Content: Invoice details, payment references, structured data
§S - Supplementary Information
- Description: Additional supporting information
- Usage: Supplementary data beyond basic remittance
- Content: Extended commercial details, regulatory data
§T - Trade Information
- Description: Trade finance related information
- Usage: Trade settlement and documentary credit data
- Content: LC references, trade documents, commercial terms
§Envelope Format Codes
§D - Detailed Format
- Description: Comprehensive structured format
- Usage: Full remittance data with all available fields
- Content: Complete invoice and payment details
§S - Summary Format
- Description: Condensed format with key information
- Usage: Essential remittance data only
- Content: Basic payment references and amounts
§C - Custom Format
- Description: Institution-specific format
- Usage: Proprietary or specialized data structures
- Content: Custom remittance information layout
§Examples
:77T:RD/REMITTANCE-2024-001234567890
└─── Detailed remittance envelope
:77T:SS/SUPP-INFO-2024-03-15-001
└─── Summary supplementary information
:77T:TC/TRADE-LC-2024-567890123
└─── Custom trade information envelope
:77T:RD/INV-2024-001234-PAYMENT-REF
└─── Invoice-based remittance envelope
§Envelope Identifier Guidelines
- Uniqueness: Should be unique within sender’s system
- Traceability: Enable tracking and reconciliation
- Format: Alphanumeric with limited special characters
- Length: Maximum 35 characters
- Content: Meaningful identifier for envelope contents
§Common Identifier Patterns
- REMITTANCE-YYYY-NNNNNNNNNN: Standard remittance pattern
- INV-YYYY-NNNNNN-REF: Invoice-based identifier
- TRADE-LC-YYYY-NNNNNN: Trade finance identifier
- SUPP-INFO-YYYY-MM-DD-NNN: Supplementary information pattern
§Validation Rules
- Envelope type: Must be single alphabetic character
- Envelope format: Must be single alphabetic character
- Separator: Must be forward slash (/)
- Identifier length: Maximum 35 characters
- Character set: SWIFT character set only
- Content validation: Identifier must be meaningful
- Uniqueness: Should be unique within context
§Network Validated Rules (SWIFT Standards)
- Envelope type must be alphabetic (Error: T15)
- Envelope format must be alphabetic (Error: T15)
- Separator must be forward slash (Error: T77)
- Identifier cannot exceed 35 characters (Error: T50)
- Characters must be from SWIFT character set (Error: T61)
- Field 77T mandatory in MT103.REMIT (Error: M77)
- Field 77T not used in MT103 Core/STP (Error: C77)
Fields§
§envelope_type: String
Envelope type code (1 alphabetic character)
envelope_format: String
Envelope format code (1 alphabetic character)
envelope_identifier: String
Envelope identifier (up to 35 characters)
Implementations§
Source§impl Field77T
impl Field77T
Sourcepub fn new(
envelope_type: impl Into<String>,
envelope_format: impl Into<String>,
envelope_identifier: impl Into<String>,
) -> Result<Self>
pub fn new( envelope_type: impl Into<String>, envelope_format: impl Into<String>, envelope_identifier: impl Into<String>, ) -> Result<Self>
Create a new Field77T with validation
§Arguments
envelope_type
- Envelope type code (1 alphabetic character)envelope_format
- Envelope format code (1 alphabetic character)envelope_identifier
- Envelope identifier (up to 35 characters)
§Examples
use swift_mt_message::fields::Field77T;
// Detailed remittance envelope
let field = Field77T::new("R", "D", "REMITTANCE-2024-001234567890").unwrap();
// Summary supplementary information
let field = Field77T::new("S", "S", "SUPP-INFO-2024-03-15-001").unwrap();
// Custom trade information
let field = Field77T::new("T", "C", "TRADE-LC-2024-567890123").unwrap();
Sourcepub fn envelope_type(&self) -> &str
pub fn envelope_type(&self) -> &str
Get the envelope type code
Sourcepub fn envelope_format(&self) -> &str
pub fn envelope_format(&self) -> &str
Get the envelope format code
Sourcepub fn envelope_identifier(&self) -> &str
pub fn envelope_identifier(&self) -> &str
Get the envelope identifier
Sourcepub fn is_remittance_envelope(&self) -> bool
pub fn is_remittance_envelope(&self) -> bool
Check if this is a remittance information envelope
Sourcepub fn is_supplementary_envelope(&self) -> bool
pub fn is_supplementary_envelope(&self) -> bool
Check if this is a supplementary information envelope
Sourcepub fn is_trade_envelope(&self) -> bool
pub fn is_trade_envelope(&self) -> bool
Check if this is a trade information envelope
Sourcepub fn is_detailed_format(&self) -> bool
pub fn is_detailed_format(&self) -> bool
Check if this uses detailed format
Sourcepub fn is_summary_format(&self) -> bool
pub fn is_summary_format(&self) -> bool
Check if this uses summary format
Sourcepub fn is_custom_format(&self) -> bool
pub fn is_custom_format(&self) -> bool
Check if this uses custom format
Sourcepub fn description(&self) -> String
pub fn description(&self) -> String
Get a description of the envelope type and format
Sourcepub fn is_required_for_remit(&self) -> bool
pub fn is_required_for_remit(&self) -> bool
Check if this field is required for MT103.REMIT
Sourcepub fn is_allowed_in_core_stp(&self) -> bool
pub fn is_allowed_in_core_stp(&self) -> bool
Check if this field is allowed in MT103 Core/STP