Field52A

Struct Field52A 

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

Field 52: Ordering Institution / Account Servicing Institution

§Purpose

Specifies the financial institution of the ordering customer when different from the Sender, or identifies the account servicing institution in various transaction contexts. This field enables proper institutional identification and routing in complex multi-party transactions where the ordering customer’s bank differs from the message originator. Critical for correspondent banking and institutional relationships.

§Format Options Overview

  • Option A: BIC with optional party identifier - structured institutional identification
  • Option B: Party identifier with location - domestic routing information
  • Option C: Party identifier only - simplified institutional reference
  • Option D: Party identifier with name/address - detailed institutional information

§Business Context Applications

  • Ordering Institution: When ordering customer’s bank differs from message sender
  • Account Servicing: Institution maintaining the ordering customer’s account
  • Correspondent Banking: Institutional relationships in cross-border payments
  • Multi-Party Transactions: Complex routing scenarios requiring institutional clarity

§Network Validation Requirements

  • BIC Registration: All BIC codes must be registered financial institutions
  • Clearing Codes: National clearing codes must be valid for respective countries
  • Format Compliance: Exact adherence to option-specific format requirements
  • Institutional Validity: Referenced institutions must be reachable and operational

§National Clearing System Support

§European Systems

  • AT (Austria): Bankleitzahl - 5!n format
  • BL (Germany): Bankleitzahl - 8!n format
  • ES (Spain): Spanish Domestic - 8..9n format
  • GR (Greece): HEBIC - 7!n format
  • IE (Ireland): NSC - 6!n format
  • IT (Italy): Italian Domestic - 10!n format
  • PL (Poland): KNR - 8!n format
  • PT (Portugal): Portuguese - 8!n format
  • SC (UK): Sort Code - 6!n format

§North American Systems

  • CC (Canada): Canadian Routing - 9!n format
  • FW (US): Fedwire - without 9 digit code

§Asia-Pacific Systems

  • AU (Australia): BSB - 6!n format
  • CN (China): CNAPS - 12..14n format
  • HK (Hong Kong): Hong Kong - 3!n format
  • IN (India): IFSC - 11!c format

§Regional Considerations

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

§STP Processing Benefits

  • Automated Routing: System-driven institutional routing based on clear identification
  • Exception Reduction: Proper institutional identification reduces manual intervention
  • Straight-Through Processing: Enhanced STP rates through structured data
  • Risk Mitigation: Clear institutional accountability and routing paths

§Error Prevention Guidelines

  • BIC Validation: Verify all BIC codes are registered and reachable
  • Code Verification: Confirm national clearing codes are current and valid
  • Format Checking: Ensure exact compliance with option format requirements
  • Institutional Verification: Confirm referenced institutions can process transactions
  • Field 50A/K: Ordering Customer (institutional customer relationship)
  • Field 53A: Sender’s Correspondent (reimbursement routing)
  • Field 57A: Account With Institution (beneficiary institutional relationship)
  • Field 72: Sender to Receiver Information (additional institutional details)

§Compliance Framework

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

§See Also

  • Swift FIN User Handbook: Ordering Institution Specifications

  • National Clearing Code Directory: Country-Specific Routing Codes

  • Correspondent Banking Guidelines: Institutional Relationship Standards

  • BIC Directory: Registered Financial Institution Codes

    Field 52A: Ordering Institution (BIC with Party Identifier)

Structured institutional identification using BIC code with optional party identifier. Preferred option for automated processing and correspondent banking.

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 national clearing codes and institutional account references

§bic: String

Bank Identifier Code of the ordering institution

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

Trait Implementations§

Source§

impl Clone for Field52A

Source§

fn clone(&self) -> Field52A

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 Field52A

Source§

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

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

impl<'de> Deserialize<'de> for Field52A

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 Field52A

Source§

fn eq(&self, other: &Field52A) -> 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 Field52A

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 Field52A

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 Field52A

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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
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>,