Expand description
§SWIFT MT Message Fields
§Purpose
Comprehensive field definitions for all SWIFT MT message types, providing type-safe parsing, validation, and serialization for individual message fields.
§Field Architecture
Each field module provides:
- Type-Safe Structures: Strongly-typed field definitions with validation
- Format Compliance: SWIFT User Handbook format specification adherence
- Variant Support: Complex enum fields with multiple format options (e.g., Field50: A/F/K)
- JSON Serialization: Clean JSON output without enum wrapper layers
§Field Categories
- Reference Fields: Transaction references, message references (Field 20, 21)
- Amount Fields: Currencies, amounts, exchange rates (Field 32, 33, 36)
- Party Fields: Customer and institution identification (Field 50-59)
- Date/Time Fields: Value dates, execution dates (Field 30, 32A)
- Instruction Fields: Processing instructions and codes (Field 23, 71)
- Information Fields: Remittance and additional information (Field 70, 72)
§Field Format Support
All fields support SWIFT format specifications:
n
: Numeric characters (0-9)a
: Alphabetic characters (A-Z, a-z)c
: Capital letters (A-Z)x
: Any character except spacesh
: Hexadecimal characters (0-9, A-F)d
: Decimal numbers with precision
§Usage Example
use swift_mt_message::fields::{Field20, Field32A, Field50OrderingCustomerAFK, Field59};
use swift_mt_message::SwiftField;
// Parse simple field
let field_20 = Field20::parse("TXN123456")?;
// Parse complex amount field
let field_32a = Field32A::parse("240315USD1000,00")?;
// Parse enum field with variant
let field_50 = Field50OrderingCustomerAFK::parse_with_variant("JOHN DOE\n123 MAIN ST", Some("K"), Some("50"))?;
Re-exports§
pub use field11::*;
pub use field12::*;
pub use field13::*;
pub use field19::*;
pub use field20::*;
pub use field21::*;
pub use field23::*;
pub use field25::*;
pub use field26::*;
pub use field28::*;
pub use field30::*;
pub use field32::*;
pub use field33::*;
pub use field34::*;
pub use field36::*;
pub use field37::*;
pub use field50::*;
pub use field51::*;
pub use field52::*;
pub use field53::*;
pub use field54::*;
pub use field55::*;
pub use field56::*;
pub use field57::*;
pub use field58::*;
pub use field59::*;
pub use field60::*;
pub use field61::*;
pub use field62::*;
pub use field64::*;
pub use field65::*;
pub use field70::*;
pub use field71::*;
pub use field72::*;
pub use field75::*;
pub use field76::*;
pub use field77::*;
pub use field79::*;
pub use field86::*;
pub use field90::*;
Modules§
- field11
- Field 11: MT Reference
- field12
- Field 12: Sub Message Type
- field13
- Field 13: Time/Date Indication
- field19
- Field 19: Sum of Amounts
- field20
- field21
- field23
- field25
- field26
- field28
- field30
- field32
- Field 32: Value Date, Currency Code, Amount
- field33
- field34
- field36
- field37
- field50
- Field 50: Ordering Customer
- field51
- field52
- field53
- field54
- field55
- field56
- field57
- field58
- field59
- field60
- field61
- field62
- field64
- field65
- field70
- field71
- field72
- field75
- field76
- field77
- field79
- field86
- field90
- Field 90: Number & Sum