swift_mt_message/fields/
field58.rs

1use serde::{Deserialize, Serialize};
2use swift_mt_message_macros::SwiftField;
3
4///   **Field 58: Beneficiary Institution**
5///
6/// ## Purpose
7/// Specifies the ultimate recipient institution of the funds being transferred in specialized
8/// payment scenarios. This field identifies the final institutional beneficiary when the
9/// payment is destined for a financial institution rather than a customer account.
10/// Used in institutional transfers, central bank operations, and specialized financial
11/// market transactions where the beneficiary is itself a financial institution.
12///
13/// ## Format Options Overview
14/// - **Option A**: BIC with optional party identifier - structured institutional beneficiary
15/// - **Option D**: Party identifier with name/address - detailed institutional beneficiary
16///
17/// ## Business Context Applications
18/// - **Institutional Transfers**: Payments between financial institutions
19/// - **Central Bank Operations**: Transfers to/from central banks and monetary authorities
20/// - **Market Infrastructure**: Payments to clearing houses, settlement systems
21/// - **Correspondent Banking**: Institutional correspondent relationship transfers
22///
23/// ## Usage Rules and Conditions
24/// - **Mandatory Context**: Required when beneficiary is a financial institution
25/// - **Option A Preference**: Option A must be used whenever possible
26/// - **Option D Exception**: Only in exceptional circumstances or regulatory requirements
27/// - **MT 200/201 Consistency**: Must match Field 52A content if from MT 200/201 transfer
28///
29/// ## Network Validation Requirements
30/// - **BIC Registration**: All BIC codes must be registered financial institutions
31/// - **Institutional Status**: Beneficiary must be recognized financial institution
32/// - **Service Capability**: Institution must be capable of receiving institutional transfers
33/// - **Regulatory Compliance**: Must meet regulatory requirements for institutional recipients
34///
35/// ## Extended Clearing Codes (Option D)
36/// ### Specialized Institution Codes
37/// - **CH**: CHIPS Universal Identifier - 6!n format for CHIPS participants
38/// - **CP**: CHIPS Participant - Direct CHIPS participation identifier
39/// - **FW**: Fedwire Routing - 9!n format for Federal Reserve routing
40/// - **RU**: Russian Central Bank - Russian Federation central bank identifier
41/// - **SW**: Swiss Clearing - Swiss national clearing system identifier
42///
43/// ### Code Applications
44/// - **Payment System Integration**: Direct integration with specialized payment systems
45/// - **Central Bank Coordination**: Coordination with central bank and monetary authority systems
46/// - **Market Infrastructure**: Integration with financial market infrastructure
47/// - **Cross-Border Settlement**: International institutional settlement arrangements
48///
49/// ## Institutional Transfer Types
50/// ### Central Bank Operations
51/// - **Monetary Policy**: Central bank monetary policy implementation transfers
52/// - **Reserve Management**: Bank reserve requirement transfers
53/// - **Foreign Exchange**: Central bank FX intervention operations
54/// - **Government Operations**: Government banking and treasury operations
55///
56/// ### Financial Market Infrastructure
57/// - **Clearing Houses**: Transfers to/from clearing and settlement organizations
58/// - **Securities Settlement**: Settlement of securities transactions
59/// - **Derivatives Clearing**: Clearing of derivative instruments
60/// - **Payment Systems**: Transfers within payment system infrastructure
61///
62/// ### Correspondent Banking
63/// - **Nostro/Vostro**: Correspondent account management transfers
64/// - **Liquidity Management**: Inter-bank liquidity management
65/// - **Settlement Services**: Correspondent settlement service payments
66/// - **Relationship Management**: Correspondent banking relationship transactions
67///
68/// ## Regional Considerations
69/// ### North American Systems
70/// - **Federal Reserve**: US central bank and Federal Reserve Bank transfers
71/// - **CHIPS Integration**: Clearing House Interbank Payments System
72/// - **Canadian Systems**: Bank of Canada and Canadian institutional transfers
73///
74/// ### European Systems
75/// - **ECB Operations**: European Central Bank institutional transfers
76/// - **National Central Banks**: Individual country central bank operations
77/// - **TARGET2**: European RTGS system institutional transfers
78///
79/// ### Asia-Pacific Systems
80/// - **Central Bank Networks**: Regional central bank cooperation
81/// - **Market Infrastructure**: Regional financial market infrastructure
82/// - **Cross-Border Initiatives**: Regional payment and settlement initiatives
83///
84/// ## Compliance and Risk Management
85/// ### Regulatory Framework
86/// - **Institutional Due Diligence**: Enhanced due diligence for institutional beneficiaries
87/// - **Regulatory Reporting**: Institutional transfer reporting requirements
88/// - **Central Bank Oversight**: Central bank supervision and oversight compliance
89/// - **Market Conduct**: Financial market conduct and integrity requirements
90///
91/// ### Risk Considerations
92/// - **Counterparty Risk**: Institutional counterparty risk assessment
93/// - **Settlement Risk**: Institutional settlement risk management
94/// - **Operational Risk**: Institutional operational risk considerations
95/// - **Systemic Risk**: Systemic risk implications of institutional transfers
96///
97/// ## STP Processing Benefits
98/// - **Institutional Automation**: Automated processing of institutional transfers
99/// - **System Integration**: Direct integration with institutional systems
100/// - **Exception Handling**: Specialized handling of institutional transfer exceptions
101/// - **Risk Monitoring**: Enhanced risk monitoring for institutional transfers
102///
103/// ## Error Prevention Guidelines
104/// - **Institution Verification**: Confirm beneficiary institution status and capability
105/// - **System Compatibility**: Verify institutional system compatibility
106/// - **Regulatory Checking**: Ensure regulatory compliance for institutional transfers
107/// - **Code Validation**: Validate specialized clearing codes and identifiers
108///
109/// ## Related Fields Integration
110/// - **Field 52A**: Ordering Institution (institutional transfer context)
111/// - **Field 57A**: Account With Institution (institutional account relationships)
112/// - **Field 32A**: Value Date, Currency, Amount (institutional transfer details)
113/// - **Field 72**: Sender to Receiver Information (institutional transfer purpose)
114///
115/// ## Performance Optimization
116/// - **Processing Speed**: Optimized processing for institutional transfers
117/// - **Cost Management**: Efficient institutional transfer cost management
118/// - **Liquidity Management**: Coordination with institutional liquidity management
119/// - **Settlement Timing**: Optimal settlement timing for institutional operations
120///
121/// ## See Also
122/// - Swift FIN User Handbook: Beneficiary Institution Specifications
123/// - Central Bank Guidelines: Institutional Transfer Requirements
124/// - Financial Market Infrastructure: Institutional Settlement Standards
125/// - Regulatory Framework: Institutional Transfer Compliance
126///
127///   **Field 58A: Beneficiary Institution (BIC with Party Identifier)**
128///
129/// Structured institutional beneficiary identification using BIC code with optional party identifier.
130/// Preferred option for institutional transfers and financial institution beneficiaries.
131#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, SwiftField)]
132pub struct Field58A {
133    /// Optional party identifier for institutional account or system reference
134    ///
135    /// Format: \[/1!a\]\[/34x\] - Single character code + up to 34 character identifier
136    /// Used for institutional account identification and system-specific routing
137    #[component("[/1!a][/34x]")]
138    pub party_identifier: Option<String>,
139
140    /// Bank Identifier Code of the beneficiary institution
141    ///
142    /// Format: 4!a2!a2!c\[3!c\] - 8 or 11 character BIC code
143    /// Must be registered financial institution capable of receiving institutional transfers
144    #[component("4!a2!a2!c[3!c]")]
145    pub bic: String,
146}
147
148///   **Field 58D: Beneficiary Institution (Party Identifier with Name and Address)**
149///
150/// Detailed institutional beneficiary identification with full name and address information.
151/// Used only in exceptional circumstances when structured BIC identification is not available.
152#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, SwiftField)]
153pub struct Field58D {
154    /// Optional party identifier for institutional system reference
155    ///
156    /// Format: \[/1!a\]\[/34x\] - Single character code + up to 34 character identifier
157    /// May contain extended clearing codes: CH (CHIPS), CP (CHIPS Participant),
158    /// FW (Fedwire), RU (Russian Central Bank), SW (Swiss Clearing)
159    #[component("[/1!a][/34x]")]
160    pub party_identifier: Option<String>,
161
162    /// Name and address of the beneficiary institution
163    ///
164    /// Format: 4*35x - Up to 4 lines of 35 characters each
165    /// Contains institution name, address, city, country details
166    #[component("4*35x")]
167    pub name_and_address: Vec<String>,
168}
169
170#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, SwiftField)]
171pub enum Field58 {
172    A(Field58A),
173    D(Field58D),
174}