IBAN 怎么校验?SWIFT / BIC 代码结构、MOD97 和国际汇款核对方法
说明 IBAN 国家代码、校验位、固定长度和 MOD97-10 算法,以及 8 位和 11 位 SWIFT/BIC 的结构与国际汇款防错边界。
打开配套工具 →国际汇款资料里经常同时出现账户名、账号、IBAN、SWIFT 或 BIC。它们并不是同一个字段:IBAN 用国家规定的结构标识具体银行账户,BIC 用于识别机构及可选分支。把字符抄错一位,可能导致银行拒绝、退汇或人工修复;但格式完全正确,也不代表收款人一定真实可信。
可以使用 IBAN 与 SWIFT / BIC 格式检查器 在浏览器本地检查国家长度、可见结构和 MOD97-10 校验位,并批量导出核对报告。工具不会上传号码,也不会查询银行或账户数据库。
IBAN 的基本结构
根据 Swift 的 IBAN 官方说明,IBAN 是 ISO 13616 国际银行账户号码标准,Swift 受 ISO 指定维护国家格式注册表。一个电子格式 IBAN 包含:
- 两位国家或地区代码。
- 两位数字校验位。
- 各国固定结构的 BBAN,也就是国内账户部分。
IBAN 总长度最多 34 个字符,但不是每个国家都使用 34 位。德国 IBAN 固定 22 位,英国固定 22 位,法国固定 27 位,荷兰固定 18 位。只检查“总长度不超过 34”远远不够,还应根据开头国家代码核对该国注册长度。
印刷格式通常每四位加一个空格,便于人工核对;电子传输时应去掉分组空格。连字符、中文标点和其他装饰符号不属于标准电子格式。
MOD97-10 校验位怎么工作
IBAN 校验位使用 ISO/IEC 7064 MOD97-10 思路。简化过程是:
- 把前四位移到字符串末尾。
- 把字母按 A=10、B=11,一直到 Z=35 转成数字。
- 对得到的长数字计算除以 97 的余数。
- 合格 IBAN 的余数应为 1。
实际编程时不应把整个数字一次转换为 JavaScript Number,因为它可能远超安全整数范围。更稳妥的方法是逐位计算余数:每读入一位,就用 (上一余数 × 10 + 当前数字) mod 97 更新。这样无论 IBAN 多长都不会依赖大整数精度。
校验位能够发现大量单字符抄错和换位问题,但不是数字签名,也不是账户存在性证明。
SWIFT 和 BIC 是什么关系
BIC 是 Business Identifier Code,日常也常被称为 SWIFT code。Swift 的 BIC Policy 说明,BIC 由 8 位或 11 位连续字符组成:
- 前 4 位:机构标识,使用英文字母。
- 第 5–6 位:国家代码。
- 第 7–8 位:地点标识,可使用字母或数字。
- 可选最后 3 位:分支、部门或服务标识。
8 位代码识别机构主体,11 位代码进一步指向分支或组织单元。常见的 XXX 分支写法不应被随意理解为某个具体营业网点,最终仍要按银行提供的正式汇款指示填写。
为什么有些国家没有 IBAN
IBAN 不是全球每个国家都采用的唯一账户格式。美国、中国、加拿大、澳大利亚等市场的国际汇款通常会使用本地账号、银行路由信息和 BIC 等字段,而不是由当地银行签发 IBAN。
因此,看到美国银行资料没有 IBAN,并不表示资料必然缺失;反过来,也不能给一个非 IBAN 国家普通账号随便加上国家代码和校验位。只有 Swift ISO 13616 注册表中的国家格式,才能按该注册结构称为 IBAN。
格式校验通过不代表账户真实
本地工具可以确认:
- 国家代码是否在 IBAN 注册表中。
- 总长度是否符合该国家固定长度。
- 字符位置是否满足基础结构。
- MOD97 余数是否为 1。
- BIC 是否符合 4+2+2(+3) 的可见格式。
它不能确认:
- 银行账户是否存在、开放或能够收款。
- 账户名是否和收款人一致。
- BIC 是否当前有效、是否支持指定币种和支付路线。
- 收款人是否被制裁或存在欺诈风险。
- 这组号码是否真的来自你的供应商。
“通过校验”只能说明号码在数学和格式上像一个合格值,不能替代银行预验证、收款人核验或合规筛查。
国际汇款前的实用核对步骤
大额或首次付款可以按下面顺序处理:
- 从正式合同、发票或供应商门户取得账户资料。
- 用格式工具排除明显抄写错误。
- 核对账户名、银行名、国家、币种、IBAN 和 BIC 是否逻辑一致。
- 如果收到“账户刚刚变更”的邮件,通过原有电话、视频或独立联系人复核。
- 让付款银行确认需要的字段和中间行信息。
- 必要时先进行小额测试,再处理大额余款。
- 保存核对记录、付款指示和对方确认资料。
国际汇款最危险的错误往往不是少一个空格,而是把格式正确的号码付给了错误的人。自动校验负责减少输入错误,人工和银行核验负责确认交易对象,两者不能互相替代。