从IBAN号码生成BIC号码

7
在我的过去研究中,我发现这些问题没有得到我满意的回答:
  1. 如何从IBAN银行账号生成BIC

  2. 如何将BIC和IBAN转换为账户和排序码

第一个答案提供了一个API,用于从IBAN号码提供BIC。但它已经下线了几个月(更新2019/07/25:Openiban重新上线)。

第二个答案解释了如何制作IBANBIC

但似乎无法从IBAN获得完整的BIC号码。

以下是一些IBAN号码和BIC号码。

**IBAN NUMBERS**               **BIC**
NL 89 NGB 00071128791         INGBNL2A
NL 80 SNSB 0853811245         SNSBNL2A
NL 91 RABO 0143406515         RABONL2U

iban bic composition

正如其名称所示,您可以从IBAN号码中获取银行代码国家代码。 但是没有说明如何提取银行标识符
是否可以从IBAN号码中提取银行标识符? 是否有任何可用的API可以从IBAN号码中获取BIC号码,以便我可以在javascript中使用?

1
你能检查一下这个API链接吗? - karthickj25
唯一可以保证的是IBAN的最大长度为34,包括2个字母的国家代码、2个校验数字和最多30个完全依赖于国家的字符。甚至有一个想法,如果您在国内更换银行,可以保留您的IBAN,而BIC和账户号码仅用于过渡阶段创建IBAN。只要不是这种情况,您可以使用维基百科上的列表按国家分类的IBAN格式并将其转换为正则表达式。 - t.niese
@karthickj25 是的,它可以工作。但是API每天只提供20个请求,并且必须升级更多请求。顺便说一下,谢谢。 - Sarasa Gunawardhana
是的,我知道,但是无法通过将它们转换为正则表达式从IBAN中获取所有包含在BIC中的内容。您提供的文章将有助于构建模块。谢谢@t.niese。 - Sarasa Gunawardhana
@SarasaGunawardhana 如果你想复制包含 GBkk bbbb ssss sscc cccc cc 的列,可以通过计算每个组别 GB、2x k 、4x b、6x s、8x c 来创建匹配器,并构建每个国家代码的正则表达式,然后循环遍历所有这些正则表达式以检查是否有匹配项。鉴于这些列,应该很简单。 - t.niese
你在问题中提供的API已经恢复在线状态,网址为https://openiban.com/。 - Tofandel
1个回答

9
我认为IBAN号码中并不总是包含BIC/SWIFT代码信息。查看IBAN维基百科文章,每个国家都有自己的标准,因此只有国家前缀和校验和是标准化的。最后的部分和最长的部分始终是某种银行路由/代码与帐户号码连接在一起。但问题在于,对于大多数国家,银行路由/代码并不是SWIFT代码,也就是你要找的东西。例如,在德国,他们使用BLZ,这总是数字(我认为是8位数字),64090100映射到VBRTDE6RXXX BIC代码,该代码不会出现在IBAN中。
你可以做的是:
  1. 确定您需要支持的国家列表。以后可能会添加更多国家。
  2. 从上面的维基百科文章中获取每个国家的算法
  3. 爬取或在其他地方找到并下载银行代码<-> BIC / SWIFT代码的映射表。请参阅此资源
  4. 编写您的算法以将银行代码与第3步中的BIC代码分开,并进行映射。

1
是的,您的答案看起来正确,我正在处理它。谢谢 @Alexey :) - Sarasa Gunawardhana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接