pub struct Field53A {
pub account_line_indicator: Option<String>,
pub account_number: Option<String>,
pub bic: BIC,
}
Expand description
§Field 53A: Sender’s Correspondent
§Overview
Field 53A identifies the sender’s correspondent institution in SWIFT payment messages. This field specifies the financial institution that acts as a correspondent for the message sender, facilitating the payment routing and settlement process. The correspondent relationship is crucial for cross-border payments and correspondent banking arrangements.
§Format Specification
Format: [/1!c][/34x]4!a2!a2!c[3!c]
- 1!c: Optional account line indicator (1 character)
- 34x: Optional account number (up to 34 characters)
- 4!a2!a2!c[3!c]: BIC code (8 or 11 characters)
§BIC Structure
CHASUS33XXX
││││││││└┴┴─ Branch Code (3 characters, optional)
││││││└┴──── Location Code (2 characters)
││││└┴────── Country Code (2 letters)
└┴┴┴──────── Bank Code (4 letters)
§Field Components
- Account Line Indicator: Optional qualifier for account type or purpose
- Account Number: Correspondent account number for settlement
- BIC: Bank Identifier Code of the correspondent institution
§Usage Context
Field 53A is used in:
- MT103: Single Customer Credit Transfer
- MT200: Financial Institution Transfer
- MT202: General Financial Institution Transfer
- MT202COV: Cover for customer credit transfer
§Business Applications
- Correspondent banking: Identifying correspondent bank relationships
- Payment routing: Providing routing instructions for payment processing
- Settlement: Facilitating settlement through correspondent accounts
- Risk management: Managing correspondent banking exposure and limits
- Compliance: Meeting regulatory requirements for correspondent relationships
§Examples
:53A:CHASUS33XXX
└─── JPMorgan Chase New York as correspondent
:53A:/C/1234567890
DEUTDEFFXXX
└─── Deutsche Bank with checking account 1234567890
:53A:/N/LORO12345678901234567890
BNPAFRPPXXX
└─── BNP Paribas with nostro account identifier
:53A:/V/VOSTRO001234567890123456
ABCDEFGHJKL
└─── Correspondent with vostro account reference
§Account Line Indicators
Common account line indicators for correspondent relationships:
- C: Correspondent account (checking)
- D: Deposit account
- L: Loan account
- N: Nostro account (our account with them)
- S: Settlement account
- V: Vostro account (their account with us)
§BIC Components Analysis
§Bank Code (Characters 1-4)
- Must be 4 alphabetic characters
- Identifies the specific financial institution
- Assigned by SWIFT registration authority
§Country Code (Characters 5-6)
- Must be valid ISO 3166-1 alpha-2 country code
- Identifies the country of the institution
- Must match BIC registration country
§Location Code (Characters 7-8)
- Alphanumeric characters identifying location within country
- Often represents city or administrative division
- Used for routing within correspondent networks
§Branch Code (Characters 9-11)
- Optional 3-character branch identifier
- Identifies specific branch or department
- XXX indicates head office if present
§Validation Rules
- BIC format: Must be valid 8 or 11 character BIC
- BIC structure: 4!a2!a2!c[3!c] format required
- Account line indicator: If present, exactly 1 character
- Account number: If present, max 34 characters
- Character validation: All components must use valid character sets
§Network Validated Rules (SWIFT Standards)
- BIC must be valid format and registered (Error: T27)
- Account line indicator must be single character (Error: T12)
- Account number cannot exceed 34 characters (Error: T15)
- BIC country code must be valid ISO country code (Error: T28)
- Characters must be from SWIFT character set (Error: T61)
- Field 53A is conditional based on message type (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)
bic: BIC
BIC code (8 or 11 characters)
Implementations§
Source§impl Field53A
impl Field53A
Sourcepub fn new(
account_line_indicator: Option<String>,
account_number: Option<String>,
bic: impl Into<String>,
) -> Result<Self, ParseError>
pub fn new( account_line_indicator: Option<String>, account_number: Option<String>, bic: impl Into<String>, ) -> Result<Self, ParseError>
Create a new Field53A 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 is_full_bic(&self) -> bool
pub fn is_full_bic(&self) -> bool
Check if this is a full BIC (11 characters) or short BIC (8 characters)
Sourcepub fn country_code(&self) -> &str
pub fn country_code(&self) -> &str
Get the country code (characters 5-6 of BIC)
Sourcepub fn location_code(&self) -> &str
pub fn location_code(&self) -> &str
Get the location code (characters 7-8 of BIC)
Sourcepub fn branch_code(&self) -> Option<&str>
pub fn branch_code(&self) -> Option<&str>
Get the branch code (characters 9-11 of BIC, if present)
Sourcepub fn description(&self) -> String
pub fn description(&self) -> String
Get human-readable description