swift_mt_message/messages/mt191.rs
1use crate::fields::*;
2use serde::{Deserialize, Serialize};
3use swift_mt_message_macros::{SwiftMessage, serde_swift_fields};
4
5/// MT191: Request for Payment of Charges, Interest and Other Expenses
6///
7/// ## Purpose
8/// Used to request payment of charges, interest and other expenses from another financial institution.
9/// This message enables banks to claim reimbursement for costs incurred on behalf of another institution,
10/// ensuring proper cost recovery and transparent inter-bank expense management.
11///
12/// ## Scope
13/// This message is:
14/// - Sent between financial institutions to request expense reimbursement
15/// - Used to claim charges, interest, and other costs incurred
16/// - Applied to various types of inter-bank expenses and fee recovery
17/// - Essential for correspondent banking cost management
18/// - Part of the comprehensive inter-bank settlement process
19///
20/// ## Key Features
21/// - **Expense Request**: Formal request for payment of incurred expenses
22/// - **Detailed Charges**: Comprehensive breakdown of charges being claimed
23/// - **Currency Specification**: Clear identification of currency and amount
24/// - **Reference Tracking**: Links to related transactions or services
25/// - **Institution Identification**: Clear identification of parties involved
26/// - **Settlement Instructions**: Optional routing for payment settlement
27///
28/// ## Common Use Cases
29/// - Correspondent banking charge recovery
30/// - Interest payment requests on nostro accounts
31/// - Service fee reimbursement requests
32/// - Transaction processing cost recovery
33/// - Foreign exchange handling charges
34/// - Investigation and inquiry fee recovery
35/// - Amendment processing charge requests
36/// - Compliance and regulatory cost recovery
37///
38/// ## Message Structure
39/// - **Field 20**: Transaction Reference Number (mandatory) - Unique reference for this request
40/// - **Field 21**: Related Reference (mandatory) - Reference to related transaction or period
41/// - **Field 32B**: Currency Code, Amount (mandatory) - Amount being requested
42/// - **Field 52a**: Ordering Institution (optional) - Institution initiating request (A or D)
43/// - **Field 57a**: Account With Institution (optional) - Settlement account details (A, B, or D)
44/// - **Field 71B**: Details of Charges (mandatory) - Detailed breakdown of expenses
45/// - **Field 72**: Sender to Receiver Information (optional) - Additional information
46///
47/// ## Network Validation Rules
48/// - **Reference Format**: Transaction references must follow SWIFT standards
49/// - **Amount Validation**: Requested amounts must be properly formatted
50/// - **Institution Validation**: BIC codes must be valid SWIFT participants
51/// - **Charge Details**: Field 71B must contain meaningful expense information
52/// - **Currency Validation**: Currency codes must be valid ISO 4217 codes
53///
54/// ## Processing Context
55/// ### Request Processing Workflow
56/// 1. Expenses incurred and documented
57/// 2. MT191 request prepared with details
58/// 3. Message sent to responsible institution
59/// 4. Receiving institution validates claim
60/// 5. Payment processed via appropriate channel
61///
62/// ### Expense Management
63/// - Cost tracking and allocation
64/// - Inter-bank billing processes
65/// - Service level agreements
66/// - Reconciliation support
67///
68/// ## SRG2025 Status
69/// - **No Structural Changes**: MT191 format remains stable
70/// - **Enhanced Processing**: Improved integration with expense management systems
71/// - **Validation Updates**: Enhanced validation rules for expense claims
72/// - **Real-time Capability**: Support for immediate expense notifications
73///
74/// ## Integration Considerations
75/// - **Correspondent Banking**: Core component of correspondent relationships
76/// - **Expense Systems**: Integration with bank expense management platforms
77/// - **Settlement Networks**: Links to payment and settlement systems
78/// - **Reporting**: Essential for inter-bank cost reporting
79///
80/// ## Relationship to Other Messages
81/// - **May trigger**: MT103/MT202 for actual payment
82/// - **Related to**: MT192 for payment request cancellation
83/// - **Complements**: MT199 for free format messages
84/// - **Alternative**: MT291 for cancellation of this request
85///
86/// ## Best Practices
87/// - Provide detailed charge breakdown in Field 71B
88/// - Include clear reference to services or transactions
89/// - Specify preferred settlement instructions when applicable
90/// - Ensure timely submission of expense claims
91/// - Maintain supporting documentation for all charges
92
93#[serde_swift_fields]
94#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, SwiftMessage)]
95pub struct MT191 {
96 #[field("20")]
97 pub field_20: Field20,
98
99 #[field("21")]
100 pub field_21: Field21NoOption,
101
102 #[field("32B")]
103 pub field_32b: Field32B,
104
105 #[field("52")]
106 pub field_52: Option<Field52OrderingInstitution>,
107
108 #[field("57")]
109 pub field_57: Option<Field57AccountWithInstitution>,
110
111 #[field("71B")]
112 pub field_71b: Field71B,
113
114 #[field("72")]
115 pub field_72: Option<Field72>,
116}