Field71A

Struct Field71A 

Source
pub struct Field71A {
    pub code: String,
}
Expand description

Field 71: Charges and Fee Information

§Purpose

Specifies charge allocation and fee details for payment transactions. This field family determines which party bears transaction costs and provides detailed charge amounts for various fees associated with payment processing. Essential for transparent cost allocation and compliance with payment regulations.

§Field Options Overview

  • Field 71A: Details of Charges (charge allocation code)
  • Field 71F: Sender’s Charges (specific charge amounts)
  • Field 71G: Receiver’s Charges (additional charge amounts)

§Business Context Applications

  • Payment Processing: Charge allocation in MT 103 and other payment messages
  • Cost Transparency: Clear identification of transaction costs
  • Regulatory Compliance: Meeting charge disclosure requirements
  • Customer Communication: Transparent fee structure communication

§Charge Allocation Principles

§Allocation Options (Field 71A)

  • BEN: Beneficiary bears all charges
  • OUR: Ordering customer bears all charges
  • SHA: Shared charges (sender pays own bank, beneficiary pays others)

§Charge Types

  • Correspondent Charges: Fees charged by intermediary banks
  • Beneficiary Bank Charges: Fees charged by receiving bank
  • Service Charges: Additional service fees
  • Conversion Charges: Currency conversion fees

§Regional Considerations

  • European Payments: SEPA charge regulations and transparency requirements
  • US Payments: Federal Reserve and commercial bank fee structures
  • Asian Markets: Local charge allocation practices
  • Cross-Border: International payment fee coordination

§Error Prevention Guidelines

  • Code Validation: Verify charge allocation codes are valid
  • Amount Verification: Confirm charge amounts are reasonable
  • Currency Consistency: Ensure charge currency matches context
  • Disclosure Compliance: Meet regulatory charge disclosure requirements
  • Field 32A: Value Date, Currency, Amount (transaction amount context)
  • Field 33B: Currency/Instructed Amount (original amount before charges)
  • Field 72: Sender to Receiver Information (charge instructions)
  • Field 64: Closing Available Balance (net amount after charges)

§Compliance Framework

  • Regulatory Requirements: Charge transparency and disclosure regulations
  • Consumer Protection: Clear charge communication requirements
  • Fee Regulation: Compliance with local fee regulation standards
  • Audit Documentation: Complete charge allocation documentation

§See Also

  • Swift FIN User Handbook: Charge Field Specifications

  • Payment Regulations: Charge Transparency Requirements

  • Banking Fee Standards: International Charge Allocation

  • Customer Protection: Charge Disclosure Guidelines

    Field 71A: Details of Charges

Specifies which party will bear the charges for the transaction. Mandatory field in payment messages for charge allocation transparency.

Fields§

§code: String

Charge allocation code

Format: 3!a - Three alphabetic characters Values: BEN (Beneficiary), OUR (Ordering customer), SHA (Shared) Error T08 if invalid code used

Trait Implementations§

Source§

impl Clone for Field71A

Source§

fn clone(&self) -> Field71A

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 Field71A

Source§

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

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

impl<'de> Deserialize<'de> for Field71A

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 Field71A

Source§

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

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 Field71A

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 Field71A

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