Field55A

Struct Field55A 

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

Field 55: Third Reimbursement Institution

§Purpose

Specifies the Receiver’s branch when funds are made available through a different institution than specified in Field 53A (Sender’s Correspondent). This field enables complex reimbursement chains involving multiple institutions, typically used when the fund availability institution differs from the primary correspondent relationship. Essential for sophisticated correspondent banking arrangements.

§Format Options Overview

  • Option A: BIC with optional party identifier - structured third institution identification
  • Option B: Party identifier with location - domestic third institution routing
  • Option D: Party identifier with name/address - detailed third institution information

§Business Context Applications

  • Complex Reimbursement: Multi-institution settlement chains requiring third party
  • Branch Specification: Receiver’s branch when funds available through intermediary
  • Settlement Optimization: Efficient routing through specialized institutions
  • Regional Networks: Local institution integration in cross-border payments

§Usage Rules and Conditions

  • Conditional Presence: Optional field referenced in Rule C4 correspondent logic
  • Field 54A Dependency: Typically used when Field 54A contains non-Receiver institution
  • Receiver Branch: Usually contains Receiver’s branch in complex chains
  • Settlement Finalization: Represents final settlement point for funds availability

§Network Validation Requirements

  • BIC Registration: All BIC codes must be registered financial institutions
  • Institution Capability: Must provide reimbursement and settlement services
  • Operational Status: Institutions must be operational and reachable
  • Currency Support: Must support transaction currency and settlement requirements

§Complex Settlement Scenarios

§Multi-Institution Chains

  • Field 53A: Primary correspondent relationship (Sender side)
  • Field 54A: Intermediary institution for fund availability
  • Field 55A: Final settlement institution (typically Receiver’s branch)
  • Settlement Flow: Funds flow through multiple institutions to reach final destination

§Regional Integration

  • Local Presence: Integration with local banking networks
  • Regulatory Compliance: Meeting local settlement requirements
  • Currency Optimization: Efficient local currency settlement
  • Service Specialization: Leveraging specialized institution capabilities

§Risk Management Applications

  • Settlement Risk: Distribution of settlement risk across multiple institutions
  • Operational Risk: Redundancy and backup settlement paths
  • Counterparty Risk: Diversification of counterparty exposure
  • Liquidity Management: Optimization of liquidity across correspondent network

§Regional Considerations

  • European Networks: TARGET2 integration and Euro settlement optimization
  • US Systems: Federal Reserve and commercial bank integration
  • Asian Markets: Regional banking network integration and local settlement
  • Emerging Markets: Local institution integration for regulatory compliance

§STP Processing Benefits

  • Chain Automation: Automated processing of complex settlement chains
  • Exception Handling: Structured handling of multi-institution scenarios
  • Settlement Optimization: Efficient routing through multiple institutions
  • Risk Distribution: Automated risk assessment across institution chain

§Error Prevention Guidelines

  • Chain Validation: Verify complete settlement chain is operational
  • Institution Verification: Confirm all institutions can provide required services
  • Relationship Checking: Validate relationships between all chain participants
  • Currency Support: Ensure all institutions support transaction currency
  • Field 53A: Sender’s Correspondent (settlement chain initiation)
  • Field 54A: Receiver’s Correspondent (intermediate settlement)
  • Field 57A: Account With Institution (final beneficiary bank)
  • Field 32A: Value Date, Currency, Amount (settlement details)

§Compliance Framework

  • Multi-Institution Due Diligence: Enhanced due diligence across institution chain
  • Regulatory Coordination: Compliance across multiple regulatory jurisdictions
  • Audit Trail: Complete documentation of multi-institution settlement path
  • Risk Assessment: Comprehensive risk evaluation across institution chain

§Settlement Coordination

  • Value Date Alignment: Coordination of value dates across multiple institutions
  • Cut-off Management: Alignment with multiple institution processing cut-offs
  • Holiday Coordination: Management of multiple market holiday calendars
  • Liquidity Planning: Coordination of liquidity across correspondent network

§See Also

  • Swift FIN User Handbook: Third Reimbursement Institution Specifications

  • Correspondent Banking Guidelines: Complex Settlement Chain Management

  • Multi-Institution Settlement: Risk and Operational Considerations

  • Cross-Border Payments: Advanced Correspondent Banking Arrangements

    Field 55A: Third Reimbursement Institution (BIC with Party Identifier)

Structured third institution identification using BIC code with optional party identifier. Used for complex correspondent banking chains requiring additional institutional routing.

Fields§

§party_identifier: Option<String>

Optional party identifier for third institution account reference

Format: [/1!a][/34x] - Single character code + up to 34 character identifier Used for specialized account identification in complex settlement chains

§bic: String

Bank Identifier Code of the third reimbursement 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 Field55A

Source§

fn clone(&self) -> Field55A

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 Field55A

Source§

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

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

impl<'de> Deserialize<'de> for Field55A

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 Field55A

Source§

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

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 Field55A

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 Field55A

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