swift_mt_message/fields/
field70.rs

1use serde::{Deserialize, Serialize};
2use swift_mt_message_macros::SwiftField;
3
4///   **Field 70: Remittance Information**
5///
6/// ## Purpose
7/// Specifies details of individual transactions or references to other messages containing
8/// details to be transmitted to the beneficiary customer. This field carries payment-related
9/// information that helps the beneficiary identify the purpose of the payment, reconcile
10/// accounts, and process the transaction appropriately. Critical for STP processing and
11/// beneficiary transaction identification.
12///
13/// ## Format Specification
14/// - **Swift Format**: `4*35x`
15/// - **Structure**: Up to 4 lines of 35 characters each
16/// - **Content**: Narrative format with structured codes and references
17/// - **Character Set**: SWIFT character set (A-Z, 0-9, space, and limited special characters)
18///
19/// ## Business Context Applications
20/// - **Payment Instructions**: MT 103 STP and customer credit transfers
21/// - **Beneficiary Information**: Details for payment recipient identification
22/// - **Invoice References**: Commercial payment references and invoice details
23/// - **Trade Finance**: Documentary credit and trade transaction references
24///
25/// ## Network Validation Requirements
26/// - **Length Restrictions**: Maximum 4 lines of 35 characters each
27/// - **Character Set**: Must use valid SWIFT character set
28/// - **Format Compliance**: Structured codes must follow specified formats
29/// - **Reference Validation**: Invoice and payment references must be properly formatted
30/// - **STP Requirements**: ISO 11649 Creditor Reference must appear alone on first line for STP
31///
32/// ## Structured Content Codes
33/// ### Payment References
34/// - **INV**: Invoice reference followed by date, reference, and details
35/// - **IPI**: International Payment Instruction (up to 20 characters)
36/// - **RFB**: Reference for Beneficiary (up to 16 characters)
37/// - **ROC**: Reference of Customer
38/// - **TSU**: Trade Services Utility transaction reference
39///
40/// ### Format Examples
41/// ```logic
42/// :70:/INV/20231215/INV-12345/Payment for goods
43/// :70:/RFB/PAY-REF-789456
44/// :70:/ROC/Customer order 123456
45/// :70:PAYMENT FOR SERVICES RENDERED
46/// ```
47///
48/// ## STP Processing Requirements
49/// ### ISO 11649 Creditor Reference
50/// - **Format**: RF followed by 2 check digits and up to 21 alphanumeric characters
51/// - **Position**: Must appear alone on first line for STP processing
52/// - **Validation**: Check digit validation required
53/// - **Usage**: Automated reconciliation and payment processing
54///
55/// ### Multiple References
56/// - **Separation**: Multiple references separated by double slash '//'
57/// - **Line Management**: Each line maximum 35 characters
58/// - **Continuation**: Long references can span multiple lines
59/// - **Priority**: Most important reference should appear first
60///
61/// ## Regional Considerations
62/// - **European Payments**: SEPA remittance information requirements
63/// - **US Payments**: ACH and wire transfer reference standards
64/// - **Asian Markets**: Local payment reference requirements
65/// - **Cross-Border**: International payment reference coordination
66///
67/// ## Clearing System Requirements
68/// - **Length Checking**: Sender must verify length restrictions with receiver
69/// - **Format Validation**: Structured codes must be properly formatted
70/// - **Character Validation**: All characters must be SWIFT-valid
71/// - **Reference Uniqueness**: References should be unique for reconciliation
72///
73/// ## Error Prevention Guidelines
74/// - **Length Validation**: Confirm total length does not exceed limits
75/// - **Character Checking**: Verify all characters are SWIFT-valid
76/// - **Reference Format**: Ensure structured references follow correct format
77/// - **Beneficiary Clarity**: Ensure information is clear for beneficiary
78///
79/// ## Related Fields Integration
80/// - **Field 59**: Beneficiary Customer (recipient of remittance information)
81/// - **Field 72**: Sender to Receiver Information (additional instructions)
82/// - **Field 77A**: Narrative (extended narrative information)
83/// - **Field 50**: Ordering Customer (originator context)
84///
85/// ## Compliance Framework
86/// - **Regulatory Requirements**: Payment reference reporting requirements
87/// - **AML Compliance**: Transaction purpose identification for AML screening
88/// - **Customer Protection**: Clear payment purpose communication
89/// - **Audit Trail**: Complete payment reference documentation
90///
91/// ## Trade Finance Applications
92/// - **Documentary Credits**: Letter of credit references
93/// - **Trade Settlements**: Commercial invoice and shipping references
94/// - **Supply Chain**: Purchase order and delivery references
95/// - **International Trade**: Import/export documentation references
96///
97/// ## See Also
98/// - Swift FIN User Handbook: Remittance Information Specifications
99/// - ISO 11649: Creditor Reference Standard
100/// - Payment Reference Standards: International Payment References
101/// - STP Guidelines: Straight Through Processing Requirements
102
103#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, SwiftField)]
104pub struct Field70 {
105    /// Remittance information narrative
106    ///
107    /// Format: 4*35x - Up to 4 lines of 35 characters each
108    /// Contains payment details, references, and instructions for beneficiary
109    /// May include structured codes (INV, IPI, RFB, ROC, TSU) and ISO 11649 references
110    #[component("4*35x")]
111    pub narrative: Vec<String>,
112}