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