Executando verificação de segurança...
22

Entendendo o Payload do Pix (Copia e Cola) e gerando um qr-code estático

TL;DR: Este artigo detalha a estrutura do payload Pix (o código do Pix Copia e Cola), que compõe os QR Codes Pix. Vamos explorar cada campo no formato TLV (Tag-Length-Value), explicar sua finalidade, quem o preenche e as diferenças entre QR Codes estáticos e dinâmicos.


📋 O que é o “payload” Pix (Pix Copia e Cola)?

O payload Pix é a sequência de caracteres que representa um QR Code do Pix. É o texto que o usuário copia e cola para realizar um pagamento via Pix, contendo todas as informações essenciais para a transação. Este texto segue o padrão BR Code, definido pelo Banco Central do Brasil com base no padrão internacional EMV® QR Code.

Existem dois tipos principais de QR Code Pix:

  • Estático: Pode ser reutilizado para múltiplas transações e geralmente utilizado por pessoas físicas, para doações ou pequenos comércios. Pode ter ou não um valor predefinido.
  • Dinâmico: Válido para apenas uma transação (tornando-se inválido após o pagamento). É comumente empregado em e-commerce, boletos Pix ou cenários que exigem conciliação automática e informações adicionais do recebedor. O QR dinâmico é gerado via API Pix de um PSP e normalmente contém uma URL que aponta para os detalhes da cobrança.

Ambos os tipos são convertidos em uma imagem de QR Code e geram um código Pix Copia e Cola compatível com qualquer instituição bancária. A principal diferença reside na estrutura interna: o QR dinâmico inclui um link para obter os dados completos da cobrança, enquanto o estático carrega diretamente a chave Pix e os dados básicos do recebedor.

🧾 Exemplo de Payload Pix Estático Completo

A seguir, um exemplo de código Pix Copia e Cola para um pagamento estático fictício. Este QR code possui um valor fixo de R$ 25,75 e utiliza uma chave Pix do tipo CPF. Para facilitar a visualização, inserimos quebras de linha, mas no código real, é um único bloco de texto contínuo.

000201
26330014BR.GOV.BCB.PIX011111223344556
52040000
5303986
540525.75
5802BR
5909ANA SILVA
6014BELO HORIZONTE
62070503***
6304BB4A

(Os trechos acima são separados por quebras de linha para legibilidade; no payload real, eles são contíguos.)

Este payload seria gerado para ANA SILVA, residente em BELO HORIZONTE, cobrando R$ 25,75, utilizando a chave Pix fictícia CPF 112.233.445-56. Agora, vamos destrinchar cada parte desse código.


🔍 Explicação Campo a Campo (TLV)

O padrão EMV QR Code organiza os dados no formato TLV (Tag-Length-Value), que significa Identificador + Tamanho + Valor. Cada campo possui um ID (tag numérica de dois dígitos), seguido por dois dígitos que informam o comprimento do valor em caracteres, e, por fim, o valor em si.

Analisaremos os campos na ordem em que aparecem no payload:

🔹 000201 (Payload Format Indicator)

  • ID 00Payload Format Indicator (Indicador de Formato do Payload).
  • Valor: 01 (formato EMV versão 01).
  • Por que existe: Garante que os aplicativos bancários identifiquem corretamente o padrão do QR Code (EMV Pix v1).
  • Quem preenche: É um valor fixo do padrão. Todo payload Pix válido deve começar com 000201.

🔹 010211 (Point of Initiation Method – Opcional)

  • Observação: No exemplo acima, o ID 01 não está explicitamente presente, pois é opcional no QR estático. No entanto, é crucial entender sua função.
  • ID 01Point of Initiation Method (Ponto de Iniciação).
  • Valor: 11 para QR Code estático, 12 para QR Code dinâmico.
  • Por que existe: Faz parte do padrão EMV e informa se o QR Code é de uso único ou múltiplo. Isso ajuda o aplicativo pagador a tratar o código adequadamente (por exemplo, alertar se um QR dinâmico já foi pago).
  • Quem preenche: Gerado automaticamente pela aplicação. Em Pix estático, pode ser omitido (equivalente a 11). Em Pix dinâmico, deve ser incluído com valor 12.

🔹 2633... (Merchant Account Information – Pix)

Este é um campo composto que identifica a conta do recebedor. No nosso exemplo, ele começa com 26 (o ID do campo de Merchant Account Information) e tem um comprimento de 33 caracteres, englobando todos os subcampos internos.

  • ID 26Merchant Account Information - Pix. Indica que os próximos subcampos se referem ao arranjo de pagamento Pix.

Dentro do campo 26, existem dois subcampos cruciais:

🔹 Subcampo 0014BR.GOV.BCB.PIX (GUI – Identificador do arranjo Pix)

  • ID do subcampo: 00 (GUI – Globally Unique Identifier) do arranjo Pix.
  • Tamanho: 14 (14 caracteres).
  • Valor: BR.GOV.BCB.PIX (domínio do Pix no Bacen).
  • Por que existe: Identifica globalmente o arranjo de pagamento como Pix do Banco Central do Brasil. É fundamental para que os aplicativos reconheçam e interpretem corretamente os demais subcampos.
  • Quem preenche: É um valor fixo pelo padrão Pix. Deve ser sempre BR.GOV.BCB.PIX.

🔹 Subcampo 011111223344556 (Chave Pix do recebedor)

  • ID do subcampo: 01 (identificador da conta, que no Pix significa chave Pix).
  • Tamanho: 11 (11 caracteres).
  • Valor: 11223344556 (a chave Pix em si, no nosso caso, um CPF fictício).
  • Tipos de Chave Pix: Pode ser CPF/CNPJ (apenas dígitos), telefone celular (formato internacional), e-mail (formato usual) ou EVP (chave aleatória, um UUID). O CPF no exemplo (11223344556) tem 11 dígitos, por isso o tamanho 11.
  • Importante: A chave não contém formatação (pontos, traços); o aplicativo pagador geralmente a formata para exibição.
  • Por que existe: É o dado mínimo para direcionar o pagamento. O DICT (Diretório de Identificadores de Contas Transacionais) do Bacen mapeia essa chave para os dados bancários do recebedor (ISPB, agência, conta), eliminando a necessidade de exibir essas informações no QR estático.
  • Quem preenche: Quem gera o QR code. Deve ser uma chave Pix válida e cadastrada.
  • Diferença para QR Dinâmico: No Pix dinâmico, este subcampo 01 não é usado. Em seu lugar, o QR dinâmico contém o subcampo 25, que armazena uma URL para obter os detalhes da cobrança.

🔹 52040000 (Merchant Category Code)

  • ID 52Merchant Category Code (MCC).
  • Valor: 0000 (código de categoria genérico).
  • Por que existe: Identifica a categoria do estabelecimento comercial (padrão ISO 18245). No Pix, 0000 é frequentemente usado para uma categoria não especificada, pois o Pix é de uso amplo.
  • Quem preenche: Normalmente fixo como 0000 em QRs Pix, a menos que a solução geradora precise informar um MCC específico.

🔹 5303986 (Transaction Currency)

  • ID 53Código da Moeda da Transação.
  • Valor: 986 (código ISO 4217 para o Real brasileiro - BRL).
  • Por que existe: Permite que o QR code especifique a moeda. No Pix, sempre será Real brasileiro.
  • Quem preenche: Fixo: usar 986 para Pix no Brasil.

🔹 540525.75 (Transaction Amount)

  • ID 54Valor da transação (Amount).
  • Valor: 25.75 (representando R$ 25,75). O comprimento 05 indica 5 caracteres, incluindo o ponto decimal.
  • Valor em Aberto: Se o campo 54 for omitido, o QR Code estático permite valor em aberto, ou seja, o pagador digitará o valor que desejar pagar. Isso é comum em doações ou quando o recebedor insere o valor manualmente.
  • Por que existe: Possibilita QR Codes de cobrança com valor pré-definido, facilitando para o pagador e garantindo o montante correto para o recebedor.
  • Quem preenche: Você (ou sua aplicação), caso queira um valor fixo. O formato deve ser numérico com ponto decimal separando reais e centavos (ex: 0.50, 15.00, 123.99). Para valor em aberto, omita o ID 54.

🔹 5802BR (Country Code)

  • ID 58Código do País.
  • Valor: BR (Brasil).
  • Por que existe: É obrigatório pelo padrão EMV para informar o país da transação, garantindo compatibilidade.
  • Quem preenche: Fixo: BR para pagamentos Pix no Brasil.

🔹 5909ANA SILVA (Merchant Name)

  • ID 59Nome do recebedor (Merchant Name).
  • Valor: ANA SILVA (9 caracteres).
  • Importante: Não utilize acentos ou caracteres especiais; siga o padrão ASCII simples. ANA SILVA está em letras maiúsculas e sem acentos.
  • Limite: Permite até 25 caracteres.
  • Por que existe: Para exibir ao pagador, no aplicativo, quem está recebendo o dinheiro, servindo como uma confirmação visual da transação.
  • Quem preenche: Geralmente quem gera o QR. Idealmente, deve ser o nome cadastrado na chave Pix para evitar divergências, utilizando caixa alta e sem caracteres especiais.

🔹 6014BELO HORIZONTE (Merchant City)

  • ID 60Cidade do recebedor (Merchant City).

  • Valor: BELO HORIZONTE (14 caracteres). Novamente, sem acentos.

  • Limite: Permite até 15 caracteres.

  • Por que existe: Requisito do padrão EMV. No Pix, costuma-se usar a cidade de domicílio do recebedor.

  • Quem preenche: Você (ou o sistema gerador). É obrigatório no payload para máxima compatibilidade com aplicativos. Use caixa alta e sem caracteres especiais.

  • Postal Code (ID 61) – Opcional: O padrão EMV também define um campo 61 para CEP (código postal). No Pix, é opcional e pouco usado em QRs estáticos comuns. Se incluído, seriam 8 dígitos (ex: 01012000) precedidos de 6108.

🔹 6207... (Additional Data Field Template)

O ID 62 indica o template de dados adicionais, sendo um campo composto que contém subcampos. Aqui podem entrar informações extras como o identificador da transação (TXID) ou um campo livre de referência.

No nosso exemplo, temos 62070503***:

🔹 Subcampo 0503*** (Transaction ID – TXID)

  • ID do subcampo: 05 (Referência da transação - TXID).

  • Tamanho: 03 (3 caracteres).

  • Valor: *** (indicador de ausência de TXID específico).

  • Finalidade: Em Pix estático, o TXID pode ser usado pelo recebedor para identificar pagamentos e conciliar. Permite até 25 caracteres alfanuméricos. O valor *** é uma convenção do Bacen para indicar que não há TXID definido.

  • Por que existe: Permite ao recebedor conciliar pagamentos. No Pix dinâmico, o TXID é obrigatório e único por cobrança; no estático, serve como referência opcional de livre uso.

  • Quem preenche: Você, ao gerar o QR. Se não for usar um identificador, o padrão recomenda *** para explicitar a ausência.

  • Campos adicionais opcionais no ID 62:

    • Subcampo 02 – Informação Adicional ao Pagador: Um campo livre para incluir uma mensagem ou descrição para o pagador, com até 72 caracteres. Em QRs dinâmicos, é preenchido com a descrição (solicitacaoPagador).
    • Subcampo 03 – Campo fss (Facilitador de Saque): Usado apenas para Pix Saque/Troco, contendo o ISPB do facilitador. Não é comum em Pix padrão.

🔹 6304BB4A (CRC16)

  • ID 63Checksum CRC16.
  • Valor: BB4A (código de 4 caracteres hexadecimais).
  • Cálculo: Os últimos 4 caracteres do payload são o valor do CRC16 (16-bit Cyclic Redundancy Check) calculado sobre todo o conteúdo anterior do payload, incluindo IDs, tamanhos e valores, até o byte anterior ao próprio campo 63. O padrão é o CRC-16/CCITT-FALSE com polinômio 0x1021 e valor inicial 0xFFFF.
  • Por que existe: Para garantir a integridade do código. Se qualquer caractere do payload for alterado, o CRC calculado não irá coincidir, e o aplicativo pagador identificará o QR Code como corrompido ou inválido, evitando pagamentos incorretos.
  • Quem preenche: É calculado automaticamente pela ferramenta ou biblioteca que gera o QR.

🟣 E o QR Code Dinâmico? (Pix com URL)

O Pix dinâmico possui algumas diferenças importantes na composição do payload:

  • O campo 01 (Point of Initiation Method) aparece com valor 12 obrigatoriamente, indicando uso único. O payload iniciaria com 000201010212....
  • No campo 26 (Merchant Account Info), em vez do subcampo 01 (chave Pix), utiliza-se o subcampo 25 para a URL do payload. Essa URL é fornecida pelo PSP que criou a cobrança via API Pix e aponta para um endpoint do PSP recebedor contendo os detalhes da transação em formato JSON Web Token.
  • Os campos 54 (valor) e 62-05 (TXID) podem até constar no payload dinâmico, mas são ignorados pelo aplicativo pagador, que utilizará os dados obtidos via URL/API. O manual sugere que esses campos não sejam preenchidos no QR dinâmico, pois o valor e o TXID verdadeiros vêm do payload JSON da cobrança.
  • Os demais campos (52, 53, 58, 59, 60, 63 – MCC, moeda, país, nome, cidade, CRC) mantêm funções similares.

Exemplo ilustrativo de Pix Dinâmico:

000201010212
26900014BR.GOV.BCB.PIX2568https://pix.meubanco.com.br/qr/xyz789abcd...
5204000053039865802BR5912LOJA EXEMPLO6009SAO PAULO6304XXXX

Observe o 010212 após o início, e dentro do 26, a presença do subcampo 25 com a URL. O aplicativo, ao ler este código, fará uma chamada a essa URL para obter as informações completas da cobrança (valor, TXID, descrição) antes de finalizar o pagamento.

Em resumo, o QR dinâmico oferece funcionalidades mais complexas como vencimento, multa e uso único com confirmação, enquanto o QR estático é mais simples e pode ser gerado offline sem chamadas à API Pix.


💻 Gerando o payload.

Caso queira criar seu payload pix, tanto o qr-code quando o copia-e-cola, sinta-se livre para usar esse projeto de geração, o QR-pix-off.

QR-pix-off é uma ferramenta Python minimalista para a geração offline de QR Codes Pix Estáticos e seus respectivos payloads "Copia e Cola".

https://github.com/usrbinbrain/QR-pix-off

Carregando publicação patrocinada...
2

Boa muito bom mesmo, a explicação do que cada parte faz ficou sensacional, também tenho uma implementação de gerador de brcode e qrcode do pix, já fiz alguns projetinhos com ela, é opensource também se quiser dar uma olhada o repo é pypix os projetinhos que desenvolvi com base nessa lib são pix-code e mais recentemente o PyPixBot

2

Muito obrigado cleitonlc!

Man, vi seus projeto e achei muito foda! Nossa eu nunca tinha pensado em fazer um lib e tal...

Muito obrigado por compartilhar esses projetos, fez minha mente borbulhar de ideias!

\o/

1
2

Ola Cleiton, bom dia! Sou Fundador da ValidaPix e criei uma SuperAPi que integra com todos os bancos chamando apenas uma rota, como somos homologados em todos os grandes bancos consigo integrar em ate 5 minutos, se quiser integrar com sua solução libero para voce de graça para somar contigo

1

Olá! Obrigado pelo contato e pela oferta, parece uma solução muito interessante.
Só para esclarecer, o post original é do usuário usrbinenv (publicado há 7 dias) e fala sobre o payload do Pix e geração de QR Codes estáticos.
Para não poluir a publicação dele, prefiro continuar essa conversa de forma mais direta. Você pode me encontrar pelo e-mail [email protected] ou no Telegram: https://t.me/CleitonLC.

Fico à disposição para trocarmos ideias!

2
1
1

Muito obrigado MoreiraTv!

Assim como o Cleitonlc mencionou, infelizmente nao tem uma api publica para validar isso, obrigatoriamente para chegar nesse nivel de verificação é necessario tem o acesso em nivel de PSPs (Prestador de Serviços de Pagamento).

1

Top em. Acabei de constuir um script em python para testar isso. Surreal. Dá para realmente montar um "copia e cola" personalizado e validar o crc da chave pix.

2

Muito obrigado JeielMiranda!

Fico muito feliz que esse poste tenha ajudado de alguma forma, acho muito bacana ver que tem pessoas curtindo o assunto.

Depois de estudar o PIX, tbm achei surreal a capacidade de poder gerar o payload "na unha".

Conteúdo excluído
3

Muito obrigado DevDoLangualyzer!

Posso sim, abaixo descrevi em 6 passos como funciona os passos cronologicos request/response do pix dinamico via qr-code, acredito que pode te dar uma luz sobre as respostas.

Alem dessa resposta, te aconselho a olhar o yml do OPEN API do PIX no github do BACEN, isso meu ajudou muito a entender os request e respostas ao lidar com a API do PIX, vale a pena gastar um tempo nesse arquivo!

Nesse exemplo, descrevo os 6 passos que devemos observar ao lidar com pix dinamico, vamos assumir que o nosso banco de exemplo se chama "BancoTAB".

1. Payload do QR Code Dinâmico (BR Code)

O QR Code dinâmico, ao ser escaneado pelo aplicativo "BancoTAB Cliente", não contém diretamente todos os dados da transação, mas sim uma URL (conhecida como "location") que aponta para um endpoint do PSP recebedor (neste caso, "BancoTAB Comercial").

Exemplo de payload do QR Code dinâmico (BR Code) que o usuário pagador escaneia, com as quebras de linha para facilitar a visualização (no código real, é uma única string contínua):

000201                                       # Payload Format Indicator: sempre '01'
010212                                       # Point of Initiation Method: '12' para QR dinâmico
2694                                         # Merchant Account Information Template
  0014BR.GOV.BCB.PIX                         # GUI: Identificador do arranjo Pix
  2572https://qrcodes.bancotab.com.br/qr/dynamic-pix-payment-1a2b3c4d5e6f7g8h9i0j # URL do Payload
52040000                                     # Merchant Category Code: '0000' para genérico
5303986                                      # Transaction Currency: '986' para Real Brasileiro
5802BR                                       # Country Code
5919BANCOTAB COMERCIAL                       # Merchant Name
6009SAO PAULO                                # Merchant City
630469C1                                     # CRC16: Checksum para validação

No Pix dinâmico, os campos de valor (ID 54) e TXID (subcampo 05 do ID 62) no QR Code podem ser omitidos ou não ter efeito, pois os dados da transação são obtidos via URL.

2. Requisição para Obter o Payload da Cobrança

Ao ler o QR Code, o aplicativo "BancoTAB Cliente" extrai a URL presente no subcampo 25 (neste exemplo, https://qrcodes.bancotab.com.br/qr/dynamic-pix-payment-1a2b3c4d5e6f7g8h9i0j).

O aplicativo pagador então realiza uma chamada HTTP GET para esta URL para recuperar os detalhes da cobrança. Estes endpoints (locations) que servem o payload da cobrança são abertos para conexão por qualquer cliente da internet e não exigem autenticação OAuth2.

Requisição (GET):

GET https://qrcodes.bancotab.com.br/qr/dynamic-pix-payment-1a2b3c4d5e6f7g8h9i0j HTTP/1.1
Host: qrcodes.bancotab.com.br
User-Agent: BancoTABClienteApp/1.0
Accept: application/jose

3. Resposta da Requisição (Estrutura JWS)

O servidor do "BancoTAB Comercial" (PSP recebedor) responde a esta requisição com uma estrutura JWS (JSON Web Signature). O JWS garante a integridade e o não-repúdio das informações da transação, pois seu payload é assinado digitalmente pelo PSP recebedor.

A estrutura JWS é composta por três partes, separadas por pontos (.), codificadas em Base64url: Cabeçalho (JOSE Header), Payload (JWS Payload) e Assinatura Digital (JWS Signature). O cabeçalho JWS deve incluir, no mínimo, o parâmetro "alg" (Algorithm), que define o algoritmo de assinatura digital usado (por exemplo, "RS256" ou superior, "ES256" ou superior; "HS*" e "none" são proibidos).

O aplicativo "BancoTAB Cliente" (PSP pagador) valida a assinatura digital do JWS. Somente se a assinatura for válida, ele processa o conteúdo do payload JSON.

Exemplo de Resposta (JWS):

HTTP/1.1 200 OK
Content-Type: application/jose
Content-Length: [tamanho_do_jws]

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjYWxlbmRhcmlvIjp7ImNyaWFjYW8iOiIyMDIwLTA5LTE1VDE5OjM5OjU0LjAxM1oiLCJhcHJlc2VudGFjYW8iOiIyMDIwLTA0LTAxVDE4OjAwOjAwWiIsImV4cGlyYWNhbyI6MzYwMH0sInR4aWQiOiJmYzlhNDM2NmZmM2Q0OTY0YjVkYmM2YzkxYTg3MjJkMyIsInJldmlzYW8iOjMsInN0YXR1cyI6IkFUSVZBIiwidmFsb3IiOnsib3JpZ2luYWwiOiI1MDAuMDAiLCJtb2RhbGlkYWRlQWx0ZXJhY2FvIjowfSwiY2hhdmUiOiI3NDA3YzljOC1mNzhiLTExZWEtYWRjMS0wMjQyYWMxMjAwMDIiLCJzb2xpY2l0YWNhb1BhZ2Fkb3IiOiJJbmZvcm1hciBjYXJ0YW8gZmlkZWxpZGFkZSIsImluZm9BZGljaW9uYWlzIjpbeyJub21lIjoicXVhbnRpZGFkZSIsInZhbG9yIjoiMiJ9XX0. [ASSINATURA_DIGITAL_DO_PSP_RECEBEDOR_AQUI]

O [ASSINATURA_DIGITAL_DO_PSP_RECEBEDOR_AQUI] representa a assinatura digital gerada pelo "BancoTAB Comercial" (PSP Recebedor) sobre o cabeçalho e o payload, utilizando sua chave privada e um algoritmo como RS256. O certificado vinculado à assinatura do payload JWS associado aos QR Codes dinâmicos deve ser emitido por uma Autoridade Certificadora (AC) amplamente conhecida e ser cadastrado no Pix. É responsabilidade do participante pagador verificar o status de revogação do certificado do site associado ao QR Code do PSP recebedor.

4. Conteúdo do Payload JWS (JSON)

Após a validação da assinatura, o "BancoTAB Cliente" extrai o payload JSON (a parte do meio do JWS) que contém os detalhes da cobrança. Utilizaremos o exemplo cobPayload1 dos fontes, adaptado para o contexto "BancoTAB":

{
  "calendario": {
    "criacao": "2020-09-15T19:39:54.013Z",
    "apresentacao": "2020-04-01T18:00:00Z",
    "expiracao": 3600
  },
  "txid": "fc9a4366ff3d4964b5dbc6c91a8722d3",
  "revisao": 3,
  "status": "ATIVA",
  "valor": {
    "original": "500.00",
    "modalidadeAlteracao": 0
  },
  "chave": "7407c9c8-f78b-11ea-adc1-0242ac120002",
  "solicitacaoPagador": "Informar cartao fidelidade",
  "infoAdicionais": [
    {
      "nome": "quantidade",
      "valor": "2"
    }
  ]
}

Este JSON contém todas as informações da cobrança, como:

  • calendario: Data de criação (criacao), apresentação (apresentacao) e tempo de expiração (expiracao).
  • txid: Identificador único da transação, criado pelo usuário recebedor para conciliação.
  • revisao: Número da revisão da cobrança.
  • status: Estado do registro da cobrança (neste caso, "ATIVA").
  • valor: O valor original da cobrança, neste caso, "500.00".
  • chave: A chave Pix do recebedor ("7407c9c8-f78b-11ea-adc1-0242ac120002" - exemplo de chave EVP).
  • solicitacaoPagador: Uma mensagem opcional para o pagador ("Informar cartao fidelidade").
  • infoAdicionais: Informações adicionais ("quantidade": "2").

5. Início do Processo de Pagamento (internamente pelo PSP Pagador)

Com os dados da cobrança em mãos (extraídos do payload JWS), o aplicativo "BancoTAB Cliente" (PSP pagador) apresenta as informações ao usuário para confirmação.

Após a confirmação do usuário, o PSP pagador (BancoTAB Cliente) não realiza uma chamada direta a uma API do PSP recebedor para efetivar o pagamento. Em vez disso, ele constrói e envia uma mensagem de pagamento (PACS.008) para o Sistema de Pagamentos Instantâneos (SPI). Essa mensagem inclui o txid e todos os detalhes necessários para a liquidação da transação.

A API Pix (OpenAPI Specification) padroniza os serviços oferecidos pelo PSP recebedor, como o gerenciamento de cobranças (criar/revisar Cob, CobV, CobR, Rec), o acompanhamento de Pix e suas devoluções, e consultas. Ela não especifica o endpoint que o PSP pagador usaria para iniciar um Pix, pois essa é uma funcionalidade interna do PSP pagador que se comunica com o SPI.

6. Registros de Auditoria (Logs)

Tanto o PSP pagador quanto o PSP recebedor são obrigados a manter registros detalhados de auditoria das mensagens e transações.

  • Mensagens enviadas e recebidas com a ICOM (Interface de Comunicação) devem ser armazenadas por 10 anos, incluindo conteúdo XML e dados de assinatura digital.
  • Requisições de consulta ao DICT (Diretório de Identificadores de Contas Transacionais) devem ser armazenadas por 2 anos, enquanto requisições de escrita (como atualização de entrada, criação de reivindicação) devem ser mantidas por 10 anos.
  • Informações de requisições geradas a partir de incidentes de cibersegurança, ataques de varredura ou fraudes também devem ser armazenadas por 10 anos.
  • Todos os certificados digitais utilizados no Pix, mesmo os desativados, devem ser armazenados para eventual consulta histórica e validação da assinatura digital.

Por fim, este fluxo detalha como as informações do QR Code dinâmico são utilizadas para processar uma transação Pix, desde a leitura inicial até a etapa de confirmação, e as validações de segurança envolvidas.