原理解说发布日期 阅读时间约 16 分钟

全银格式是什么?日本综合转账·工资转账数据的制作方法与 120 字节布局

在日本,公司通过网上银行一次性发起几十笔转账时,银行常会要求“请导入全银格式的文件”。全银格式是日本全国银行协会(全银协)规定的转账数据写法:每行固定 120 字节的定长文本,由表头·数据·尾部·结束四种记录组成。本文按实际工作中容易卡住的顺序,介绍综合转账·工资转账·奖金转账的区别,各记录的项目和位数(第几字节写什么),把收款人名改成半角片假名的规则和「カ)」「(カ」法人略称,邮储银行记号番号的换算,用 Excel·CSV 制作的步骤,以及导入出错的原因和修改方法。

结论:全银文件就是“四种 120 字节的行”排列起来的文件

全银格式(正式名称为全银协规定格式)是日本企业把多笔转账一次性委托给银行时使用的数据格式。会计软件或工资软件的“全银数据导出”“FB 数据导出”生成的文件,几乎都是这种格式。内容是 Shift_JIS 文本,每一行(一条记录)一定是 120 字节,在规定的位置按规定的位数写入各项目。它不像 CSV 那样用逗号分隔,所以项目的位置只要错开 1 字节,银行就会把它读成另一个项目。

记录开头 1 个字符(数据区分)行数写入内容
表头记录11 行转账种类、委托人代码、委托人名、转账日(取组日)、扣款账户
数据记录2每笔转账 1 行收款方的金融机构·分行·存款种类·账号·收款人名·金额
尾部记录81 行数据记录的件数和转账金额合计
结束记录91 行文件结束标记(其余为空格)

例如给 30 个人转账,就是表头 1 行·数据 30 行·尾部 1 行·结束 1 行,共 33 行,不含换行为 33×120=3,960 字节。银行会把尾部写的件数·合计金额与自己重新统计的数据行结果核对,不一致就整个文件都不受理。

  • 数字项目(N)右对齐,位数不足时在前面补 0(账号 123 → 0000123)
  • 字符项目(C)左对齐,多余部分在后面补空格
  • 可用字符只有半角数字·大写英文字母·片假名和少数符号,一个全角字符也不能有
  • 因为只用半角,在 Shift_JIS 中 1 个字符=1 字节。浊音符「゙」·半浊音符「゚」也各算 1 个字符

综合转账·工资转账·奖金转账的区别(种别代码)

同样是全银格式,转账的种类由表头的“种别代码”(2 位)区分。支付供应商货款和报销费用用综合转账,员工工资用工资转账,奖金用奖金转账。布局基本相同,但数据记录中几个项目的含义,以及银行的手续费和截止时间会不同。

种别代码转账种类主要用途数据记录的区别
21综合转账货款·外包费·报销·房租等客户代码 1·2 可自由使用。可用转账指定区分(7 电汇·8 文书转账)和 EDI 信息(识别标志 Y)
11工资转账每月工资(民营企业)客户代码 1 为员工编号,客户代码 2 为部门代码。转账指定区分和识别标志为空格
12奖金转账奖金(民营企业)与工资转账相同
71·72工资·奖金转账(公务员)政府机关的工资·奖金与工资·奖金转账形式相同,民营企业不使用
91账户代扣会费·学费等的代扣不是转账而是代扣委托。部分项目不同,需要与转账文件分开制作

用综合转账发工资在技术上可行,但很多银行对工资转账有特别处理——“发薪日早上统一到账”“手续费比综合转账便宜”——相应地数据截止时间也定得更早。反过来,在工资转账文件里混入给外包方的付款,按银行合同通常是不允许的。请把工资和外包费分成不同的文件。

数据记录的项目和位数

数据记录每笔转账 1 行,写收款方的账户和金额。收款人名只有 30 字节,很长的公司名即使用了略称也可能放不下。

位置项目位数类型写法
1数据区分1N2
2〜5汇入金融机构代码4N收款方金融机构代码(瑞穗 0001、三菱 UFJ 0005、邮储 9900 等)
6〜20汇入金融机构名15C半角片假名,省略时为空格
21〜23汇入分行代码3N收款方的分行代码
24〜38汇入分行名15C半角片假名,省略时为空格
39〜42票据交换所编号4N现已不用。空格或 0(按银行要求)
43存款种类1N1 普通·2 活期支票·4 储蓄·9 其他
44〜50账号7N不足 7 位时在前面补 0
51〜80收款人名30C账户名义的半角片假名,法人使用略称
81〜90转账金额10N日元,前面补 0(最多 9,999,999,999 日元)
91新规代码1N0 其他·1 首次转账·2 变更
92〜101客户代码 110N综合转账可自由使用(如供应商代码)。工资·奖金为员工编号
102〜111客户代码 210N综合转账可自由使用。工资·奖金为部门代码
112转账指定区分1N7 电汇·8 文书转账。工资·奖金为空格
113识别标志1C设为 Y 时,把客户代码 1·2 的 20 位作为 EDI 信息使用
114〜120预留7C空格

金融机构名·分行名即使省略为空格,银行也是按代码确定收款方,所以一般没有问题。与其写错名称,不如留空更安全。反之,代码只要错 1 位就会变成别的银行·分行,请务必用全银协的金融机构代码一览或对方发票上的收款信息核对。

EDI 信息是在转账时附上发票编号等信息告知对方的机制。识别标志设为 Y 后,客户代码 1·2 的 20 位就不再限于数字,可以写半角英数字和片假名,并显示在收款方的入账明细上。客户为了方便核销应收账款,要求“请在 EDI 信息里填发票编号”时就会用到。能传送更长信息(最多 140 个字符)的全银 EDI 系统(ZEDI)使用另一种 XML 格式,与这种文件是不同的服务。

尾部·结束记录,以及换行和字符编码

记录位置项目位数写法
尾部1数据区分18
尾部2〜7合计件数6数据记录的行数,前面补 0
尾部8〜19合计金额12转账金额合计,前面补 0
尾部20〜120预留101空格
结束1数据区分19
结束2〜120预留119空格

尾部的件数和合计金额,在手动增删数据行之后很容易忘记修改。删掉 1 笔而尾部保持原样,银行就会以“件数·金额不一致”为由拒收整个文件。修改了数据,就一定要重新生成尾部。

文件的字符编码是 Shift_JIS(代码区分 0)。可用字符全是半角,所以实际上文件里只有 ASCII 和半角片假名。用 UTF-8 保存的话,每个半角片假名会变成 3 字节,120 字节的分隔就乱了。换行最常见的是每 120 字节加一个 CRLF(Windows 换行),也有银行指定 LF 或“不换行、连续写 120 字节”。还有一些旧规格要求在文件末尾加 EOF(0x1A),导入出错时请查看银行“文件规格书”中关于换行的说明。

可用字符,以及改成半角片假名时的规则

全银格式可用的字符非常有限。账户名义以半角片假名登记在银行的账簿中,转账时会把收款人名与之核对,不遵守书写规则就可能因“名义不符”而被组戻(撤回转账)。

种类可用字符注意
数字0〜9不能用全角数字
英文字母A〜Z只能大写,小写要改成大写
片假名ア〜ン、ヲ、浊音符 ゙、半浊音符 ゚不能用小写的 ァ ィ ゥ ェ ォ ャ ュ ョ ッ 和长音符 ー
符号空格 ( ) . - / 「 」 \ ,有的银行可用符号更少
  • 小写片假名写成大写:shoji → シヨウジ,happy → ハツピ-
  • 长音符改成连字符「-」:senta(center)→ センタ-
  • “vu”写成 ヴ 两个字符,因为浊音符也算 1 个字符,计算长度时要注意
  • 中间点「·」改成句点「.」,全角空格改成半角空格
  • 「&」不能用,改成「.」等(与银行登记的名义一致)
  • 姓和名之间加 1 个半角空格:ヤマダ タロウ

字数上限也把浊音符·半浊音符各算 1 个字符。收款人名栏是 30 个字符,但像 ガク)グリ-ンヒルズガクエン 这样浊音多的名字,会比看起来更早达到上限。超出部分一般截断后发送,银行也是从开头开始核对,所以多数情况下仍能到账。

法人略称「カ)」「(カ」的写法

法人账户的名义,会像把「株式会社」写成「カ」那样,把法人种类缩写成简短的略称登记。括号的方向表示略称在公司名的前面还是后面。

在公司名中的位置写法示例(株式会社山田商事)
开头(前株)略称后面加「)」株式会社山田商事 → カ)ヤマダシヨウジ
末尾(后株)略称前面加「(」山田商事株式会社 → ヤマダシヨウジ(カ
中间用「( )」夹住略称山田株式会社商事 → ヤマダ(カ)シヨウジ
后接营业所等各自加略称株式会社山田商事 東京営業所 → カ)ヤマダシヨウジ トウキヨウ(エイ
法人种类略称法人种类略称
株式会社カ有限会社ユ
合同会社ド合名会社メ
合资会社シ相互会社ソ
医疗法人(含社团·财团)イ社会福利法人フク
一般·公益社团法人シヤ一般·公益财团法人ザイ
学校法人ガク宗教法人シユウ
特定非营利活动法人(NPO 法人)トクヒ独立行政法人ドク
税理士法人ゼイ律师法人ベン
监查法人カンサ司法书士法人シホウ
农业协同组合ノウキヨウ生活协同组合セイキヨウ
营业所エイ办事处(出张所)シユツ

前株和后株搞错,可能会在名义核对时出问题。请按登记的正式名称确认对方公司名:「株式会社」在前就写「カ)」,在后就写「(カ」。即使发票上写的是「㈱」「(株)」,账户名义也是以略称形式登记的。合同会社的「ド」、一般社团法人的「シヤ」(把小写的 ya 写成大写),是最容易写错的略称。

向邮储银行转账时账号的换算方法

邮储银行的账户用“记号(5 位)·番号(最多 8 位)”表示,直接放不进全银格式的 3 位分行代码·7 位账号。用全银格式转账时,要换算成邮储银行规定的“转账用店号·账号”。金融机构代码是 9900。

账户种类记号形式店号(分行代码)存款种类账号
综合账户(通常储蓄)以 1 开头的 5 位(1□□□0)记号第 2·3 位+81 普通去掉番号最后 1 位后的 7 位
转账账户(振替口座)以 0 开头的 5 位(0□□□□)记号第 2·3 位+92 活期支票番号前面补 0 至 7 位

例如记号 12340·番号 12345671 的综合账户,店号是在“23”后加 8 的“238”,账号是去掉最后的“1”后的“1234567”。店名是「二三八店」这样的汉字数字,但分行名留空格就够了。番号位数较短或是转账账户而拿不准时,请用邮储银行网站上的换算页面确认,或者向收款人询问“从其他金融机构转账用的账号”。

用 Excel·CSV 制作全银数据的步骤

会计软件没有全银数据导出功能,或者小公司用 Excel 管理收款方时,从表格转换成全银格式是最现实的办法。用 Excel 函数(TEXT·REPT·LEFT 等)也能拼出来,但很容易漏看全角字符混入和字节数错位,使用转换工具更可靠。

  1. 1

    做成每行 1 笔的收款方表格

    列按“金融机构代码·金融机构名·分行代码·分行名·存款种类·账号·收款人名·转账金额”的顺序排列,需要的话后面接客户代码(工资为员工编号)或 EDI 信息。第 1 行可以是标题。

  2. 2

    把代码列设成“文本”

    Excel 会把“0001”变成数值 1,把“0012345”变成 12345。金融机构代码·分行代码·账号这几列,请先把单元格格式设为文本再输入,或者让转换工具重新补 0。也要确认账号没有显示成“1.23E+06”这样的科学计数法。

  3. 3

    收款人名用片假名输入

    先用全角片假名或平假名输入,转换时再改成半角片假名最省事。法人名包含「株式会社」按正式名称输入,略称的加法也能自动处理。

  4. 4

    金额只保留数字

    去掉“110,000円”这样的逗号和日元符号。若转账手续费由对方承担,就写扣除后的金额。

  5. 5

    确认是“120 字节×行数”后再发送

    确认导出文件的大小是“(件数+3)×120 字节+换行”,尾部的件数和合计金额与表格一致,然后再导入网上银行。

在日文版 Excel 中保存 CSV 时,选择普通的“CSV(逗号分隔)”而不是“CSV UTF-8”,就会以 Shift_JIS 保存。不过如果是给转换工具读取的 CSV,哪种都可以。真正要注意的是,用 Excel 或记事本打开做好的全银文件并覆盖保存,字符编码或末尾的空格可能会变,导致 120 字节被破坏。

导入出错的原因和修改方法

网上银行提示“文件格式不正确”“记录长度错误”时,原因大多是下面几种之一。从上往下检查能最快找到。

错误内容常见原因修改方法
记录长度不是 120 字节混入全角字符(全角空格·全角数字)、用 UTF-8 保存、末尾空格被删掉把全角改成半角,用 Shift_JIS 重新导出
件数·合计金额不一致手动增删了数据行却没改尾部重新生成尾部
含有不可用字符小写片假名·长音符「ー」·小写英文字母·「&」等符号改成大写片假名·连字符·大写字母
数据区分顺序错误数据在表头之前、有两个结束记录、有空行按 1→2…→8→9 的顺序排列并删除空行
换行代码错误CRLF 和 LF 混用,或银行要求不换行却有换行按银行的要求重新导出
委托人代码不对填了别的账户或别的服务的代码在合同文件或管理页面确认委托者代码
取组日错误银行休息日、超过截止时间的日期、过去的日期改成营业日,工资要注意截止时间

有时文件被受理了,事后却有部分转账被退回(退汇·组戻)。原因几乎都是账号错误、账户已注销或收款人名差异较大。组戻要收取几百日元到 1,000 日元左右的手续费,到账也会延迟,所以第一次转账的对象,最好先小额试转,或先用发票确认账户名义再发送。

取组日和数据的截止时间

全银数据并不是在转账日当天发送就一定来得及。尤其是工资转账·奖金转账,银行需要提前把数据分发给收款人的银行,所以截止时间定得较早。

转账种类数据截止时间的参考到账
综合转账转账日前一个营业日〜当天早上(因银行而异)转账日当天
工资·奖金转账发薪日前几个营业日(多为 3 个营业日前)发薪日早上统一到账
超过截止时间的工资转账改按综合转账处理,或不予受理手续费可能变高

截止时间按“营业日”计算,发薪日之前若夹着周末·节假日或年末年初,就会比预想的早。25 日发薪且 25 日是周一的话,3 个营业日前就是上一周的周三。营业日的数法见营业日的计算方法,员工一侧的到手金额可参考到手工资的计算方法和奖金的到手金额。

全银格式 制作·检查工具的用法

使用全银格式 制作·检查工具,即使记不住上面这些规则,也能只用浏览器制作并检查全银文件。输入的账户和金额不会发送到服务器,只在你使用的设备中处理。

  1. 1

    在“制作转账数据”标签页输入委托人(表头)

    选择综合转账(21)·工资转账(11)·奖金转账(12),输入委托人代码(10 位)·委托人名·转账日(取组日)·扣款账户。打开“把委托人信息保存在本设备”的选项,下次就可以省去输入(收款方不会保存)。

  2. 2

    输入收款方,或从 Excel 粘贴

    可以用“+ 添加行”逐笔输入,也可以打开“从 Excel·CSV 读取”,粘贴从 Excel 复制的表格,再点“读取粘贴的表格”一次性导入。列的顺序可以用“下载模板 CSV”确认。开头的 0 丢失的代码会自动补回。

  3. 3

    确认名义的转换结果和错误

    打开自动把名义·金融机构名转换为全银片假名的选项后,平假名·全角片假名·法人名会转换成全银半角片假名和「カ)」「(カ」略称。位数·不可用字符·金额上限会即时检查,并显示有问题的行和项目。

  4. 4

    按银行要求设定换行等后导出

    选择换行(CRLF·LF·无换行)、未使用的数字项目用空格还是 0 填充、转账指定区分,然后点“下载全银文件(.txt·Shift_JIS)”。件数和合计金额会自动写入尾部。

  5. 5

    已有的文件在“检查文件”标签页查看内容

    打开会计软件或工资软件导出的全银文件,会按记录拆分字段显示,并检查是否为 120 字节、尾部的件数·合计金额是否一致、是否混入全角字符。还能用“把收款方保存为 CSV(Excel 用)”还原成表格。

只想修改名义时,在“名义片假名转换”标签页每行粘贴 1 个名义,就能一次性转换成半角片假名。各项目的位置和位数随时可以在“布局速查表”标签页查看。另外,换行的有无、未使用项目的填充方式、可用符号等,各银行之间有细微差别,首次导入前请先与银行的文件规格书对照一次。

常见问题

全银格式是什么?
是日本全国银行协会(全银协)规定的、把多笔转账数据一次性交给银行的文件写法。每行 120 字节的定长文本,按顺序排列表头(数据区分 1)·数据(2,每笔转账 1 行)·尾部(8,件数和合计金额)·结束(9)四种记录。除综合转账·工资转账·奖金转账外,也用于账户代扣,会计软件和工资软件的“全银数据导出”“FB 数据导出”也是这种格式。
全银文件的一行是多少字节?
每条记录都是 120 字节。因为只用半角英数字和片假名,在 Shift_JIS 中 1 个字符为 1 字节,120 个字符=120 字节。只要混入 1 个全角字符,这一行就会变成 121 字节以上,导入时出现记录长度错误。换行(CRLF 为 2 字节)不算在 120 字节内。
综合转账和工资转账的格式有什么不同?
表头的种别代码,综合转账为 21,工资转账为 11,奖金转账为 12。数据记录中,工资·奖金的客户代码 1 为员工编号,客户代码 2 为部门代码,转账指定区分和识别标志(EDI)不用,填空格。银行方面,工资转账通常手续费较低、发薪日早上到账,但数据截止时间较早,多为发薪日前几个营业日。
转账名义中的“株式会社”怎么写?
缩写成「カ」,用括号的方向表示位置:株式会社在公司名前面(前株)写「カ)ヤマダシヨウジ」,在后面(后株)写「ヤマダシヨウジ(カ」,在中间写「ヤマダ(カ)シヨウジ」。有限会社为「ユ」,合同会社为「ド」,医疗法人为「イ」,一般社团法人为「シヤ」,特定非营利活动法人为「トクヒ」。
转账名义中的小写片假名和长音符怎么处理?
全银格式不能使用小写片假名(ァ ィ ゥ ェ ォ ャ ュ ョ ッ)和长音符,所以小写片假名写成大写,长音符改成连字符。shoji 写成 シヨウジ,happy 写成 ハツピ-,center 写成 センタ-。银行的账户名义也是按这个规则登记的,照此书写就不会在名义核对时出问题。
邮储银行的账户在全银格式中怎么写?
金融机构代码为 9900。综合账户(记号是以 1 开头的 5 位)的话,在记号第 2·3 位后加 8 的 3 位数是分行代码,去掉番号最后 1 位后的 7 位是账号,存款种类为普通(1)。记号 12340·番号 12345671 就是分行代码 238·账号 1234567。转账账户(记号以 0 开头)使用在记号第 2·3 位后加 9 的店号,存款种类为活期支票(2)。
用 Excel 做的转账清单能变成全银格式吗?
可以。把包含金融机构代码·分行代码·存款种类·账号·收款人名·转账金额各列的表格粘贴到全银格式转换工具,或以 CSV 读取,就能转换成 120 字节定长的 Shift_JIS 文件。Excel 容易把金融机构代码和账号开头的 0 弄丢,请把这些列设为文本,或使用能自动补 0 的工具。
有办法确认全银文件的内容吗?
用文本编辑器打开能看到内容,但各项目没有分隔符连在一起,需要对照布局表按位置数。用全银格式检查工具打开文件,会按记录拆分字段显示,并一次性检查每行是否为 120 字节、尾部的件数·合计金额是否与数据一致、是否混入全角字符。注意用记事本等覆盖保存可能会破坏格式。
取组日为什么没有年份?
全银格式表头的取组日规定只写月日 4 位(MMDD)。数据本来就是在转账日前不久制作并发送的,所以没有年份,银行也会当作最近的那个日期处理。年底制作次年 1 月的付款数据时,只写“0105”这样的月日就够了。不过指定金融机构休息日会报错或顺延到下一个营业日。

本文介绍的工具

相关文章

使用指南约 14 分钟

天数计算方法|两个日期之间相差几天?几天后、几天前怎么算

“4月1日到10月21日一共多少天?”“今天起100天后是星期几?”“签约后30天内,截止到哪天?”计算天数看似只是一次减法,但第一天算不算进去就会差1天,月份天数或闰年数错了还会再差1到2天。本文用实际日期逐一验证,整理两个日期之间天数的基本公式、算头不算尾与首尾都算(首日不计入/首日计入)的区别、跨月的数法、1月1日起的年内天数速查表、几天后与几天前的日期和星期的算法、“1个月”和“30天”的区别,以及 Excel 和表格软件的公式。

阅读文章 →