pub struct Field20 {
pub reference: String,
}
Expand description
Field 20: Sender’s Reference
§Purpose
Specifies the reference assigned by the Sender to unambiguously identify the message. This reference must be unique within the sender’s system and is used to link related messages and confirmations throughout the payment chain.
§Format
- Swift Format:
16x
- Description: Up to 16 alphanumeric characters
- Pattern: May include letters, digits, and limited special characters
- Restrictions: Must not start or end with
/
and must not contain//
§Presence
- Status: Mandatory in all MT messages containing this field
- Swift Error Codes: T26 (invalid format), T13 (field too long)
- Referenced in Rules: Network validation rules across multiple message types
§Network Validation Rules
- Format Validation: Must conform to 16x pattern (alphanumeric, max 16 chars)
- Content Validation: Cannot start/end with
/
or contain consecutive slashes//
- Uniqueness: Should be unique within sender’s daily operations for audit purposes
§Usage Rules
- Confirmations: Must be quoted unchanged in related MT900/MT910/MT950 messages
- Cover Payments: When using cover method, copy to field 21 of associated MT202 COV
- Audit Trail: Used by institutions to track payment lifecycle and exceptions
- Reference Format: Common patterns include transaction IDs, invoice numbers, or internal references
§Examples
:20:PAYMENT123456
:20:INV2024001234
:20:TXN20240719001
:20:URGPAY240719
§Related Fields
- Field 21: Transaction Reference Number (often contains Field 20 value in cover payments)
- Field 61: Statement Line Reference (in account statements)
- Block 3 {108}: Message User Reference (system-level tracking)
§STP Compliance
Field 20 has no specific STP restrictions but must meet standard format requirements. STP processing relies on this field for automated matching and exception handling.
§See Also
- Swift FIN User Handbook: Message Structure and Field Specifications
- MT103 Specification: Customer Credit Transfer requirements
- Cover Payment Guidelines: Field 20/21 relationship rules
Fields§
§reference: String
The sender’s reference string (max 16 characters)
Format: 16x - Up to 16 alphanumeric characters Validation: No leading/trailing slashes, no consecutive slashes
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Field20
impl<'de> Deserialize<'de> for Field20
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl SwiftField for Field20
impl SwiftField for Field20
Source§fn to_swift_string(&self) -> String
fn to_swift_string(&self) -> String
Convert field back to SWIFT string format
Source§fn format_spec() -> &'static str
fn format_spec() -> &'static str
Get field format specification
impl StructuralPartialEq for Field20
Auto Trait Implementations§
impl Freeze for Field20
impl RefUnwindSafe for Field20
impl Send for Field20
impl Sync for Field20
impl Unpin for Field20
impl UnwindSafe for Field20
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more