Struct Field51A

Source
pub struct Field51A {
    pub party_identifier: Option<String>,
    pub bic: String,
}
Expand description

Field 51A: Sending Institution

§Purpose

Identifies the Sender of the message, primarily used in FileAct messages and specialized transaction contexts. This field provides explicit identification of the message originator when additional clarity is required beyond the message header information. Essential for proper message routing and accountability.

§Format

  • Swift Format: [/1!a][/34x]4!a2!a2!c[3!c]
  • Party Identifier: [/1!a][/34x] - Optional clearing system identifier
  • BIC Component: 4!a2!a2!c[3!c] - Bank Identifier Code (8 or 11 characters)
  • Usage Context: FileAct messages and institutional identification

§Presence

  • Status: Optional in most contexts, conditional for FileAct messages
  • Swift Error Codes: T27/T28/T29 (invalid BIC), T45 (unregistered BIC), D63 (invalid context)
  • Usage Context: Message sender identification and institutional routing

§Usage Rules

  • FileAct Context: Mandatory for FileAct message identification
  • BIC Validation: Must be registered financial institution BIC
  • Originator Match: First 8 characters must match message originator
  • Reference Coordination: Works with Field 20 for transaction reference

§Network Validation Rules

  • BIC Registration: Must be valid and registered financial institution
  • Format Compliance: Exact adherence to BIC format requirements
  • Originator Consistency: BIC prefix must match sending institution
  • Context Validation: Only valid in appropriate message types
  • Character Set: Alphanumeric characters only in specified positions

§Business Context

  • Message Identification: Explicit sender identification for complex routing
  • FileAct Operations: Essential component of file transfer messages
  • Institutional Clarity: Removes ambiguity in multi-party transactions
  • Audit Trail: Provides clear originator identification for compliance

§Party Identifier Formats

  • Clearing System Codes: Single character codes for domestic systems
  • Account References: Up to 34 character institutional identifiers
  • Optional Usage: May be omitted when not required for routing
  • System Specific: Aligned with local clearing system requirements

§Examples

:51A:DEUTDEFFXXX        // Deutsche Bank Frankfurt (basic BIC)
:51A:/DCHAPSFFXXX       // With clearing system identifier
:51A:/12345678MIDLGB22  // With account reference and BIC

§FileAct Message Integration

  • Message Routing: Critical for FileAct message delivery
  • Security Context: Supports authentication and authorization
  • Service Integration: Enables proper service endpoint identification
  • Error Handling: Facilitates proper error message routing

§Clearing System Codes

  • Domestic Systems: Single character codes for national clearing
  • International Routing: Multi-character codes for cross-border
  • Bilateral Agreements: Custom codes for specific institution pairs
  • Regional Networks: Codes for regional payment systems

§Regional Considerations

  • European Networks: TARGET2 and SEPA routing requirements
  • US Systems: Fedwire and ACH routing considerations
  • Asian Markets: Local clearing system integration requirements
  • Cross-Border: International correspondent banking arrangements

§Error Prevention

  • BIC Validation: Verify BIC is registered and reachable
  • Context Checking: Ensure appropriate message type usage
  • Originator Matching: Confirm BIC alignment with sender
  • Format Verification: Validate exact format compliance
  • Field 20: Transaction Reference (coordination with sender ID)
  • Field 52A: Ordering Institution (institution hierarchy)
  • Message Header: Basic Application Header (sender information)
  • Field 53A: Sender’s Correspondent (relationship definition)

§Institutional Hierarchy

  • Primary Sender: Main institution originating message
  • Department/Branch: Specific department within institution
  • Service Provider: Third-party service acting for institution
  • Correspondent Network: Institution acting through correspondent

§STP Processing

  • Automated Routing: System-driven message routing based on BIC
  • Validation Enhancement: Real-time BIC validation and verification
  • Error Reduction: Automated detection of routing inconsistencies
  • Processing Efficiency: Streamlined handling of institutional identification

§Compliance Framework

  • Regulatory Identification: Clear sender identification for compliance
  • Audit Documentation: Complete institutional identification trail
  • Risk Management: Proper sender identification for risk assessment
  • Investigation Support: Clear originator details for compliance reviews

§FileAct Specific Applications

  • File Transfer Security: Sender authentication for file operations
  • Service Discovery: Proper routing to file handling services
  • Message Correlation: Linking file operations to sending institution
  • Error Resolution: Proper routing of file operation errors

§See Also

  • Swift FIN User Handbook: Sending Institution Specifications
  • FileAct Message Standards: Sender Identification Requirements
  • BIC Directory: Valid Financial Institution Codes
  • Message Routing Guidelines: Institutional Identification Standards

Fields§

§party_identifier: Option<String>

Optional party identifier for clearing system or account reference

Format: [/1!a][/34x] - Single character code + up to 34 character identifier Used for domestic clearing systems and institutional account references

§bic: String

Bank Identifier Code of the sending institution

Format: 4!a2!a2!c[3!c] - 8 or 11 character BIC code Must be registered financial institution BIC matching message originator

Trait Implementations§

Source§

impl Clone for Field51A

Source§

fn clone(&self) -> Field51A

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Field51A

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Field51A

Source§

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 PartialEq for Field51A

Source§

fn eq(&self, other: &Field51A) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for Field51A

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl SwiftField for Field51A

Source§

fn parse(value: &str) -> Result<Self>

Parse field value from string representation
Source§

fn to_swift_string(&self) -> String

Convert field back to SWIFT string format
Source§

fn format_spec() -> &'static str

Get field format specification
Source§

fn parse_with_variant( value: &str, _variant: Option<&str>, _field_tag: Option<&str>, ) -> Result<Self>
where Self: Sized,

Parse field value with variant hint for enum fields Default implementation falls back to regular parse
Source§

fn valid_variants() -> Option<Vec<&'static str>>

Get valid variant letters for enum fields Returns None for non-enum fields, Some(vec) for enum fields
Source§

impl StructuralPartialEq for Field51A

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Fake for T

Source§

fn fake<U>(&self) -> U
where Self: FakeBase<U>,

Source§

fn fake_with_rng<U, R>(&self, rng: &mut R) -> U
where R: Rng + ?Sized, Self: FakeBase<U>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,