ISO 8583とは
ISO 8583は、
国際標準化機構(ISO)が策定した、金融取引
カードの始発メッセージに関する標準規格です。クレジット
カードやデビット
カードなどの
カード決済時に、POS端末やATMなどの
カード読み取り機から、
カード発行会社(イシュア)のシステムへ送られる電子メッセージの形式を定めています。
この規格は、異なるシステム間での取引を円滑に進めるための共通言語として機能し、
カード情報を安全かつ効率的に伝達することを目的としています。
構成要素
ISO 8583は、主に以下の3部で構成されています。
1.
メッセージ、データエレメントおよびコード値: メッセージの構造や、含まれるデータ要素、使用されるコード値を規定します。
2.
機関識別コード (IIC) の応用および登録手順: 金融機関を識別するためのコードの適用方法や登録手続きについて定めます。
3.
メッセージ、データエレメントおよびコード値の保全手順: メッセージの完全性やデータの正確性を保証するための手順を規定します。
メッセージの流れ
カードが使用される際、POS端末やATMから
カード情報を読み取り、ネットワークを介して
カード発行会社のシステムへメッセージが送信されます。このメッセージには、
カード番号、端末情報、取引金額などの情報が含まれています。
カード発行会社のシステムは、受け取った情報をもとに取引を承認または拒否し、その結果を応答メッセージとして端末に返信します。ISO 8583は、この一連のメッセージ交換を標準化し、異なるシステム間でのスムーズな取引を可能にしています。
利用シーン
ISO 8583は、クレジット
カード決済やATM利用など、日常的な金融取引の基盤となっています。多くのネットワーク(例えば、マスター
カードやビザ)では、
信用照会業務においてISO 8583をベースにした手順を採用しています。
ただし、ISO 8583にはルーティング情報が含まれていないため、実際にはTPDUヘッダが追加されることが多いです。
メッセージの種類
ISO 8583では、以下のような様々なメッセージの種類が定義されています。
カード所有者からの取引(購入、キャンセル、融資、返済、残高照会など)
セキュリティキー交換
取引件数や金額の管理
その他の管理目的メッセージ
カスタマイズ
ISO 8583の標準メッセージ形式は、各ネットワークやシステムでそのまま使用されることは少なく、それぞれが独自にカスタマイズした形式を採用しています。
また、ISO 8583には複数の版が存在し、各フィールドの使用方法が版によって異なる場合があります。例えば、1987年版と1993年版で使用されていた通貨エレメントは、2003年版では金額項目のサブフィールドに統合されています。
ISO 8583の構成要素
ISO 8583のメッセージは、以下の主要な要素で構成されています。
1.
メッセージタイプID (MTI)
2.
ビットマップ
3.
データエレメント
メッセージタイプID (MTI)
MTIは、メッセージの種類を識別するための4桁の数値フィールドです。各桁は、メッセージクラス、メッセージ機能、メッセージの発生源を示しています。
例:
`0110`の場合
`0xxx`: ISO 8583の版(例:1987年版)
`x1xx`: メッセージクラス(例:オーソリメッセージ)
`xx1x`: メッセージ機能(例:要求に対する応答)
`xxx0`: 手順の発生源(例:アクワイアラ)
MTIの各桁の意味
1桁目: ISO 8583のバージョン
2桁目: メッセージの目的
3桁目: メッセージの保証範囲(例えば、要求に対する応答か、アドバイスか)
4桁目: メッセージの発生源
MTIの例
以下にMTIの例を示します。
`0100`: オーソリ要求
`0110`: オーソリ応答
`0200`: 金融取引要求
`0210`: 金融取引応答
ビットマップ
ビットマップは、メッセージ内にどのデータエレメントが存在するかを示すためのフィールドです。
プライマリ・ビットマップ: フィールド1から64までのデータエレメントの有無を示す
セカンダリ・ビットマップ: フィールド65から128までのデータエレメントの有無を示す
サード・ビットマップ: フィールド129から192までのデータエレメントの有無を示す(あまり使用されない)
ビットマップは、8バイトの
バイナリデータまたは16進数の文字で表現されます。特定のビットが立っている場合のみ、該当のフィールドが存在します。
例:`'82x`は2進数で`'1000 0010'`となり、フィールド1と7が存在し、2,3,4,5,6,8は存在しないことを意味します。
ビットマップの設定例
`4210001102C04804` の場合
`BYTE1`: `01000010` (`42x`) フィールド2と7が存在
`BYTE2`: `00010000` (`10x`) フィールド12が存在
`BYTE3`: `00000000` (`00x`) フィールドは存在しない
`BYTE4`: `00010001` (`11x`) フィールド28と32が存在
`BYTE5`: `00000010` (`02x`) フィールド39が存在
`BYTE6`: `11000000` (`C0x`) フィールド41と42が存在
`BYTE7`: `01001000` (`48x`) フィールド50と53が存在
`BYTE8`: `00000100` (`04x`) フィールド62が存在
この例では、フィールド2, 7, 12, 28, 32, 39, 41, 42, 50, 53, 62が存在することを示します。
データエレメント
データエレメントは、トランザクションに関する具体的な情報を格納する個々のフィールドです。ISO 8583:1987では最大128フィールド、後に192フィールドまで拡張されました。
各データエレメントには、意味とフォーマットが規定されていますが、実際には各システムでカスタマイズされていることが多いです。
フィールドには、固定長のものと可変長のものがあります。可変長フィールドの場合は、値の前に長さを示す情報が付与されます。
データエレメントの属性
各データエレメントは、以下の属性で記述されます。
タイプ: データ型(例:数値、文字列)
長さ: データ長の指定(固定長か可変長か)
値: 実際のデータ
まとめ
ISO 8583は、金融取引における重要な国際標準規格であり、
カード決済を支える基盤となっています。メッセージ形式やデータ要素を理解することで、金融システムの仕組みをより深く理解することができます。