Gere códigos PIX Copia e Cola oficiais (Payload EMV) e QR Codes instantâneos para cobranças, e-commerces e estabelecimentos.
Gere chaves aleatórias padrão EVP (Endereço Virtual de Pagamento / UUIDv4) para testes de sistemas e bancos de dados:
// Gerador de Payload PIX em JavaScript
function gerarPayloadPix(chave, nome, cidade, valor, txid = '***') {
const f = (id, val) => id + ('00' + val.length).slice(-2) + val;
const gui = f('00', 'br.gov.bcb.pix') + f('01', chave);
let raw = f('00', '01') + f('26', gui) + f('52', '0000') + f('53', '986');
if (valor) raw += f('54', parseFloat(valor).toFixed(2));
raw += f('58', 'BR') + f('59', nome.substring(0,25)) + f('60', cidade.substring(0,15)) + f('62', f('05', txid)) + '6304';
let crc = 0xFFFF;
for (let i = 0; i < raw.length; i++) {
crc ^= (raw.charCodeAt(i) << 8);
for (let j = 0; j < 8; j++) crc = (crc & 0x8000) ? ((crc << 1) ^ 0x1021) & 0xFFFF : (crc << 1) & 0xFFFF;
}
return raw + ('0000' + crc.toString(16).toUpperCase()).slice(-4);
}# Gerador de Payload PIX em Python 3
def gerar_payload_pix(chave: str, nome: str, cidade: str, valor: float = None, txid: str = '***') -> str:
def emv(tag, val): return f"{tag}{len(val):02d}{val}"
gui = emv("00", "br.gov.bcb.pix") + emv("01", chave)
raw = emv("00", "01") + emv("26", gui) + emv("52", "0000") + emv("53", "986")
if valor: raw += emv("54", f"{valor:.2f}")
raw += emv("58", "BR") + emv("59", nome[:25]) + emv("60", cidade[:15]) + emv("62", emv("05", txid)) + "6304"
crc = 0xFFFF
for c in raw:
crc ^= ord(c) << 8
for _ in range(8): crc = ((crc << 1) ^ 0x1021) & 0xFFFF if crc & 0x8000 else (crc << 1) & 0xFFFF
return f"{raw}{crc:04X}"<?php
// Gerador de Payload PIX em PHP 8+
function gerarPayloadPix(string $chave, string $nome, string $cidade, ?float $valor = null, string $txid = '***'): string {
$emv = fn($id, $val) => $id . sprintf("%02d", strlen($val)) . $val;
$gui = $emv('00', 'br.gov.bcb.pix') . $emv('01', $chave);
$raw = $emv('00', '01') . $emv('26', $gui) . $emv('52', '0000') . $emv('53', '986');
if ($valor) $raw .= $emv('54', number_format($valor, 2, '.', ''));
$raw .= $emv('58', 'BR') . $emv('59', substr($nome, 0, 25)) . $emv('60', substr($cidade, 0, 15)) . $emv('62', $emv('05', $txid)) . '6304';
$crc = 0xFFFF;
for ($i = 0; $i < strlen($raw); $i++) {
$crc ^= (ord($raw[$i]) << 8);
for ($j = 0; $j < 8; $j++) $crc = ($crc & 0x8000) ? (($crc << 1) ^ 0x1021) & 0xFFFF : ($crc << 1) & 0xFFFF;
}
return $raw . sprintf("%04X", $crc);
}O Que É o Payload EMV do PIX e Como Funciona o Padrão BR Code?
O BR Code é a especificação oficial criada pelo Banco Central do Brasil baseada no padrão internacional EMV QRCPS (Merchant-Presented Mode). Ele organiza as instruções de pagamento em blocos identificados por Tags TLV (Tag, Length, Value):
- Tag 00 (Payload Format Indicator): Versão do formato (fixo em
01). - Tag 26 (Merchant Account Information): Contém a identificação do arranjo de pagamento (
br.gov.bcb.pix) e a chave PIX do recebedor. - Tag 52 (Merchant Category Code): Código da categoria de comerciante (padrão
0000). - Tag 53 (Transaction Currency): Código ISO 4217 da moeda brasileira Real (
986). - Tag 54 (Transaction Amount): Valor da transação com duas casas decimais (opcional).
- Tag 58 (Country Code): Código do país (
BR). - Tag 59 (Merchant Name): Nome do beneficiário (até 25 caracteres).
- Tag 60 (Merchant City): Cidade do beneficiário (até 15 caracteres).
- Tag 62 (Additional Data Field): Contém a Tag 05 com o identificador da transação (TXID).
- Tag 63 (CRC16): Código de redundância cíclica de 4 caracteres hexadecimais para validação de integridade.
Como Funciona o Cálculo do CRC16 no PIX (Polinômio 0x1021)
Para garantir que nenhum dígito da chave ou valor foi adulterado, o Banco Central exige o cálculo do CRC-16/CCITT-FALSE sobre todo o texto do payload acrescido da sequência 6304:
- Polinômio:
0x1021(x¹⁶ + x¹² + x⁵ + 1) - Valor Inicial:
0xFFFF - Refin / Refout:
False - XorOut:
0x0000
🔗 Conheça Também: Central de Ferramentas Online | Gerador e Validador de CPF e CNPJ | Conversor de JSON para Excel