The SWIFT
URN namespace declaration RFC (rfc-editor.org/rfc/rfc3615.html#section-3
) provides the undermentioned:
urn:swift:xsd:epp$mi.i-2.0
andurn:swift:type:fin$103
These are provided as examples, yet they do not explain what their components (themselves undermentioned) specifically represent:
xsd
epp
mi.i-2.0
type
fin$103
This contrasts all alternative RFCs I've had the previous pleasure of reading. The uniqueness of this is confirmed by the undermentioned quotation (from the RFC):
the URNs in this namespace are opaque
I have 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.
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:
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.