什么是 IBAN
International Bank Account Number(IBAN,国际银行账户号码)是一种标准化的本国账户标识写法,便于跨境支付系统一致地路由与校验。在欧洲及许多其他地区,支付表单、发票和银行应用会要求填写 IBAN,以替代或补充较旧的国内格式。
本指南说明 结构与校验位,供学习与软件测试使用。它不会帮助任何人滥用账户号码。请仅使用您有权处理的账户,真实付款请优先参考银行官方文档。
若要在示例或测试值上试用格式检查,请参阅 IBAN 验证工具。
高层结构
IBAN 是一条完整字符串(为便于阅读常按四个字符一组显示),概念布局如下:
- 国家代码 — 两个字母(ISO 3166-1 alpha-2),例如
DE、FR、IT、ES、NL。 - 校验位 — 由号码其余部分计算出的两位数字。
- Basic Bank Account Number(BBAN) — 各国不同的国内部分,可能包含银行代码、分行代码、账号以及国内校验字符。
总长度 按国家固定,但各国并不相同。德国 IBAN 的长度不同于法国或意大利。因此校验器会先按国家代码查找期望长度,再做更深入的检查。
为何需要校验位
长账号字符串上的键入或 OCR 错误代价很高。IBAN 校验位可在提交付款前捕获许多单字符错误和部分换位。它们不是保密机制,也不能证明账户已开立、有资金或属于某人——它们只证明该字符串按校验和算法是 格式正确 的。
MOD-97 校验(概念)
国际校验采用 ISO 13616 / MOD-97:
- 将前四个字符(国家代码 + 校验位)移到字符串末尾。
- 将字母替换为数字(A = 10,B = 11,…,Z = 35)。
- 将结果解释为大整数,并对该整数取模 97。
- 有效 IBAN 的余数为 1。
由于整数可能很长,实现通常使用分块模运算,而不是在定宽整数语言中把整段数字存成单个原生整数。
编写测试时,请纳入来自公开文档的已知有效样例,以及因长度、字符集或校验和失败的已知无效字符串。
各国 BBAN 模式
在国家代码与校验位之后,各国定义自己的 BBAN:
- 有的包含明确的国内银行标识。
- 有的包含分行或类似 sort code 的部分。
- 有的嵌入与 IBAN 校验位分开的国内校验和。
- 字符集可能仅为数字,或按国家方案为字母数字。
仅验证国际 MOD-97 的软件,即使国内银行代码未正式发放,也会接受结构上校验和有效的号码。完整路由校验需要 IBAN 字符串之外的国家规则或目录服务。
格式与存储
显示。 按四位分组可提高可读性(如 DE89 3704 0044 0532 0130 00)。空格不属于电子值的一部分。
存储。 持久化紧凑形式:无空格的大写字母数字字符。校验前应去掉空格并将字母转为大写以规范化用户输入。
纸质表格。 人们常保留空格;输入层应容忍空格。
SEPA 背景(教学说明)
在 Single Euro Payments Area(单一欧元支付区)内,IBAN(以及常伴随的 BIC)用于欧元贷记转账及相关机制中标识账户。IBAN 的作用是标准化标识;付款是否成功仍取决于银行系统、授权、余额以及格式之外的合规检查。
在应用中实现校验
实用清单:
- 拒绝空输入。
- 规范化大小写与空格。
- 确认允许字符(A–Z、0–9)。
- 读取国家代码;查找期望总长度。
- 运行 MOD-97。
- 若维护了国家 BBAN 模式,可选择性做结构检查。
- 返回稳定错误原因(
invalid-length、invalid-checksum、unsupported-country)以便映射到界面。
在支付软件中不要静默“修复”接近正确的账号;应请用户向银行确认。
在无真实账户的情况下测试
开发者需要测试样例。合适的策略包括:
- 使用标准化机构或银行开发者门户正式发布并标明为样例的 示例。
- 在组织允许的隔离测试环境中生成校验和有效的测试向量。
- 集成测试优先使用支付服务商沙箱中的专用测试凭证。
切勿从生产日志中采集或将真实客户 IBAN 重新分发到公开仓库。
常见面向用户的错误
- 手写表格中混淆
0与O,或1与I。 - 粘贴时带上前面的 BIC 或账户持有人姓名。
- 在要求 IBAN 的场景使用国内账户格式(或相反)。
- 假定校验和正确就意味着付款会成功。
清晰的界面文案应区分“格式看起来有效”与“付款已完成”。
隐私与安全
IBAN 标识账户。在日志、分析与支持工单中应将其视为敏感财务数据。在无需完整展示的界面中,除末尾若干字符外应予掩码。浏览器端校验可将字符串留在设备上做格式检查;但这仍不意味着截图或复制的值可以安全分享。
相关工具
诸如 IBAN verify 等格式验证辅助工具,是结构检查的教学与运维辅助。在受监管的支付流程中若需确认账户存在或姓名匹配,请与银行级 API 配合使用。
小结
欧洲 IBAN 在国家 BBAN 前加上国家代码与两位校验位。长度因国家而异;MOD-97 可捕获许多誊写错误;国家结构与在线银行系统则更进一步。学习该布局有助于构建谨慎的校验器并自信地阅读支付表单——始终在授权、合法使用账户标识的前提下进行。