Swift

SWIFT MT103 メッセージ フォーマット完全解説 – 必須タグ・CSV変換チェックリスト

ⓘ本ページはプロモーションが含まれています

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


スポンサードリンク

1️⃣ MT103 が担う役割 ― 国際送金における「単一指示」メッセージ

項目 内容
対象 顧客が個別に指示するクロスボーダー送金(例:輸入代金、サービス料)
位置付け SWIFT ネットワーク上の 5 ブロック構造を持つ標準メッセージ。1 件の取引につき 1 メッセージが生成されるため、トレーサビリティとエラーハンドリングが容易
他メッセージとの差異 MT102 は複数指示をひとつにまとめたバッチ送金。MT103 は「1 件 = 1 メッセージ」なので、個別の承認・追跡が必要なシーンで採用される

ポイント:国際送金業務では、顧客ごとの指示内容を正確に伝えることが最重要。MT103 はそのための「標準化された名刺」のような役割を果たします。


2️⃣ MT103 のブロック構成と主要フィールド

2.1 ブロック概要(5 ブロック)

ブロック 主な内容 必須か
Block 1 – Basic Header 発信銀行・受信銀行の BIC、メッセージタイプ、サービス ID 等の固定長ヘッダー。タグ形式ではなく、SWIFT が内部で管理する構造です。 必須(送信時に自動付与)
Block 2 – Application Header 送受信区分(入力/出力)と優先度。CRED(顧客送金)やACK 等が設定されます。 必須
Block 3 – User Header 任意の補助情報(例:代替 BIC、取引番号)。使用は銀行側のポリシー次第です。 任意
Block 4 – Text (Body) 取引詳細を示すタグ群(:20:, :32A:, …)。実務上最も重要で、必須タグが多数含まれます。 必須
Block 5 – Trailer チェックサムやデジタル署名などの補助情報。エラー検知に利用されることがあります。 任意

2.2 Block 4 に必ず出現する代表的タグ

タグ 意味 フォーマット例
:20: Transaction Reference (送金指示の一意識別子) 20230429ABC12345(16 文字以内)
:23B: Bank Operation Code – 「CRED」 が標準 CRED
:32A: Value Date + Currency + Amount 240531USD1234567,89(YYMMDD、3 桁通貨コード、コンマ区切り金額)
:50K / :50F Ordering Customer (送金依頼人) /123-4567890\nJohn Doe\n1‑2‑3 Example St., Tokyo
:59: Beneficiary Customer (受取人) /987654321\nACME Corp.\n45 Business Rd., New York
:71A: Details of Charges – SHA / BEN / OUR のいずれか SHA

注意:各タグは ASCII 文字のみ使用可能で、長さ制限が定められています。超過すると SWIFT バリデーションでエラーとなります。


3️⃣ フィールド別書式要件と実装ヒント

項目 書式要件 実装上のチェックポイント
文字セット ASCII(英大文字・数字・記号) 入力前に iconv('UTF-8','ASCII//TRANSLIT',$str) で変換、非対応文字は除外
日付 YYMMDD(6 桁) 正規表現 /^\d{6}$/DateTime::createFromFormat('ymd',$value) で検証
金額 最大 15 桁、コンマ区切り小数部 (1234567,89) number_format($amt,2,',','') → 長さチェック (≤ 15)
口座番号・識別子 スラッシュ / で開始し、改行で続く複数行 行頭スラッシュが必須かつ行長 ≤ 35 文字
Charges コード SHA, BEN, OUR のいずれか 列挙型(enum)で管理し、入力時に選択肢限定

実装例(PHP)


4️⃣ CSV 変換のベストプラクティス(ブランド非依存)

多くの銀行が内部システム間で MT103 データを CSV に落とし込む際、以下の共通仕様が採用されています。

項目 推奨設定
区切り文字 カンマ ,
テキスト囲み ダブルクオート "(内部の """ とエスケープ)
改行コード CR + LF (\r\n)
空白処理 前後空白は必ずトリム。空白が残るとバイト長不一致になる可能性あり
数値フォーマット 先頭ゼロを保持(例:"00123")。整数として扱わないように注意

CSV 変換チェックリスト

  1. タグ順序の固定化
  2. 必須タグは常に同一列に配置(:20:, :23B:, :32A:, …)し、欠落があれば空文字で埋める。

  3. エスケープ処理

  4. " を含むフィールドは "" に置換後、全体を " " で囲む。

  5. 数値・日付のパディング

  6. 月・日は必ず 2 桁 (05) 、金額は左側にゼロ埋め(最大桁数まで)。

  7. バイト長検証

  8. 行単位で総バイト数を算出し、仕様書の上限と比較。超過または不足はエラーとしてログへ。

  9. 最終改行

  10. ファイル末尾に必ず CR + LF を付与。システムによっては LF のみでは受け付けない。

変換サンプル(テキストエディタで確認できる形)

\n は実際の CSV では改行文字(CR + LF)に置き換えてください。


5️⃣ よくあるバリデーションエラーと予防策

エラー種別 発生原因 事前対策
必須タグ欠落 (:32A: が未入力) テンプレート不備・手作業ミス メッセージ生成時に必須タグリストを自動走査し、欠如時は例外を投げる
日付形式エラー (2023-05-01) ISO 8601 表記のまま流用 正規表現 ^\d{6}$ で検証し、フォーマット関数で変換
金額区切りミス (1234.56) 小数点をピリオドにしたまま出力 金額は必ず number_format($amt,2,',','') に統一
先頭ゼロ除去 (505) CSV 出力時に整数型で処理 文字列として扱い、sprintf('%02d',$value) で 2 桁固定
全角文字混入 (例:カタカナ) 日本語入力がそのまま残る 入力段階で iconv により ASCII へ変換、非対応文字はエラーログに記録

実務的なヒント
- テンプレート駆動:必須タグと順序を JSON/YAML で定義し、生成ロジックがそれに従う形にすると変更管理が楽になります。
- CI/CD の活用:メッセージ作成バッチのビルド時に単体テストとして「全必須タグが存在するか」「フォーマットが正しいか」を自動検証します。


6️⃣ シナリオ別メッセージ選択指針

業務シナリオ 推奨メッセージ 理由
単一顧客の代金支払 (例:輸入業者への支払い) MT103 1 件ごとの明細が必須で、トレーサビリティが重要。
給与・ボーナス等の大量振込 MT102(または ISO 20022 の pacs.008 バッチ処理に最適。個別エラーはまとめて返却される点に留意。
信用状付貿易決済 MT103 + 追加タグ (:70::71B: 等) 商品情報や条件が必要なため、拡張タグで補完。
リアルタイム決済(国内外) ISO 20022 系 pacs.008 が主流だが、SWIFT ネットワーク上では MT103 でも対応可能 将来的なシステム統合を見据えて、ISO 20022 の採用計画を検討。

7️⃣ まとめ ― 実務で即活かせるチェックリスト

  1. ブロック構造と必須タグ を把握し、特に Block 4 の :20::23B::32A::50K/F::59::71A: を漏れなく記述。
  2. 文字セット・長さ・フォーマット(日付・金額)は ASCII、固定桁数で統一し、正規表現や関数で事前検証。
  3. CSV 変換 は「ダブルクオート+カンマ区切り+CR + LF」の共通仕様に従い、空白・先頭ゼロの除去に注意。
  4. バリデーションエラー対策 としてテンプレート駆動と自動テストを導入し、エラー発生を未然に防止。
  5. シナリオ別メッセージ選択 を業務フローに合わせて適切に行い、MT103 と MT102(または ISO 20022)の使い分けを明確化。

これらのポイントを実務プロセスに組み込めば、国際送金における MT103 の作成・検証が効率的かつ高信頼で行えるようになります。ぜひ本稿のチェックリストとサンプルコードをご活用ください。

スポンサードリンク

お得なお知らせ

スポンサードリンク
AI時代のキャリア構築

プログラミング学習、今日から動き出す

「何から始めるか」で止まっている人こそ、無料説明会や本で自分に合うルートを30分で確定できます。

Enjoy Tech!|月額制でWeb系に強い▶ (Kindle本)ITエンジニアの転職学|後悔しないキャリア戦略▶

▶ AIコーディング環境なら  実践Claude Code入門(Amazon)が実務で即使える入門書です。Amazonベストセラーにも選ばれていますよ。


-Swift