PIX
PIX adalah skema pembayaran instan Brasil yang dioperasikan oleh Banco Central do Brasil (BACEN). Format BR Code QR adalah subset EMVCo MPM dengan Merchant Account Information (tag 26) yang membawa kunci PIX, bisa berupa CPF, CNPJ, email, nomor telepon, atau EVP acak. PIX menyelesaikan satu triliun real pertama dalam kurang dari dua tahun sejak diluncurkan (2020 → 2022) dan kini menjadi jaringan pembayaran ritel dominan di Brasil.
Spesifikasi induk:EMVCo MPM v1.1. PIX mereservasi tag akun merchant
26; sisanya diwarisi dari EMVCo. Pengodean: TLV (Tag-Length-Value) dengan tag 2 digit, panjang 2 digit, dan trailer CRC16-CCITT.
Struktur BR Code, tag 26 (PIX Merchant Account Information)
Konten khusus PIX berada di tag 26. Tag ini sendiri merupakan struktur TLV bersarang dengan sub-tag berikut:
| Sub-tag | Nama | Panjang | Catatan |
|---|---|---|---|
00 | GUI, Global Unique Identifier | 14 | Nilai tetap br.gov.bcb.pix. Mengidentifikasi skema sebagai PIX. |
01 | Kunci PIX | variabel | CPF (11 digit), CNPJ (14 digit), email, telepon (+55DDPHONE), atau EVP (kunci acak mirip UUID). |
02 | Info tambahan | variabel, ≤72 | Pesan teks bebas untuk pembayar. Ditampilkan kepada pembayar di aplikasi perbankan mereka. |
25 | URL, PIX dinamis | variabel | Digunakan hanya untuk PIX dinamis: aplikasi pembayar mengambil payload lengkap dari URL ini saat pemindaian (jumlah, tanggal jatuh tempo, kedaluwarsa, diskon/denda). PIX statis menghilangkan tag 25 sepenuhnya. |
Jenis kunci PIX
| Jenis kunci | Format | Validasi |
|---|---|---|
| CPF (ID pajak perorangan) | 11 digit, tanpa tanda baca di payload QR | Checksum Mod-11 pada 2 digit terakhir. Mask 123.456.789-09 → mentah 12345678909. |
| CNPJ (ID pajak perusahaan) | 14 digit, tanpa tanda baca | Dua checksum mod-11. Mask 12.345.678/0001-95 → mentah 12345678000195. |
| Sesuai RFC 5321, maks 77 karakter | BACEN mengubah ke huruf kecil saat pendaftaran; payload QR harus cocok dengan huruf yang terdaftar. | |
| Telepon | E.164 dengan kode negara +55, maks 14 karakter | Format: +55DDNNNNNNNNN di mana DD adalah kode area 2 digit. Tanpa spasi atau tanda hubung. |
| EVP (kunci acak) | Format UUID v4, 36 karakter | Dibuat sisi server oleh bank pembayar saat pendaftaran. Direkomendasikan untuk merchant yang tidak ingin mengekspos CPF/CNPJ/email/telepon. |
PIX statis vs PIX dinamis
- PIX statis (Point of Initiation
11). Semua dikodekan dalam QR: kunci PIX, nama merchant, kota merchant, jumlah tetap opsional, referensi opsional. Aplikasi pembayar membaca langsung dan mengotorisasi. Terbaik untuk stiker cetak, faktur, poster jendela. Jumlah bisa dihilangkan (pembayar mengetiknya) atau ditetapkan (biaya pasti). - PIX dinamis (Point of Initiation
12). QR membawa URL (sub-tag25). Aplikasi pembayar mengambil payload JSON bertanda tangan JWS dari URL tersebut saat pemindaian, berisi jumlah, tanggal jatuh tempo, jendela kedaluwarsa, dan aturan biaya keterlambatan/diskon opsional. Diperlukan untuk faktur tagihan dengan tanggal kedaluwarsa (boletos híbridos). Juga digunakan untuk PIX Cobrança (tagihan).
Vektor uji kanonik, PIX statis dengan kunci CPF dan jumlah tetap
CPF 12345678909, merchant LOJA TESTE di SAO PAULO, jumlah tetap R$10.00, tanpa referensi transaksi:
00020126360014br.gov.bcb.pix0114123456789095204000053039865406010.005802BR5910LOJA TESTE6009SAO PAULO62070503***6304XXXX| Tag | Nilai | Arti |
|---|---|---|
00 | 01 | Indikator format payload (selalu 01) |
01 | 11 | Titik inisiasi statis |
26 | 36 byte TLV bersarang | PIX Merchant Account Information |
├─ 00 | br.gov.bcb.pix | GUI |
├─ 01 | 12345678909 | Kunci CPF (11 digit) |
52 | 0000 | MCC, tidak diketahui / pribadi |
53 | 986 | Kode mata uang ISO 4217 untuk BRL |
54 | 10.00 | Jumlah transaksi tetap |
58 | BR | Kode negara |
59 | LOJA TESTE | Nama merchant (maks 25 karakter per EMVCo) |
60 | SAO PAULO | Kota merchant (maks 15 karakter) |
62 | 7 byte bersarang | Template data tambahan |
├─ 05 | *** | Label referensi (placeholder tanpa referensi) |
63 | XXXX | CRC16-CCITT atas semua sebelumnya (hitung ulang saat pengodean) |
Jebakan umum
- Masking CPF/CNPJ. Payload QR hanya menggunakan digit tanpa mask (
12345678909, bukan123.456.789-09). Beberapa generator kode membiarkan titik dan tanda hubung secara keliru, QR yang dihasilkan gagal di setiap aplikasi perbankan dengan "chave PIX inválida." - Set karakter penting. Spesifikasi BACEN menyatakan ISO/IEC 8859-1 (Latin-1) untuk nama merchant dan kota. Karakter beraksen (
São Paulo) harus dikodekan dalam Latin-1 sebelum panjang TLV dihitung, bukan UTF-8. Pengodean UTF-8 mengembungkan jumlah byte dan merusak kolom panjang. - Perhitungan CRC. CRC16-CCITT (polinomial
0x1021, init0xFFFF, tanpa XOR akhir) mencakup segalanya dari tag00hingga6304, termasuk tag+panjang literal dari kolom CRC itu sendiri. Bug umum: CRC dihitung atas rentang yang salah, QR diurai dengan benar di beberapa aplikasi dan gagal di yang lain. - Format jumlah adalah string, bukan angka. Tag
54adalah string:10.00, bukan1000. Dua tempat desimal diperlukan. Maks dua desimal, BRL tidak memiliki denominasi sub-sen. - PIX statis tidak memiliki pengembalian bawaan. Setelah dibayar, PIX statis bersifat instan dan final. Merchant harus menangani pengembalian di luar jalur (PIX terbalik dari merchant ke pembayar). Tampilkan ini dengan jelas pada materi cetak.
- Penipuan overlay stiker. Stiker PIX QR fisik di kasir telah diserang dengan penipuan overlay, penyerang menempelkan QR mereka di atas QR merchant. Ganti QR statis secara berkala, laminasikan, dan tampilkan kunci PIX yang diharapkan sebagai teks biasa di sebelah stiker agar pembayar dapat memverifikasi.
- Pembatasan investasi/sekuritas. Comissão de Valores Mobiliários (CVM) melarang PIX untuk ajakan investasi yang tidak terdaftar. PIX QR di halaman arahan untuk token, produk "imbal hasil dijamin", atau skema MLM memicu tindakan penegakan CVM.
- PIX dinamis memerlukan endpoint yang aktif. Jika URL tag
25mati, pembayaran gagal saat pemindaian. Gunakan host yang Anda kendalikan dan jaga tetap aktif setidaknya selama masa cetak QR.
Kompatibilitas aplikasi perbankan
Setiap peserta PIX yang berlisensi (bank atau lembaga pembayaran) mendukung BR Code di aplikasi konsumen mereka. Implementasi yang menonjol:
| Aplikasi | Statis | Dinamis | Catatan |
|---|---|---|---|
| Itaú, Bradesco, Santander, BB, Caixa | Ya | Ya | Top-5 bank. Dukungan PIX penuh termasuk Cobrança, agendado, dan devolução. |
| Nubank | Ya | Ya | Neobank paling populer di Brasil. UX PIX yang bersih. |
| Inter, C6 Bank, PicPay | Ya | Ya | Dukungan PIX penuh. |
| Mercado Pago | Ya | Ya | Lembaga pembayaran; PIX adalah salah satu dari beberapa jaringan pembayaran di aplikasi yang sama. |
| Kamera iOS/Android generik | Tidak | Tidak | Aplikasi kamera native tidak mengurai BR Code sebagai niat pembayaran. Pengguna harus membuka aplikasi perbankan terlebih dahulu. |
Lihat juga
- /pix-qr-code/, generator PIX dengan validasi CPF/CNPJ dan pengodean BR Code langsung.
- /standards/emvco/, spesifikasi induk EMVCo MPM.
- /standards/upi/, UPI India, skema turunan EMVCo lain dengan tag 26.
- /standards/, kembali ke indeks standar.