pix-qr-code-detail
v1.2.0
Published
Inspeciona BR Codes Pix dinamicos, extrai URL de payload e decodifica JWT.
Maintainers
Readme
pix-qr-code-detail
Pacote Node.js minimalista para inspecionar BR Codes Pix de cobrancas dinamicas:
- Faz o parsing TLV do QR Code/BR Code;
- Localiza a Merchant Account Information Pix, tags
26a51; - Extrai a URL do payload dinamico na subtag
25; - Baixa o payload via HTTP/HTTPS;
- Decodifica o JWT e devolve
{ header, payload, signature }.
O pacote publica ESM e CommonJS, nao executa exemplos ao ser importado e nao possui dependencias de runtime.
Instalacao
npm i pix-qr-code-detailUso
import { parseTLV, extractPixUrl, getDecodedPixJwt } from 'pix-qr-code-detail';
const brcode = '00020101021226830014BR.GOV.BCB.PIX2561qrcodespix.sejaefi.com.br/v2/ff719c748dc244a294adee9174ace3795204000053039865802BR5905EFISA6008SAOPAULO62070503***6304BAC4';
console.dir(parseTLV(brcode), { depth: null });
console.log('URL:', extractPixUrl(brcode));
const { payload } = await getDecodedPixJwt(brcode);
console.log('Payload JWT:', payload);CommonJS tambem e suportado:
const { getDecodedPixJwt } = require('pix-qr-code-detail');API
parseTLV(brcode)
Converte a string do BR Code em um array de objetos TLV. Cada item traz tag, length, value, tagName e, quando aplicavel, children.
extractPixUrl(brcode)
Retorna a URL do payload dinamico na subtag 25 dentro da Merchant Account Information. Em QR Codes estaticos, onde normalmente existe chave Pix na subtag 01 em vez de URL de payload, retorna undefined.
getDecodedPixJwt(brcode, options?)
Usa extractPixUrl, acrescenta DPP=YYYY-MM-DD na URL do payload com a data local do dia, baixa o payload com fetch e decodifica o JWT. Aceita:
{
timeoutMs?: number;
fetch?: typeof fetch;
headers?: Record<string, string>;
}decodeJwt(token)
Decodifica um JWT ja obtido e devolve { header, payload, signature }.
O pacote decodifica o JWT para leitura/detalhamento. Ele nao verifica criptograficamente a assinatura.
Desenvolvimento
npm run build
npm pack --dry-runO build gera:
dist/esm/index.jsdist/esm/index.d.tsdist/cjs/index.js
Licenca
MIT
