Pular para o conteúdo
xFlow Payments

Blog

Estrutura do Pix copia e cola: o BR Code campo a campo

O Pix copia e cola é um BR Code: uma sequência de campos no formato ID (2 dígitos), tamanho (2 dígitos) e valor. Ele traz a versão (00), a conta Pix com o identificador br.gov.bcb.pix e a chave ou uma URL (26), moeda, país, nome e cidade do recebedor, o txid (62-05) e, no fim, o CRC16 (63).

Atualizado em · Equipe xFlow Payments · 7 min de leitura

O Pix copia e cola é o texto de um BR Code, o padrão de QR Code de pagamento adotado no Brasil. O texto é uma fila de campos, e cada campo tem três partes: um ID de 2 dígitos, o tamanho do valor em 2 dígitos e o valor. Dois campos guardam outros campos dentro: a conta Pix (ID 26) e os dados adicionais (ID 62). O último campo é sempre o CRC16 (ID 63), que confere se nada foi alterado. Para ver isso num código real, cole-o no decodificador de Pix copia e cola.

Como ler um campo: ID, tamanho e valor

O Manual BR Code do Banco Central (versão 2.0.1) define o conteúdo como uma sequência de objetos "ID, tamanho, valor", o formato conhecido como TLV. Veja três trechos:

Trecho ID Tamanho Valor
000201 00 02 01
5303986 53 03 986
5913Fulano de Tal 59 13 Fulano de Tal

O tamanho conta os caracteres do valor, inclusive espaços. Por isso, apagar o espaço de "Fulano de Tal" quebra o código: o campo diz 13 caracteres e passa a ter 12, e tudo o que vem depois sai do lugar.

Os campos, um a um

A tabela segue a estrutura comum do Manual BR Code, com os detalhes do Pix do Manual de Padrões para Iniciação do Pix (versão 2.10.0, de 19/08/2026).

ID Nome no padrão Uso Tamanho O que guarda
00 Payload Format Indicator Obrigatório 02 Versão do payload, fixa em 01
01 Point of Initiation Method Opcional 02 12 indica que o código só pode ser pago uma vez
26 a 51 Merchant Account Information Obrigatório até 99 A conta Pix, com subcampos (veja abaixo)
52 Merchant Category Code Obrigatório 04 0000 ou o código de categoria do recebedor
53 Transaction Currency Obrigatório 03 986, o real
54 Transaction Amount Opcional 01 a 13 Valor com ponto decimal, como 1.00 ou 123.99
58 Country Code Obrigatório 02 BR
59 Merchant Name Obrigatório 01 a 25 Nome do recebedor
60 Merchant City Obrigatório 01 a 15 Cidade do recebedor
61 Postal Code Opcional 01 a 99 CEP
62 Additional Data Field Obrigatório 05 a 29 Dados adicionais; o subcampo 05 é o txid
80 a 99 Unreserved Templates Opcional até 99 Espaço livre dos arranjos; no QR composto do Pix Automático, leva a URL da recorrência
63 CRC16 Obrigatório 04 Verificação de todo o código

Um detalhe do campo 59: o manual do Pix diz que o app do pagador mostra o nome registrado no DICT para a chave, e não o nome que está no código.

O campo 26: a conta Pix

A conta Pix pode ocupar qualquer ID de 26 a 51. O manual deixa claro que o ID em si não tem significado: quem identifica o arranjo é o primeiro subcampo, o GUI br.gov.bcb.pix, com 14 caracteres e sem diferença entre maiúsculas e minúsculas. Na prática, quase todo código usa o 26, mas um leitor bem feito procura o GUI.

Os outros subcampos mudam conforme o tipo de código:

Subcampo Nome Tipo de código Conteúdo
00 GUI Todos br.gov.bcb.pix
01 chave Estático A chave Pix, com até 77 caracteres
02 infoAdicional Estático Texto livre, que divide espaço com a chave
03 fss Estático ISPB do facilitador de saque; indica Pix Saque
25 URL Dinâmico Endereço do payload da cobrança, sem https://, com até 77 caracteres

A chave segue o formato do DICT: e-mail como está, CPF com 11 dígitos, CNPJ com 14 caracteres, celular no formato +5561912345678 e chave aleatória com os hífens. A versão atual do manual já traz um exemplo de CNPJ alfanumérico, então não valide CNPJ como "só números".

O campo 62 e o txid

O subcampo 62-05 guarda o identificador da transação, o txid. No QR estático, ele tem até 25 caracteres, só letras sem acento e números, e o PSP de quem paga deve repassá-lo intacto, para o recebedor conciliar. Quando o código não usa txid, o valor é ***.

No QR dinâmico, o manual manda ignorar o valor (54) e o txid (62-05) do código. Valem os campos do payload JSON que a URL do subcampo 25 devolve.

O campo 63: CRC16

Os 4 últimos caracteres são o CRC16 em hexadecimal. O cálculo usa o polinômio 0x1021 com valor inicial 0xFFFF e cobre todo o texto anterior, incluindo o próprio 6304. O manual do Pix lembra que a ordem dos campos também muda o resultado. O algoritmo, com código testado, está em CRC16 do Pix.

Estático e dinâmico lado a lado

Campo QR estático QR dinâmico
01 Opcional No exemplo oficial, 12
26-01 chave Obrigatória Não vai no código
26-25 URL Não existe Obrigatória
54 valor Opcional; se faltar, o pagador digita Ignorado; vem do payload JSON
62-05 txid Até 25 caracteres ou *** Ignorado; vem do payload JSON

A diferença de uso entre os dois, do ponto de vista de quem cobra, está em QR Code Pix dinâmico por API.

Exemplo estático decodificado

Este é o exemplo da seção 2.6.3 do Manual de Padrões para Iniciação do Pix, com chave aleatória e sem valor:

text
00020126580014br.gov.bcb.pix0136123e4567-e12b-12d1-a456-4266554400005204000053039865802BR5913Fulano de Tal6008BRASILIA62070503***63041D3D

Separado campo a campo:

text
00 02 01                                        versão
26 58                                           conta Pix
   00 14 br.gov.bcb.pix                         GUI
   01 36 123e4567-e12b-12d1-a456-426655440000   chave aleatória
52 04 0000                                      categoria não informada
53 03 986                                       real
58 02 BR                                        país
59 13 Fulano de Tal                             nome
60 08 BRASILIA                                  cidade
62 07                                           dados adicionais
   05 03 ***                                    sem txid
63 04 1D3D                                      CRC16

Sem o campo 54, o app pede ao pagador que digite o valor.

Exemplo dinâmico decodificado

O exemplo da seção 2.7.2 do mesmo manual troca a chave pela URL e marca o código para uso único:

text
00 02 01
01 02 12                                        uso único
26 70
   00 14 br.gov.bcb.pix
   25 48 pix.example.com/8b3da2f39a4140d1a91abd93113bd441
52 04 0000
53 03 986
58 02 BR
59 13 Fulano de Tal
60 08 BRASILIA
62 07
   05 03 ***
63 04 64E4

O app de quem paga lê a URL, valida o domínio, busca o payload assinado por HTTPS e só então mostra valor e recebedor.

Como ler os campos no código

Para inspecionar um código no seu sistema, por exemplo num log de suporte, leia 4 caracteres de cabeçalho (ID e tamanho), depois o valor, e repita até o fim:

js
function lerCampos(texto) {
  const campos = [];
  for (let i = 0; i < texto.length; ) {
    const id = texto.slice(i, i + 2);
    const tamanho = Number(texto.slice(i + 2, i + 4));
    const valor = texto.slice(i + 4, i + 4 + tamanho);
    if (!/^\d{2}$/.test(id) || valor.length !== tamanho) {
      throw new Error(`campo inválido na posição ${i}`);
    }
    campos.push({ id, tamanho, valor });
    i += 4 + tamanho;
  }
  return campos;
}

// subcampos: chame de novo com o valor do 26 ou do 62
// lerCampos(lerCampos(codigo).find((c) => c.id === "26").valor)

Num código cortado, a função falha na posição em que o tamanho deixa de bater. Esse é o sintoma mais comum de campo de texto com limite de caracteres.

Na integração com a xFlow

Você não monta nem desmonta o código. A API Pix da xFlow devolve o copia e cola pronto em pix.copyPaste, na criação da cobrança e na consulta por id. A documentação descreve o campo como um payload EMV no padrão BR Code, em que o campo 54 é o valor quando o QR é de valor fixo e o campo 26 traz a chave Pix, e pede que ele seja tratado como opaco. Conhecer a estrutura serve para depurar: um código cortado, uma quebra de linha no meio ou um valor diferente do pedido. O passo a passo de geração está em Pix copia e cola por API, e a referência dos campos na documentação da API.

Conteúdo informativo, atualizado em 25/10/2026. Não substitui orientação jurídica.

Perguntas frequentes

Qual a diferença entre o copia e cola estático e o dinâmico?

O estático traz a chave Pix no subcampo 01 da conta Pix e pode trazer o valor no campo 54. O dinâmico traz uma URL no subcampo 25, e o valor e o txid vêm do payload JSON que essa URL devolve. Os campos de valor e txid do próprio código são ignorados no dinâmico.

O que significam os três asteriscos no campo do txid?

No subcampo 62-05, o valor *** indica que o código não usa identificador de transação. Os exemplos oficiais do Banco Central usam *** no QR estático sem txid e no QR dinâmico.

O nome do campo 59 é o que aparece no app de quem paga?

Não. Segundo o Manual de Padrões para Iniciação do Pix, o app do pagador mostra o nome do recebedor registrado no DICT para a chave, e não o nome do campo 59.

Posso editar o copia e cola que a API devolve?

Não. Qualquer mudança invalida o CRC do campo 63 e o banco recusa o código. Na xFlow, o pix.copyPaste deve ser repassado ao pagador sem alterar nenhum caractere.

Continue lendo