PIX
PIXはBanco Central do Brasil(BACEN)が運営するブラジルの即時決済スキームです。BR Code QRフォーマットはEMVCo MPMのサブセットで、タグ 26 のMerchant Account InformationにPIXキー(CPF、CNPJ、メールアドレス、電話番号、またはランダムEVP)を格納します。PIXは2020年の開始から2年未満(2020 → 2022)で初の1兆レアルを決済し、現在ブラジルの主要な小売決済ネットワークとなっています。
正規仕様:Banco Central do Brasil, PIXドキュメント。コア決議:BACEN Resolution 103/2021, Manual de Padrões para Iniciação do Pix。
親仕様:EMVCo MPM v1.1。PIXはマーチャントアカウントタグ
エンコード: 2桁のタグ、2桁の長さ、CRC16-CCITTトレーラーを持つTLV(タグ・長さ・値)。
親仕様:EMVCo MPM v1.1。PIXはマーチャントアカウントタグ
26 を予約し、それ以外はEMVCoから継承します。 エンコード: 2桁のタグ、2桁の長さ、CRC16-CCITTトレーラーを持つTLV(タグ・長さ・値)。
BR Code構造, タグ26(PIX Merchant Account Information)
PIX固有のコンテンツはタグ 26 に格納されています。これ自体が以下のサブタグを持つネストされたTLV構造です:
| サブタグ | 名前 | 長さ | 備考 |
|---|---|---|---|
00 | GUI, グローバル一意識別子 | 14 | 固定値 br.gov.bcb.pix。スキームをPIXとして識別します。 |
01 | PIXキー | 可変 | CPF(11桁)、CNPJ(14桁)、メール、電話(+55DDPHONE)、またはEVP(UUID形式のランダムキー)。 |
02 | 追加情報 | 可変、≤72 | 支払者へのフリーテキストメッセージ。支払者の銀行アプリに表示されます。 |
25 | URL, 動的PIX | 可変 | 動的PIXのみで使用:スキャン時に支払者のアプリがこのURLから完全なペイロードを取得します(金額、期日、有効期限、割引/罰金)。静的PIXはタグ25を完全に省略します。 |
PIXキーの種類
| キーの種類 | 形式 | 検証 |
|---|---|---|
| CPF(個人税ID) | 11桁、QRペイロードに句読点なし | 下2桁にMod-11チェックサム。マスク 123.456.789-09 → 生 12345678909。 |
| CNPJ(法人税ID) | 14桁、句読点なし | 2つのmod-11チェックサム。マスク 12.345.678/0001-95 → 生 12345678000195。 |
| メールアドレス | RFC 5321準拠、最大77文字 | BACEN登録時に小文字化。QRペイロードは登録時のケースと一致する必要があります。 |
| 電話番号 | E.164(国番号 +55)、最大14文字 | 形式:+55DDNNNNNNNNN(DDは2桁の市外局番)。スペースやハイフンは不可。 |
| EVP(ランダムキー) | UUID v4形式、36文字 | 登録時に支払者の銀行がサーバー側で生成。CPF/CNPJ/メール/電話を公開したくないマーチャントに推奨。 |
静的PIXと動的PIX
- 静的PIX(Point of Initiation
11)。 QRにすべてをエンコード:PIXキー、マーチャント名、マーチャント都市、任意の固定金額、任意の参照番号。支払者のアプリが直接読み取り承認します。印刷ステッカー、請求書、窓のポスターに最適。金額は省略可(支払者が入力)または固定可(正確な請求)。 - 動的PIX(Point of Initiation
12)。 QRはURL(サブタグ25)を格納します。支払者のアプリがスキャン時にそのURLからJWS署名済みJSONペイロード(金額、期日、有効期限ウィンドウ、任意の延滞料/割引ルール)を取得します。有効期限付き請求書(boletos híbridos)に必須。PIX Cobrança(請求)にも使用されます。
正規テストベクター, CPFキーと固定金額の静的PIX
CPF 12345678909、マーチャント LOJA TESTE(SAO PAULO)、固定金額 R$10.00、取引参照なし:
00020126360014br.gov.bcb.pix0114123456789095204000053039865406010.005802BR5910LOJA TESTE6009SAO PAULO62070503***6304XXXX| タグ | 値 | 意味 |
|---|---|---|
00 | 01 | ペイロード形式インジケーター(常に 01) |
01 | 11 | 静的起点 |
26 | 36バイトのネストTLV | PIX Merchant Account Information |
├─ 00 | br.gov.bcb.pix | GUI |
├─ 01 | 12345678909 | CPFキー(11桁) |
52 | 0000 | MCC, 不明 / 個人 |
53 | 986 | BRLのISO 4217通貨コード |
54 | 10.00 | 固定取引金額 |
58 | BR | 国コード |
59 | LOJA TESTE | マーチャント名(EMVCo規定最大25文字) |
60 | SAO PAULO | マーチャント都市(最大15文字) |
62 | 7バイトのネスト | 追加データテンプレート |
├─ 05 | *** | 参照ラベル(参照なしのプレースホルダー) |
63 | XXXX | 直前のすべてに対するCRC16-CCITT(エンコード時に再計算) |
よくある落とし穴
- CPF/CNPJのマスキング。 QRペイロードはマスクなしの数字のみを使用します(
12345678909、123.456.789-09ではない)。コードジェネレーターがドットとダッシュを誤って残すと、すべての銀行アプリで「chave PIX inválida」として失敗します。 - 文字セットが重要。 BACEN仕様はマーチャント名と都市にISO/IEC 8859-1(Latin-1)を要求します。アクセント文字(
São Paulo)はTLVの長さ計算前にLatin-1でエンコードする必要があります。UTF-8エンコードはバイト数を増加させ、長さフィールドを破壊します。 - CRC計算。 CRC16-CCITT(多項式
0x1021、init0xFFFF、最終XORなし)はタグ00から6304まですべてをカバーします, CRCフィールド自体のリテラルタグ+長さを含む。よくあるバグ:誤った範囲でCRCを計算すると、一部のアプリでは正常に解析されますが他では失敗します。 - 金額の形式は文字列で、数値ではない。 タグ
54は文字列:10.00、1000ではない。小数点以下2桁が必須。最大2桁, BRLにはセント未満の単位がありません。 - 静的PIXには払い戻し機能がない。 支払い後、静的PIXは即時かつ最終的です。マーチャントはアウトオブバンドで払い戻しを処理する必要があります(マーチャントから支払者への逆PIX)。印刷物にこれを明確に表示してください。
- ステッカーオーバーレイ詐欺。 レジカウンターの物理的なPIX QRステッカーはオーバーレイ詐欺の被害を受けています, 攻撃者がマーチャントのQRの上に自分のQRを貼り付けます。静的QRを定期的に交換し、ラミネート加工し、支払者が確認できるようにステッカーの横に期待されるPIXキーをプレーンテキストで表示してください。
- 投資/有価証券の制限。 Comissão de Valores Mobiliários(CVM)は未登録の投資勧誘にPIXを禁止しています。トークン、「保証リターン」製品、またはMLMスキームのランディングページのPIX QRはCVMの執行措置を引き起こします。
- 動的PIXにはライブエンドポイントが必要。 タグ
25のURLが無効な場合、スキャン時に支払いが失敗します。管理下にあるホストを使用し、少なくともQRの印刷期間中は稼働させてください。
バンキングアプリの対応状況
ライセンスを受けたすべてのPIX参加者(銀行または決済機関)はコンシューマーアプリでBR Codeをサポートしています。主な実装:
| アプリ | 静的 | 動的 | 備考 |
|---|---|---|---|
| Itaú, Bradesco, Santander, BB, Caixa | 対応 | 対応 | 上位5銀行。Cobrança、agendado、devoluçãoを含む完全なPIXサポート。 |
| Nubank | 対応 | 対応 | ブラジルで最も人気のあるネオバンク。シンプルなPIX UX。 |
| Inter, C6 Bank, PicPay | 対応 | 対応 | 完全なPIXサポート。 |
| Mercado Pago | 対応 | 対応 | 決済機関。PIXは同アプリ内の複数の決済ネットワークの1つ。 |
| 汎用iOS/Androidカメラ | 非対応 | 非対応 | ネイティブカメラアプリはBR Codeを決済意図として解析しません。ユーザーはまず銀行アプリを開く必要があります。 |
関連リンク
- /pix-qr-code/, CPF/CNPJ検証とライブBR Codeエンコードを備えたPIXジェネレーター。
- /standards/emvco/, EMVCo MPM親仕様。
- /standards/upi/, UPIインド、タグ26を持つ別のEMVCo派生スキーム。
- /standards/, 規格インデックスに戻る。