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}