pub struct Field53B {
pub account_line_indicator: Option<String>,
pub account_number: Option<String>,
pub party_identifier: String,
}
Expand description
§Field 53B: Sender’s Correspondent (Option B)
§Overview
Field 53B identifies the sender’s correspondent institution using a party identifier rather than a BIC code. This option is used when the correspondent institution needs to be identified through an alternative identification scheme, such as a national bank code, clearing code, or proprietary identifier system.
§Format Specification
Format: [/1!a][/34x]35x
- 1!a: Optional account line indicator (1 character)
- 34x: Optional account number (up to 34 characters)
- 35x: Party identifier (up to 35 characters)
§Structure
/C/1234567890
FEDWIRE021000021
│││ │
│││ └─ Party identifier (routing number)
││└─────────────── Account number
│└──────────────── Account line indicator
└───────────────── Field separator
§Field Components
- Account Line Indicator: Optional qualifier for account type
- Account Number: Institution’s account for settlement
- Party Identifier: Alternative identification code or number
§Usage Context
Field 53B is used in:
- MT103: Single Customer Credit Transfer (when BIC not available)
- MT200: Financial Institution Transfer
- MT202: General Financial Institution Transfer
- MT202COV: Cover for customer credit transfer
§Business Applications
- Non-SWIFT institutions: Identifying institutions without BIC codes
- Domestic clearing: Using national clearing codes or bank numbers
- Regional networks: Supporting regional payment network identifiers
- Legacy systems: Interfacing with older identification schemes
- Regulatory requirements: Meeting local identification standards
§Examples
:53B:FEDWIRE021000021
└─── US Federal Reserve routing number
:53B:/C/1234567890
UKSC123456
└─── UK Sort Code with checking account
:53B:/S/SETTLEMENT001234567890
CANCLEAR001234
└─── Canadian clearing number with settlement account
:53B:CHIPS0123
└─── CHIPS participant identifier
§Party Identifier Types
Common party identifier formats:
- FEDWIRE: US Federal Reserve routing numbers (9 digits)
- UKSC: UK Sort Codes (6 digits)
- CANCLEAR: Canadian clearing numbers
- CHIPS: Clearing House Interbank Payments System IDs
- TARGET2: European TARGET2 participant codes
- CNAPS: China National Advanced Payment System codes
§Account Line Indicators
Common indicators for correspondent accounts:
- C: Correspondent account (checking)
- D: Deposit account
- S: Settlement account
- N: Nostro account (our account with them)
- V: Vostro account (their account with us)
- L: Liquidity management account
§Validation Rules
- Party identifier: Cannot be empty, max 35 characters
- Account line indicator: If present, exactly 1 character
- Account number: If present, max 34 characters
- Character validation: All components must be printable ASCII
- Content requirement: Must contain meaningful identification
§Network Validated Rules (SWIFT Standards)
- Party identifier cannot be empty (Error: T11)
- Party identifier cannot exceed 35 characters (Error: T14)
- Account line indicator must be single character (Error: T12)
- Account number cannot exceed 34 characters (Error: T15)
- Characters must be from SWIFT character set (Error: T61)
- Field 53B alternative to 53A when BIC not available (Error: C53)
Fields§
§account_line_indicator: Option<String>
Account line indicator (optional, 1 character)
account_number: Option<String>
Account number (optional, up to 34 characters)
party_identifier: String
Party identifier (up to 35 characters)
Implementations§
Source§impl Field53B
impl Field53B
Sourcepub fn new(
account_line_indicator: Option<String>,
account_number: Option<String>,
party_identifier: impl Into<String>,
) -> Result<Self, ParseError>
pub fn new( account_line_indicator: Option<String>, account_number: Option<String>, party_identifier: impl Into<String>, ) -> Result<Self, ParseError>
Create a new Field53B with validation
Sourcepub fn account_line_indicator(&self) -> Option<&str>
pub fn account_line_indicator(&self) -> Option<&str>
Get the account line indicator
Sourcepub fn account_number(&self) -> Option<&str>
pub fn account_number(&self) -> Option<&str>
Get the account number
Sourcepub fn party_identifier(&self) -> &str
pub fn party_identifier(&self) -> &str
Get the party identifier
Sourcepub fn description(&self) -> String
pub fn description(&self) -> String
Get human-readable description
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Field53B
impl<'de> Deserialize<'de> for Field53B
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 Field53B
impl SwiftField for Field53B
Source§fn to_swift_string(&self) -> String
fn to_swift_string(&self) -> String
Convert field back to SWIFT string format
Source§fn validate(&self) -> ValidationResult
fn validate(&self) -> ValidationResult
Validate field according to SWIFT format rules
Source§fn format_spec() -> &'static str
fn format_spec() -> &'static str
Get field format specification
impl Eq for Field53B
impl StructuralPartialEq for Field53B
Auto Trait Implementations§
impl Freeze for Field53B
impl RefUnwindSafe for Field53B
impl Send for Field53B
impl Sync for Field53B
impl Unpin for Field53B
impl UnwindSafe for Field53B
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