PIX
PIX är Brasiliens omedelbara betalningssystem, drivet av Banco Central do Brasil (BACEN). BR Code QR-formatet är en EMVCo MPM-delmängd med Merchant Account Information (tagg 26) som bär en PIX-nyckel, CPF, CNPJ, e-post, telefonnummer eller slumpmässig EVP. PIX nådde sin första biljon real på under två år från lanseringen (2020 → 2022) och är nu den dominerande detaljhandelsbetalningsskinnan i Brasilien.
Överordnad specifikation:EMVCo MPM v1.1. PIX reserverar handelskontotaggen
26; allt annat ärvs från EMVCo. Kodning: TLV (Tagg-Längd-Värde) med 2-siffriga taggar, 2-siffriga längder och CRC16-CCITT-trailer.
BR Code-struktur, tagg 26 (PIX Merchant Account Information)
Det PIX-specifika innehållet finns i tagg 26. Det är i sig en inbäddad TLV-struktur med dessa undertaggar:
| Undertagg | Namn | Längd | Noteringar |
|---|---|---|---|
00 | GUI, globalt unikt id | 14 | Fast värde br.gov.bcb.pix. Identifierar schemat som PIX. |
01 | PIX-nyckel | variabel | CPF (11 siffror), CNPJ (14 siffror), e-post, telefon (+55DDPHONE) eller EVP (UUID-liknande slumpmässig nyckel). |
02 | Ytterligare information | variabel, ≤72 | Fritext betalningsmeddelande. Visas för betalaren i deras bankapp. |
25 | URL, dynamisk PIX | variabel | Används bara för dynamisk PIX: betalarens app hämtar den fullständiga payloaden från denna URL vid skanning (belopp, förfallodag, utgång, rabatt/böter). Statisk PIX utelämnar tagg 25 helt. |
PIX-nyckeltyper
| Nyckeltyp | Format | Validering |
|---|---|---|
| CPF (personlig skatte-ID) | 11 siffror, inga skiljetecken i QR-payload | Mod-11-kontrollsumma på de sista 2 siffrorna. Mask 123.456.789-09 → rå 12345678909. |
| CNPJ (företagsskatte-ID) | 14 siffror, inga skiljetecken | Två mod-11-kontrollsummor. Mask 12.345.678/0001-95 → rå 12345678000195. |
| E-post | RFC 5321-kompatibel, max 77 tecken | BACEN konverterar till gemener vid registrering; QR-payload måste matcha det registrerade skiftläget. |
| Telefon | E.164 med landskod +55, max 14 tecken | Format: +55DDNNNNNNNNN där DD är 2-siffrig riktnummerprefix. Inga mellanslag eller bindestreck. |
| EVP (slumpmässig nyckel) | UUID v4-format, 36 tecken | Genereras server-side av betalarens bank vid registrering. Föredras av handlare som inte vill exponera CPF/CNPJ/e-post/telefon. |
Statisk vs dynamisk PIX
- Statisk PIX (Point of Initiation
11). Allt kodat i QR: PIX-nyckel, handlarnamn, handlarstad, valfritt fast belopp, valfri referens. Betalarens app läser det direkt och auktoriserar. Bäst för utskrivna klistermärken, fakturor, fönsteraffischer. Beloppet kan utelämnas (betalaren skriver in det) eller fastställas (exakt avgift). - Dynamisk PIX (Point of Initiation
12). QR bär en URL (undertagg25). Betalarens app hämtar en JWS-signerad JSON-payload från den URL:en vid skanning med belopp, förfallodag, utgångsfönster och valfria regler för förseningsavgift/rabatt. Krävs för faktureringsfakturor med utgångsdatum (boletos híbridos). Används även för PIX Cobrança (fakturering).
Kanonisk testvektor, statisk PIX med CPF-nyckel och fast belopp
CPF 12345678909, handlare LOJA TESTE i SAO PAULO, fast belopp R$10.00, ingen transaktionsreferens:
00020126360014br.gov.bcb.pix0114123456789095204000053039865406010.005802BR5910LOJA TESTE6009SAO PAULO62070503***6304XXXX| Tagg | Värde | Betydelse |
|---|---|---|
00 | 01 | Payload-formatindikator (alltid 01) |
01 | 11 | Statisk startpunkt |
26 | 36 byte inbäddad TLV | PIX Merchant Account Information |
├─ 00 | br.gov.bcb.pix | GUI |
├─ 01 | 12345678909 | CPF-nyckel (11 siffror) |
52 | 0000 | MCC, okänd / personlig |
53 | 986 | ISO 4217-valutakod för BRL |
54 | 10.00 | Fast transaktionsbelopp |
58 | BR | Landskod |
59 | LOJA TESTE | Handlarnamn (max 25 tecken per EMVCo) |
60 | SAO PAULO | Handlarstad (max 15 tecken) |
62 | 7 byte inbäddad | Tilläggsdatamall |
├─ 05 | *** | Referensetikett (platshållare utan referens) |
63 | XXXX | CRC16-CCITT över allt föregående (beräkna om vid kodning) |
Vanliga fallgropar
- CPF/CNPJ-maskning. QR-payloaden använder bara de omaskerade siffrorna (
12345678909, inte123.456.789-09). Vissa kodgeneratorer lämnar kvar punkter och bindestreck av misstag, den resulterande QR misslyckas i varje bankapp med "chave PIX inválida." - Teckenmängden spelar roll. BACEN-specifikationen kräver ISO/IEC 8859-1 (Latin-1) för handlarnamn och stad. Accenttecken (
São Paulo) måste kodas i Latin-1 innan TLV-längden beräknas, inte UTF-8. UTF-8-kodning ökar byteantalet och förstör längdfältet. - CRC-beräkning. CRC16-CCITT (polynom
0x1021, init0xFFFF, ingen slutlig XOR) täcker allt från tagg00till6304, inklusive den bokstavliga taggen+längden för CRC-fältet självt. Vanligt fel: CRC beräknat över fel intervall, QR parsas korrekt i vissa appar och misslyckas i andra. - Beloppformat är sträng, inte tal. Tagg
54är en sträng:10.00, inte1000. Två decimaler krävs. Max två decimaler, BRL har inga under-öre-nominaler. - Statisk PIX har ingen inbyggd återbetalning. När betalt är statisk PIX omedelbar och slutgiltig. Handlare måste hantera återbetalningar utanför bandet (en omvänd PIX från handlare tillbaka till betalaren). Visa detta tydligt på tryckt material.
- Klistermärkes-overlay-bedrägeri. Fysiska PIX QR-klistermärken vid kassadiskar har attackerats med overlay-bedrägeri, angripare klistrar sitt eget QR ovanpå handlarens. Rotera statiska QR-klistermärken regelbundet, laminera dem och visa den förväntade PIX-nyckeln som klartext bredvid klistermärket så att betalaren kan verifiera.
- Investerings-/värdepappersbegränsning. Comissão de Valores Mobiliários (CVM) förbjuder PIX för oregistrerad investeringsrekrytering. PIX QR på landningssidor för tokens, "garanterad avkastning"-produkter eller MLM-upplägg utlöser CVM-verkställighetsåtgärder.
- Dynamisk PIX kräver en live-slutpunkt. Om tagg
25-URL:en är nere misslyckas betalningen vid skanning. Använd en värd du kontrollerar och håll den igång i minst QR-kodens tryckta livslängd.
Kompatibilitet med bankappar
Varje licensierad PIX-deltagare (bank eller betalningsinstitution) stöder BR Code i sin konsumentapp. Anmärkningsvärda implementeringar:
| App | Statisk | Dynamisk | Noteringar |
|---|---|---|---|
| Itaú, Bradesco, Santander, BB, Caixa | Ja | Ja | Topp-5-banker. Fullt PIX-stöd inkl. Cobrança, agendado och devolução. |
| Nubank | Ja | Ja | Populäraste neobanken i Brasilien. Rent PIX-gränssnitt. |
| Inter, C6 Bank, PicPay | Ja | Ja | Fullt PIX-stöd. |
| Mercado Pago | Ja | Ja | Betalningsinstitution; PIX är en av flera betalningsskinor i samma app. |
| Generisk iOS/Android-kamera | Nej | Nej | Inbyggda kameraappar tolkar inte BR Code som betalningsavsikt. Användaren måste öppna bankappen först. |
Se även
- /pix-qr-code/, PIX-generator med CPF/CNPJ-validering och live BR Code-kodning.
- /standards/emvco/, den överordnade EMVCo MPM-specifikationen.
- /standards/upi/, UPI Indien, ett annat EMVCo-härlett schema med tagg 26.
- /standards/, tillbaka till standardsindexet.