Search code examples
rfcbankingonlinebankingswift-mt

How does one ascertain what the components of RFC 3615's examples represent?


The SWIFT URN namespace declaration RFC (https://datatracker.ietf.org/doc/rfc3615/) provides

  1. urn:swift:xsd:epp$mi.i-2.0 and
  2. urn:swift:type:fin$103

as examples, yet does not explain what the short phrases

  1. xsd
    
  2. epp
    
  3. mi.i-2.0
    
  4. type
    
  5. fin$103
    

specifically represent, in contrast to all alternative RFCs I've had the previous pleasure of reading. Although it is mentioned that

the URNs in this namespace are opaque

I've no knowledge either of what this means, and have been unable to locate any standardized terminology referencing this term, so I don't know whether the information I desire is deliberately unavailable, or even unavailable.

Is there any feasible way for me to ascertain how to accurately create an RFC 3615 compliant URN other than guessing? Thus far I have estimated that xsd and type probably refer to BICs, and their successor epp and mi.*s refer to IBANs, but this doesn't appear correct based upon the more complex examples provided by the RFC.


Solution

  • Your first example is likely a metadata URN. xsd here almost certainly refers to the XML Schema header. That's a standard XML value to see in URNs of any system utilizing XML format; since SWIFT data is transmitted in XML format, they would certainly make use of XSD schemas.

    epp likewise probably refers to Extensible Provisioning Protocol, used for XML as well. You can read more about EPP, including URN usage examples, in its standard, RFC 5730: https://datatracker.ietf.org/doc/html/rfc5730. Anything after that, such as $mi.i-2.0 is likely a sub-declaration that specifies a particular schema/data constraints for the XML message.

    type is likely a Swift-specific (defined by its XSD schema before its first use) custom type. Read more in this answer to "How to restrict the value of an XML element using xsi:type in XSD?"

    Is there any feasible way for me to ascertain how to accurately create an RFC 3615 compliant URN other than guessing?

    Other than guessing? Yes, of course. These values are internally issued and maintained by Swift, and, while not freely published, they are available for a fee. It's their responsibility to ensure unique NSS values within the swift NIS issued to them by the IANA. This means only Swift is going to have an authoritative source (even as soon as you purchase a reference, it could change).

    For BICs, you can purchase the latest published directory from ISO here (Swift is the authorized publisher of this ISO RFC).

    You can order the directory of all Swift identifiers from their website: https://www.swift.com/our-solutions/compliance-and-shared-services/swiftref/identifiers-directory

    Alternatively you can access a few free services from the Swift website if you have known-good or partially-known values to validate:

    • Search BICs
    • Validate IBANs

    If you want to find more specific or closer to real-time information, you'll likely need to create an account with the Swift organization, e.g., to access the SwiftNet Naming and Addressing Guide.

    Generally, customers who need this information will also coordinate directly with other SWIFT customers, who have their own SWIFT-issued URN codes, and you'll get these directly from them when trying to send/receive data through SWIFT, along with their codes' expiration information.