银行帐户核证人
新西兰银行账户的验证人
安装
npm install --save @fnzc/nz-bank-account-validator
或者说
yarn add @fnzc/nz-bank-account-validator
使用量
函数需要四个字符串参数:
- 银行身份证
- 银行分行
- 账户基础
- 后缀 返回布尔值 .
var bankAccountValidator = require('@fnzc/nz-bank-account-validator');
bankAccountValidator.isValidNZBankNumber('00', '0000', '00000000', '000');
算法
该算法基于内地税收局2016年3月31日发布的"非居民持有税和居民持有税规格文件".
银行账户编号验证
所有银行使用的银行账户编号格式是数字格式,包括下列部分:
- 银行身份证(最多两位数)
- 银行分行(最多4位数)
- 账户基号(最多8位数字)
- 账户后缀(最多4位数).
在内陆收入处处理,每个账户编号部分的字段都最大。 如果提供的数字少于最大数,则数值是正确的,并用零加字段(如适用).
验证过程的第一步是验证银行分行号. 每家银行的身份证,都会分配一系列的分行号码. 如果银行身份证不是以下所列号码之一,或者分行号码未包括在指定的范围内,则银行账户号码无效. 如果分支号码有效,则从下面的“算法”一栏取出适当的代码,并在页面上执行第一段中概述的第二个验证步骤.
| 银行身份证 | 有效分支编号 | 算法 |
|---|---|---|
| 01号 | 0001-0999、1100-1199、1800-1899 | 见附注 |
| 第02条 | 0001 - 0999, 1200 - 1299 (英语) | 见附注 |
| 03号 | 0001-0999、1300-1399、1500-1599、1700-1799、1900-1999 | 见附注 |
| 04号 | 2020-2024 (中文(简体) ) | |
| 06号 | 0001 - 0999, 1400 - 1499 (英语) | 见附注 |
| 08号 | 6500 - 6599 (英语) | D级 |
| 09个 | 0000 个 | 页:1 |
| 10个 | 5165 - 5169 (中文(简体) ) | 见附注 |
| 第11个 | 5000 - 6499, 6600 - 8999 (英语) | 见附注 |
| 第12条 | 3000 - 3299, 3400 - 3499, 3600 - 3699 (英语) | 见附注 |
| 第13条 | 4900 - 4999 (英语) | 见附注 |
| 页:1 | 4700 - 4799 (英语) | 见附注 |
| 15个 | 3900 - 3999 (英语) | 见附注 |
| 16个 | 4400 - 4499 (英语) | 见附注 |
| 页:1 | 3300-3399 (中文(简体) ) | 见附注 |
| 第 18 条 | 3500 - 3599 (英语) | 见附注 |
| 第 19 条 | 4600 - 4649 (中文(简体) ) | 见附注 |
| 20国 | 4100 - 4199 (中文(简体) ) | 见附注 |
| 21国 | 4800 - 4899 (英语) | 见附注 |
| 22个 | 4000 - 4049 (英语) | 见附注 |
| 第23条 | 3700 - 3799 (英语) | 见附注 |
| 24个 | 4300 - 4349 (英语) | 见附注 |
| 第25条 | 2500 - 2599 (英语) | 法语 |
| 第 26 条 | 2600-2699 (中文(简体) ) | G级 |
| 27个 | 3800 - 3849 (英语) | 见附注 |
| 第28条 | 2100 - 2149 (英语) | G级 |
| 29个 | 2150 - 2299 (英语) | G级 |
| 30个 | 2900 - 2949 (英语) | 见附注 |
| 31个 | 2800 - 2849 (英语) | 页:1 |
| 33个 | 6700 - 6799 (英语) | 法语 |
| 35个 | 24 -- 2499号 | 见附注 |
| 第38条 | 9000 - 9499 (英语) | 见附注 |
| 88国道 | 8800 - 8805 (英语) |
说明:如果账户基号低于009900,那么应用算法A,否则应用算法B.
第二个验证步骤是应用于整个帐号的modulus n算法. 算法类型取自上页的表格. 遵循这一进程:
- 将账号中每个位数的相应权重系数标明为下图所示。 注:所有字段(iebankID、Bankbranch、账户基础和账号后缀)都是正确的,并加上了零.
- 将加权因子及其相关账号数字的产品相加. 如果使用 E 或 G 算法,则加上产品的两位数(十和十),然后再次加上相接前结果的两位数(见第16页例3).
- 除以下文“Modulo”一栏中的数值。 如果其余为零,则银行账户号码有效.
| 算法 | 银行 | 处 | 账户基础 | 后缀 | 莫杜罗 |
|---|---|---|---|---|---|
| A 类 | 零点 | 6379 (英语) | 00A58421 (英语) | 0000 个 | 第11个 |
| 页:1 | 零点 | 0000 个 | 00A58421 (英语) | 0000 个 | 第11个 |
| C级 | 页:1 | 0000 个 | 91A53421 (中文(简体) ) | 0000 个 | 第11个 |
| D级 | 零点 | 0000 个 | 07654321 (英语) | 0000 个 | 第11个 |
| 页:1 | 零点 | 0000 个 | 00005432 (英语) | 0001 个 | 第11个 |
| 法语 | 零点 | 0000 个 | 01731731 (英语) | 0000 个 | 10个 |
| G级 | 零点 | 0000 个 | 01371371 (英语) | 0371号 | 10个 |
| 页:1 | 零点 | 0000 个 | 0000000( 千分之一 ) | 0000 个 | 1个 |
说明1:算法C目前没有被银行使用. 说明2: 算法X(为银行编号31)总是验证银行账户号码有效. 它包含在本表中,所以同样的验证逻辑可以适用于所有帐号.
更改日志
捐款
欢迎拉动请求.