pub struct Field54B {
pub account_line_indicator: Option<String>,
pub account_number: Option<String>,
pub party_identifier: String,
}
Expand description
§Field 54B: Receiver’s Correspondent (Option B)
§Overview
Field 54B identifies the receiver’s correspondent institution using a party identifier rather than a BIC code. This option is used when the receiver’s correspondent institution needs to be identified through an alternative identification scheme, such as a national bank code, clearing code, or proprietary identifier system. This field is essential for routing payments through correspondent networks when BIC codes are not available or sufficient.
§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/9876543210
FEDWIRE021000021
│││ │ │
│││ │ └─ Party identifier (routing number)
│││ └─────────── Account number
││└─────────────── Account separator
│└──────────────── 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 54B 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
- MT205: Financial Institution Transfer for its own account
§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
- Correspondent routing: Directing payments through specific correspondents
§Examples
:54B:FEDWIRE021000021
└─── US Federal Reserve routing number
:54B:/C/9876543210
UKSC123456
└─── UK Sort Code with correspondent account
:54B:/S/SETTLEMENT009876543210
CANCLEAR005678
└─── Canadian clearing number with settlement account
:54B:CHIPS0456
└─── CHIPS participant identifier
§Party Identifier Types
Common party identifier formats for receiver’s correspondents:
- 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
- RTGS: Real-time gross settlement system codes
§Account Line Indicators
Common indicators for receiver’s 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
- R: Reserve 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
- Format consistency: Components must be properly structured
§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 54B alternative to 54A when BIC not available (Error: C54)
- Party identifier must be recognizable by receiver (Error: C55)
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 Field54B
impl Field54B
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 Field54B 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