Contexto


Neste artigo, vamos apresentar como realizar a decodificação de um QR Code via API. Esse processo permite extrair as informações contidas no QR Code, como:


  • Valor;
  • Chave Pix;
  • Dados do recebedor;
  • Identificador do QR Code;
  • Outras informações.


Pré-requisitos


Antes de realizar a decodificação do QR Code, certifique-se de que:

  • Está autenticado com um token válido da nossa API;
  • Possui client_id e client_secret ativos;
  • Tem em mãos o copia e cola (textContent);
  • Define uma data válida para o pagamento (timestamp);
  • Gera um identificador único para a requisição (UUID);
  • Calcula o TransactionHash corretamente com base no corpo da requisição.


1. Decodificar QR Code


▶️ Endpoint


POST {{url}}/v1/qrcode/decoding


Exemplo de payload: 


{

  "document": "{{textContent}}",

  "dateForPayment": "{{timestamp}}",

  "externalIdentifier": "{{UUID}}"

}


2. Geração do TransactionHash 


// Gerando string para cálculo do TransactionHash

var valoresHash = "post:/v1/qrcode/decoding:" + textContent;


// Calculando TransactionHash da transação e setando na variável

postman.setEnvironmentVariable("Hash", CryptoJS.HmacSHA256(valoresHash, environment["SecretKey"]));


3. Exemplo de Retorno da API 


{

  "data": {

    "qrcodeType": "DYNAMIC",

    "dynamicQrcodeData": {

      "pointOfInitiationMethod": 12,

      "country": "BRA",

      "currency": "BRL",

      "amount": 50.00,

      "merchantName": "Pessoa Juridica",

      "merchantCity": "SAO PAULO",

      "reference": "***",

      "payloadUrl": "pix-h.bpp.com.br/23114447/qrs2/v2/02dLpxkrxjI5suB9JO4bl4lpqmRGBYdahJN8k4rgYLQ",

      "payload": {

        "revisao": 0,

        "infoAdicionais": [

          {

            "nome": "ID DO PEDIDO",

            "valor": "123456"

          }

        ],

        "calendario": {

          "expiracao": 86400,

          "criacao": "2025-06-03T19:34:04.000Z",

          "apresentacao": "2025-06-03T19:34:09.185Z"

        },

        "valor": {

          "original": "50.00",

          "modalidadeAlteracao": 0

        },

        "txid": "QRS2TXYROIAOLEMWIHUFHKYSU1QPWJFQAZN",

        "chave": "9d17cf6d-2bf0-46c0-a168-aa5783d4e2d3",

        "status": "ATIVA"

      }

    }

  }

}


⚠️ Observações Importantes

Ao realizar a decodificação do QR Code, a resposta da API inclui a chave Pix associada. Isso permite que um pagador, ao visualizar a chave, realize um pagamento diretamente para ela (sem utilizar o identificador original do QR Code). Nesse caso o recebimento será identificado no extrato como um DEPOSITINSTANTPAYMENT.


Suporte


Para dúvidas ou acompanhamento de chamados, acesse: Portal de Suporte