全銀フォーマットについて
はじめに
Kyash Advent Calendar 2023 7日目の記事です。
業務で全銀フォーマットのパーサーを書く機会があり、仕様について調査したので備忘録として残しておきます。
全銀フォーマットとは
全銀フォーマットは正式には全銀協制定レコード・フォーマットといいます。
全銀ネット上で各種振込や住宅ローン、外国為替取引などを行う際にこのフォーマットに従いやりとりを行います。
参考: 一般社団法全国銀行協会:適用業務およびレコード・フォーマット
データ形式
全銀フォーマットはtxtファイルであり、具体的には以下のような内容になっています。
12100110999999キヤツシユ タロウ 02249999 010 20999999
22606キヤツシユ ヒシムケ 020オモタニ1 19876543キヤツシ シヨウジ 00000000010 0
22606キヤツシユ ヒシムケ 030オモタニ2 29999999キヤツシ ハナコ 00000000020 0
22606キヤツシユ ヒシムケ 030オモタニ2 11234567キヤツシ ジロウ 00000000030200504001 000001 0
8000003000000000006
9
内容としては大きく分けて
- ヘッダーレコード
- データレコード
- トレーラレコード
- エンドレコード
の四つの要素からなります。
ヘッダーレコード
先頭が1
になっている行
12109999999999キヤツシユ タロウ 02249999 010 20999999
はヘッダーレコードと呼びます。
データの開始を表すのと同時に、振込であれば総合、給与、賞与などのデータ自体の種別も含みます。
さらに仕向の口座情報もここに入ります。
仕向とは銀行振込であれば振込元のことをいいます。
口座情報としては金融機関番号、金融機関名、支店番号、預金種目(普通、当座など)、口座番号などがあります。
データレコード
先頭が2
になっている行
22606キヤツシユ ヒシムケ 020オモタニ1 19876543キヤツシ シヨウジ 00000000010 0
22606キヤツシユ ヒシムケ 030オモタニ2 29999999キヤツシ ハナコ 00000000020 0
22606キヤツシユ ヒシムケ 030オモタニ2 11234567キヤツシ ジロウ 00000000030200504001 000001 0
はデータレコードといいます。
こちらは金額や被仕向側の口座情報を保持します。
被仕向とは仕向に対して、振込先のことを表します。
それぞれ固定長になっており、例えば以下の()の部分10桁が金額を表しています。
22606キヤツシユ ヒシムケ 020オモタニ1 19876543キヤツシ シヨウジ (0000000001)0 0
ヘッダー1つに対してデータレコードが複数になっているのは、給与振込など振込元が一つで複数の口座に対して振込を行うことを想定しているんだと思います。
トレーラレコード
先頭が8
の行
8000003000000000006
はトレーラレコードといいます。
ここには合計件数と合計金額が入ります。
データレコードが3件で合計金額が6円なので見えてくると思います。
エンドレコード
先頭9
が終端文字になっており、この行をエンドレコードといいます。
今回の例ではヘッダーが一つの例でしたが、1ファイルに複数の仕向を含めることも可能で、その場合
ヘッダー
データ
...
トレーラ
ヘッダー
データ
...
トレーラ
...
エンド
という風になります。
最後に
今回は大枠のデータの持ち方についての説明を行いましたが、名義などは全銀テレ為替文字という利用可能文字が絞られていたり細かい仕様が多くあります。
実際にパーサーやバリデータを作成する際は、より詳細な仕様を把握する必要があります。
Kyashでは入出金機能で各銀行との繋ぎ込みを行ったり、決済電文であるISO8583などを扱ったり、さまざまな仕様書を読み込み実装することが多いです。
少しでも面白そう、興味が出たという方は応募よろしくお願いします。
デジタルウォレットアプリ「Kyash」を開発・運用しています。 もっとKyashを知りたいぞという方は、こちらもぜひご覧ください → blog.kyash.co/
Discussion