从 IBAN 银行帐号生成 BIC

Posted

技术标签:

【中文标题】从 IBAN 银行帐号生成 BIC【英文标题】:Generate BIC from IBAN bank account number 【发布时间】:2012-10-19 13:52:29 【问题描述】:

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

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

提前致谢!

【问题讨论】:

有一些在线生成器,这就是为什么我认为它必须是可能的。 ibanbicservice.nlibannl.org/iban_check.php 等等 确实如此。 (我被这样一个事实误导了,即在德国,多个银行分类代码可以具有相同的 BIC)。他们必须从在线资源中查找,因为 BIC(显然)没有在 IBAN 中编码 您可以从IBAN获取银行,从银行获取BIC @Dagon 是的,但是您必须从必须经常更新的列表或在线资源中查找 BIC。 我找到了一个比利时 iban 的 webserice,你可以自己制作一个列表,但问题是你确实必须经常更新它。 【参考方案1】:

这是一个很老的问题,从那时起情况发生了很大变化。

所选答案仅涵盖一个国家/地区,但是,如果您需要涵盖所有使用 IBAN 的国家/地区,那么我建议您使用 IBAN API 服务或任何类似的 API。

[DISCLIMAR] 我参与了这项服务

【讨论】:

我认为您应该添加免责声明,即 ibanapi.com 是您的产品。【参考方案2】:

您可以自己从各个国家银行当局那里收集查找表:https://www.bundesbank.de/en/tasks/payment-systems/services/bank-sort-codes/download-bank-sort-codes-626218(德国),所以如果您只有几个可能工作的市场。或者使用openiban。

【讨论】:

【参考方案3】:

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

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

例如,如果您对该 URL 进行 CURL 调用,您将免费获得账户银行信息。将 IBAN_NUMBER 替换为您的 IBAN 帐户。

示例:

`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": 

重要更新

OpenIBAN 已关闭其 API 服务,因为 GDPR 法规给服务提供商带来了未知风险。请参阅openIBAN.com 上的声明。还包含指向自托管指南的链接,请参阅this github page。

更新 (2019/07/25)

Openiban 重新上线。

【讨论】:

Their website 表示 BIC 查询目前可用于以下国家/地区:比利时、德国、荷兰、卢森堡和瑞士 最近的更新增加了对奥地利和列支敦士登的支持。 很好的答案,这个网络服务拯救了我的一天!谢谢@Kiddo! openiban 向我抛出“IBAN 无效”错误,因为我直接从银行卡(瑞士)读取了正确的 IBAN 号码 openiban 好像又上线了! “更新(2019 年 7 月 25 日):Openiban 重新上线。”【参考方案4】:

轻松获取给定 IBAN 的 BIC:

https://www.ibancalculator.com/iban_validieren.html

刚刚将它用于 IBAN,它为我提供了看似正确、有效的 BIC。

我不知道页面的转换是否可以很容易地自动化。

【讨论】:

【参考方案5】:

我创建了一个可以将荷兰语和比利时语 IBAN 转换为相应 BIC 的 Web 服务。如果可行,未来可能会添加更多国家/地区。

看看:http://iban2bic.nl

api使用:http://iban2bic.nl/api/:iban

此网站已离线一段时间。 我现在已经在这里开源了代码:https://bitbucket.org/wilgert/iban2bic

免责声明:代码陈旧,可能包含错误、愚蠢的错误和/或安全漏洞。此外,荷兰银行的名单还远未完成,因为自 2013 年以来已添加了大量银行。

【讨论】:

我无法访问“使用 api”页面。您能解释一下如何获得 IBAN 代码的 BIC 吗? 这是一个锚链接,API的内容在同一页面上。回答你的第二个问题。对于荷兰银行,我使用了一个 PHP 脚本,该脚本使用以下数组从 IBAN 的银行标识符部分查找 BIC:gist.github.com/wilgert/7305244#file-dutch_banks-json。对于比利时银行,我依赖此答案中的网络服务:***.com/a/13137295/357601 对于其他国家/地区的银行,该服务尚不可用。 @Wilgert - 您应该在答案中提供信息。或将您的答案更改为评论。从 jitsCode 的 cmets 可以看出,仅链接的答案有问题。这就是 Stack Overflow 通常不想要它们的原因。 我建议通过在此处添加代码示例来改进您的答案。【参考方案6】:

没有简单的方法可以从 IBAN 中“生成”BIC,因为 BIC 是 IBAN 中不存在的独立编号。 (一些国家/地区在 IBAN 中有 BIC 的一部分)。

有许多服务提供此类数据。 www.swift.com 是一项企业服务。不过不是很便宜。

对于中小型企业来说,一个好的解决方案可能是: https://www.iban.com/validation-api-v2.html

他们有一些更灵活的定价计划。

【讨论】:

【参考方案7】:
 $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

【讨论】:

【参考方案8】:

比利时 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/的数据自己制作一个

【讨论】:

【参考方案9】:

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

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

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

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

【讨论】:

我查看了页面但看不到定价。你知道它会花多少钱吗?【参考方案10】:

我环顾四周,发现您可以使用这个 php iban 验证器从 iban 号码中检索银行名称:

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

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

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

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

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

没有找到一个现成的库很难..

【讨论】:

对于荷兰银行,我创建了这个 JSON:gist.github.com/wilgert/7305244#file-dutch_banks-json nbb.de 的链接已失效。 :(

以上是关于从 IBAN 银行帐号生成 BIC的主要内容,如果未能解决你的问题,请参考以下文章

即时银行帐号验证

如何在数据库中表示银行账户信息?

如何检查 IBAN 验证?

从 IBAN 号码生成 BIC 号码

根据国家/地区调整银行信息表

如何使用 Apache IBANCheckDigit 检查 IBAN 号码?