从IBAN银行账户号码生成BIC。

27

是否有现成的库或脚本可用于从IBAN银行账号(以及其他必要信息)生成BIC代码?

我在网上搜索过,但只找到了IBAN生成器。


3
有一些在线生成器,这就是我认为这是可能的原因。 https://www.ibanbicservice.nl/ http://www.ibannl.org/iban_check.php 以及更多。 - Tim
确实。(我被德国的事实误导了,即多个银行分行代码可以有相同的BIC)。他们必须从在线来源查找此信息,因为BIC(显然)未编码在IBAN中。 - Pekka
1
你可以从IBAN获取银行信息,从银行获取BIC。 - user557846
@Dagon 是的,但你必须从一个需要经常更新或在线来源的列表中查找BIC。 - Pekka
我找到了一个比利时IBAN的网络服务,你可以用列表自己制作,但问题是你必须经常更新它。 - Tim
说句题外话,5年后有人发现了另一个看起来非常有前途的不错服务。请查看此答案。 - domsson
10个回答

33

找到了所有IBAN账户的解决方案(我认为):

https://openiban.com/validate/IBAN_NUMBER?getBIC=true

如果您向该网址发出CURL调用,例如,您将免费获取帐户银行信息。请使用您的IBAN账户替换IBAN_NUMBER

示例:

`https://openiban.com/validate/DE89370400440532013000?getBIC=true`

结果:

{
  "valid": true,
  "messages": [],
  "iban": "DE89370400440532013000",
  "bankData": {
    "bankCode": "37040044",
    "name": "Commerzbank",
    "zip": "50447",
    "city": "Köln",
    "bic": "COBADEFFXXX"
  },
  "checkResults": {}
}

重要更新

由于GDPR法规对服务提供商构成未知风险,OpenIBAN已经关闭了其API服务。请查看openIBAN.com上的声明。此外,还有一个自托管指南链接,请查看这个github页面

更新(2019/07/25)

Openiban已经重新上线。


1
他们的网站(https://openiban.com/)显示,目前可用于以下国家/地区的BIC查询:比利时、德国、荷兰、卢森堡和瑞士。 - domsson
最近的更新增加了对奥地利和列支敦士登的支持。 - Mixxiphoid
非常好的答案,这个Web服务救了我的一天!谢谢@Kiddo! - Florian Müller
1
openiban 对我直接从银行卡(瑞士)读取的正确 IBAN 号码抛出了“IBAN 不合法”的错误。 - FlorianH
更新(2019/07/25):Openiban已经重新上线。 - lugiorgi

11

我认为没有这样的库存在(至少免费的没有)。

唯一可靠的方法是使用 SWIFT IBAN Plus Directory (之前称为 SWIFT BICplusIBAN Directory )。

该目录由 SWIFT 提供,是 IBAN 注册机构。您可以使用它将 IBAN 与各种机构信息(包括 BIC)进行匹配。

SWIFT IBAN Plus Directory 定期由 SWIFT 更新最新数据,可作为文件或通过 WebService API 访问,但很遗憾不免费提供。


6
我查看了该页面,但未能看到定价。你知道这可能会花费多少吗? - Pavel Niedoba

5

比利时IBAN银行账号的解决方案:

有一个用于比利时IBAN号码的网络服务,可以很容易地从IBAN银行账号中获取BIC。

$client = new SoapClient('http://www.ibanbic.be/IBANBIC.asmx?WSDL');
$bban = $client->getBelgianBBAN(array('Value' => $iban))->getBelgianBBANResult;
$bic = $client->BBANtoBIC(array('Value' => $bban))->BBANtoBICResult;

我也搜索了荷兰的网络服务,但是没有找到。但是你可以使用http://www.betaalvereniging.nl/europees-betalen/sepa-documentatie/bic-afleiden-uit-iban/的数据自行创建一个。


注意:此网站已不存在。 - undefined

2
 $json_url = 'http://iban2bic.nl/api/'.$iban_number_of_dutch_bank;
 $json = file_get_contents($json_url);
 $data = json_decode($json, TRUE);

 $bic  = $data['bic']; // holds the BIC number

注意:此网站已不存在。 - undefined

2
我创建了一个Web服务,可以将荷兰和比利时的IBAN转换为相应的BIC。如果可行的话,未来可能会添加更多国家。
请访问:http://iban2bic.nl API的使用方法:http://iban2bic.nl/api/:iban 该网站已经离线一段时间了。 现在我在这里公开了代码:https://bitbucket.org/wilgert/iban2bic 声明:该代码已经过时,可能包含错误、愚蠢的错误和/或安全漏洞。此外,荷兰银行的列表远非完整,因为自2013年以来添加了大量银行。

我无法访问“API使用”页面。你能否解释一下如何获取IBAN代码的BIC? - Tassisto
这是一个锚链接,API的内容在同一页上。回答你的第二个问题。对于荷兰银行,我使用一个PHP脚本,通过使用此数组:https://gist.github.com/wilgert/7305244#file-dutch_banks-json,从IBAN的银行标识符部分查找BIC。对于比利时银行,我依赖于此答案的Web服务:https://dev59.com/b2cs5IYBdhLWcg3wGgJc#13137295。对于其他国家的银行,该服务尚不起作用。 - Wilgert
@Wilgert - 你应该在你的回答中提供信息。或者将你的回答改为评论。正如jitsCode的评论所示,仅有链接的答案存在问题。这就是为什么Stack Overflow通常不希望它们的原因。 - jww
我建议您在此处添加一个代码示例来改进您的答案。 - Peter

1

从IBAN中“生成”BIC没有简单的方法,因为BIC是独立的数字,不在IBAN中出现。 (一些国家在IBAN中有BIC的一部分)。

有许多提供此类数据的服务。 www.swift.com是一个企业服务。但价格不便宜。

对于中小型企业来说,一个好的解决方案可能是: https://www.iban.com/validation-api-v2.html 他们有更加灵活的定价计划。


1

我查看了一下,发现您可以使用这个 PHP IBAN 验证器从 IBAN 号码中检索银行名称:

http://code.google.com/p/php-iban/

exert from above link

但是当你到那里时,你需要一个包含所有银行机构代码和相应BIC代码的数组。

我认为所有的BIC代码都可以在这里找到:

http://www.nbb.be/doc/gg/Protocol/R_List_of_Codes_Current.pdf

但我不确定如何将IBAN银行代码与BIC代码列表链接起来。

没有找到现成的库,有点困难。


2
我为荷兰银行创建了这个JSON:https://gist.github.com/wilgert/7305244#file-dutch_banks-json - Wilgert
nbb.de的链接已经失效了。:( - Mixxiphoid

0

0

0

这是一个相当老的问题,而且自那以后情况发生了很大变化。

所选答案仅涵盖一个国家,但如果您需要涵盖所有使用IBAN的国家,我建议使用IBAN API服务或任何类似的API来实现。

[免责声明] 我是这个服务的一部分


1
我认为你应该添加一个免责声明,说明ibanapi.com是你的产品。 - Philippe Gerber

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