PIX
PIX je brazilské schéma okamžitých plateb provozované Banco Central do Brasil (BACEN). Formát BR Code QR je podmnožina EMVCo MPM s Merchant Account Information (tag 26) nesoucí klíč PIX, CPF, CNPJ, e-mail, telefon nebo náhodný EVP. PIX dosáhl prvního bilionu reálů za méně než dva roky od spuštění (2020 → 2022) a stal se dominantním maloobchodním platebním nástrojem v Brazílii.
Nadřazená specifikace:EMVCo MPM v1.1. PIX rezervuje tag obchodního účtu
26; vše ostatní je zděděno z EMVCo. Kódování: TLV (Tag-Length-Value) s 2místnými tagy, 2místnými délkami a CRC16-CCITT na konci.
Struktura BR Code, tag 26 (PIX Merchant Account Information)
Obsah specifický pro PIX se nachází v tagu 26. Jde o vnořenou strukturu TLV s těmito podtagy:
| Podtag | Název | Délka | Poznámky |
|---|---|---|---|
00 | GUI, globální jedinečný identifikátor | 14 | Pevná hodnota br.gov.bcb.pix. Identifikuje schéma jako PIX. |
01 | Klíč PIX | proměnná | CPF (11 číslic), CNPJ (14 číslic), e-mail, telefon (+55DDPHONE) nebo EVP (náhodný klíč ve formátu UUID). |
02 | Doplňující informace | proměnná, ≤72 | Volný text pro plátce. Zobrazuje se plátci v bankovní aplikaci. |
25 | URL, dynamický PIX | proměnná | Používá se pouze pro dynamický PIX: aplikace plátce načte při skenování úplný payload z této URL (částka, datum splatnosti, vypršení, sleva/pokuta). Statický PIX tag 25 zcela vynechává. |
Typy klíčů PIX
| Typ klíče | Formát | Validace |
|---|---|---|
| CPF (osobní daňové ID) | 11 číslic, bez interpunkce v QR payloadu | Kontrolní součet Mod-11 na posledních 2 číslicích. Maska 123.456.789-09 → surové 12345678909. |
| CNPJ (firemní daňové ID) | 14 číslic, bez interpunkce | Dva kontrolní součty mod-11. Maska 12.345.678/0001-95 → surové 12345678000195. |
| Soulad s RFC 5321, max 77 znaků | BACEN při registraci převede na malá písmena; QR payload musí odpovídat registrované velikosti písmen. | |
| Telefon | E.164 s kódem země +55, max 14 znaků | Formát: +55DDNNNNNNNNN, kde DD je 2místný směrový kód. Bez mezer a pomlček. |
| EVP (náhodný klíč) | Formát UUID v4, 36 znaků | Generován na straně serveru bankou plátce při registraci. Doporučeno pro obchodníky, kteří nechtějí zveřejnit CPF/CNPJ/e-mail/telefon. |
Statický vs dynamický PIX
- Statický PIX (Point of Initiation
11). Vše zakódováno v QR: klíč PIX, název obchodníka, město obchodníka, volitelná pevná částka, volitelná reference. Aplikace plátce čte přímo a autorizuje. Nejvhodnější pro tištěné samolepky, faktury, výkladní plakáty. Částka může být vynechána (plátce ji zadá) nebo pevná (přesný poplatek). - Dynamický PIX (Point of Initiation
12). QR nese URL (podtag25). Aplikace plátce při skenování načte z dané URL JWS-podepsaný JSON payload s částkou, datem splatnosti, oknem vypršení a volitelnými pravidly pro pozdní poplatek/slevu. Vyžadováno pro fakturační faktury s daty vypršení (boletos híbridos). Používá se také pro PIX Cobrança (fakturace).
Kanonický testovací vektor, statický PIX s klíčem CPF a pevnou částkou
CPF 12345678909, obchodník LOJA TESTE v SAO PAULO, pevná částka R$10.00, bez reference transakce:
00020126360014br.gov.bcb.pix0114123456789095204000053039865406010.005802BR5910LOJA TESTE6009SAO PAULO62070503***6304XXXX| Tag | Hodnota | Význam |
|---|---|---|
00 | 01 | Indikátor formátu payloadu (vždy 01) |
01 | 11 | Statický bod zahájení |
26 | 36 bajtů vnořeného TLV | PIX Merchant Account Information |
├─ 00 | br.gov.bcb.pix | GUI |
├─ 01 | 12345678909 | Klíč CPF (11 číslic) |
52 | 0000 | MCC, neznámý / osobní |
53 | 986 | Kód měny ISO 4217 pro BRL |
54 | 10.00 | Pevná částka transakce |
58 | BR | Kód země |
59 | LOJA TESTE | Název obchodníka (max 25 znaků dle EMVCo) |
60 | SAO PAULO | Město obchodníka (max 15 znaků) |
62 | 7 bajtů vnořených | Šablona doplňujících dat |
├─ 05 | *** | Referenční označení (zástupný znak bez reference) |
63 | XXXX | CRC16-CCITT přes vše předchozí (přepočítat při kódování) |
Typické chyby
- Maskování CPF/CNPJ. QR payload používá pouze nemaskované číslice (
12345678909, nikoli123.456.789-09). Některé generátory kódů ponechají tečky a pomlčky omylem, výsledný QR selže v každé bankovní aplikaci s „chave PIX inválida." - Znaková sada je důležitá. Specifikace BACEN vyžaduje ISO/IEC 8859-1 (Latin-1) pro název obchodníka a město. Znaky s diakritikou (
São Paulo) musí být zakódovány v Latin-1 před výpočtem délky TLV, nikoli v UTF-8. Kódování UTF-8 zvýší počet bajtů a rozbije pole délky. - Výpočet CRC. CRC16-CCITT (polynom
0x1021, init0xFFFF, bez závěrečného XOR) pokrývá vše od tagu00po6304, včetně doslovného tagu+délky samotného pole CRC. Obvyklá chyba: CRC vypočteno nad nesprávným rozsahem, QR se správně parsuje v některých aplikacích a v jiných selže. - Formát částky je řetězec, nikoli číslo. Tag
54je řetězec:10.00, nikoli1000. Vyžadována dvě desetinná místa. Max dvě desetinná místa, BRL nemá nominální hodnoty pod cent. - Statický PIX nemá vestavěné vrácení. Po zaplacení je statický PIX okamžitý a konečný. Obchodníci musí vrácení řešit mimo pásmo (zpětný PIX od obchodníka k plátci). Na tištěných materiálech to jasně zobrazte.
- Podvodné překrytí samolepky. Fyzické PIX QR samolepky u pokladních pultů byly napadeny překrytím, útočníci nalepí vlastní QR přes QR obchodníka. Pravidelně obměňujte statické QR, laminujte je a vedle samolepky zobrazte očekávaný klíč PIX jako prostý text, aby ho plátce mohl ověřit.
- Omezení investic/cenných papírů. Comissão de Valores Mobiliários (CVM) zakazuje PIX pro neregistrované investiční nabídky. PIX QR na vstupních stránkách pro tokeny, produkty s „garantovaným výnosem" nebo MLM schémata spouštějí vymáhání ze strany CVM.
- Dynamický PIX vyžaduje živý endpoint. Pokud je URL tagu
25nedostupná, platba při skenování selže. Používejte hostitele, který ovládáte, a udržujte ho v provozu po celou dobu tištěné životnosti QR.
Kompatibilita bankovních aplikací
Každý licencovaný účastník PIX (banka nebo platební instituce) podporuje BR Code ve své spotřebitelské aplikaci. Významné implementace:
| Aplikace | Statický | Dynamický | Poznámky |
|---|---|---|---|
| Itaú, Bradesco, Santander, BB, Caixa | Ano | Ano | Top 5 bank. Plná podpora PIX včetně Cobrança, agendado a devolução. |
| Nubank | Ano | Ano | Nejpopulárnější neobank v Brazílii. Čisté uživatelské rozhraní PIX. |
| Inter, C6 Bank, PicPay | Ano | Ano | Plná podpora PIX. |
| Mercado Pago | Ano | Ano | Platební instituce; PIX je jednou z několika platebních sítí ve stejné aplikaci. |
| Obecná kamera iOS/Android | Ne | Ne | Nativní kamerové aplikace neparsují BR Code jako platební záměr. Uživatel musí nejprve otevřít bankovní aplikaci. |
Viz také
- /pix-qr-code/, generátor PIX s validací CPF/CNPJ a živým kódováním BR Code.
- /standards/emvco/, nadřazená specifikace EMVCo MPM.
- /standards/upi/, UPI Indie, další schéma odvozené od EMVCo s tagem 26.
- /standards/, zpět na index standardů.