swift_mt_message/fields/field23.rs
1use serde::{Deserialize, Serialize};
2use swift_mt_message_macros::SwiftField;
3
4/// # Field 23: Further Identification
5/// Format: 3!a[2!n]11x (function code + optional days + reference)
6/// Validation: function_code, reference_format
7#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, SwiftField)]
8pub struct Field23 {
9 /// Function code (3!a format: BASE, CALL, COMMERCIAL, CURRENT, DEPOSIT, NOTICE, PRIME)
10 #[component("3!a", validate = ["function_code"])]
11 pub function_code: String,
12 /// Number of days (2!n format, optional, only for NOTICE function)
13 #[component("2!n", optional, validate = ["positive_amount"])]
14 pub days: Option<u8>,
15 /// Reference information (11x format)
16 #[component("11x", validate = ["reference_format"])]
17 pub reference: String,
18}