EPC Girocode
EPC GirocodeはEuropean Payments CouncilによるSEPA Credit Transfer向けQRフォーマットです。Girocodeをスキャンすると、受取人のIBAN・金額・送金メッセージが支払者のバンキングアプリに自動入力され、銀行情報を手動でコピーする手間が省けます。Sparkasse、Volksbank、Deutsche Bank、ING、N26、Revolut、およびドイツ・オーストリア・オランダの主要バンキングアプリがネイティブ対応しています。SEPAゾーン外ではGirocodeは機能しません。
正規仕様書:EPC069-12 v2.1, Quick Response Code Guidelines to Enable Data Capture for the Initiation of a SEPA Credit Transfer (2022).
エンコーディング: プレーンUTF-8テキスト(TLVでも構造化でもない)。
スキーム: SEPA Credit Transfer(SCT)またはSEPA Instant Credit Transfer(SCT Inst)。QRは一回限りの振込を起動します。口座引き落とし/定期振込には対応していません。
エンコーディング: プレーンUTF-8テキスト(TLVでも構造化でもない)。
\n(LF、U+000A)で区切られた12個の固定位置フィールド。ペイロード最大331バイト。 スキーム: SEPA Credit Transfer(SCT)またはSEPA Instant Credit Transfer(SCT Inst)。QRは一回限りの振込を起動します。口座引き落とし/定期振込には対応していません。
ペイロード構造:12行、改行区切り
| 行 | フィールド | 長さ | 必須 | 備考 |
|---|---|---|---|---|
| 1 | サービスタグ | 3 | はい | 固定値 BCD。 |
| 2 | バージョン | 3 | はい | 001(元仕様)または 002(v2、EEA内ではBICが任意)。 |
| 3 | 文字セット | 1 | はい | 1=UTF-8、2=ISO-8859-1、3=ISO-8859-2など。安全な選択肢は 1 のみ。 |
| 4 | 識別子 | 3 | はい | SCT(標準Credit Transfer)。SCT Instも同じタグを使用し、即時/通常の区別はアクワイアラの判断。 |
| 5 | BIC | 0、8、または11 | いいえ(v002) | v001では必須、v002のSEPA決済では任意。EEA外の受取人には含めること。 |
| 6 | 受取人名 | 1〜70 | はい | 自然言語の名称。文字セットは3行目に従う。 |
| 7 | IBAN | 1〜34 | はい | スペースや書式なし。DE89370400440532013000(DE89 3704 0044 0532 0130 00は不可)。 |
| 8 | 金額 | 4〜12 | いいえ | フォーマット:EUR10.00。省略するとスキャン時に支払者が金額を入力。 |
| 9 | 目的コード | 0〜4 | いいえ | ISO 20022 External Purpose Code。例:GDDS(商品)、CHAR(寄付)。 |
| 10 | 構造化送金参照 | 0〜35 | いいえ | 自動照合用のISO 11649 RF creditor reference。11行目とは同時使用不可。 |
| 11 | 非構造化送金情報 | 0〜140 | いいえ | 自由記述の支払理由。10行目とは同時使用不可。 |
| 12 | 受取人から振込人へのメモ | 0〜70 | いいえ | バンキングアプリで支払者に表示される任意のヒントテキスト(例:「Rechnung 2026-0042」)。 |
正規テストベクター:v002 最小構成
CommerzbanksのIBAN DE89370400440532013000 を持つ Max Mustermann への €12.50 の振込。BICなし、非構造化参照「Rechnung 42」:
BCD
002
1
SCT
Max Mustermann
DE89370400440532013000
EUR12.50
Rechnung 42
5行目(BICなし)、9行目(目的コードなし)、10行目(構造化参照なし)が空行になっている点に注意してください。これらの空行は必須で、行数はちょうど12行(12行目を省略する場合は11行)でなければなりません。
ライブIBANバリデーター(mod-97)
GirocodeはISO 13616 mod-97チェックサムに失敗したIBANを拒否します。以下は、AbunderaがGirocodeジェネレーター内でインラインで実行しているものと同じバリデーターで、ブラウザー上で動作します。
IBANを入力して検証してください。
よくある落とし穴
- 行末文字。 EPC069-12はLF(
\n、U+000A)を義務付けています。CR+LF(\r\n)は一部のAndroidバンキングアプリを壊します。Windows Notepadからペイロードをコピーした場合、CR+LFになるため、QRエンコード前にCRを取り除いてください。 - v001ではBIC必須、v002では任意。 SEPA内部振込には常にバージョン
002を使用してください。ペイロードが8〜11文字節約でき、すべての現行バンキングアプリで動作します。BICを含めるのは、旧v001アプリ(ほぼ廃止)またはEEA外の受取人向けに限ります。 - 金額フォーマットは厳格。
EUR10.00(通貨コードプレフィックス、ドット区切り、小数2桁)が必須です。EUR10、EUR10,00、10.00 EURはすべて無効です。 - 構造化参照と非構造化参照の混在不可。 10行目と11行目は相互排他です。両方が非空の場合、仕様上QRは無効となります。実際にはどちらか一方を無視するアプリもありますが、照合不一致の原因になります。
- IBANのスペース。 IBANフィールド(7行目)は空白を受け付けません。人間が読みやすい
DE89 3704 0044 0532 0130 00はエンコード前にDE89370400440532013000に変換してください。 - ペイロード最大331バイト。 331バイトを超えるQRペイロードは仕様に違反します。長い受取人名・長い送金メッセージ・BIC・IBANが重なるとオーバーしやすくなります。バンキングアプリはスキャン時にエラーを表示しますが、エンコード時にQR自体が警告を出すわけではありません。
- 文字セットの落とし穴。 3行目は6行目・11行目・12行目に適用する文字セットを指定します。国際的な名称にはUTF-8(値
1)が唯一の現実的な選択肢です。ISO-8859-1は西ヨーロッパのラテン文字以外を表現できません。 - SEPAゾーン限定。 Girocodeの支払はSEPA参加口座間(EU + EEA + スイス + 英国 + モナコ + サンマリノ + アンドラ + バチカン)でのみ機能します。非SEPAのバンキングアプリでGirocodeをスキャンすると、失敗するか、フィールドが空の通常振込画面が開きます。
- 口座引き落とし不可。 GirocodeはSEPA Credit Transferのみです。引き落とし/定期決済フロー(定期振込、継続的な委任)はGirocodeでは表現できません。それらの用途にはQRをSEPA委任文書と組み合わせてください。
- PSD2の返金権。 SEPA Credit Transferはプッシュ型で、スキャン時に消費者が承認します。PSD2に基づく消費者の返金権は引き続き適用されます(例:13ヶ月以内の無許可取引)。加盟店は署名済みの承認証跡を別途保管する必要があり、QR自体は契約ではありません。
バンキングアプリの互換性
| アプリ/地域 | Girocodeサポート | 備考 |
|---|---|---|
| Sparkasse(DE) | ネイティブ | Girocodeの当初のターゲット。完全対応。 |
| Volksbank / Raiffeisen(DE、AT) | ネイティブ | VR-BankingAppで完全対応。 |
| Deutsche Bank、Commerzbank、Postbank(DE) | ネイティブ | モバイルアプリの「Überweisung」フローからスキャン。 |
| ING(DE / NL) | ネイティブ | NLアプリではiDEAL QRもスキャン可能。 |
| N26、Revolut | ネイティブ | 対応全国で完全サポート。 |
| Erste Bank、Bank Austria(AT) | ネイティブ | オーストリアはドイツと同時にGirocodeを採用。 |
| Crédit Agricole、BNP Paribas(FR) | 一部対応 | 一部のフランスの銀行はGirocodeをスキャンできますが、大半は古い紙の参照フォーマットを好みます。 |
| 汎用iOS/Androidカメラ | 非対応 | 標準カメラは BCD テキストフォーマットを支払インテントとして解析しません。ユーザーはまずバンキングアプリを開く必要があります。 |
関連リンク
- /epc-girocode-qr-code/:IBAN検証とライブエンコーディングを備えたGirocodeジェネレーター。
- /sepa-qr-code/:SEPA Credit Transfer QRジェネレーター(同じ基盤フォーマット)。
- /standards/swiss-qr-bill/:Swiss QR-bill。CHF/スイスIBAN振込の地域代替手段。
- /standards/:標準インデックスに戻る。